II-21-7. FTPサーバのセキュリティ対策

ファイル転送サービス(FTPサービス)の提供で設定すべきセキュリティ要件について解説する。FTPセキュリティの原則を論じ、匿名FTP利用時の留意事項や、FTP over SSL/TLS (FTPS)、Secure FTP (SFTP)やSecure Copy (SCP)などFTP以外のファイル共有方法の検討について説明する。

【学習の要点】

* FTPを多数のユーザにサービスする場合には、運用方針によって許可しない限り、互いのユーザのコンテンツが不用意に見えてはいけない。柔軟性の裏には、常に適切な設定を施す必要があることは忘れてはならない。

* FTP仕様にはユーザ認証が含まれているが、ネットワーク上を流れるパスワードは暗号化されない。通信経路を暗号化するためには、クライアント側もそれに対応しなければならない。

* 今日のFTPクライアントの中には、FTPS, SFTP, SCPに対応しているものがある。これらのプロトコルは通信経路を暗号化する仕様が含まれているため、可能であればFTPに代わってこれらのプロトコルを使用することが望まれる。

図II-21-7. chrootの効果

【解説】

1) FTPの潜在的なセキュリティリスク

* FTPプロトコルには、通信経路を暗号化する方法がない。このため、経路を流れるパケットを容易に盗聴することができる。転送されいているファイルの内容や、認証の際のユーザ名、パスワードもこれに含まれる。

* SCP(Secure Copy)、SFTP(SSH File Transfer Protocol、またはSeucure File Transfer Protocol)や、FTPS(FTP over SSL)は、通信経路を暗号化するために仕様が含まれる。FTPの持つ潜在的なセキュリティリスクを回避するために、これらのプロトコルを代替として使用することが望まれる。

2) FTPサーバの設定上の留意事項

* FTPプロトコルは、その性格上、常にファイルシステムの公開に対するリスクが存在する。適切なセキュリティが施されている場合は問題とならないが、そうでない場合には、システムの重要なファイルにアクセスされる恐れがある。

* 匿名ユーザとは、パスワードなしでログインできるユーザである。パブリックなFTPサイトでは使用されることがあるが、必要でない場合は匿名ユーザを有効にするべきではない。FTPサーバの実装の中には、デフォルトで匿名ユーザが有効になっているものがあるので留意する必要がある。

* FTPサーバでは、ログインしたユーザが自分のホームディレクトリより上位のディレクトリにアクセスできないよう、chrootを使用する。chrootは、設定によっては無効にすることができるため、実運用を考えているFTPサーバでは必ずこの項目を確認することが必要である。

* 多くのFTPサーバの実装では、OSのユーザをそのままFTPのユーザとして使用する。この場合は、ログインを許可するユーザとしないユーザを設定できるので、実運用前に確認するべきでる。もしrootユーザやシステム上権限の強いユーザが許可ユーザリストに含まれている場合はその必要性を再検討する。

3) SFTP

* SFTPは、OpenSSHに含まれており、多くのLinuxディストリビューションでは利用できる状態になっている。OpenSSHのSFTP実装は、SSHにより通信経路を暗号化する。

* OpenSSH のSFTP実装は、認証にSSHを利用するので、SSH公開鍵認証をそのまま使用することができる。

* SFTPは、FTPにおける経路の暗号化問題を解決するが、それ以外のすべての問題を解決するわけではない。例えば、OpenSSHのSFTP実装では、FTPのように簡単にchrootを利用できない。

* FTPに比べてクライアントが普及してないことも導入上の問題である。FTPは多くのOSでデフォルトで備えている機能であるが、SFTPの場合は専用のクライアントソフトウェアが必要となる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン