У меня есть компьютер, который служит:
а) шлюз между беспроводной сетью (WLAN0) и локальной сетью (ETH0), подключенной к Интернету
б) прокси-сервер Squid3, который выполняет только веб-фильтрацию (без кеширования)
Я настроил iptables следующим образом:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Когда я настраиваю клиента в WLAN для доступа в Интернет через прокси, он отлично работает в соответствии с правилами, указанными в Squid.
Однако Интернет по-прежнему доступен для клиентов WLAN, которые не настроены для использования прокси. Теперь я хочу заставить этих клиентов WLAN использовать прокси, установив правильное правило в iptables для отклонения трафика WLAN, который не исходит от прокси.
Я пробовал следующее:
iptables -A INPUT -i wlan0 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i wlan0 -j DROP
но не работает блокировка этих клиентов WLAN, которые не используют прокси.
Поскольку шлюз и прокси находятся на одном компьютере, я не понимаю, какую цепочку iptables мне следует использовать для блокировки этих клиентов. Должен ли я использовать INPUT (как?) Или я должен сделать это по-другому?
Я думаю, вы должны поместить правило в передний подбородок, а не во входной подбородок, так как место назначения запроса не сервер, а другой IP-адрес сервера