iptables nie przekierowuje portów

Masz problemy z siecią bądź internetem? Zapytaj tu
anorex
Posty: 2
Rejestracja: 07 stycznia 2009, 21:11

iptables nie przekierowuje portów

Post autor: anorex »

Witam szanownych grupowiczów

Mam mały problemik z iptables. Przekopałem Google, forum stosując różne regułki np:
http://forum.dug.net.pl/viewtopic.php?pid=85110

i za nic nie chce mi połączyć poprzez VNC lub zdalny pulpit z serwerem wewnątrz.

Oczywiście po sieci lokalnej hula ale gdy chcę się połączyć po zewnętrznym IP to nie działa i sił i pomysłów mi brak.

Krótki opis stanu posiadania:
  • Debian 4 na jadrze 2.6.18-6-686

    eth0 z zewnętrznym IP
    eth1 z wewnętrznym IP

    na serwerze pracuje FTP, proxy, sshd ale to zostawiamy
Potrzebuję przekierować zdalny pulpit (port 3389) lub VNC (port 5900).

Po wielu próbach doszedłem do takiego zestawu w IPTABLES:

Kod: Zaznacz cały

iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# === INPUT ==================================

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -j ACCEPT  -m state --state RELATED,ESTABLISHED
iptables -A INPUT -p tcp --dport 2221 -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 2221 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 2221 -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p icmp -j ACCEPT
# === OUTPUT==================================
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# === FORWARD ==================================
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
#iptables -A FORWARD  -i eth0 -o eth1 -p tcp --dport 5900 -j ACCEPT
#iptables -A FORWARD  -i eth0 -o eth1 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -j ACCEPT -m state --state RELATED,ESTABLISHED
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.0.0/24 -j ACCEPT
# === POSTROUTING ==================================
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# === PREROUTING ==================================
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5900 -j DNAT --to 192.168.0.3:5900
iptables -t nat -A PREROUTING -p tcp --dport 5900 -j DNAT --to 192.168.0.3
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 
# === moduly ==================================
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_irc
Czy można prosić kogoś o przejrzenie i pomoc?

Dziękuję.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Nie analizowałem ale tak na oko to forward nie jest włączony.
anorex
Posty: 2
Rejestracja: 07 stycznia 2009, 21:11

Post autor: anorex »

w pliku /etc/sysctl.conf

net.ipv4.conf.deflaut.forwarding ma wartosc 1
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

a ja bym tego firewala twojego o 2/3 zmniejszył i tak samo by działał , bo wiele reguł przy pewnych politykach nic nie daje a zaśmieca.
łańcuch maskowania MASQUERADE jest dla zmiennych zewnętrznych ip, dla stałych ma byc SNAT

poza tym ma być

Kod: Zaznacz cały

net.ipv4.ip_forward = 1
a przekierowanie wygląda tak dla stałego ip zewn

Kod: Zaznacz cały

# iptables -t nat -A PREROUTING -i $if_wan -p TCP -d ip_zewnętrzne --dport port_zewnętrzny  -j DNAT --to ip_wewnętrzny :p ort_wewnętrzny

przykład analogiczny

# iptables -t nat -A PREROUTING -i $if_wan -p TCP -d 1.2.3.4 --dport 8000  -j DNAT --to 192.168.1.11:80

ODPOWIEDZ