есть маленький linux роутер. На нем использую iptablesна провайдера смотит интерфейс eth2 сеть 192.168.1.0/30
В локалке интерфейс eth3 сеть 10.1.1.0/26В локалке есть компьютер с открытым портами 4662/tcp 4772/udp
Пытаюсь проброситиь порт (для начала tcp) вот так:
/usr/sbin/iptables -N EDON
/usr/sbin/iptables -A EDON -p tcp --source eth2 -m state --state NEW,RELATED,ESTABLISHED --destination-port 4662 --dst 10.1.1.2 -j ACCEPT
/usr/sbin/iptables -t nat -N EDON
/usr/sbin/iptables -t nat -A EDON -i eth2 -p tcp --dport 4662 -j DNAT --to-destination 10.1.1.2:4662
/usr/sbin/iptables -t nat -A PREROUTING -j EDON
/usr/sbin/iptables -I FORWARD -j EDONНо все равно при коннекте получаю lowid.
Хотя вижу, что nat правило срабатывает:
root@andrew-home:/home/sam# iptables -L -v -t nat | grep 4662
49 2592 DNAT tcp -- eth2 any anywhere anywhere tcp dpt:4662 to:10.1.1.2:4662
root@andrew-home:/home/sam#а цепочка EDON - нет.
root@andrew-home:/home/sam# iptables -L -v | grep 4662
0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:4662
root@andrew-home:/home/sam#Подскажите, где ошибка?
Спасибо.
>есть маленький linux роутер. На нем использую iptables
>
>на провайдера смотит интерфейс eth2 сеть 192.168.1.0/30
>В локалке интерфейс eth3 сеть 10.1.1.0/26
>
>В локалке есть компьютер с открытым портами 4662/tcp 4772/udp
>
>Пытаюсь проброситиь порт (для начала tcp) вот так:Попробуй так:
REMOTE_IP="10.1.1.2"
REMOTE_PORT="4662"
IN_IP="192.168.1.1"
IN_IFACE="eth2"iptables -A INPUT -i ${IN_IFACE} -p tcp --dport ${REMOTE_PORT} -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d $IN_IP --dport ${REMOTE_PORT} -j DNAT --to-destination ${REMOTE_IP}:${REMOTE_PORT}
iptables -A FORWARD -s ${REMOTE_IP} -j ACCEPT
iptables -A FORWARD -d ${REMOTE_IP} --dport ${REMOTE_PORT} -j ACCEPT
>>есть маленький linux роутер. На нем использую iptables
>>
>>на провайдера смотит интерфейс eth2 сеть 192.168.1.0/30
>>В локалке интерфейс eth3 сеть 10.1.1.0/26
>>
>>В локалке есть компьютер с открытым портами 4662/tcp 4772/udp
>>
>>Пытаюсь проброситиь порт (для начала tcp) вот так:
>
>Попробуй так:На firehol -- вот так примерно:
# cat edonk-forward
version 5OUTIF=eth2
OUTA=192.168.1.2LANA=10.1.1.1
LANIF=eth3LANSRV=10.1.1.2
#-server_eserver_ports="tcp/4661 udp/4661 udp/4665"
#-client_eserver_ports="any"
server_eserver_ports="tcp/4662 udp/4672"
client_eserver_ports="any"dnat to "$LANSRV" inface "$OUTIF" proto tcp dport "4662"
dnat to "$LANSRV" inface "$OUTIF" proto udp dport "4672"router prtfwd dst "$LANSRV"
server "eserver" accept
# firehol ./edonk-forward debug |./explain-sorter-N out_prtfwd_eserver_s1
-A out_prtfwd_eserver_s1 -p tcp --sport 4662 -m state --state ESTABLISHED -j ACCEPT
-A out_prtfwd_eserver_s1 -p udp --sport 4672 -m state --state ESTABLISHED -j ACCEPT
-N in_prtfwd_eserver_s1
-A in_prtfwd_eserver_s1 -p tcp --dport 4662 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A in_prtfwd_eserver_s1 -p udp --dport 4672 -m state --state NEW\,ESTABLISHED -j ACCEPT
-N out_prtfwd
-A out_prtfwd -j out_prtfwd_eserver_s1
-A out_prtfwd -m state --state RELATED -j ACCEPT
-N in_prtfwd
-A in_prtfwd -j in_prtfwd_eserver_s1
-A in_prtfwd -m state --state RELATED -j ACCEPT
-A OUTPUT -m state --state RELATED -j ACCEPT
-A OUTPUT -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix=\'OUT-unknown:\'
-A OUTPUT -j DROP
-A INPUT -m state --state RELATED -j ACCEPT
-A INPUT -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix=\'IN-unknown:\'
-A INPUT -j DROP
-A FORWARD -d 10.1.1.2 -j in_prtfwd
-A FORWARD -s 10.1.1.2 -j out_prtfwd
-A FORWARD -m state --state RELATED -j ACCEPT
-A FORWARD -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix=\'PASS-unknown:\'
-A FORWARD -j DROP
-t nat -N nat.1
-t nat -A PREROUTING -i eth2 -p tcp --dport 4662 -j nat.1
-t nat -A nat.1 -p tcp -j DNAT --to-destination 10.1.1.2
-t nat -N nat.2
-t nat -A PREROUTING -i eth2 -p udp --dport 4672 -j nat.2
-t nat -A nat.2 -p udp -j DNAT --to-destination 10.1.1.2
# _...по следам 1port-forward http://www.opennet.me/openforum/vsluhforumID10/3736.html#3 .
Да! Там ещё где-нибудь надо -- /sbin/sysctl -w net.ipv4.ip_forward=1 -- включать.
+ про port farwarding
http://www.opennet.me/openforum/vsluhforumID13/413.html#3+ #2, про firehol
http://www.opennet.me/openforum/vsluhforumID10/3764.html#2
http://www.opennet.me/openforum/vsluhforumID1/81486.html#4
http://www.opennet.me/openforum/vsluhforumID1/81413.html#7и пр., и пр. ...