MAATRIX / Блог / Debian 12: настройка фаервола с нуля

Debian 12: настройка фаервола с нуля

Debian 12: настройка фаервола с нуля

MAATRIX

Свежий сервер в интернете за первые часы получает сотни попыток подключиться к его портам. Настройка фаервола на Debian 12 с нуля — первый рубеж обороны: вы решаете, какие двери в систему открыты, а какие наглухо закрыты. В минималистичном Debian удобная надстройка UFW не установлена по умолчанию, зато ставится одной командой. Разберём по шагам, как её поставить, задать безопасные правила, открыть только нужные порты и прикрыть SSH от автоматического перебора.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое UFW и зачем он нужен

UFW (Uncomplicated Firewall) — упрощённый интерфейс к межсетевому экрану ядра Linux. Под капотом всё равно работает netfilter/iptables, но вместо длинных неочевидных команд вы пишете короткие и читаемые: «разрешить порт», «запретить порт». Для администратора без глубокого опыта это огромная экономия времени и защита от ошибок, которые в «сыром» iptables допустить очень легко.

Зачем вообще фаервол, если можно просто не запускать лишние службы? Затем, что вы не всегда знаете, что именно слушает порты: пакеты приносят с собой сервисы, которые могут открыться наружу без вашего ведома. Фаервол ставит жёсткую границу: даже если служба запустилась и слушает порт, снаружи к ней не пробьются, пока вы явно не разрешите. Полезно сразу различать входящий и исходящий трафик. Входящие соединения инициирует кто-то снаружи — их мы жёстко ограничиваем. Исходящие инициирует сам сервер, идя за обновлениями, — их оставляем открытыми. Отсюда асимметричная политика: входящее запрещаем, исходящее разрешаем.

Устанавливаем UFW

В минимальном Debian UFW обычно нет, поэтому поставьте его:

apt install -y ufw

Это ещё одно проявление философии Debian — не тянуть в систему ничего лишнего, оставляя выбор администратору. После установки посмотрите текущее состояние:

sudo ufw status verbose

На свежем сервере фаервол неактивен (inactive) — значит, все порты открыты и защиты нет. Именно это мы исправим. Важно не спешить с включением: если сначала активировать фаервол с политикой «запретить всё», не разрешив SSH, вы мгновенно потеряете доступ к серверу. Поэтому порядок шагов строгий: сначала правила, потом включение.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Задаём политику по умолчанию

Правильная база для сервера — запретить всё входящее и разрешить всё исходящее:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Эти две команды задают фундамент. «Запрещено входящее» означает, что любое новое подключение снаружи отбрасывается по умолчанию, а дальше мы точечно проделываем нужные «окна». Такой подход надёжнее обратного, где вы открываете всё и пытаетесь запретить лишнее: перечислить всё опасное невозможно, а вот перечислить немногое нужное — легко. Это и есть принцип минимальной поверхности атаки.

Открываем нужные порты

Первым делом разрешите SSH, иначе следующий шаг отрежет вам доступ:

sudo ufw allow OpenSSH

OpenSSH — готовый профиль, открывающий стандартный порт 22. Если вы перенесли SSH на нестандартный порт, откройте его явно, например sudo ufw allow 2222/tcp. Для веб-сервера добавьте порты HTTP и HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Список готовых профилей приложений показывает команда sudo ufw app list. Использовать их удобнее, чем помнить номера портов. Отдельно стоит упомянуть открытие портов только для доверенных адресов: если база данных должна быть доступна лишь с одного вашего IP, ограничьте правило источником — sudo ufw allow from 203.0.113.10 to any port 3306. Это безопаснее, чем открывать служебные порты всему миру. Общее правило: чем уже область действия разрешения, тем меньше риск.

Важно осознанно решать, какие порты должны быть публичными, а какие — нет. Веб-порты 80 и 443 по своей природе публичны: сайт должен открываться у кого угодно, поэтому их закрывают только на время технических работ. А вот служебные порты — базы данных, панелей администрирования, кэширующих серверов, отладочных интерфейсов — наружу открывать не нужно почти никогда. К ним обращаются либо процессы на самом сервере (через локальный адрес, который вообще не виден извне), либо вы сами с известного адреса. Частая и опасная ошибка новичков — открыть порт базы данных всему миру ради удобства подключения с ноутбука, и такую базу боты находят и атакуют в считанные часы. Правильный путь — либо подключаться к служебным портам через SSH-туннель, либо разрешать их только конкретному доверенному адресу. Держа это различие в голове, вы не превратите фаервол в решето из благих намерений.

Защищаем SSH от перебора

Даже с ключами боты будут долбиться в 22-й порт тысячами попыток. UFW умеет ограничивать частоту подключений:

sudo ufw limit OpenSSH

Эта команда заменяет обычное разрешение для SSH на «разрешить с ограничением частоты»: если с одного адреса приходит слишком много новых соединений за короткое время, они временно блокируются. Она резко снижает эффективность перебора, не мешая вам заходить на сервер. Для более серьёзной защиты дополните её пакетом fail2ban, который банит адреса после нескольких неудачных попыток, — но ufw limit уже даёт заметный эффект и включается одной строкой.

Стоит понимать, что фаервол и защита от перебора решают разные задачи и не заменяют друг друга. Фаервол определяет, к каким портам вообще можно подключиться извне, — это грубая, но надёжная граница. Ограничение частоты и fail2ban работают уже внутри разрешённого порта: SSH-то открыт для всех, потому что вам нужно на него заходить, и вот на этом открытом порту они отсекают тех, кто ведёт себя как бот. Получается многослойная оборона: фаервол закрывает всё лишнее, а на немногих оставшихся открытыми портах частотные ограничения и fail2ban фильтруют злоупотребления. Ни один слой по отдельности не идеален, но вместе они превращают сервер в неудобную мишень для автоматических атак, которых в интернете подавляющее большинство.

Включаем фаервол, логи и обслуживание

Когда правила заданы, включайте фаервол:

sudo ufw enable

Система предупредит, что операция может разорвать текущие SSH-соединения, но раз SSH уже разрешён, соединение сохранится. Сразу проверьте итог командой sudo ufw status verbose — в списке должны быть только осознанно открытые порты. Чтобы видеть попытки достучаться до закрытых портов, включите логирование командой sudo ufw logging on — записи пойдут в /var/log/ufw.log. Со временем правила стоит пересматривать: закрыли проект — уберите его порт командой sudo ufw delete allow <порт>, добавили сервис — откройте только его. Раз в пару месяцев смотрите ufw status и спрашивайте себя, нужен ли ещё каждый открытый порт. Фаервол, за которым следят, остаётся тонкой границей, а не свалкой забытых разрешений.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Почему UFW нет в Debian сразу?

Debian принципиально минималистичен и не ставит лишнего. UFW доустанавливается одной командой apt install ufw, после чего работает так же, как в других дистрибутивах.

UFW заменяет iptables полностью?

Нет, UFW — удобная надстройка, а работает всё равно iptables/netfilter в ядре. Для типовых задач UFW достаточно, сложные правила при необходимости добавляют напрямую.

Я включил фаервол и потерял доступ по SSH — что делать?

Зайдите через веб-консоль (VNC) в панели управления сервером, выполните sudo ufw allow OpenSSH и проверьте статус.

Как оплатить VPS на Debian из России?

У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.