-
Notifications
You must be signed in to change notification settings - Fork 0
MS_FTP
- TOP > インフラストラクチャ > 通信技術
- インターネット初期の頃から存在するプロトコル
- 任意のホスト間のファイル転送を行うことが可能
- 通常は接続したクライアントとサーバ(FTPサーバ)間の転送に利用される。
以下の2つのモードがある。
inboundを受け入れないF/Wと相性が悪く、最近は使用されていない。
- クライアント → サーバ
クライアントがサーバへ待ち受けIPアドレスとポート番号を通知 - サーバ → クライアント
こちらも、イントラ → クラウド環境での接続では、
サーバー側のNAPTと相性が悪くサーバー側に設定が必要になる。
- クライアント → サーバ
サーバがクライアントへ待ち受けポート番号を通知する。 - サーバ → クライアント
待ち受けポート番号の通知を受けたクライアントがサーバにコネクションを確立しに行く。
FTPは、セキュア(安全)なプロトコルとして設計されていないため、
インターネット回線を経由するケースなど、FTPS、SFTPが利用されるようになった。
- FTPで送受信するデータをTLSまたはSSLで暗号化する通信プロトコル。
- Well-known Portは、990/tcp(IISのFTPSは、port 21をFTPと共有)。
- RFC 2228, 4217 で標準化されている。
- Explicitモード
- STARTTLS(平文の通信プロトコルを暗号化通信に拡張する方法)
- 認証コマンド実行後に暗号化通信を開始する。
- 認証コマンドを実行しなければ通常のFTPとして機能する。
- Implicitモード
- サーバ接続開始時点から暗号化通信を開始する。
- クライアントはサーバが採用している暗号化プロトコルに適合したFTPSクライアントソフトを使用する必要がある。
- RFC 4217 では正式には規定されておらず、慣行として実装されている。
移行メモ: 原文は「RFC 4217ドラフトは削除されており、現在、正式なRFCとして掲載されていない」と していたが、RFC 4217 自体は正式に発行されている。 正式規定から外れたのは Implicit モードのほうであるため、その旨に整えた。
- Secure Shell(SSH:
MS_SSH.md)上でSFTPコマンドを実行してファイル転送する。 - ただし、SFTPコマンドはFTPコマンドとはまったく別物。
- メリット
- ASCII/BINARY モードのサポート
- フォルダ単位での転送
- デメリット
サーバ側でSSL証明書の購入コストが発生
※ ワイルドカード証明書でWebサイトと共通可能。
移行メモ: 元 Wiki では SFTP のメリット・デメリットが見出しのみで未記載。
補足すると、SFTP は SSH の単一ポート(22/tcp)で完結するため ファイアウォール/NAT との相性が良く、鍵認証をそのまま使える点が実務上の利点。 一方、ASCII モード(改行コード変換)を持たない点は FTPS と異なる。
- 日本製のFTPクライアント
- FTPSなどのサポートも加えられるなどメンテも続いていた。
- しかし、WinSCPの隆盛に従い、二代目開発者氏曰く、
最終バージョン2.00のリリースで開発の終了を検討しているもよう。
成果物は、クライアントとサーバーの両方がある。
- クライアント
- Windows、Linux、macOS
- FTP、SFTP、FTPS(FTP over SSL/TLS)
- サーバー
- FTPと FTP over SSL/TLS をサポート
- クライアントと異なり、Windowsだけサポート。
- オープンソースで開発されている FTP/SFTP/SCP クライアントソフト。
- こちらが主流になりそう。
- インターフェイスを確認すると、Win32のDLL(COMではない)。
- System32の下に存在する
wininet.dllが、WinInetに該当する模様。 - 参考
非推奨
FtpWebRequest の後継 → FluentFTP
System.Net.FtpClient の後継
-
スピードのために最適化された .NET & .NET Standard 用の FTP および FTPS クライアント。 豊富な FTP コマンド、ファイルのアップロード/ダウンロード、SSL/TLS 接続、 自動ディレクトリリスト解析、ファイルハッシュ/チェックサム、 ファイルパーミッション/CHMOD、FTP プロキシ、FXP サポート、UTF-8 サポート、 Async/await サポート、PowerShell サポートなどを提供します。 完全に C# で書かれており、外部からの依存関係はありません。
(MS_FTPServerOnCloud.md)
Tags: IT国際標準, インフラストラクチャ, 通信技術, IIS
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。