На маршрутизаторе под управлением 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
Все входящие пакеты отбрасываются, если они не относятся к установленному соединению.
Механизм на основе оболочки, вероятно, будет слишком медленным, чтобы успевать за скоростью, с которой машины создают соединения.