CentOS6ベースのサーバーを触る機会があり、iptablesの設定でハマっております。
以下の内容についてご教示ください。
やりたいこと
サーバー側で不要なポートをiptablesにてすべて塞いだうえで、以下のサービスを公開したい(一部は特定IPからのみ)
1.www(port80)は任意のIPアドレスからアクセス可能
2.ftp、sshは特定のIPアドレスのみアクセス可能
以上ですが、ftpのパッシブモードで接続がうまくいきません。
コマンド: PWD
レスポンス: 257 "/" is your current location
コマンド: TYPE I
レスポンス: 200 TYPE is now 8-bit binary
コマンド: PASV
レスポンス: 227 Entering Passive Mode (xxx,xxx,xxx,xxx,223,73)
コマンド: MLSD
でタイムアウトします。ssh(特定IPからのみ)、www(任意IPから)は正常にアクセスできています。
iptablesの設定は以下のように行っています。
iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -d hostip -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -s hostip -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-request -s hostip -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -d hostip -j ACCEPT iptables -A INPUT -p tcp -s clientip -d hostip --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -s hostip --sport 22 -d clientip -j ACCEPT iptables -A INPUT -p tcp -s 0.0.0.0/0 -d hostip --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp -s hostip --sport 80 -d 0.0.0.0/0 -j ACCEPT iptables -A INPUT -p tcp -s clientip -d hostip --dport 21 -j ACCEPT iptables -A OUTPUT -p tcp -s hostip --sport 21 -d clientip -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -s clientip -d hostip --dport 20 -j ACCEPT iptables -A OUTPUT -p tcp -s hostip --sport 20 -d clientip -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -N LOGGING iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit iptables -A LOGGING -j DROP iptables -A INPUT -j LOGGING iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
/etc/sysconfig/iptables-config
IPTABLES_MODULES="nf_conntrack_ftp nf_conntrack ip_nat_ftp"
lsmod | grep conntrack_ftp
nf_conntrack_ftp 11953 1 nf_nat_ftp nf_conntrack 79206 6 nf_nat_ftp,nf_nat,nf_conntrack_ftp,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ftpはpure-ftpdというサーバーのようです。iptablesを無効にすると当然接続は可能です。
/etc/pure-ftpd.conf
# Port range for passive connections replies. - for firewalling. PassivePortRange 57000 58000
以上、よろしくお願いいたします。