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/.
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
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
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
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
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
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
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
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00058 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.139.239.157' WHERE u.id=1 |
0.00080 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.139.239.157', 1732691466) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732691166 |
0.00069 | SELECT topic_id FROM punbb_posts WHERE id=135063 |
0.00095 | SELECT id FROM punbb_posts WHERE topic_id=15529 ORDER BY posted |
0.00035 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15529 AND t.moved_to IS NULL |
0.00026 | SELECT search_for, replace_with FROM punbb_censoring |
0.00053 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15529 ORDER BY p.id LIMIT 0,25 |
0.00103 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15529 |
Total query time: 0.00576 s |