На маршрутизаторе под управлением unix я хочу отслеживать все исходящие пакеты, из этих пакетов я хочу временно занести в белый список IP-адреса, к которым я подключаюсь, как для отправки, так и для приема.
В основном, чтобы создать дыру в брандмауэре, которая обычно отбрасывает все входящие пакеты (отбрасывает все пакеты, кроме тех, что указаны в белом списке, которые были включены в белый список этим скриптом на основе IP-адресов, к которым я отправляю пакет для подключения). Осмотревшись, я мог бы создать сценарий bash на основе анализатора пакетов, но есть ли способ сделать это в самом iptables и не задействовать сниффер пакетов и сценарий bash?
Он уже существует в виде модуля отслеживания подключений в iptables. Этот учебник Digital Ocean описывает это, и современные дистрибутивы часто реализуют это по умолчанию.
Перед тем, как сделать это, убедитесь, что у вас есть способ вернуться, если вы заблокируете себя.
По сути:
iptables -A INPUT -s YOUR-TRUSTED-HOST -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT -j DROP
Все входящие пакеты отбрасываются, если они не относятся к установленному соединению.
Механизм на основе оболочки. вероятно, будет слишком медленным, чтобы успевать за скоростью, с которой машины создают соединения.