Брандмауэр UFW
Брандмауэры, они же фаерволы, они же межсетевые экраны – это программы для фильтрации сетевого трафика. Брандмауэр регулирует, какие приложения могут получать данные извне через порт, сетевой интерфейс или в зависимости от IP источника, а какие – нет. Благодаря этому создается дополнительная защита, что важно для серверов.
UFW (uncomplicated firewall – несложный фаервол) на самом деле не брандмауэр, а интерфейс к IPTables. В свою очередь, утилиту iptables
также часто называют брандмауэром, хотя она является интерфейсом управления к Netfilter.
Netfilter – это межсетевой экран Linux, настраиваемый через iptables
. Настраивать правила фильтрации трафика через iptables
относительно сложно, поэтому используют утилиту ufw
, которая позволяет упростить процесс настройки.
Обычно в linux-системах ufw устанавливается по-умолчанию, а на VPS его обычно включает и первоначально настраивает хостер. По умолчанию же ufw выключен.
Некоторые программы, принимающие по сети данные, прописывают в ufw свои так называемые профили. Зарегистрированными таким образом сервисами можно управлять, обращаясь к ним по именам. Профили содержатся в каталоге /etc/ufw/applications.d/:
Чтобы посмотреть список зарегистрированных профилей, используется команда ufw app list
:
Если файла приложения нет в /etc/ufw/applications.d/, это не значит, что оно не может получать данные по сети. Чтобы увидеть список всех программ, способных это делать, используется команда ufw status
:
В примере трафик, приходящий по протоколу SSH, разрешен, так как OpenSSH находится в статусе ALLOW (позволять). Когда стоит DENY (отвергать), разрешить сервису получать данные можно командой ufw allow имя_сервиса
. Например, ufw allow OpenSSH
.
Если приложение не имеет профиля в /etc/ufw/applications.d/, то можно указать номер порта, которым пользуется соответствующее приложение или его имя. В случае протокола SSH команды могут быть такими:
ufw allow ssh
или
ufw allow 22
В дальнейшем, при установке веб-сервера Apache или любого другого, трафик через него надо будет разрешить в ufw. Свой профиль Apache регистрирует самостоятельно.
Если изначально брандмауэр выключен, то есть команда ufw status
возвращает Status: inactive
, следует выполнить такую серию команд:
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable
Параметр enable
переводит ufw в активный статус. Если потребуется выключить, используется disable
. Вместо команды sudo ufw allow ssh
лучше включать по имени профиля: sudo ufw allow 'OpenSSH'
.