Strona 1 z 2
[+] Iptables przekierowanie portu na AP
: 23 marca 2009, 11:14
autor: gladi
Kod: Zaznacz cały
#!/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.
: 23 marca 2009, 18:47
autor: grzesiek
gladi,
...próbowałem różnych konfiguracji przekierowania portów, ale żadna nie działa
może dla tego, że chcesz przekierować ruch, NA KTÓRY NIE ZEZWALASZ ;-)
: 23 marca 2009, 23:46
autor: Ister
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.
: 24 marca 2009, 00:36
autor: gladi
Dodałem linijkę:
Kod: Zaznacz cały
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
i dalej:
Kod: Zaznacz cały
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:
Kod: Zaznacz cały
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
: 02 kwietnia 2009, 11:42
autor: zet120
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:
Kod: Zaznacz cały
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:
na:
eth0 - to LAN
: 02 kwietnia 2009, 12:42
autor: Ister
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.
: 02 kwietnia 2009, 14:46
autor: zet120
Konstrukcję
FORWARD zaleca również Wiki:
Kod: Zaznacz cały
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:
Kod: Zaznacz cały
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.
: 02 kwietnia 2009, 18:08
autor: grzesiek
zet120, Z tego co przedstawiłeś to... Ale stawiam na to, że problem jest w tym, że ruch musi się odbywać w obu kierunkach.
: 02 kwietnia 2009, 19:24
autor: zet120
Zatem jak powinna wyglądać struktura pliku
/etc/init.d/firewall?
Mój wygląda tak:
Kod: Zaznacz cały
#!/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
: 02 kwietnia 2009, 20:40
autor: grzesiek
Spróbuj tak:
Kod: Zaznacz cały
...
# 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
...