FTP (File Transfer Protocol) 解説

コマンド

C:\>ftp
ftp>

通信モード

パッシブFTP (Passive FTP)

PASVモード (Passiveモード) パッシブFTP / パッシブモード / passive mode

ファイル転送に使うプロトコルであるFTPで利用される通信モードの一つで、データ転送のためのコネクションをクライアントから発信する方式

FTPでクライアントからサーバにファイルを送信するには、通常のモードではクライアントからサーバに接続した後、サーバからクライアントにデータ通信用の接続要求を行い、このコネクションを利用してファイル送信を行う。この方式だと、クライアントがファイアウォールの内側にあり、外部から直に接続要求を行うことができないような環境ではファイルの送信が行えない。

こうした場合に利用するのがPASVモードである。PASVモードではクライアントからサーバへ接続後、もう一度クライアントからサーバへデータ通信用の接続要求を行う。接続の方向は常にクライアントからサーバへ向かって行われるため、ファイアウォールなどがあってもFTPによるファイル転送が可能となる。その際利用されるコマンドが「PASV」であることから「PASVモード」と呼ばれる。

PASVモードとは 〔 Passiveモード 〕 〔 パッシブFTP 〕 - 意味/解説/説明/定義 : IT用語辞典

セキュリティ

FTPでは送受信されるデータが暗号化されないため、パスワードなども盗聴される恐れがあります。

通信の暗号化

SFTP (SSH File Transfer Protocol)

SFTP (SSH File Transfer Protocol)

sshで暗号化された通信路を使って安全にファイルを送受信するプロトコル。また、それを利用してUNIXなどで暗号化ファイル送受信を行うコマンド。

SFTPでは、公開鍵認証などを用いてsshでログインした後、FTPに似たコマンド体系を用いて任意の形式のファイルを送受信することができる。最近ではUNIX向けのsshパッケージに標準で付属しているほか、Windowsなどから利用できるクライアントソフトなども公開されている。

SFTPとは 【 SSH File Transfer Protocol 】 - 意味/解説/説明/定義 : IT用語辞典

FTPS (FTP over SSL/TLS)

FTPS (FTP over SSL/TLS)

TCP/IPネットワークでのファイル転送に使うFTP (File Transfer Protocol) に、伝送路を暗号化するSSL/TLSを組み合わせたプロトコル。IETFによりRFC 2228およびRFC 4217として標準化されている。

FTPによる接続前にSSL/TLSで伝送路を暗号化するもので、送受信されるファイルのデータだけでなくFTPでは平文で送受信されていたユーザ名とパスワードも暗号化されるため、盗聴によるアカウント乗っ取りなどの危険も低くなる。FTPは通常21番ポートを使用するが、FTPSは990番を使うのが一般的である。

暗号化されたファイル転送プロトコルにはSFTPがあるが、これはsshで暗号化された通信路を用いるもので、FTPSとは異なる。

FTPSとは 【 FTP over SSL/TLS 】 - 意味/解説/説明/定義 : IT用語辞典
  • Explicit FTPS
  • Implicit FTPS
FTP Clients - Part 2: Explicit FTPS versus Implicit FTPS - Robert McMurray's Blog [MSFT] - Site Home - MSDN Blogs

アクセスの制限

.ftpaccess

.ftpaccessでは、FTPによる接続をIPアドレスで制限できます。次のようにテキストファイルを記述し、それを.ftpaccessというファイル名でサーバに設置します。

<Limit ALL>
    Order Allow,Deny
    Allow from ***.***.***.***

    Deny from all
</Limit>

Allow fromに、接続を許可するIPアドレスを記述します。たとえば現在使用しているIPアドレスを許可するならば、アクセス元の情報ツールで確認できます。

上記のように完全なIPアドレスを指定する以外に、次のようにサブネットマスクを使用してアドレスの範囲を指定する方法もあります。

指定方法 記述方法
IPアドレスの一部
Allow from 10.1
Allow from 10 172.20 192.168.2
ネットワーク/ネットマスクの対
Allow from 10.1.0.0/255.255.0.0
ネットワーク/nnn CIDR指定
Allow from 10.1.0.0/16
Allow ディレクティブ - mod_authz_host - Apache HTTP サーバ バージョン 2.2

日本に割り当てられているIPアドレスならば、JPNICでそのアドレスを検索することで、CIDR表記によるそのアドレスの割り当て範囲を確認できます。

なお制限されているIPアドレスからFTP接続すると、

  • 550 www: No such file or directory (さくらインターネット)
  • 550 PWD: Permission denied (ロリポップ!)

のような応答があります。

許可されていないIPアドレスからの、.ftpaccessの編集

一度.ftpaccessを配置すると、そこで許可したIPアドレス以外からはこのファイル自体を編集できなくなります。ただしそれはFTP接続が制限されているだけのため、他の接続方法、たとえばSFTPやSSHからならばアクセスできます。これらの接続方法を利用できない場合には、サーバが用意しているサービスを利用します。

パスワード漏えいによる問題

ガンブラー (Gumblar)

FTPのアカウント情報が盗まれ、Webサイトが改ざんされます。