Mój obecny scenariusz obejmuje dopuszczanie różnych reguł, ale potrzebuję ftp, aby był dostępny z dowolnego miejsca. System operacyjny to Cent 5 i używam VSFTPD. Nie mogę uzyskać poprawnej składni. Wszystkie pozostałe reguły działają poprawnie.
## Filter all previous rules
*filter
## Loopback address
-A INPUT -i lo -j ACCEPT
## Established inbound rule
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## Management ports
-A INPUT -s x.x.x.x/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
## Allow NRPE port (Nagios)
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
##Allow FTP
## Default rules
:INPUT DROP [0:0]
:FORWARD DROP
:OUTPUT ACCEPT [0:0]
COMMIT
Oto zasady, które wypróbowałem.
##Allow FTP
-A INPUT --dport 21 any -j ACCEPT
-A INPUT --dport 20 any -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
Odpowiedzi:
Oto dokument, do którego odsyłam ludzi, aby mogli przestrzegać protokołu FTP: http://slacksite.com/other/ftp.html
Nie masz nic na temat: łańcucha WYJŚĆ w swoim poście, więc też to tu zamieszczę. Jeśli Twój łańcuch OUTPUT jest domyślnie upuszczany, to ma to znaczenie.
Dodaj te reguły do konfiguracji iptables:
Aby obsługiwać tryb pasywny FTP, musisz załadować moduł ip_conntrack_ftp podczas rozruchu. Odkomentuj i zmodyfikuj wiersz IPTABLES_MODULES w pliku / etc / sysconfig / iptables-config, aby przeczytać:
Zapisz konfigurację iptables i zrestartuj iptables.
Aby całkowicie wykluczyć VSFTPD jako problem, zatrzymaj VSFTPD, sprawdź, czy nie nasłuchuje na porcie 21 z „netstat -a”, a następnie uruchom:
To zacznie nasłuchiwać na porcie 21 przez netcat i wyśle echo do twojej powłoki. Z innego hosta, TELNET do portu 21 serwera i sprawdź, czy otrzymujesz połączenie TCP i czy widzisz dane wyjściowe w powłoce po wpisaniu połączenia TELNET.
Na koniec uruchom kopię zapasową VSFTPD, sprawdź, czy nasłuchuje na porcie 21, i spróbuj połączyć się ponownie. Jeśli połączenie z netcat działało, twoje reguły iptables są w porządku. Jeśli połączenie z VSFTPD nie działa po wykonaniu netcat, oznacza to, że coś jest nie tak z konfiguracją VSFTPD.
źródło
Wypróbuj tę zasadę. Uwaga:
$EXTIP
to twój zewnętrzny adres IP dla serwera FTP.źródło
W moim przypadku brakowało mi modułu jądra ip_conntrack_ftp. Musi zostać załadowany. Możesz więc spróbować:
Dodaj także ip_conntrack_ftp do / etc / modules, aby działał po ponownym uruchomieniu
źródło