3

У меня есть маршрутизатор, который запускает Tomato, поэтому у меня есть доступ к iptables . В моей сети есть устройство с IP-адресом 192.168.1.100. Я не хочу, чтобы он отправлял данные в Интернет, за исключением очень конкретного случая.

В частности, я не хочу, чтобы он вообще отправлял исходящие данные в Интернет, за исключением защищенного SMTP (TCP-порт 587 или 465) и даже тогда, только на один SMTP-сервер. Входящий трафик тоже вызывает беспокойство, но блокировка исходящего трафика важнее. Он должен продолжать разрешать трафик локальной сети, поэтому с отправлением и отправлением 192.168.1.0/24 все в порядке.

Я не очень разбираюсь в iptables поэтому не знаю, как это сделать, и даже если iptables - даже лучший подход. Я установил правила перед тем, как отбрасывать пакеты, но я никогда не устанавливал правила, которые блокируют все, кроме пакетов, которые соответствуют определенным требованиям.

Как бы вы посоветовали мне заняться этим?

2 ответа2

3

Если у вас нет правила, разрешающего УСТАНОВЛЕННЫЙ, СВЯЗАННЫЙ трафик, трафик может вообще не пройти.

iptables -I INPUT 1 -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A OUTPUT -m tcp -p tcp -m multiport --dports 587,465 -d <ipaddress of smtp> -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.1.0/24 -m tcp -p tcp -m multiport --dports 587,465 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 !-d 192.168.1.0/24,<ipaddress of smtp> -j DROP

разрешить, разрешить, а затем запретить все другие движения.

Однако, не зная, какие у вас есть другие правила, я не могу сказать вам, где их применять.

Порядок, в котором находятся правила, имеет решающее значение

Правила обрабатываются по порядку, и если вы добавите мои правила в конец существующего набора правил, они могут работать неправильно.

1

Все, что вам нужно, это отбрасывать исходящий трафик с вашего хоста с такими правилами:

iptables -A FORWARD -s 192.168.1.100 -p tcp --dports 80 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

Первое правило позволит вашему устройству использовать протокол HTTP для любого хоста, а второе - запретить любой другой трафик за пределами вашей домашней сети.

Если вам нужно разрешить весь трафик на впечатляющий хост, вам нужно использовать что-то вроде этого:

iptables -A FORWARD -s 192.168.1.100 -d 8.8.8.8 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

Ваше устройство сможет подключаться к IP 8.8.8.8 по любому протоколу, но будет отказано во всех остальных.

Вы можете посмотреть другие примеры здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .