после обновления с debian squeeze до wheezy у меня возникла проблема с пассивным FTP-соединением. Я мог бы сузить его до связи с iptables, так как я мог подключаться через FTP без проблем после добавления своего IP-адреса в правило ACCEPT iptables. До обновления умел просто делать
modprobe nf_conntract_ftp ports=21332
и добавление
iptables -A THRU -p tcp --dport 21332 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
сейчас .. это больше не помогает. Правило INPUT срабатывает, как я вижу на счетчике, но список каталогов - это последнее, что он делает. Настройка диапазона пассивных портов - это последнее, что я хочу делать, я не люблю открытые порты.
Я также попробовал трюк с вспомогательным модом, добавив следующее правило перед актуальное правило для 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: (?@84.187.121.71) [INFO] New connection from 84.187.121.71
Jun 30 15:35:16 loki pure-ftpd: (?@84.187.121.71) [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
так что он сбрасывается .. (пассивный 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 произошли изменения или есть ошибка, из-за которой соединение больше не отслеживается, как раньше, в squeeze.
хорошо, я закончил с использованием / добавлением диапазона пассивных портов в качестве обходного пути
-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 были изменены или имеют ошибку, из-за которой соединение больше не отслеживается вроде раньше работал в отжиме.
Читая вышесказанное, я не вижу, что такого волшебного в порте 21332. Все, что вы написали, должно работать хорошо при условии, что пассивным портом, выбранным FTP-сервером, является 21332. Однако вы не показываете ничего, что гарантирует это. Возможно ли, что при недавнем обновлении ваш старый файл конфигурации ftpd - с какой-либо записью, гарантирующей этот выбор порта - был перемещен в сторону?
Обратите внимание, что в журнале iptables, который вы опубликовали выше, порт dport равен 31437. Я по-прежнему не убежден, что ftpd выбирает порт 21332, который кажется необходимым.