FTPの種類
ProFTPDのインストール
[root@water0 ~]# cd /usr/local/setup/archive
[root@water0 archive]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3.tar.gz
[root@water0 archive]# cd ../make/
[root@water0 make]# tar -zxvf ../archive/proftpd-1.3.3.tar.gz
[root@water0 make]# cd proftpd-1.3.3/
[root@water0 proftpd-1.3.3]# ./configure --prefix=/usr/local 2>&1 |tee configure_100504.log
[root@water0 proftpd-1.3.3]# make 2>&1 |tee make_100504.log
[root@water0 proftpd-1.3.3]# make install 2>&1 |tee make_install_100504.log
※configure時に"--prefix=/usr/local"を"--prefix=/usr/local/proftp"としたほうが良かったと推測。インストール後のファイルの配置が分かりにくい。削除する"make uninstall"がないため、Makefileを調査しなければならないが今回は見送りという形で次回用確認。
[root@water0 proftpd-1.3.3]# vi /usr/local/etc/proftpd.conf
Group nobody
DefaultRoot ~ ←アクセスできるディレクトリを制限(ホームディレクトリ以下のみ)
ListOptions "-a" ←隠しファイルを表示
[root@water0 proftpd-1.3.3]# cp /usr/local/setup/make/proftpd-1.3.3/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
[root@water0 proftpd-1.3.3]# chmod 755 /etc/init.d/proftpd
[root@water0 proftpd-1.3.3]# chkconfig --add proftpd
[root@water0 proftpd-1.3.3]# chkconfig proftpd on
[root@water0 proftpd-1.3.3]# /etc/init.d/proftpd start
[root@water0 proftpd-1.3.3]# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
[root@water0 proftpd-1.3.3]# /etc/init.d/iptables restart
ftpの接続
データコネクション |
port20 |
制御コネクション |
port21 |
- データコネクション:クライアントは一時的に使われるポート1024番以上の値からサーバの21番ポートへ張られる。
- 制御コネクション:activeモードとpassiveモードの2種類
サーバの20番ポートからクライアントへ張られる。
passiveモードでアクセスするためには。
[root@water0 ~]# vi /usr/local/etc/proftpd.conf
#MasqueradeAddress 123.456.7.8 ←パッシブモードでクライアントにアクセスさせるアドレスを指定。通常自分のアドレス
PassivePorts 4000 4029 ←パッシブモードでクライアントにアクセスさせるポートを指定。"MaxInstances"より多く設定。
MaxInstances 30 ←アクセス制限
AllowOverwrite on ←ファイルの上書きを許可
Anonymousディレクティブをすべてコメントアウト
[root@water0 ~]# /etc/init.d/proftpd restart
パッシブ用のポートを同じように開けると攻撃される。
クライアントに指定したポートだけ動的に開けるには"ip_conntrack_ftp"カーネルモジュールををロードする。
[root@water0 ~]# lsmod|grep ftp
[root@water0 ~]# cat /proc/modules |grep ip_conntrack_ftp
ない場合は、ロードされていない。
- "ip_conntrack_ftp"カーネルモジュールがあるか確認
[root@water0 ~]# modinfo ip_conntrack_ftp
filename: /lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko
description: ftp connection tracking helper
author: Rusty Russell <rusty@rustcorp.com.au>
license: GPL
srcversion: E07D023E5C1EEB48A791EB8
depends: ip_conntrack
vermagic: 2.6.18-164.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
parm: ports:array of ushort
parm: loose:bool
module_sig: 883f3504a9f7848581431131ff6a527112421709d13e7f4825e9cabbde547ece82ef61549445e9da09cc9fe3b3f7dbf65fc35de98be78687c67cb2931
[root@water0 ~]# modprobe ip_conntrack_ftp --show-depends
insmod /lib/modules/2.6.18-164.el5/kernel/net/netfilter/nfnetlink.ko
insmod /lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter/ip_conntrack.ko
insmod /lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko
※modprobeコマンドの場合、"/lib/modules/`uname -r`/modules.dep"ファイルを参照するので依存関係は考慮しなくてよい。
※insmodコマンド,rmmodコマンドの場合考慮しなければならない。
[root@water0 ~]# modprobe ip_conntrack_ftp
※"modprobe -r ip_conntrack_ftp"はアンロード
[root@water0 ~]# lsmod |grep ip_conntrack_ftp
ip_conntrack_ftp 11569 0
[設定変更]-[拡張]タブ-[PASVモードを使う(V)]にチェック
※デフォルトでチェックがある。チェックをはずせばアクティブモード。
[root@water0 ~]# less /var/log/secure
※rootユーザのみアクセス可能
modprobeコマンドは再起動された場合、自動的にロードはされません。
[root@water0 ~]# vi /etc/sysconfig/modules/ip_conntrack_ftp.modules
#!/bin/bash
/sbin/modprobe ip_conntrack_ftp
[root@water0 ~]# chmod 755 /etc/sysconfig/modules/ip_conntrack_ftp.modules
[root@water0 ~]# vi /etc/modprobe.d/blacklist
blacklist ip_conntrack_ftp
最終更新:2010年05月05日 01:50