
На моем домашнем маршрутизаторе DD-WRT настроен клиент OpenVPN, который поддерживает VPN-соединение с моим рабочим местом.
Небольшая проблема: я не хочу, чтобы случайные неудачники, получающие доступ к моей беспроводной точке доступа, имели доступ к VPN моей компании. (Да, она достаточно хорошо защищена, но у меня есть основания предпринять дополнительные меры.)
Можно ли iptables
убедить запретить маршрутизацию на все исходные MAC-адреса, кроме нескольких выбранных, которые я укажу? Я пробовал использовать --mac-source
параметр следующим образом:
iptables -I FORWARD -i br0 -o tap0 -j REJECT
iptables -I FORWARD -i br0 -o tap0 -j ACCEPT --mac-source 00:01:02:03:04:05
Правило REJECT
работает, а ACCEPT
правило нет. (обратите внимание, что -I
параметр используется для того, чтобы гарантировать, что ACCEPT
правило предшествует REJECT
правилу.)
У кого-нибудь еще был опыт создания подобного белого списка?
решение1
Насколько я понимаю, ваша проблема в том, что MAC-адреса являются допустимым вариантом только для таблиц PREROUTING и POSTROUTING. Я сделал это следующим неуклюжим способом...
В таблице предварительной маршрутизации на входящем интерфейсе локальной сети выберите MAC-адрес машины, которую вы хотите пропустить, и используйте DNAT, чтобы изменить IP-адрес на тот, который вы выбрали, который в противном случае не использовался бы.
-A PREROUTING -i eth1 -m mac --mac-source xx:xx:xx:xx:xx:xx -j DNAT -- на 192.168.2.200 -m comment --comment "машина, которой нужно разрешить доступ"
В таблице FORWARD установите правило для принятия этого IP-адреса, а в противном случае — политику FORWARD, чтобы сбрасывать весь трафик.
-A ПЕРЕСЫЛКА -s 192.168.2.200 -j ПРИНЯТЬ