Как заблокировать исходящий трафик, за исключением нескольких IP-адресов, через IPTables?

Как заблокировать исходящий трафик, за исключением нескольких IP-адресов, через IPTables?

У меня есть беспроводной маршрутизатор Asus, который был прошит MERLIN. У меня также есть несколько IP-камер, подключенных через Wi-Fi. Я хочу запретить IP-камерам пытаться звонить домой, отключив исходящие звонки. Что я и сделал с помощью этого

Однако есть несколько вещей, которые я хотел бы сделать.

  1. ПО УМОЛЧАНИЮЗапретить IP-камерам отправлять какие-либо данные за пределы моей сети.
  2. Исключение: IP-камеры должны подключаться и отправлять данные на порт 465 (порт SMTPS) для отправки электронного письма.
  3. Исключение: Я хочу, чтобы несколько IP-адресов (некоторые из них — диапазоны IP-адресов) могли удаленно получать доступ к камере через PORT. Поэтому мне нужно правило, которое является исключением из правила по умолчанию.

У меня уже настроена переадресация портов.

Так, например: 192.168.1.2:123 (123 — это порт, который я использую для доступа к камере через браузер) — это способ, которым я могу подключиться к ней онлайн через браузер. Я также хочу, чтобы она была доступна не ТОЛЬКО локально, но и за пределами домашней сети, но с несколькими IP-адресами. Если у вас нет IP-адреса, то вас ОТКЛЮЧАТ, если да, то вас примут. Как вышибала. Так что по сути мой рабочий компьютер может получить доступ к этой камере через порт 123 — это то, что я пытаюсь сделать.

Я понимаю Linux и знаю некоторые флаги IPTABLES, но недостаточно, поэтому мне нужен эксперт.

Спасибо!

решение1

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

После того, как вы разобрались с тем, как указать диапазон IP-адресов камер, вы можете легко отбросить все пакеты, инициированные вашими камерами (предполагая, что это соединения TCP), используя опцию --syn. Это пример, предполагающий, что все камеры (<=8 камер и никаких других систем) находятся в подсети 192.168.1.0/29

#1    iptables -A FORWARD -s 192.168.1.0/29 -p tcp --dport 465 -j ACCEPT
#2    iptables -A FORWARD -d 192.168.1.0/29 -p tcp --sport 465 -j ACCEPT
#3    iptables -A FORWARD -s 192.168.1.0/29 -p tcp --syn -j DROP
#4    iptables -A FORWARD -s 192.168.1.0/29 -p udp -j DROP

Добавляйте #2 только в том случае, если на компьютере с Linux не реализована функция NAT.

Чтобы опубликовать камеры:

iptables -t nat -A PREROUTING -p tcp --dport 1202 -j DNAT 192.168.1.2:123
iptables -t nat -A PREROUTING -p tcp --dport 1203 -j DNAT 192.168.1.3:123
iptables -t nat -A PREROUTING -p tcp --dport 1204 -j DNAT 192.168.1.4:123

но разрешить доступ к ним только с определенных IP-адресов:

iptables -A FORWARD -s trustedip1 -d 192.168.1.0/29 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -s trustedip2 -d 192.168.1.0/29 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -s trustedip3 -d 192.168.1.0/29 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/29 -p tcp --dport 123 -j DROP

Конечно, если адреса камер не находятся в одной подсети, вам придется поменять местами 192.168.1.0/29 и IP-адрес камеры и повторить правило для каждого.

Связанный контент