Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: mystical в Dec 06, 2010, 23:33



Титла: Пак за iptables
Публикувано от: mystical в Dec 06, 2010, 23:33
Здравейте!
На скоро се зарибих с 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):
  1. [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
  2. [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
  3. [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):
  1. [Wive@/]# cat /etc/network/iptables
  2. #!/bin/sh
  3.  
  4. iptables -P INPUT ACCEPT
  5. iptables -P OUTPUT ACCEPT
  6. iptables -P FORWARD ACCEPT
  7.  
  8.  
  9. /sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to 94.15X.XXX.XX
  10. /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m multiport --dport 22,80,3000,10000 -j DNAT --to 192.168.2.110
  11. /sbin/iptables -t nat -A PREROUTING -i eth1 -p udp --dport 27015 -j DNAT --to 192.168.2.110:27015
  12.  

Благодаря, за вниманието!


Титла: Re: Пак за iptables
Публикувано от: VladSun в Dec 10, 2010, 12:44
Код
GeSHi (Bash):
  1. iptables -t nat -A PREROUTING -i eth0 -d 94.15X.XXX.XX -p tcp --dport 80 -j DNAT --to 192.168.2.110
Писал си го и би трябвало да работи ?!?


Титла: Re: Пак за iptables
Публикувано от: mystical в Dec 12, 2010, 00:34
Извинявам се, пропуснал съм нещо важно. 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  


Титла: Re: Пак за iptables
Публикувано от: VladSun в Dec 12, 2010, 01:16
В такива случаи дебъгвам с -LOG target ... Просто виж къде ти се губят пакетите


Титла: Re: Пак за iptables
Публикувано от: mystical в Dec 14, 2010, 20:47
За съжалиние ядрото не е компилирано с ipt_LOG