ftpに関しては、前述のxinetd関連とPAMの他に、
大きく分けて2箇所のチェックポイントがあります。
5.1 ftpのホームディレクトリ |
注: なお、RedHat6.x系とSlackwareのFTPのホームディレクトリは"/home/ftp"です。適宜ご自分の環境に合わせ、読み換えてください。
5.1.1 パーミッション
外部から直接アクセスされるディレクトリなので、パーミッションの設定には十分注意を払いましょう。
note:1 実際、外部からftpで大きなデータを送り込み、ファイルシステムを一杯にしてftpサービスを停止させるクラッキング方法があります。
万が一、ftpのホームディレクトリがシステムと同じパーティションにある場合、システムそのものが停止してしまうかも知れません。
システムを頑健にするためにも、ルート/、/home、/pub、/varなどは別パーティションにするべきでしょう。
note:2 ftpによるファイル書き込みを禁止する方法として、/etc/ftpaccessを使う方法もあります。
ftpaccessを使えば、各ユーザが自由にファイルを/var/ftp/pubにおくことができるので、 運用に柔軟性を持たせることができるかも知れません。
例えばファイルtest.tar.gzを公開する場合には以下のようにします。
5.1.2 /var/ftp/etc/passwd + /var/ftp/etc/group
このファイルにはディレクトリ/etcにあるpasswdファイルとgroupファイルと同じ情報が書かれている場合があり、非常に危険です。
必ず、ftp以外のユーザを削除し、anonymous以外のグループも削除しましょう。
ftp:*:404:15::/var/ftp:/bin/sh |
anonymous:*:15: |
注意: 上の例は、Shadowパスワードを使ったシステムのものです。
5.1.3 welcome.msg
ファイルwelcome.msgから"welcome to ..."の文を削除しましょう。 "welcome to ..."の文があると、万が一、ftpを経由して侵入された場合でも文句をいえなくなってしまいます。5.2 /etc/ftp* ファイル群 |
5.2.1 /etc/ftpaccess
このファイルでftpのアクセス制御を行ないます。ログインする回数があまりに多い場合、当てずっぽうにパスワードを入力して 侵入を試みている可能性もあるので、 loginfailsは少なめに設定した方がよいでしょう。
# all the following default to "yes" for everybody delete no guest,anonymous # delete permission? overwrite no guest,anonymous # overwrite permission? rename no guest,anonymous # rename permission? chmod no anonymous # chmod permission? umask no anonymous # umask permission? |
1 upload /var/ftp * no 2 upload /var/ftp /bin no 3 upload /var/ftp /etc no 4 upload /var/ftp /pub no 5 6 # ユーザのホームディレクトリへの書き込みも禁止 7 upload /home/* * no |
上記設定の場合、外部からデータを一切アップロードできませんので、
セキュリティ上は安全ですが、
制約が厳しすぎてFTPサービスを提供する利点があまりありません。
一般ユーザが自身のホームディレクトリにデータをアップロードするには、
2つの方法があります。
7 upload /home/* * no 8 upload /home/user01 * yes user01 |
5.2.2 /etc/ftpusers
このファイルはftpアクセスを"拒否する"ユーザを書きます。
少なくとも"root"は書いておきましょう。
5.2.3 /etc/ftphosts
出来ればftpを除くすべてのユーザを書き込みましょう。
/etc/ftphostsファイルは、以下の書式でクライアントからのアクセスの許可/拒否を指定します。
allow <ユーザ名> <host>[<host>,] deny <ユーザ名> <host>[<host>,] |
・"earth.solarsystem.net"というクライアントからのアクセスは許可、 ・"nemesys.solarsystem.net"というクライアントからのアクセスは拒否、するとします。 そのときには、/etc/ftphostsファイルに次のような行を追加します。
allow anonymous earth.solarsystem.net deny anonymous nemesys.solarsystem.net |
・"solarsystem.net"というドメインと"254.192.49.0/24"というネットワークからのアクセスは許可、 ・ それ以外のドメインからのアクセスは全て拒否、するとします。
1 allow anonymous *.solarsystem.net, 254.192.49.0/24 2 deny anonymous * |
home |index |previous |next |contents