Цикл для блокировки портов DHCP с iptables, за исключением трафика между моим сервером и моими клиентами

437
ajcg

Я хочу заблокировать трафик dhcp в моей локальной сети с помощью iptables. Пример:

 iptables -t mangle -A PREROUTING -p udp -m multiport --dports 67,68 -j DROP iptables -A INPUT -p udp -m multiport --dports 67,68 -j DROP iptables -A FORWARD -p udp -m multiport --dports 67,68 -j DROP 

Но разрешите это только между моим сервером dhcp (192.168.0.20) и моими клиентами (192.168.0.0/24), трафиком isc-dhcp-сервера (eth1). Поэтому я хочу создать цикл. Это мои правила, но не работает:

# DHCP AUTHORITATIVE isc-dhcp-server traffic (on eth1)  dhcpserver="192.168.0.20"   for ip in $dhcpserver; do iptables -t mangle -A PREROUTING -d $ip -i eth1 -p udp -m multiport --dports 67,68 -j ACCEPT iptables -A INPUT -s $ip -i eth1 -p udp -m multiport --sports 67,68 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p udp -m multiport --dports 67,68 -d $ip -j ACCEPT done iptables -t mangle -A PREROUTING -p udp -m multiport --dports 67,68 -j DROP iptables -A INPUT -p udp -m multiport --dports 67,68 -j DROP iptables -A FORWARD -p udp -m multiport --dports 67,68 -j DROP 

Пожалуйста, помогите мне исправить это. Спасибо

0
DHCP не является протоколом, предназначенным для маршрутизации. Ваш пример сам показывает IP-адреса в той же локальной сети: нет маршрутизации. Это, вероятно, должно быть сделано на уровне Ethernet (ebtables или nftables ... bridge, с трудом). то, что вы хотите, возможно, может быть решено с помощью [Private VLAN] (https://en.wikipedia.org/wiki/Private_VLAN), но обычно это делается на сетевом оборудовании (и редко, когда 20-портовый коммутатор работает под управлением Linux, поэтому редко реализовано с помощью решения Linux). A.B 6 лет назад 0

0 ответов на вопрос