Если вы хотите, чтобы определенные диапазоны IP-адресов проходили через прокси-сервер, в основном вы хотите заблокировать исходящий TCP-трафик через порт 80 (и 443, если вы используете HTTPS), исходящий из 172.20.12.0/24, на вашем интерфейсе с выходом в Интернет. Таким образом, если они попытаются не использовать прокси, соединения не будут установлены.
Вы хотите убедиться, что поставили три исключения перед этим правилом:
- один для самого прокси, трафику, исходящему из 172.20.12.4, следует разрешить отправлять трафик через порты TCP 80/443
- два для IP-адресов, которые вы хотите пропустить прокси до этого правила, хотя.
Ниже приведено то, что вы добавили бы в свой скрипт iptables
, или команды, которые вы можете выполнять напрямую. Три вещи, которые нужно иметь в виду:
- Возможно, вам придется посмотреть на существующие правила, чтобы убедиться, что предыдущие правила не принимают трафик, который вы бы предпочли заблокировать.
- Это предполагает, что ваша политика
OUTPUT
является DROP
(т.е. трафик, который явно НЕ ACCEPT
является DROP
ped). Если это не так, вам нужно еще одно правило внизу, чтобы отбросить все остальное, происходящее из 172.20.12.0/24 и пытающееся выйти через TCP 80/443.
$OUT_IFACE
- это ваш интернет-интерфейс
# accepts all traffic outgoing on TCP 80/443 from 172.20.12.8
/sbin/iptables -A OUTPUT --protocol TCP --source 172.20.12.8/24 --match -multi-port --destination-ports 80,443 --out-interface $OUT_IFACE --jump ACCEPT
# accepts all traffic outgoing on TCP 80/443 from 172.20.12.9
/sbin/iptables -A OUTPUT --protocol TCP --source 172.20.12.9/24 --match -multi-port --destination-ports 80,443 --out-interface $OUT_IFACE --jump ACCEPT
# accepts all traffic outgoing on TCP 80/443 NOT going to 172.20.12.4
/sbin/iptables -A OUTPUT --protocol TCP --source 0/0 --destination 172.20.12.4 --match -multi-port --destination-ports 80,443 --out-interface $OUT_IFACE --jump ACCEPT
# assuming a policy of DROP everything not obeying the above rules shoud die. You could add a LOG target here to log any incidents.
Кроме того, прошло некоторое время с тех пор, как я играл со Squid, но я думаю, что у него есть возможность аутентифицировать пользователей и, возможно, применять различные наборы правил для таких пользователей (в том числе никаких правил для определенных пользователей - я думаю, что вы все еще получаете заголовок Via:
впрыскивается в ваши потоки HTTP, которые выдают, но вы используете прокси).