|
[+] Iptables przekierowanie portu na AP
gladi - 23-03-2009 11:14
#!/bin/bash
# NAZWY SIECIOWEK export LAN=eth0 export WAN=eth1
# uruchomienie przekazywania pakietĂłw echo 1 > /proc/sys/net/ipv4/ip_forward #kasowanie starych reguĂ
‚ iptables -F iptables -X iptables -t nat -X iptables -t nat -F # polityka dziaĂ
‚ania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # umoĂ
ÂĄliwienie laczenia sie z zewnetrzym adresem na usluge ssh iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT iptables -A INPUT -p TCP --dport ssh -i ${LAN} -j ACCEPT
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
# to jest ok: iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
PRZEKIEROWANIE PORTÓW iptables -t nat -A PREROUTING -i eth1 -p TCP -d 212.232.11.13 --dport 80 -j DNAT --to 192.168.0.207:80
Mam ruter na Debianie. Regułki firewalla jak powyżej w jednym pliku. Chcę teraz przekierować port, żeby dostać się do Access Pointa z Internetu. Przeszukałem już kilka for i próbowałem różnych konfiguracji przekierowania portów ale żadna nie działa. Może mam jakąś regułkę źle wpisaną? Bardzo proszę o pomoc.
grzesiek - 23-03-2009 18:47
gladi,
może dla tego, że chcesz przekierować ruch, NA KTÓRY NIE ZEZWALASZ ;-)
Ister - 23-03-2009 23:46
1. Dropujesz INPUT na wszystkim oprócz ssh. Pakiet zostaje upuszczony zanim dojdzie do PREROUTING. 2. Czy na AP zezwoliłeś na wejście paczek z sieci zewnętrznej? Jeśli jest to ustawienie, to domyślnie jest wyłączone.
Powodzenia.
gladi - 24-03-2009 00:36
Dodałem linijkę:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
i dalej: iptables -t nat -A PREROUTING -i eth1 -p TCP -d 212.232.11.13 --dport 80 -j DNAT --to 192.168.0.207:80
Port już jest otwarty. Niestety przekierowanie dalej nie działa. Patrzyłem za tymi opcjami w AP ale tam nic takiego nie ma. Macie może jakieś sugestie?
[Dodano: 2009-03-24, 01:06] Znalazłem rozwiązanie!
Należy wpisać sieciówkę od strony LAN we wpisie:
iptables -t nat -A PREROUTING -i eth1 -p TCP -d 212.232.11.13 --dport 80 -j DNAT --to 192.168.0.207:80
gdzie eth1 = LAN.
Dziękuję Wam za wskazówki, które pomogły znaleźć błąd :)
zet120 - 02-04-2009 11:42
A można prosić o dokładny kod linijki, która u Ciebie działa. Od pewnego czasu zmagam się z podobnym problemem i coś bez skutku.
Mój kod Iptables, którym staram się przekierować port aby dostać się z internetu do drugiego komputera to:
iptables -A INPUT -p tcp --dport 800 -j ACCEPT iptables -A PREROUTING -t nat -p tcp -i eth0 -d 192.168.1.1 --dport 800 -j DNAT --to 192.168.1.2:5900
Przekierowanie działa tylko wówczas gdy zmienię w Iptables:
iptables -P FORWARD DROP
na:
iptables -P FORWARD ACCEPT
eth0 - to LAN
Ister - 02-04-2009 12:42
Olśnienie - czy nie musisz czasem ustawić też FORWARD na odpowiednim porcie? Tylko - na którym? Bo wcale nie jestem pewien, czy będzie to 800, czy 5900. Spróbuj oba i zobacz co się stanie.
zet120 - 02-04-2009 14:46
Konstrukcję FORWARD zaleca również Wiki:
iptables -I FORWARD -p tcp -d 83.69.40.1 --dport 4662 -j ACCEPT iptables -t nat -I PREROUTING -p tcp -i eth0 -d 0/0 --dport 4662 -j DNAT --to 10.105.2.4
Ale po dostosowaniu do moich warunków:
iptables -I FORWARD -p tcp --dport 800 -j ACCEPT iptables -t nat -I PREROUTING -p tcp -i eth1 -d 0/0 --dport 800 -j DNAT --to 192.168.1.2:800
niestety nie działa.
Próbowałem z portami 800 i 5900.
grzesiek - 02-04-2009 18:08
zet120, Z tego co przedstawiłeś to... Ale stawiam na to, że problem jest w tym, że ruch musi się odbywać w obu kierunkach.
zet120 - 02-04-2009 19:24
Zatem jak powinna wyglądać struktura pliku /etc/init.d/firewall? Mój wygląda tak: #!/bin/sh # forwardowanie echo 1 > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F
# polityka dzialania iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# nawiazane polaczenia iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
# udostępnianie internetu iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
# ruch w sieci lokalnej iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
# Przekierowanie portu No właśnie co tutaj być powinno??
# Reszta iptables -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 5900 -j ACCEPT iptables -A INPUT -s 0/0 -p udp --dport 5900 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 51415 -j ACCEPT
eth1 - Internet eth0 - LAN
grzesiek - 02-04-2009 20:40
Spróbuj tak: ... # udostępnianie internetu iptables -A FORWARD -i eth1 -o eth0 -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -d 0/0 -s 192.168.1.0/255.255.255.0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j MASQUERADE ... # Przekierowanie portu iptables -A INPUT -p tcp -i eth1 --dport 800 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 800 -j DNAT --to 192.168.1.2:800 ...
zet120 - 03-04-2009 09:55
Jestem w pracy, testuję Twoją propozycję i DZIAÂŁA. Pięknie dziękuję za pomoc.
P.S. Ostatecznie plik /etc/init.d/firewall wygląda tak: #!/bin/sh # forwardowanie echo 1 > /proc/sys/net/ipv4/ip_forward
# czyszczenie iptables -F iptables -X iptables -t nat -X iptables -t nat -F
# polityka dzialania iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# nawiazane polaczenia iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
# udostępnianie internetu iptables -A FORWARD -i eth1 -o eth0 -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -d 0/0 -s 192.168.1.0/255.255.255.0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j MASQUERADE
# ruch w sieci lokalnej iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
# przekierowanie portu iptables -A INPUT -p tcp -i eth1 --dport 800 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 800 -j DNAT --to 192.168.1.2:5900
# reszta iptables -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -s 0/0 -p tcp --dport 5900 -j ACCEPT
gladi - 21-04-2009 22:01
zet120 - eth0 to jest LAN czy NET?
fnmirk - 21-04-2009 22:22
gladi, jak należy rozumieć Twoje pytanie?
Co rozumiesz przez słowo ,,net''? Twoje pytanie jest niezbyt precyzyjne.
gladi - 21-04-2009 23:13
LAN - karta sieciowa od strony sieci LAN NET (WAN) - karta sieciowa od strony internetu (z adresem publicznym)
zet120 - 24-04-2009 11:01
Oczywiście: Net=Internet=eth1 Lan=sieć wewnętrzna=eth0
gladi - 04-05-2009 00:01
No w sumie niby ładnie działa wcześniej wymieniony kod, ale jest jeden problem. Udało mi się go rozwiązać. Tak przy okazji napiszę może komuś się to przyda. Przeskanowałem porty nmapem, co wyrzuciło mi:
PORT STATE SERVICE 80/tcp open http 95/tcp filtered supdup 114/tcp filtered audionews 173/tcp filtered xyplex-mux 433/tcp filtered nnsp 483/tcp filtered ulpnet 487/tcp filtered saft 554/tcp open rtsp 581/tcp filtered bdp 1009/tcp filtered unknown 1367/tcp filtered dcs 1411/tcp filtered af 1492/tcp filtered stone-design-1 1498/tcp filtered watcom-sql 3269/tcp filtered globalcatLDAPssl 5145/tcp filtered rmonitor_secure 6588/tcp filtered analogx 7634/tcp filtered hddtemp
Do tego dodałem linijkę, a raczej dwie:
iptables -A INPUT -p tcp -i eth1 --dport 554 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 554 -j DNAT --to 192.168.0.207:554
I wszystko śmiga. Poza jedną rzeczą. Czy z sieci lokalnej można jakoś dostać się do tej kamerki po zewnętrzne IP? Bo normalnie to mi odrzuca.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|