Защита от сканирования портов с помощью Iptables

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

Iptables — стандартный интерфейс управления межсетевым экраном Netfilter в Linux. Утилита позволяет фильтровать трафик на основе набора правил. Настройка защиты от несанкционированного сканирования портов строится на создании «белого списка» доверенных IP-адресов.

Основные концепции

Эффективная работа с межсетевым экраном базируется на следующих понятиях:

  • Таблица (Table): Совокупность цепочек (по умолчанию используется filter).
  • Цепочка (Chain): Упорядоченная последовательность правил для обработки пакетов.
  • Правило (Rule): Условие и действие. При соответствии пакета критерию (например, порт или протокол) выполняется действие (ACCEPT, DROP или REJECT).

Настройка фильтрации через пользовательскую цепочку

Для централизованного управления доступом рекомендуется создание отдельной цепочки antiscan. Это позволяет отделить правила для конкретных сервисов от общей цепочки INPUT.

1. Создание новой цепочки:

iptables -N antiscan

2. Добавление доверенных IP-адресов (белый список):

# Замените 1.1.1.1 на реальный IP администратора или офиса
iptables -A antiscan -s 1.1.1.1 -j ACCEPT
iptables -A antiscan -s 2.2.2.2 -j ACCEPT

3. Установка запрета для всех остальных адресов:

iptables -A antiscan -j DROP

4. Привязка портов к цепочке защиты:
Трафик с определенных портов перенаправляется в цепочку antiscan. Если IP-адрес отправителя отсутствует в списке разрешенных, пакет будет сброшен.

Для TCP портов (например: базы данных, почтовые сервисы, панели управления):

iptables -I INPUT -p tcp --match multiport --dports 25,3306,8083 -j antiscan

Для UDP портов (например: SNMP, RPC):

iptables -I INPUT -p udp --match multiport --dports 111,161 -j antiscan

Автозагрузка правил

По умолчанию правила iptables сбрасываются после перезагрузки. Для сохранения конфигурации используется следующий метод:

Debian / Ubuntu

iptables-save > /etc/iptables.rules
# Настройка восстановления при загрузке сетевых интерфейсов
echo -e '#!/bin/bash\niptables-restore < /etc/iptables.rules' > /etc/network/if-pre-up.d/iptablesup
chmod +x /etc/network/if-pre-up.d/iptablesup

Примечание

В современных дистрибутивах рекомендуется установка пакета iptables-persistent.

Важные замечания

  • Приоритет правил: Обработка происходит сверху вниз до первого совпадения.
  • Доступ к SSH: Необходимо убедиться, что SSH (порт 22) не заблокирован правилами, во избежание потери удаленного доступа к серверу.
  • Проверка: Работоспособность проверяется попыткой подключения к порту с разрешенного и стороннего IP-адреса.

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам