У меня на роутере два интерфейса с томатной прошивкой: 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
чтобы включить переадресацию в вашей системе.