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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-11-19 09:36:33

  Preibx - Użytkownik

Preibx
Użytkownik
Zarejestrowany: 2006-03-12

SSH w LAN widziany z zewnątrz.

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

 

#2  2009-11-19 09:42:11

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: SSH w LAN widziany z zewnątrz.

iptables -t nat -I PREROUTING -p TCP --dport _port_na_routerze -j DNAT --to ADRES_W_LANIE:PORT_SSH

Powinno IMO działać


Pozdrawiam, Tomek

Offline

 

#3  2009-11-19 23:56:22

  Preibx - Użytkownik

Preibx
Użytkownik
Zarejestrowany: 2006-03-12

Re: SSH w LAN widziany z zewnątrz.

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

 

#4  2009-11-20 00:09:19

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: SSH w LAN widziany z zewnątrz.

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


Pozdrawiam, Tomek

Offline

 

#5  2009-11-20 00:26:59

  Preibx - Użytkownik

Preibx
Użytkownik
Zarejestrowany: 2006-03-12

Re: SSH w LAN widziany z zewnątrz.

Czyli radzisz aby reguła wyglądała następująco:

Kod:

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?:

Kod:

iptables -I FORWARD -s 192.168.0.2:44 -j ACCEPT
iptables -I FORWARD -d 192.168.0.2:44 -j ACCEPT

Kod:

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

 

#6  2009-11-20 00:41:59

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: SSH w LAN widziany z zewnątrz.

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)


Pozdrawiam, Tomek

Offline

 

#7  2009-11-27 15:45:29

  Preibx - Użytkownik

Preibx
Użytkownik
Zarejestrowany: 2006-03-12

Re: SSH w LAN widziany z zewnątrz.

Witam.
Niestety porada nie działa. Co może być nie tak. Dla pewności przesyłam cały skrypt iptables:

Kod:

#!/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ę:

Kod:

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

 

#8  2009-11-27 17:20:58

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: SSH w LAN widziany z zewnątrz.

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)


Pozdrawiam, Tomek

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)