Короткий ответ
Firewall на VPS с Ubuntu настраивают через ufw. Порядок важен: сначала правило для SSH, потом для сайта, и только затем включение. Правило для SSH ставят первым, потому что без него подключение по SSH после включения экрана закроется.
Что такое firewall и какие бывают
Ядро Linux включает подсистему netfilter, которая решает судьбу входящего и исходящего трафика. Все современные решения для firewall используют именно её. Утилита iptables управляет правилами напрямую, а различные надстройки упрощают работу.
В Ubuntu штатное средство настройки это ufw (Uncomplicated Firewall). Он создаёт простой узловой экран для IPv4 и IPv6, но, как сказано в справке, не предназначен для полной функциональности и подходит для простых правил.
Пошаговая настройка ufw
- Откройте порт SSH: sudo ufw allow 22 (или sudo ufw allow ssh, если порт описан в /etc/services).
- Откройте порты сайта: sudo ufw allow http и sudo ufw allow https, если сайт работает по HTTP и HTTPS.
- Посмотрите итоговые правила без применения: sudo ufw --dry-run allow http.
- Включите экран: sudo ufw enable.
- Проверьте состояние: sudo ufw status verbose.
После включения лишние порты закрываются, а доступными остаются только те, для которых вы создали правила.
Правила: добавить, посмотреть, удалить
Правило можно добавить по номеру: sudo ufw insert 1 allow 80. Список правил с номерами показывает команда sudo ufw status numbered. Удалить правило можно командой sudo ufw delete deny 22.
Закрыть открытый порт можно правилом sudo ufw deny 22. Для порта SSH такое правило не используйте: оно закроет вход по SSH.
Доступ только с одного адреса
Доступ к порту можно разрешить только с конкретного хоста или сети: sudo ufw allow proto tcp from 192.168.0.2 to any port 22. Для всей подсети адрес заменяют на 192.168.0.0/24.
Это удобно для SSH, если вы подключаетесь с постоянного адреса. Если ваш адрес меняется, такое правило подходит плохо.
Таблица: основные команды ufw
| Что сделать | Команда | Комментарий |
|---|---|---|
| Включить | sudo ufw enable | По умолчанию ufw выключен |
| Выключить | sudo ufw disable | Закрытые порты снова откроются |
| Открыть порт | sudo ufw allow 22 | Можно указать имя: ssh |
| Закрыть порт | sudo ufw deny 22 | Для SSH осторожно |
| Правила с номерами | sudo ufw status numbered | Нужны для insert и delete |
| Проверить без применения | sudo ufw --dry-run allow http | Показывает итоговые правила |
Профили приложений и журнал
Приложения, которые открывают порты, могут добавлять профиль ufw. Профили лежат в /etc/ufw/applications.d, список показывает sudo ufw app list, а разрешить приложение можно командой sudo ufw allow Samba (имя профиля подставьте своё).
Журнал включают командой sudo ufw logging on. Журналы нужны, чтобы замечать атаки, разбирать правила и видеть необычную активность в сети.
ufw, iptables или nftables
Начиная с Debian 10 основной инфраструктурой межсетевого экрана является nftables: команды iptables по умолчанию работают через бэкенд nf_tables. Для собственных правил nftables ставят пакет nftables и включают службу nftables.service, правила хранятся в /etc/nftables.conf.
Если вы не знакомы с этими утилитами, выбирайте ufw: он остаётся надстройкой над iptables и подходит для простых правил. Правила для SSH, HTTP и HTTPS в нём задаются парой команд.
Права, отдельный пользователь и защита от подбора
Настроить firewall без root-прав нельзя: установка пакетов и изменение правил требуют прав администратора. Для работы лучше завести отдельную учётную запись с правом sudo и не сидеть постоянно под root, а вход root при необходимости ограничить в sshd_config.
Дополнительно от подбора пароля защищает Fail2ban: он блокирует адрес нарушителя, обновляя правила экрана на заданное время. Настройки хранят в /etc/fail2ban/jail.local, а для SSH включают секцию [sshd].
Связь с iptables
Правила ufw работают через iptables: ufw подготавливает их и передаёт ядру. Если вы знаете iptables, можно управлять экраном напрямую, но для типичного VPS с сайтом хватает ufw. Подробнее о сервере и доступе по ключу: как выбрать VPS для сайта.
Где держать сервер: Timeweb Cloud и Aeza
Персональные данные граждан РФ при сборе должны записываться и храниться в базах данных на территории России (ч. 5 ст. 18 152-ФЗ). Про эту норму подробнее в материале хостинг в России и 152-ФЗ.
У Timeweb Cloud указаны локации Москва, Санкт-Петербург, Новосибирск, Казахстан, Нидерланды, Германия и Нью-Йорк, у Aeza Москва, Санкт-Петербург, Варшава, Франкфурт и другие. У Aeza есть базовая защита от DDoS, у Timeweb Cloud отдельно предлагается защита от DDoS и защита веб-приложений. Сравнение: Timeweb или Aeza.
Партнёрские ссылки
Ссылки на Timeweb Cloud и Aeza на этом сайте партнёрские: сайт получает вознаграждение, цена для пользователя не меняется.
Читайте также: