Здравейте!
На скоро се зарибих с iptables. Имам рутер Edimax EW-7209APg, на който качих Wive-v0.6.1-preX-20090115 (руски линукс вариант на фърмуер'а). С това нещо имам простотата и пълната функционалност на стандартен линкс (извън темата: мисля да пусна 2 ръководства за Wive и основи на iptables). Всичко работи добре, но искам да направя следното:
eth1=WAN (94.15X.XXX.XX)
eth0=LAN (192.168.2.0/24)В ЛАН мрежата имам хост с IP 192.168.2.110, на който работи apache2 сървър. Пренасочих външните заявки към този хост, но искам и заявките, които идват от 192.168.2.0/24 към 94.15X.XXX.XX на порт 80, да се препратят към 192.168.2.110:80. Нямам пусната защитна стена.
[Wive@/]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[Wive@/]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22,80,3000,10000 to:192.168.2.110
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015 to:192.168.2.110:27015
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.2.0/24 0.0.0.0/0 to:94.15X.XXX.XX
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Пробвах следните команди, но няма ефект:
GeSHi (Bash):
[Wive@/]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 94.15X.XXX.XX -p tcp --dport 80 -j SNAT --to 192.168.2.110
[Wive@/]# iptables -t nat -A PREROUTING -s 192.168.2.0/24 -d 94.15X.XXX.XX -p tcp --dport 80 -j DNAT --to 192.168.2.110:80
[Wive@/]# iptables -t nat -A PREROUTING -i eth0 -d 94.15X.XXX.XX -p tcp --dport 80 -j DNAT --to 192.168.2.110
Мисля, че не ги въвеждам на правилната позиция или това, което се опитвам да направя, става по различен начин.
GeSHi (Bash):
[Wive@/]# cat /etc/network/iptables
#!/bin/sh
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to 94.15X.XXX.XX
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m multiport --dport 22,80,3000,10000 -j DNAT --to 192.168.2.110
/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp --dport 27015 -j DNAT --to 192.168.2.110:27015
Благодаря, за вниманието!
GeSHi (Bash):
iptables -t nat -A PREROUTING -i eth0 -d 94.15X.XXX.XX -p tcp --dport 80 -j DNAT --to 192.168.2.110
Писал си го и би трябвало да работи ?!?
Извинявам се, пропуснал съм нещо важно.
ETH0 и WLAN0 са в bridge режим.[Wive@/]# ifconfig
br0 Link encap:Ethernet HWaddr 00:00:6C:57:69:76
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59750 errors:0 dropped:0 overruns:0 frame:0
TX packets:43299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17038508 (16.2 MiB) TX bytes:17108799 (16.3 MiB)
eth0 Link encap:Ethernet HWaddr 00:00:6C:57:69:76
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59761 errors:0 dropped:0 overruns:0 frame:0
TX packets:43299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17039014 (16.2 MiB) TX bytes:17108799 (16.3 MiB)
Interrupt:4
eth1 Link encap:Ethernet HWaddr 00:19:DB:XX:XX:XX
inet addr:94.15X.XXX.XX Bcast:94.155.51.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1175464 errors:0 dropped:0 overruns:0 frame:0
TX packets:50667 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:200504248 (191.2 MiB) TX bytes:17156436 (16.3 MiB)
Interrupt:5
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:81 errors:0 dropped:0 overruns:0 frame:0
TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12927 (12.6 KiB) TX bytes:12927 (12.6 KiB)
wlan0 Link encap:Ethernet HWaddr 00:00:6C:57:69:76
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:200
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:2
Всичко изглежда точно, но
не се получава.
[Wive@/]# iptables -t nat -A PREROUTING -i br0 -d 94.15X.XXX.XX -p tcp --dport 80 -j DNAT --to 192.168.2.110
[Wive@/]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere multiport dports ssh,http,3000 to:192.168.2.110
DNAT tcp -- anywhere anywhere tcp dpts:27010:27035 to:192.168.2.110
DNAT udp -- anywhere anywhere udp dpts:27010:27035 to:192.168.2.110
DNAT tcp -- anywhere 94.15X.XXX.XX tcp dpt:http to:192.168.2.110
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.2.0/24 anywhere to:94.15X.XXX.XX
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
В такива случаи дебъгвам с -LOG target ... Просто виж къде ти се губят пакетите