Назад | Перейти на главную страницу

Обеспечение доступа к хостам между подсетями LAN

У меня на роутере два интерфейса с томатной прошивкой: br0 и vlan4. br0 находится в подсети 192.168.0.0/16, а vlan4 - в подсети 10.0.1.0/24. Поскольку мне не нужны различные сетевые службы на br0, доступные на vlan4, я добавил это правило брандмауэра:

iptables -I INPUT -i vlan4 -j ACCEPT;
iptables -I FORWARD -i vlan4 -o vlan2 -m state --state NEW -j ACCEPT;
iptables -I FORWARD -i br0 -o vlan4 -j DROP;

vlan2 - это мой WAN (доступ в Интернет).

Проблема, которую я хочу решить, заключается в том, что я хочу создать один хост из сети 192.168.0.0/16 (br0), у которого есть ip 192.168.0.50, доступный на vlan4 (10.0.1.0/24). Только этот хост должен быть доступен на vlan4 (а все остальные хосты на br0 должны быть недоступны). Какие правила брандмауэра можно использовать для этого?

Изменить 1:

Выход iptables -nvL FORWARD:

Chain FORWARD (policy DROP 4 packets, 204 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  vlan4  192.168.0.50  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  vlan4  ppp0    0.0.0.0/0            0.0.0.0/0           state NEW 
  229 13483 ACCEPT     all  --  vlan4  vlan2   0.0.0.0/0            0.0.0.0/0           state NEW 
    0     0 DROP       all  --  br0    vlan3   0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  vlan3  ppp0    0.0.0.0/0            0.0.0.0/0           state NEW 
   67  3405 ACCEPT     all  --  vlan3  vlan2   0.0.0.0/0            0.0.0.0/0           state NEW    
    0     0 ACCEPT     all  --  br0    br0     0.0.0.0/0            0.0.0.0/0           
   34  1360 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
  758 40580 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU 
11781 2111K restrict   all  --  *      vlan2   0.0.0.0/0            0.0.0.0/0           
26837   19M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    0     0 wanin      all  --  vlan2  *       0.0.0.0/0            0.0.0.0/0           
  287 15927 wanout     all  --  *      vlan2   0.0.0.0/0            0.0.0.0/0           
  283 15723 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0           
    0     0 upnp       all  --  vlan2  *       0.0.0.0/0            0.0.0.0/0  

Выход iptables -t nat -nvL PREROUTING:

Chain PREROUTING (policy ACCEPT 6887 packets, 526K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  855 83626 WANPREROUTING  all  --  *      *       0.0.0.0/0            222.228.137.210     
    0     0 DROP       all  --  vlan2  *       0.0.0.0/0            192.168.0.0/16      
    0     0 DNAT       udp  --  *      *       192.168.0.0/16      !192.168.0.0/16      udp dpt:53 to:192.168.0.1 

Выход ip route show:

222.228.137.209 dev vlan2  scope link
222.228.137.208/29 dev vlan2  proto kernel  scope link  src 222.228.137.210
10.0.0.0/24 dev vlan3  proto kernel  scope link  src 10.0.0.1
10.0.1.0/24 dev vlan4  proto kernel  scope link  src 10.0.1.1
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.252
192.168.0.0/16 dev br0  proto kernel  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 222.228.137.209 dev vlan2

iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Все, что вам нужно сделать, это добавить

iptables -I FORWARD -s 192.168.0.50 -o vlan4 -j ACCEPT

перед тем 3-м правилом, которое вы указали (падение)

iptables -I FORWARD -i vlan4 -d 192.168.0.50 -j ACCEPT

Поместите его перед последним правилом в исходном вопросе.

Я предполагаю, что вы тоже сделали что-то подобное:

эхо 1> / proc / sys / net / ipv4 / ip_forward

чтобы включить переадресацию в вашей системе.