Strona 1 z 1

iptables nie przekierowuje portów

: 07 stycznia 2009, 21:42
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ę.

: 07 stycznia 2009, 21:47
autor: grzesiek
Nie analizowałem ale tak na oko to forward nie jest włączony.

: 08 stycznia 2009, 09:12
autor: anorex
w pliku /etc/sysctl.conf

net.ipv4.conf.deflaut.forwarding ma wartosc 1

: 08 stycznia 2009, 09:23
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