Я использую ubuntu как шлюз для нескольких хостов. Мне нужен совет, как заблокировать переадресацию IP для определенного IP-адреса или определенного диапазона IP-адресов?
Я попытался заблокировать ip через правила запрета ufw, но похоже, что настройки переадресации ip не могут быть изменены с помощью правил, и его можно применять только глобально (DEFAULT_FORWARD_POLICY в / etc / default / ufw)
Также я попытался напрямую изменить правила iptables:
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
После этой команды правило отклонения ip forwarding блокирует пересылку запросов со всех удаленных хостов.
Обновление: текущий вывод iptable:
root@mtu90:/home/pi# iptables -L -n -v
Chain INPUT (policy ACCEPT 5671 packets, 927K bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 172.16.1.77
192 15408 DROP all -- * * 172.16.1.77 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
895 136K all -- * * 0.0.0.0/0 0.0.0.0/0
518 30999 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 119 packets, 14872 bytes)
pkts bytes target prot opt in out source destination
Я думаю, вы слишком задумываетесь над проблемой. Блокировать запросы пересылки с помощью iptables на любом основании - тривиально.
Конечно, есть настройка по умолчанию - пересылка может быть разрешена или запрещена по умолчанию - текущая настройка разрешена. Таким образом, чтобы удалить конкретный хост, просто добавьте правило iptables
iptables -I FORWARD -d sou.rce.ip.add -j DROP
Убедитесь, что вы не забыли удалить правило ОТКЛОНЕНИЯ всего в прямой цепочке.