Сетевой безопасностью часто пренебрегают при создании своих проектов на своем сервере. Но даже базовая настройка фаервола уже существенно снижает риски.
ufw (Uncomplicated Firewall) - простой способ настроить фаервол на Linux. Работает как обёртка над iptables, но не требует глубоких знаний сетевого стека.
Зачем вообще нужен фаервол?
Когда ты поднимаешь сервер (особенно публичный), он сразу становится видимым всему интернету. И даже если ты не настраиваешь ничего «опасного», какие-то сервисы по умолчанию могут слушать порты.
ufw помогает ограничить доступ: только те порты, которые ты явно разрешил - будут открыты. Если ты только поднял VPS и хочешь защитить сервер - это именно то, что нужно. Если по какой-то причине у тебя ufw не установлен:
$ sudo apt install ufw
Перед включением стоит задать основные правила, иначе можно случайно отрезать себя от SSH-доступа (особенно на VPS). Начнем с самого важного:
$ sudo ufw allow ssh
Теперь можно активировать фаервол:
$ sudo ufw enable
Просмотр статуса и активных правил:
$ sudo ufw status verbose
Отключение при необходимости:
$ sudo ufw disable
Базовые правила, которые стоить задать
Одно правило по разрешению ssh-доступа мы уже добавили, также будет правильно разрешить веб-траффик (http/https):
$ sudo ufw allow 80,443/tcp
Полезно запретить весь входящий трафик по умолчанию и разрешить только нужное. Также оставить открытым все на выход:
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
Полезные команды:
Удалить правило:
$ sudo ufw delete allow 80/tcp
Разрешить доступ по конкретному IP:
$ sudo ufw allow from 192.168.1.10
Это может понадобиться, например, чтобы открыть порты для веб-траффика только Cloudflare или ServicePipe и закрыть для всего остального:
$ ufw default deny incoming
$ ufw default allow outgoing
# пердположим что 192.168.1.10 - IP нашего ServicePipe
$ sudo ufw allow from 192.168.1.10 to any port 22
Сбросить все правила и начать с нуля:
$ sudo ufw reset
После настройки рекомендую протестировать сервер из другого устройства или использовать онлайн-сервисы вроде portquiz или nmap для сканирования портов. Также полезно мониторить логи:
$ sudo less /var/log/ufw.log
Если ufw работает - ты увидишь записи о заблокированных соединениях, особенно на нестандартные порты. Даже минимальные настройки ufw — это уже огромный шаг вперёд в безопасности. Он не требует глубокого понимания iptables и легко вписывается в ежедневный рабочий процесс. Один раз настроил — и забыл.
LinuxCamp | #utils #devops