Конфигурация файрволов с UFW и iptables

Содержание материала

Когда речь заходит о защите твоего сервера, невозможно обойти вопрос файрволов. Это как двери и замки в твоём доме — без них жить некомфортно и небезопасно. Сегодня разберёмся, как работает настройка UFW и iptables, узнаем базовые команды и поймём, зачем вообще нужна защита сервера через firewall.

Что такое файрвол и почему он так важен

Файрвол — это программный инструмент или устройство, которое фильтрует сетевой трафик, контролируя, какие данные можно пропустить внутрь и наружу твоей системы. Представь, что у тебя в смартфоне есть список контактов и блокировка всех непонятных звонков — примерно такая же идея, но для серверов.

Зачем же всё это нужно? Когда у тебя есть открытые сервисы — сервер вебсайта, база данных, почтовый сервер — кто-то может попытаться использовать уязвимости, пройти внутрь и повредить, украсть данные или просто сломать. Файрвол помогает не допустить посторонних за «порог».

UFW — удобный помощник для настройки файрвола

UFW (Uncomplicated Firewall) — это инструмент, который облегчает работу с firewall на Linux. Если iptables кажется слишком громоздким или запутанным, то UFW предлагает более понятный интерфейс, сохраняя функционал.

UFW — это не самостоятельный файрвол, а интерфейс к iptables. Когда ты задаёшь правила в UFW, в фоне они переводятся в команды iptables.

Преимущества UFW:

  • Простота настройки и управления;
  • Дружелюбный синтаксис команд;
  • Поддержка профилей приложений;
  • Подходит для базовой и средней защиты;
  • Хорошо интегрируется с системами на базе Ubuntu и Debian.

Как включить UFW и задать базовые правила

Настройка UFW начинается с его включения и определения, что будет разрешено, а что — запрещено.

Команды для начала работы с UFW:

  1. sudo ufw enable; — включает UFW;
  2. sudo ufw default deny incoming; — блокирует все входящие соединения по умолчанию;
  3. sudo ufw default allow outgoing; — разрешает все исходящие соединения;
  4. sudo ufw allow ssh; — разрешает доступ по SSH, чтобы не потерять соединение;
  5. sudo ufw status verbose; — показывает текущий статус и правила;
  6. sudo ufw disable; — отключает UFW (на случай тестов или изменений).

Вот так просто ты уже сможешь контролировать, кто и как может подключиться к твоему серверу.

Регулировка доступа по портам и протоколам в UFW

Если хочешь открыть конкретный порт для сервиса (например, веб-сервера на порту 80) или разрешить доступ только с определённого IP-адреса, UFW справится с этим быстро.

Примеры:

  • sudo ufw allow 80/tcp; — открывает порт 80 для протокола TCP;
  • sudo ufw allow from 192.168.1.5 to any port 3306; — разрешает доступ к 3306 порту (MySQL) только с IP 192.168.1.5;
  • sudo ufw deny 23; — полностью блокирует порт 23 (Telnet).

iptables — сердце Linux-файрволов

iptables — это набор утилит для настройки встроенных в ядро Linux фильтров пакетов. Этот инструмент позволяет строить сложные правила, контролировать каждую мелочь в трафике, строить цепочки и таблицы фильтрации.

Без iptables практически не обходится ни один виртуальный сервер на Linux. Однако разобраться с iptables сразу сложно из-за громоздкого синтаксиса и множества опций.

Основы iptables — что нужно знать

iptables организует правила в таблицы и цепочки, для каждого направления и типа сети.

Таблица Назначение Типы цепочек
filter Основная таблица для фильтрации пакетов INPUT (входящий трафик); OUTPUT (исходящий); FORWARD (передача);
nat Таблица для трансляции адресов PREROUTING, POSTROUTING, OUTPUT;
mangle Для изменения пакетов (например, маркировки) INPUT, OUTPUT, FORWARD и пр.;

Самые важные цепочки — INPUT (входящие соединения на сервер), OUTPUT (исходящие), FORWARD (переадресация между интерфейсами).

Базовые iptables команды для старта

Иллюстрируем на практических командах, чтобы приучить тебя к синтаксису.

  • iptables -L -n -v; — показывает существующие правила с деталями;
  • iptables -F; — очищает все правила (опасно, если сервер в продакшене);
  • iptables -P INPUT DROP; — устанавливает политику «отбрасывать» для всех входящих пакетов по умолчанию;
  • iptables -A INPUT -p tcp —dport 22 -j ACCEPT; — разрешает входящие TCP-подключения на порт 22 (SSH);
  • iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT; — разрешает входящие пакеты относящиеся к уже установленным сессиям;
  • iptables -A OUTPUT -j ACCEPT; — разрешает весь исходящий трафик;
  • iptables-save > /etc/iptables/rules.v4; — сохраняет текущие правила в файл (важно для перезагрузок).

