FTPサーバのセキュリティ

11月 20, 2009

Linux LPIC編。(第13 章 システムセキュリティ)

ではFTP。FTPサーバには、wu-ftpd、ProFTPD、vsftpd、Pure-FTPDなどがある。

ProFTPDの設定ファイルはproftpd.conf。書式はhttpd.confに似ている。
アクセス制御を行うLimitディレクティブの例を書いておく。

#すべてのIPアドレスからログインを許可
<Limit LOGIN>
  Order  Deny,Allow
  Allow from  all
</Limit>

#読取りは許可し、書込みは禁止する例
<Limit READ>
  AllowAll
</Limit>
<Limit STOR>
  DenyAll
</Limit>


Limitディレクティブで利用するFTPコマンドやコマンドグループは以下の通り。

FTPコマンド
RETR サーバからクライアントへのファイル転送
STOR クライアントからサーバへのファイル転送
REN ファイル名変更
DELE ファイル削除
RMD ディレクトリ削除
SITE_CHMOD パーミッション変更

FTPコマンドグループ
DIRS ファイル名一覧取得
READ ファイルの読み込み
WRITE ファイル・ディレクトリの作成、削除
ALL すべてのFTPコマンド
LOGIN ログイン


次にFTPサーバのアクセス制御。FTPログインを許可しないユーザを指定するには、
/etc/ftpusersにユーザ名を記述する。
ログインを許可したユーザであっても、セキュリティ上、ディレクトリの移動の制限
をする必要があるので、chroot機能を使うとよい。次のように設定すると、ユーザの
ホームディレクトリ以下のみ移動可能となり、他の場所へは移動できない。

ProFTPD(proftpd.conf)
DefaultChdir ~

vsftpd(vsftpd.conf)
chroot_local_users = YES

Pure-FTPD(pure-ftpd.conf)
ChrootEverone   yes  ←すべてのユーザにchrootを適用する


Pure-FTPDでは設定ファイルを使わずに、起動時にオプションを使って動作を指定する
こともできる。詳細は割愛。。
一部のユーザのみchrootの対象とすることも可能。でもこれも割愛して次へ。
(FTPサーバの詳細な設定については問われないそうなので・・・)

パッシブモード
FTPの基本であるが、この機会におさらい。
FTPはデータ転送に20番、制御に21番と、2つのポートを使用する。FTPのデータ転送は、
通常と違いサーバ側からクライアント側へ接続を要求する(アクティブモード)。
この時クライアント側がファイヤーウォールの内側にあると、サーバ側から接続できない
ことがある。FTPサーバをパッシブモードで動かせば、これを回避できる。これにより、
クライアント側からサーバ側へ接続を要求する。以下、パッシブモードの設定例。

ProFTPD(proftpd.conf)
MasqueradeAddress  10.2.3.4  ←WAN側のIPアドレス又はドメイン名
PassivePorts      52000 52020 ←利用するポート番号の範囲

vsftpd(vsftpd.conf)
pasv_enable=YES

Pure-FTPD(pure-ftpd.conf)
PassivePortRange  30000 50000


余談だが、クライアント側でファイヤーウォールの設定をする際当然該当FTPサーバ
からの接続は受け付けるようにするわけだが、パケットとデータの両方を通すように
しておかないと、正常な通信ができない。
(いや、昔、セッションは成立してるのにデータが受信できない、何故だ、という事例が
あったような、なかったような気がしたので・・・)

匿名FTPサーバ
匿名(anonymous)FTPサービスを利用する際の設定。
ProFTPDの場合はproftpd.conf内の、Anonymousディレクティブで設定できる。
vsftpdの場合は、vsftpd.conf内で anonymous_enable=YES とする。
wu-ftpdでは、ひと言でいうと、/home/ftpなどのディレクトリを作成しFTPサービスに
必要なディレクトリやファイルをコピーした上で、chrootする。

FTPはここまで。次回はセキュリティの要、OpenSSHへ。

出典
Linux教科書LPICレベル2(翔泳社)


Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index

Categories: LPIC

No Responses so far | Have Your Say!

Comments are closed.