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:

Kod: Zaznacz cały

iptables -P FORWARD DROP
na:

Kod: Zaznacz cały

iptables -P FORWARD ACCEPT
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 
...