LINUX.ORG.RU

История изменений

Исправление Nao, (текущая версия) :

Можно использовать опцию --dhcp-script у dnsmasq и написать скрипт который будет добавлять/удалять правила в фаерволе.

Изначально при старте iptables будет создаваться цепочка типо такой:

iptables -P FORWARD REJECT
iptables -N dhcp

iptables -A FORWARD -i $LAN_INTERFACE -j dhcp
iptables -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Затем в скрипте добавления --dhcp-script:

iptables -A dhcp -m mac --mac-source $CLIENT_MAC -s $CLIENT_IP -j ACCEPT

И соответствующая строчка для удаления.

Можно пойти другим путём и просто добавить те же ограничения по ip/mac в iptables ручками. Это подойдёт если состав компов редко меняется.

Ну и как говорили выше - фильтрация по ip/mac легко обходится:

  1. Пассивно слушается трафик для выявления легитимных ip/mac
  2. Ставим у себя этот ip/mac (желательно когда комп с этим ip/mac не в сети) и ходим в инет.

Исходная версия Nao, :

Можно использовать опцию --dhcp-script у dnsmasq и написать скрипт который будет добавлять/удалять правила в фаерволе.

Изначально при старте iptables будет создаваться цепочка типо такой:

iptables -P FORWARD REJECT
iptables -N dhcp

iptables -A FORWARD -i $LAN_INTERFACE -j dhcp
iptables -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Затем в скрипте добавления --dhcp-script:

iptables -A dhcp -m mac --mac-source $CLIENT_MAC -s $CLIENT_IP -j ACCEPT