Home » Как реализовать базовый шаблон фаервола с iptables на Ubuntu 24.04
Как реализовать базовый шаблон фаервола с iptables на Ubuntu 24.04

Как реализовать базовый шаблон фаервола с iptables на Ubuntu 24.04

В этой статье разберёмся, как быстро и без боли реализовать базовый шаблон фаервола с помощью iptables на свежей Ubuntu 24.04. Почему это важно? Потому что даже если у тебя VPS или выделенный сервер только что из коробки, он уже открыт всему интернету, и любой бот может попытаться подобрать ssh, сканировать порты или просто устроить тебе весёлую жизнь. Фаервол — это твой первый рубеж обороны, и iptables, несмотря на свою древность, до сих пор остаётся одним из самых гибких и надёжных инструментов для фильтрации трафика на Linux. В этой статье — не только пошаговая инструкция, но и разбор, как это работает, какие грабли можно встретить, и как не наступить на них. Погнали!

Как работает iptables и зачем он вообще нужен?

iptables — это утилита для настройки фильтрации сетевого трафика в Linux. Она управляет встроенным в ядро Linux фильтром пакетов (netfilter). Представь себе огромный фильтр, через который проходит весь входящий и исходящий трафик. Ты сам решаешь, что пропускать, а что — отправлять в /dev/null.

  • Фильтрация по IP, портам, протоколам: можно разрешить или запретить доступ к сервисам по конкретным адресам или портам.
  • Гибкость: iptables позволяет строить сложные правила, комбинировать условия, создавать цепочки (chains) и таблицы (tables).
  • Безопасность: минимальный набор открытых портов — меньше шансов для взлома.

В Ubuntu 24.04 по умолчанию уже есть nftables, но iptables всё ещё поддерживается и отлично работает. Более того, многие скрипты, туториалы и даже автоматизированные системы (например, fail2ban) до сих пор используют iptables.

Быстрая настройка базового фаервола: пошагово

Давай сразу к делу. Вот базовый шаблон, который подойдёт для большинства серверов: разрешаем только нужные порты (например, ssh, http, https), всё остальное — в бан.

  1. Устанавливаем iptables (если вдруг не установлен):


sudo apt update
sudo apt install iptables

  1. Сбрасываем старые правила (чтобы не было конфликтов):


sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X

  1. Устанавливаем политику по умолчанию: всё запрещено.


sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

  1. Разрешаем loopback-интерфейс (иначе сервисы могут перестать работать):


sudo iptables -A INPUT -i lo -j ACCEPT

  1. Разрешаем уже установленные соединения (чтобы не отрубить себя от ssh):


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

  1. Открываем нужные порты (например, ssh, http, https):


sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

  1. Сохраняем правила (чтобы не слетели после перезагрузки):


sudo apt install iptables-persistent
sudo netfilter-persistent save

Всё! Теперь твой сервер не светится всеми портами подряд, а только теми, которые реально нужны.

Примеры, схемы, практические советы

Вот несколько кейсов из жизни, чтобы не наступить на грабли:

Кейс Что случилось Рекомендация
Открыл только ssh, забыл про loopback Локальные сервисы перестали работать, база не коннектится Всегда разрешай loopback: iptables -A INPUT -i lo -j ACCEPT
Случайно заблокировал себя по ssh Сессия оборвалась, сервер недоступен Перед применением DROP — открой ssh, либо работай через консоль/Recovery
Оставил INPUT ACCEPT по умолчанию Сервер сканируется ботами, brute-force атакуют ssh Всегда ставь DROP по умолчанию и явно разрешай нужное
Не сохранил правила После перезагрузки всё слетело Используй iptables-persistent или свои скрипты автозагрузки

Практический совет: если боишься отрубить себе ssh, открой вторую сессию и не закрывай её, пока не убедишься, что всё работает. Или используй временное правило с at или cron, чтобы через 5 минут всё сбросилось, если что-то пошло не так.

Похожие решения, альтернативы и сравнение

iptables — не единственный игрок на поле. Вот краткое сравнение:

Инструмент Плюсы Минусы Когда использовать
iptables Гибкость, поддержка, масса туториалов, интеграция с fail2ban Синтаксис не самый дружелюбный, легко ошибиться Классика, если нужен полный контроль
nftables Современнее, проще синтаксис, быстрее Меньше примеров, не все скрипты поддерживают Если начинаешь с нуля или хочешь будущее
ufw Очень простой интерфейс, подходит новичкам Меньше гибкости, не все кейсы покрывает Для быстрого старта, если не хочется разбираться в деталях
firewalld Динамические правила, профили Чаще встречается на CentOS/Fedora, не всегда удобно на Ubuntu Если нужен динамический фаервол

Официальные ссылки для изучения:

Интересные факты и нестандартные способы использования

  • iptables умеет считать трафик: можно использовать для простого мониторинга, сколько пакетов и байт прошло через определённое правило.
  • Можно блокировать по странам: с помощью ipset и geoip можно забанить, например, весь Китай или США (или наоборот, разрешить только свой регион).
  • Тонкая настройка лимитов: можно ограничить количество соединений с одного IP, чтобы защититься от DoS-атак.
  • Ловушки для ботов: можно отправлять подозрительный трафик на honeypot или логировать его для анализа.
  • Автоматизация: iptables отлично дружит с bash-скриптами, Ansible, Puppet — можно быстро деплоить шаблоны на десятки серверов.

Автоматизация и новые возможности

Когда у тебя десятки серверов, вручную прописывать правила — боль. Но iptables легко автоматизируется:

  • Пиши свои bash-скрипты для генерации правил под разные роли (web, db, vpn и т.д.).
  • Используй Ansible-модули (ansible.posix.iptables), чтобы пушить конфиги на все сервера.
  • Интегрируй с fail2ban — автоматическая блокировка по логам ssh, nginx и других сервисов.
  • Можно делать динамические правила: например, открывать порт только для своего IP на время деплоя.

В Ubuntu 24.04 всё это работает из коробки, и iptables по-прежнему поддерживается, хотя Canonical активно двигает nftables. Но если у тебя уже есть опыт или скрипты под iptables — не спеши мигрировать, всё ещё актуально.

Выводы и рекомендации

iptables — это проверенный временем инструмент, который позволяет быстро и гибко защитить твой сервер. Даже базовый шаблон, который мы разобрали выше, уже на порядок повышает безопасность по сравнению с дефолтной настройкой. Главное — не забывай:

  • Всегда разрешай loopback и уже установленные соединения.
  • Открывай только нужные порты, всё остальное — DROP.
  • Сохраняй правила, чтобы не потерять их после перезагрузки.
  • Не бойся автоматизировать — скрипты, Ansible, fail2ban и прочие инструменты только ускоряют работу.
  • Если нужен быстрый старт — попробуй ufw, но для гибкости и автоматизации iptables всё ещё топ.

Если ты только выбираешь хостинг для своих экспериментов — смело бери VPS или выделенный сервер и сразу настраивай фаервол по этой инструкции. Безопасность — это не опция, а must-have даже для pet-проектов. Удачи в настройке, и пусть твой сервер будет недосягаем для сканеров и ботов!


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

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

Leave a reply

Your email address will not be published. Required fields are marked