Ysa-k12-ru
Глава 12: Основы работы с файрволом в Linux (ufw, iptables)
Цели главы
После изучения этой главы ученик:
- Понимает назначение и принципы работы файрвола
- Знает разницу между ufw и iptables
- Умеет просматривать, разрешать и блокировать порты
- Может создавать базовые правила для защиты сервера
- Понимает, как проверять состояние сети после изменения правил
1. Что такое файрвол
Файрвол — это система фильтрации сетевых пакетов, которая:
- Защищает сервер от несанкционированного доступа
- Контролирует входящий и исходящий трафик
- Позволяет открывать только необходимые порты для сервисов
Типы фильтрации:
- Packet filtering — блокировка пакетов по IP, порту, протоколу
- Stateful inspection — учитывает состояние соединения
Для системного администратора это обязательный инструмент безопасности.
2. ufw (Uncomplicated Firewall)
2.1 Назначение
ufw — упрощённый интерфейс для iptables. Преимущества:
- Легкий синтаксис
- Быстрое управление базовыми правилами
- Подходит для новичков
2.2 Установка и проверка
sudo apt update sudo apt install ufw sudo ufw status verbose
Если файрвол не активен, статус будет «inactive».
2.3 Основные команды ufw
Активировать файрвол:
sudo ufw enable
Деактивировать:
sudo ufw disable
Разрешить порт (например, SSH 22):
sudo ufw allow 22 sudo ufw allow ssh
Блокировать порт:
sudo ufw deny 23
Разрешить диапазон портов:
sudo ufw allow 1000:2000/tcp
Удалить правило:
sudo ufw delete allow 22
Просмотреть правила:
sudo ufw status numbered
2.4 Практическая схема работы с ufw
1. Включить ufw 2. Разрешить SSH 3. Разрешить HTTP/HTTPS 4. Заблокировать все остальные порты 5. Проверить состояние правил
3. iptables
3.1 Назначение
iptables — более гибкий и мощный инструмент, напрямую управляющий ядром Linux. Используется для:
- сложной фильтрации пакетов
- NAT и маршрутизации
- настройки firewall на уровне пакетов
3.2 Основные цепочки iptables
- INPUT — входящий трафик
- OUTPUT — исходящий трафик
- FORWARD — проходящий через сервер трафик
Политика по умолчанию (default policy):
sudo iptables -P INPUT DROP sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD DROP
3.3 Примеры правил iptables
Разрешить SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Разрешить HTTP/HTTPS:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Блокировать IP:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
Просмотр правил:
sudo iptables -L -v -n
Сохранение правил (Debian/Ubuntu):
sudo apt install iptables-persistent sudo netfilter-persistent save
4. Практика: базовая защита сервера
Практика 1: ufw
1. Проверить статус ufw 2. Включить ufw 3. Разрешить SSH 4. Разрешить HTTP и HTTPS 5. Проверить состояние правил
Практика 2: iptables
1. Просмотреть текущие правила 2. Установить политику DROP для INPUT 3. Разрешить SSH и HTTP/HTTPS 4. Проверить, что сервер доступен только по нужным портам 5. Заблокировать тестовый IP и проверить
Практика 3: проверка работы firewall
- Использовать ping и telnet/curl к различным портам
- Убедиться, что доступ разрешён только по нужным сервисам
5. Типичные ошибки
- Блокировка SSH перед проверкой локального доступа → потеря соединения
- Неправильный порядок правил iptables (правила обрабатываются сверху вниз)
- Забытое сохранение правил после перезагрузки (iptables)
6. Дополнительные материалы для самостоятельного изучения
- man ufw
- man iptables
- https://help.ubuntu.com/community/UFW
- https://wiki.debian.org/iptables
- Практика на виртуальных машинах с разными правилами доступа
7. Результат главы
После этой главы ученик:
- Знает, что такое файрвол и зачем он нужен
- Умеет работать с ufw и iptables
- Может настроить базовую защиту сервера
- Может проверять доступность сервисов после настройки firewall