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/.
Użytkownik

Witam.
Jakie regułki dopisać do iptables na routerze który rozdziela internet na sieć lokalną.
W tej chwili muszę z zewnątrz łączyć się po ssh z routerem a dopiero z routera z serwerem. A chce mieć dostęp bezpośredni.
Z góry dziękuję za pomoc
Offline


Członek DUG
Użytkownik

Witam ponownie.
Chyba jednak czegoś nie rozumiem.
Mam taką sytuację:
Router na Debianie.
Udostępnienie połączenia internetowego (MASQ) - zgodnie z nieocenionym artykułem BiExi.
Router:
eth0 wyjście na świat powiedzmy IP= 213.17.239.50
eth1 wyjście na LAN powiedzmy IP =192.168.0.1
SSH na routerze na porcie powiedzmy 22
Maszyna1 w LAN adres 192.168.0.2
SSH na serwerze na porcie 44
Zgodnie z poradą wpisuję taką regułkę na routerze w pliki BiExi:
iptables -t nat -I PREROUTING -p TCP --dport 22 -j DNAT --to 192.168.0.2:44
I teraz oczekuje że po wbiciu na zewnętrznym komputerze komendy
ssh user@213.17.239.50 -p 44
Połączę się z „maszyną1”.
Coś to nie chce działać.
Proszę o szersze wytłumaczenie.
Z góry dziękuje.
Offline


Członek DUG
Zgodnie z tą regułką co wklepałeś powinieneś się łączyć na
ssh user@213... -p 22,
a serwer ssh stoi na porcie 44 :-) czyli odwrotnie niż oczekujesz.
Przy okazji upewnij się że w łańcuchu FORWARD przepuszczasz ten ruch do/z 192.168.0.2:44
Offline
Użytkownik

Czyli radzisz aby reguła wyglądała następująco:
iptables -t nat -I PREROUTING -p TCP --dport 44 -j DNAT --to 192.168.0.2:22
??
Dopytuje się tak, bo jak zaczęłem wklepywać twoją poradę to całkiem mnie odłączyło od routera.
W skrócie plik mam taki - brakuje mi udostępnia czegoś W stylu?:
iptables -I FORWARD -s 192.168.0.2:44 -j ACCEPT iptables -I FORWARD -d 192.168.0.2:44 -j ACCEPT
ip_zew="" ip_wew="" port_ssh="" # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s $ip_wew/24 -j MASQUERADE iptables -A FORWARD -s $ip_wew/24 -j ACCEPT # zezwolenie na laczenie sie z naszym zewnetrznym ip po ssh zewnetrzne i wewnetrze iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_zew -p tcp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_zew -p tcp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_zew -p udp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_zew -p udp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_wew -p tcp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_wew -p tcp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_wew -p udp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_wew -p udp --dport $port_ssh -j ACCEPT
Offline


Członek DUG
Eh, przepraszam, nie doczytałem że na Twoim serwerze SSH chodzi na 44 porcie
iptables -t nat -I PREROUTING -p TCP --dport 666 -j DNAT --to 192.168.0.2:44
Jeśli na routerze wstukasz taką regułkę, to logując się z zewnątrz na port 666 i Twój zewnętrzny adres IP 213.17.239.50 połączę się z 192.168.0.2:44
Patrząc po Twoich regułkach iptables, to powinno to działać. Masz ustawioną politykę ACCEPT na wszystkich łańcuchach, więc praktycznie wszystkie regułki które coś przepuszczają są w Twoim przypadku zbędne.
Dobranoc :-)
Ostatnio edytowany przez urug (2009-11-20 00:42:46)
Offline
Użytkownik

Witam.
Niestety porada nie działa. Co może być nie tak. Dla pewności przesyłam cały skrypt iptables:
#!/bin/sh ip_zew="" ip_wew="192.168.0.0" port_ssh="" # wlaczenie w kernelu forwardowania /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Ochrona przed atakiem typu Smurf /bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Nie aktceptujemy pakietow "source route" /bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route # Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu /bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # Wlaczamy ochrone przed blednymi komunikatami ICMP error /bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Wlaczenie mechanizmu wykrywania oczywistych falszerstw # (pakiety znajdujace sie tylko tablicy routingu) /bin/echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter /bin/echo 1 > /proc/sys/net/ipv4/tcp_timestamps /bin/echo 1 > /proc/sys/net/ipv4/conf/all/log_martians /bin/echo 10 > /proc/sys/net/ipv4/ipfrag_time #/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max /bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog # zwiekszenie rozmaru tablicy ARP /bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1 /bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2 /bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3 /bin/echo 1 > /proc/sys/net/ipv4/tcp_rfc1337 /bin/echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc /bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses #/bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait #/bin/echo 360 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established /bin/echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout /bin/echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time /bin/echo 0 > /proc/sys/net/ipv4/tcp_window_scaling /bin/echo 0 > /proc/sys/net/ipv4/tcp_sack /bin/echo 20 > /proc/sys/net/ipv4/ipfrag_time /bin/echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog # Blokada przed atakami typu SYN FLOODING /bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Właczenie proxy arp - dzieki temu serwer nie zdycha po kilku #/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter # Zwiekszenie rozmiarutablic routingu /bin/echo "18192" > /proc/sys/net/ipv4/route/max_size # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s $ip_wew/24 -j MASQUERADE iptables -A FORWARD -s $ip_wew/24 -j ACCEPT # zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh zewnetrzne i wewnetrze iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_zew -p tcp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_zew -p tcp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_zew -p udp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_zew -p udp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_wew -p tcp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_wew -p tcp --dport $port_ssh -j ACCEPT iptables -A INPUT -s 0/0 -d $ip_wew -p udp --dport $port_ssh -j ACCEPT iptables -A OUTPUT -s 0/0 -d $ip_wew -p udp --dport $port_ssh -j ACCEPT # puszczamy PING iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # udostepnienie SAMBY w sieci lokalnej iptables -A INPUT -s $ip_wew/24 -p udp --dport 137 -m state --state NEW -j ACCEPT iptables -A INPUT -s $ip_wew/24 -p udp --dport 138 -m state --state NEW -j ACCEPT iptables -A INPUT -s $ip_wew/24 -p tcp --dport 139 -m state --state NEW -j ACCEPT iptables -A INPUT -s $ip_wew/24 -p tcp --dport 445 -m state --state NEW -j ACCEPT # dostep do maszyny lokalnej ip=192.168.0.70 na porcie 6688 iptables -t nat -I PREROUTING -p TCP --dport 6688 -j DNAT --to 192.168.0.70:$port_ssh
Wbijam komendę:
ssh user@ip_zew -p 6688
zwraca mi błąd: connection refused
Oczywiście gdy wbijam wewnątrz sieci to łącze się bez problemu.
Offline


Członek DUG
Prawdę mówiąc to nie wiem. Luknij tcpdumpem na maszynie docelowej czy coś dochodzi, sprawdz też iptables -t nat -L -vn czy counterki się zwiększają
Ostatnio edytowany przez urug (2009-11-27 17:22:19)
Offline