web-dev-qa-db-ja.com

iptables1.4およびカスタムポートのパッシブFTP

debian squeezeからwheezyにアップグレードした後、パッシブFTP接続に問題が発生しました。 IPをiptablesACCEPTルールに追加した後、問題なくFTP経由で接続できるため、iptables関連に絞り込むことができます。アップグレードする前は、

modprobe nf_conntract_ftp ports=21332

と追加

iptables -A THRU -p tcp --dport 21332 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

今..それはもう助けにはなりません。カウンターで確認できるように、INPUTルールがトリガーされていますが、ディレクトリリストが最後に実行されます。パッシブポート範囲を設定することは私がしたい最後のことです、私は開いているポートが嫌いです。

また、次のルールを追加して、ヘルパーmodでトリックを試しましたbefore 21332の実際のルール

iptables -A THRU -p tcp -i eth0 --dport 21332 -m state --state NEW -m helper --helper ftp-21332 -j ACCEPT

しかし、それは役に立たず、カウンターに従ってトリガーされていません。次の行のルール(ヘルパーなし)がトリガーされています

edit1:接続を試みた後のログエントリは次のとおりです。

Jun 30 15:35:16 loki pure-ftpd: ([email protected]) [INFO] New connection from 84.187.121.71
Jun 30 15:35:16 loki pure-ftpd: ([email protected]) [INFO] crackyftp1 is now logged in
Jun 30 15:35:17 loki kernel: [168039.126400] drop_packet_IN=eth0 OUT= MAC=40:61:86:97:dd:15:00:26:88:75:ec:1d:08:00 SRC=84.187.121.71 DST=88.198.xx.19 LEN=52 TOS=0x00 PREC=0x00 TTL=121 ID=3663 DF PROTO=TCP SPT=42148 DPT=31437 WINDOW=8192 RES=0x00 SYN URGP=0

だからそれはISドロップされます..(パッシブFTPハァッ^^)

ここにいくつかの情報:

# iptables --version
iptables v1.4.14

# lsmod |grep nf_
nf_nat_ftp             12460  0
nf_nat                 18242  1 nf_nat_ftp
nf_conntrack_ftp       12605  1 nf_nat_ftp
nf_conntrack_ipv4      14078  32 nf_nat
nf_defrag_ipv4         12483  1 nf_conntrack_ipv4
nf_conntrack           52720  7     xt_state,nf_conntrack_ipv4,xt_conntrack,nf_conntrack_ftp,nf_nat,nf_nat_ftp,xt_helper

# uname -a
Linux loki 3.2.0-4-AMD64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

# iptables-save
# Generated by iptables-save v1.4.14 on Sun Jun 30 03:54:28 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:BLACKLIST - [0:0]
:LOGDROP - [0:0]
:SPAM - [0:0]
:THRU - [0:0]
:WEB - [0:0]
:fail2ban-dovecot-pop3imap - [0:0]
:fail2ban-pureftpd - [0:0]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 110,995,143,993 -j fail2ban-dovecot-pop3imap
-A INPUT -p tcp -m multiport --dports 21,21332 -j fail2ban-pureftpd
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 110,995,143,993 -j fail2ban-dovecot-pop3imap
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j BLACKLIST
-A INPUT -j THRU
-A INPUT -j LOGDROP
-A OUTPUT -j ACCEPT
-A OUTPUT -s 93.223.38.223/32 -j ACCEPT
-A BLACKLIST -s 38.113.165.0/24 -j LOGDROP
-A BLACKLIST -s 202.177.216.0/24 -j LOGDROP
-A BLACKLIST -s 130.117.190.0/24 -j LOGDROP
-A BLACKLIST -s 117.79.92.0/24 -j LOGDROP
-A BLACKLIST -s 72.47.228.0/24 -j LOGDROP
-A BLACKLIST -s 195.200.70.0/24 -j LOGDROP
-A BLACKLIST -s 195.200.71.0/24 -j LOGDROP
-A LOGDROP -m limit --limit 5/sec -j LOG --log-prefix drop_packet_ --log-level 7
-A LOGDROP -p tcp -m tcp --dport 25 -m limit --limit 2/sec -j LOG --log-prefix spam_blacklist --log-level 7
-A LOGDROP -p tcp -m tcp --dport 80 -m limit --limit 2/sec -j LOG --log-prefix web_blacklist --log-level 7
-A LOGDROP -p tcp -m tcp --dport 22 -m limit --limit 2/sec -j LOG --log-prefix ssh_blacklist --log-level 7
-A LOGDROP -j REJECT --reject-with icmp-Host-prohibited
-A THRU -p icmp -m limit --limit 1/sec -m icmp --icmp-type 8 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A THRU -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 143 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 465 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 585 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 993 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 995 -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 2008 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 10011 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 21332 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A THRU -i eth0 -p tcp -m tcp --dport 30033 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

-A fail2ban-dovecot-pop3imap -j RETURN
-A fail2ban-dovecot-pop3imap -j RETURN
-A fail2ban-pureftpd -j RETURN
-A fail2ban-pureftpd -j RETURN
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh -j RETURN
COMMIT
# Completed on Sun Jun 30 03:54:28 2013

だから、先ほど言ったように、IPを追加して通過するときに接続に問題はありませんが、私以外の誰も接続できなくなるので、それは解決策ではありません〜誰かが問題が何であるかを知ったら、助けてください!ありがとう

ひび割れ

編集:

わかりました、私はパッシブポート範囲を使用/追加することになりました

-A THRU -i eth0 -p tcp -m tcp --dport 21333:21343 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

この範囲をpure-ftpd構成で設定します。

echo "21333 21343" > /etc/pure-ftpd/conf/PassivePortRange

Nf_conntrack_ftpモジュールまたはiptablesに変更があったか、以前のスクイーズのように接続が追跡されなくなったというバグがあるのは悲しいことです。

3
Cracky

わかりました、回避策としてパッシブポート範囲を使用/追加することになりました

-A THRU -i eth0 -p tcp -m tcp --dport 21333:21343 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

そして、pure-ftpd構成でこの範囲を設定します。

echo "21333 21343" > /etc/pure-ftpd/conf/PassivePortRange

Nf_conntrack_ftpモジュールまたはiptablesに変更があったか、接続が追跡されなくなったというバグがあるのは悲しいことです以前squeezeで機能していたように

1
Cracky

上記を読んで、ポート21332の何がそんなに魔法なのかわかりません。FTPサーバーによって選択されたパッシブポートがたまたま21332であれば、あなたが書いたものはすべてうまくいくはずです。しかし、これを保証するものは何もありません。最近のアップグレードで、古いftpd構成ファイル(このポートの選択を保証するエントリが含まれている)が脇に移動した可能性はありますか?

上記で投稿したiptablesログでは、dportは31437であることに注意してください。ftpdが必要と思われるポート21332を選択しているとは確信できません。

0
MadHatter