Защита от сканирования портов с помощью 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-адреса.
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!