В этой статье описывается процесс установки сетевого экрана iptables на операционной системе Debian 11 (Bullseye), включающий удаления фреймворка nftables, который теперь по умолчанию заменяет iptables (перевод статьи [1]). Также приводится пример типовой базовой настройки правил конфигурации для iptables.
[Деинсталляция nftables и его зависимостей]
Пакет IPtables был заменен на nftables начиная с Debian 10 Buster, и Debian 11 поставляется вместе с фреймворком nftables. Чтобы установить iptables, сначала нам нужно удалить nftables и его зависимости.
Подключитесь через SSH к вашему серверу с правами root, и запустите следующие команды:
# apt-get remove --auto-remove nftables # apt-get purge nftables
[Установка IPtables на Debian 11]
Для установки iptables выполните следующие команды:
# apt-get update # apt-get install iptables
Проверка статуса IPtables. Следующая команда покажет состояние iptables и перечислит его правила (rules):
# iptables -L -v
Будет выведено что-то наподобие следующего:
Как можно видеть на этом скриншоте, iptables установлен и работает. Однако все его цепочки правил (chains INPUT, FORWARD, OUTPUT) установлены на ACCEPT, т. е. ни одно из ограничивающих правил не сконфигурировано.
Очистка правил IPtables. Чтобы очистить правила iptables (что откроет все порты), используйте следующую последовательность команд:
# iptables -P INPUT ACCEPT # iptables -F # iptables -X
[Пример базовой конфигурации IPtables]
В этой конфигурации мы разрешим соединения через порты HTTP, HTTPS, а также работу ping (протокол ICMP). Порт SSH будет открыт и принимать входящие соединения на порту 22 только с вашего определенного IP-адреса.
Выполните следующую последовательность команд, но не забудьте изменить xxx.xxx.xxx.xxx для соответствия вашему IP:
# iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A INPUT -p tcp -m tcp -m state -m comment -s xxx.xxx.xxx.xxx/32 --dport 22 --state \ NEW -j ACCEPT --comment "Open SSH Port for your xxx.xxx.xxx.xxx/32 IP only" # iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p tcp --dport 443 -j ACCEPT # iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT
После этого снова проверьте статус iptables:
# iptables -L -v
Пример вывода этой команды:
Это будет означать, что правила настроены.
Однако если мы сейчас перезагрузим сервер, то эта настроенная конфигурация будет потеряна. Правила IPtables не сохраняются автоматически, для этого нужна специальная утилита iptables-persistent.
[Как сохранять правила IPtables]
Чтобы сделать настроенные правила постоянными (чтобы они восстанавливались при перезагрузке), нужно установить пакет iptables-persistent:
# apt-get install iptables-persistent
После установки будет отображено вот такое окно, предлагающее сохранить постоянными текущие правила (сохранение произойдет, если выбрать Yes):
Если вы не хотите сохранять текущие правила, то выберите No. Сохранить правила всегда можно позже командой iptables-save (см. далее).
Сохранение правил. Чтобы сохранить настроенные правила и сделать их постоянными (не теряющимися при перезагрузке), выполните команду (для правил IPv4):
# iptables-save > /etc/iptables/rules.v4
И то же самое для правил IPv6:
# ip6tables-save > /etc/iptables/rules.v6
Эти команды сохраняют текущие правила в файлы rules.v4 и rules.v6, находящиеся в каталоге /etc/iptables. Сервис IPtables автоматически прочитает и применит эти правила при следующей загрузке.
Восстановление правил. Чтобы восстановить конфигурацию IPtables без перезагрузки сервера, выполните команду:
# iptables-restore < /etc/iptables/rules.v4
[Ссылки]
1. INSTALL IPTABLES IN DEBIAN 11 (BULLSEYE) site:arstech.net. 2. Добавление правил iptables для отражения атак на сервер. 3. Защита Joomla с помощью iptables. 4. Автоматическая загрузка правил для iptables. 5. Первая помощь при проблемах с сайтом. 6. Защита от DDoS с помощью Fail2Ban. |