Miklix

Как настроить брандмауэр на сервере Ubuntu

Опубликовано: 15 февраля 2025 г. в 21:34:21 UTC

В этой статье объясняется и приводятся некоторые примеры того, как настроить брандмауэр в GNU/Linux с помощью UFW (сокращение от Uncomplicated FireWall), и название вполне подходящее: это действительно очень простой способ убедиться, что у вас не открыто больше портов, чем нужно.


Эта страница была переведена с английского языка для того, чтобы сделать ее доступной как можно большему числу людей. К сожалению, машинный перевод еще не является совершенной технологией, поэтому возможны ошибки. Если вы хотите, вы можете просмотреть оригинальную английскую версию здесь:

How to Set Up a Firewall on Ubuntu Server

Информация в этом посте основана на Ubuntu Server 14.04 x64. Она может быть или не быть действительной для других версий. (Обновление: я могу подтвердить, что информация в этом посте в основном все еще действительна и функциональна по состоянию на Ubuntu Server 24.04, однако за промежуточные 10 лет ufw стал несколько «умнее», имея профили для общих серверных приложений (например, вы можете включить «Nginx full» вместо портов 80 и 443 по отдельности), и отключение/включение всего брандмауэра для применения новых правил больше не требуется)

Когда я впервые начал работать с серверами GNU/Linux (Ubuntu), настройка брандмауэра включала в себя ручное создание и поддержку потенциально сложного файла конфигурации для iptables. Однако недавно я обнаружил ufw , что является сокращением от Uncomplicated Firewall – и это действительно так :-)

В моей установке Ubuntu Server 14.04 уже установлен UFW, но если у вас его нет, просто установите его из репозиториев:

sudo apt-get install ufw

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

Если ваш сервер настроен с IPv6, а также IPv4, убедитесь, что он также включен для UFW. Отредактируйте файл /etc/default/ufw и найдите строку IPV6=yes . В моей установке она уже была там, но если ее нет или она говорит no, вам следует ее отредактировать

Затем просто используйте командную строку, чтобы включить порты, которые вы хотите открыть. Если вы подключены к серверу через ssh, убедитесь, что вы также разрешили это, иначе это может нарушить ваше соединение и, возможно, заблокировать вас от вашего сервера, когда вы его активируете – в зависимости от того, есть ли у вас физический доступ к серверу или нет, это может быть довольно неудобно ;-)

Например, если вы используете ssh на стандартном порту 22 и настраиваете веб-сервер, который поддерживает как незашифрованные (HTTP на порту 80), так и зашифрованные (HTTPS на порту 443) соединения, вам нужно выполнить следующие команды для настройки UFW:

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

Если вам нужно больше правил, просто добавьте их, как указано выше.

Если у вас статический IP-адрес и вам нужно иметь возможность подключаться по SSH только из одного местоположения, вы также можете ограничить SSH-подключения одним исходным адресом, например:

sudo ufw allow from 192.168.0.1 to any port 22

Конечно, вместо этого введите свой собственный IP-адрес.

После завершения включите UFW, введя:

sudo ufw enable

И все готово! Брандмауэр запущен и автоматически запустится, когда вы перезагрузите сервер :-)

Если вы вносите изменения в конфигурацию UFW, вам может потребоваться отключить и снова включить его, чтобы изменения вступили в силу, например:

sudo ufw disable
sudo ufw enable

Чтобы просмотреть текущую конфигурацию, просто введите:

sudo ufw status

Если UFW не включен, будет просто показано сообщение «неактивно», в противном случае будут выведены списки определенных в данный момент правил.

Поделиться на BlueskyПоделиться на FacebookПоделиться на LinkedInПоделиться на TumblrПоделиться на XПоделиться на LinkedInЗакрепить на Pinterest

Миккель Банг Кристенсен

Об авторе

Миккель Банг Кристенсен
Миккель - создатель и владелец сайта miklix.com. Он имеет более чем 20-летний опыт работы в качестве профессионального программиста/разработчика программного обеспечения и в настоящее время работает на полную ставку в крупной европейской IT-корпорации. Когда он не ведет блог, то тратит свое свободное время на огромное количество интересов, хобби и занятий, что в некоторой степени отражается в разнообразии тем, освещаемых на этом сайте.