Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Dzień dobry,
jak w temacie, który skutkuje odrzuceniem owego połączenia (chodź nie zawsze) może ktoś mnie naprowadzi gdzie zrobiłem błąd.. Oto listing moich prostych regułek:
#!/bin/sh IPT=/sbin/iptables MOD=/sbin/modprobe # Loading modules /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe xt_multiport /bin/echo "1" > /proc/sys/net/ipv4/tcp_syncookies /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians /bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter /bin/echo "1" > /proc/sys/net/ipv4/tcp_timestamps # Cleaning $IPT -F $IPT -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X # Setting default filter policy $IPT -P INPUT DROP $IPT -P OUTPUT ACCEPT $IPT -P FORWARD DROP # loopback rules $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # ICMP (ping, traceroute) $IPT -A INPUT -p icmp -i eth0 --icmp-type any -j ACCEPT # Allow FTP connections @ port 21 $IPT -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT $IPT -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT # Allow Active FTP Connections $IPT -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT # Allow Passive FTP Connections $IPT -A INPUT -p tcp --sport 1024: --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT $IPT -A OUTPUT -p tcp --sport 1024: --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT # ssh connection $IPT -A INPUT -p tcp -i eth0 --dport 22 -s 192.168.1.0/24 -j ACCEPT $IPT -A INPUT -p udp -i eth0 --dport 22 -s 192.168.1.0/24 -j ACCEPT # http,https connection $IPT -A INPUT -p tcp -i eth0 -m multiport --dport 80,443 -j ACCEPT $IPT -A INPUT -p udp -i eth0 -m multiport --dport 80,443 -j ACCEPT ### log and drop everything else $IPT -A INPUT -j LOG $IPT -A FORWARD -j LOG $IPT -A INPUT -j DROP
Output ze FilleZilli gdzie widać, że połączenie jest nawiązane:
Status: Łączenie z 192.168.1.18:21... Status: Połączenie nawiązanie, oczekiwanie na wiadomość powitalną... Błąd: Przekroczony czas oczekiwania na połączenie Błąd: Nie można połączyć się z serwerem
pozdrawiam
devu.
i log /var/log/message
[...] Jul 27 10:04:28 host kernel: [ 4951.347769] IN=eth0 OUT= MAC=00:0d:56:c7:8a:4d:00:24:73:de:9a:c1:08:00 SRC=xxx.xxx.xxx.xxx DST=192.168.1.18 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=20222 DF PROTO=TCP SPT=40244 DPT=21 WINDOW=65535 RES=0x00 SYN URGP=0
Widać, że pakiety z flagą SYN nie przechodzą dlatego połączenie nie jest możliwe.. proszę Was bardzo o sugestię, hotlink gdzie mógłbym ugruntować wiedzę jeśli błądzę..
Ostatnio edytowany przez devu (2010-07-27 10:14:46)
Offline
a jak wyłączysz iptables ?? Tak samo działa ?
Offline
@redelek:
Tak, jeśli wyłączę iptables działa poprawnie.
Wydaje mi się że może mieć to związek właśnie z pakietami rozpoczynającymi połączenie ( SYN ) tak ja mówi to log. Aczkolwiek nie potrafię tego ugryźć .. eh
Offline
ja mam takie moduły załadowane
/sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp
Zobacz z takimi modułami te 2 ostatnie są ważne
Offline
ip_nat_ftp/iptable_nat
z tego co czytałem powyższe opcje odnoszą się do połączeń realizowanych przez klientów wewnętrznych za natem chcących połączyć się z serwerami zewnętrznymi.
Oczywiście problemu to nie rozwiązuje..
Offline
Masz źle zrobione reguły dla FTP
Po co dodajesz OUTPUN ? interesuje Cię INPUT przychodzące tylko.
$IPT -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT $IPT -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
Nowych polączeń nie przyjmuje tylko utrzymuje nawiązane ESTABILISHED w łańcuchu INPUT.
Dodaj normalne wpisy a potem kombinuj
Ogólnie dla wszystkich polączeń już nawiązanych
$F -A INPUT -p ALL -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# FTP PASSIV +DATA
$F -A INPUT -p TCP -s 0/0 --source-port 20 -j ACCEPT #FTP control $F -A INPUT -p TCP -s 0/0 --destination-port 21 -j ACCEPT # Passive FTP $F -A INPUT -p TCP -s 0/0 --destination-port 62000:64000 -j ACCEPT
U mnie to na VSFTPD działa aż miło .
Ostatnio edytowany przez redelek (2010-07-27 12:19:16)
Offline
@redelek
Przekombinowałem po prostu. OUTPUT'a pojawił się ze względu na zamiar filtrowania również ruchu wychodzącego. Dla testów jednak ustawiłem wszystkie połączania wychodzące na ACCEPT.
Reasumując Twoja podpowiedź okazała się skuteczna, za co Ci bardzo dziękuje..
Ostatnio edytowany przez devu (2010-07-28 10:12:56)
Offline
devu napisał(-a):
Zastanawiam się jednak czy nie lepiej podawać zamiast '-s 0/0' dokładny adres IP co Ty/Wy na to?
co masz na mysli dokladny adres ip?
taki zapis 0/0 oznacza wsio. w ipv4 rowniez mozna stosowac notacje tak jak to sie robi w ipv4. ten zapis jest rownoznaczny z 0.0.0.0/0 :)
z drugiej strony w tym przypadku uzycie przelacznika -s 0/0 jest tylko "informacyjne" i powodujace kolejny test :) nie zapisanie tego przelaczika w niczym nie przeszkodzi regolce a zmniejszy o 1 test :)
Offline
Strony: 1