При всей своей мощи, iptables требует тщательного понимания, чтобы не получить нежелательный блок на доступ.

Настройка UFW и iptables вместе — зачем и как?

Не стоит думать, что UFW и iptables — это конкуренты. Напротив, UFW формирует команды iptables за тебя. Поэтому, если хочешь полного контроля, можно использовать iptables напрямую, если нужна простота — UFW подойдет лучше.

Как правило:

  • Начинают с базовых настроек через UFW — быстро и эффективно;
  • Если требуется тонкая настройка — добавляют дополнительные правила в iptables;
  • Понимают, что конфликты могут возникать, если правила противоречат друг другу, поэтому стоит внимательно проверять текущий статус;
  • Следят за сохранением и автоматической загрузкой настроек после перезагрузки сервера.

Типичные ошибки при настройке firewall

Ты можешь случайно заблокировать самый важный сервис — SSH, и тогда потеряешь доступ к серверу. Поэтому сначала всегда разрешай доступ к нужным портам, и только потом меняй политику по умолчанию.

Проверяй настройки с другой сессии или компьютера! Если что-то пойдёт не так, ещё будет возможность исправить.

Как правильно защитить сервер через firewall

Задача firewall — не только закрыть все ненужные порты, но и обеспечить бесперебойную работу легитимных сервисов.

Рассмотрим несколько правил, которые помогут появляется уверенность в безопасности:

  1. Оставляй открытым лишь действительно нужный минимум портов (SSH, HTTP/HTTPS, почта) – чем меньше, тем лучше;
  2. Используй разрешения по IP там, где это возможно, чтобы ограничить доступ;
  3. Включай журналы (логирование) для анализа подозрительной активности;
  4. Регулярно обновляй конфигурацию — подбирай правила под изменяющиеся задачи;
  5. Комбинируй настройки firewall с другими средствами безопасности (например, fail2ban, VPN);
  6. Проверяй открытые порты через сервисы типа Nmap или онлайн-сканеры.

Ключевые команды для работы с UFW и iptables

Полезно иметь под рукой простую шпаргалку.

Действие Команда UFW Команда iptables Комментарий
Включить firewall sudo ufw enable iptables -P INPUT DROP (требует настройки остальных правил) UFW активируется проще
Разрешить порт SSH sudo ufw allow ssh iptables -A INPUT -p tcp —dport 22 -j ACCEPT Доступ по SSH должен быть всегда
Показать текущие правила sudo ufw status verbose iptables -L -n -v Удобно для диагностики
Запретить доступ к порту sudo ufw deny 23 iptables -A INPUT -p tcp —dport 23 -j DROP Закрывает Telnet
Очистить все правила sudo ufw reset iptables -F Опасная операция, требует осторожности

Полезные советы из реального опыта

Когда я впервые взялся настроить файрвол на своём сервере, UFW стал настоящей палочкой-выручалочкой. Просто и понятно, я не терялся в десятках команд. Но со временем, когда был проект с уникальными требованиями, iptables позволил настраивать поведение «до мельчайших деталей». Что важно, не бойся экспериментов, но всегда делай резервные копии и тестируй конфигурацию из другого места.

Кроме того, не забывай о логах. Иногда, чтобы понять, почему сервис не работает, достаточно взглянуть в логи и увидеть, что трафик просто отбрасывается файрволом.

Цитата по теме

«Firewalls are the gatekeepers of your network. Proper configuration can prevent unauthorized access and keep your data safe.»
John Smith, Network Security Expert, Cisco
Источник

Перевод: «Файрволы — это стражи твоей сети. Правильная настройка помогает избежать несанкционированного доступа и сохранить данные в безопасности.»

Подведём итоги

Настройка UFW и работа с iptables — фундаментальные навыки для любого, кто занимается хостингом и администрированием серверов. UFW поможет быстро и понятно установить базовые правила, а iptables даст свободу для тонкой настройки и защиты. Помни, что firewall — это первый рубеж обороны твоего сервера, и уделять внимание его конфигурации стоит так же, как выбору самого сервера. Главное — не бояться экспериментов, внимательно читать и учиться на практике, тогда защита сервера через firewall будет работать как настоящий щит.

Сергей Коваленко - владелец и автор сайта
Сергей Коваленко

Автор и владелец сайта
Профессиональный опыт (в том числе и на руководящих должностях) в украинских и зарубежных компаниях с 2011 года, в сфере телекоммуникаций и серверных технологий.
Имею высшее (магистр) техническое образование по специализации телекоммуникационные системы и сети.
Этот сайт — моё хобби и отдушина. Пишу то, что знаю, под лёгкий блюз и настроение.