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

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

1 ответ1

1

Можно предположить, что каждый раз, когда вы отправляете пакет SYN на сервер, этот сервер автоматически добавляется в белый список, поэтому при попытке подключиться к веб-сайту он автоматически разрешает ему ответить. Есть ли способ сделать такую вещь удобно?

Именно так уже работают большинство брандмауэров с сохранением состояния (например, домашние маршрутизаторы, потому что это требуется для выполнения NAT, но также распространено на серверах).

В iptables это делается через модуль conntrack или его упрощенную версию state . Оба примера эквивалентны современным ядрам (хотя я думаю, что -m state требовалось в 2.6.x днях).

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Хотя, ИМХО, вы также должны безоговорочно принимать по крайней мере -p icmp и -p ipv6-icmp .

В pf сохранение состояния используется по умолчанию для правил pass (если no state указано состояние).

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