[+] Iptables przekierowanie portu na AP

Masz problemy z siecią bądź internetem? Zapytaj tu
gladi
Beginner
Posty: 122
Rejestracja: 06 kwietnia 2007, 19:40
Lokalizacja: Polska ;)

[+] Iptables przekierowanie portu na AP

Post 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.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post 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 ;-)
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post 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.
gladi
Beginner
Posty: 122
Rejestracja: 06 kwietnia 2007, 19:40
Lokalizacja: Polska ;)

Post 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 :)
zet120
Posty: 60
Rejestracja: 04 stycznia 2009, 13:17

Post 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
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post 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.
zet120
Posty: 60
Rejestracja: 04 stycznia 2009, 13:17

Post 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.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post 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.
zet120
Posty: 60
Rejestracja: 04 stycznia 2009, 13:17

Post 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
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post 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 
...
ODPOWIEDZ