UFW
Подготовка к работе с UFW
Для начала работы с UFW нужен пользователь, у которого есть права на исполнение команд под sudo.
Установить UFW можно командой:
sudo apt install ufw
Проверка состояния
Проверить состояние UFW в любой момент можно с помощью команды:
sudo ufw status verbose
По умолчанию UFW отключен:
Status: inactive
Если UFW включен, то в консоли будут перечисляться заданные правила.
Пример
Например, настроено SSH (порт 22) соединение из любой точки мира:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
Рекомендуем провести начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт), чтобы не потерять доступ к серверу.
Начальная настройка
По умолчанию UFW-настройки запрещают все входящие соединения и разрешают все исходящие.
Это значит, что если кто-то попытается получить доступ к серверу, он не сможет подключиться, в то время как любое приложение на сервере имеет доступ к внешним соединениям.
Cоответствующие прави ла файрвола прописываются так:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Добавление правила для SSH-соединений
Чтобы разрешить входящие SSH-соединения, нужно выполнить команду:
sudo ufw allow ssh
SSH демон прослушивает 22 порт. UFW знает об именах распространенных служб (ssh, sftp, http, https), поэтому их можно использовать вместо номера порта.
Если SSH-демон использует другой порт, необходимо указать его в явном виде, например:
sudo ufw allow 2222
Когда межсетевой экран настроен, можно включать его.
Запуск UFW
Чтобы включить UFW, нужно ввести команду:
sudo ufw enable
Будет примерное предупреждение:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Это означает, что запуск этого сервиса может разорвать текущее ssh соединение. Но если ssh добавлен в правила, этого не произойдет и тогда можно согласиться — (y).
Добавление правил для других подключений
Чтобы приложения работали корректно, необходимо добавить другие правила.
HTTP (80 порт) для работы незашифрованных веб-серверов:
sudo ufw allow http
sudo ufw allow 80
HTTPS (443 порт) для зашифрованных соединений:
sudo ufw allow https
sudo ufw allow 443
FTP (21 порт) для незашифрованной передачи файлов:
sudo ufw allow 21/tcp
sudo ufw allow ftp
Добавление диапазонов портов:
sudo ufw allow 3000:3100
sudo ufw allow 3000:3100/tcp
— с указанием протокола tcpsudo ufw allow 3000:3100/udp
— с указанием протокола upd
Добавление IP-адресов
В этом примере указанному адресу разрешается доступ ко всем портам сервера:
sudo ufw allow from 123.45.67.89
Если нужен доступ к конкретному порту:
sudo ufw allow from 123.45.67.89 to any port 22
Аналогично с диапазонами IP-адресов:
sudo ufw allow from 123.45.67.89/24
sudo ufw allow from 123.45.67.89/24 to any port 22
Ограничение подключений
Запретить HTTP-соединения можно командой:
sudo ufw deny http
Можно запретить все соединения с конкретным IP-адресом:
sudo ufw deny from 123.45.67.89
Удаление правил
Существует два способа удаления правил:
- по номеру правила
- с указанием фактического правила
По номеру пр авила
По фактическому правилу
Чтобы узнать номер нужного правила, есть команда:
sudo ufw status numbered
Пример ответа
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN Anywhere
[ 2] 80 ALLOW IN Anywhere
[ 3] 22 (v6) ALLOW IN Anywhere (v6)
[ 4] 80 (v6) ALLOW IN Anywhere (v6)
Далее нужно выполнить команду ufw delete
с указанием номера правила, которое следует удалить:
sudo ufw delete 2
Этот способ заключается в том, что после команды ufw delete
используется фактическое правило, например:
sudo ufw delete allow http
sudo ufw delete allow 80
Отключение UFW и сброс правил
Отключить UFW можно командой:
sudo ufw disable
В результате ее выполнения все созданные ранее правила утратят силу.
Если требуется сбросить текущие настройки, есть команда:
sudo ufw reset
В результате ее выполнения все правила будут отключены и удалены.
Логи
В UFW есть опция сохранения логов — журнал событий. Команда запуска:
sudo ufw logging on
UFW поддерживает несколько уровней логирования:
- off: отключен
- low: регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам
- medium: low, плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения, все записи ведутся с ограничением скорости
- high: medium, плюс все пакеты с ограничением скорости
- full: high, но без ограниения скорости
Чтобы задать уровень, нужно указать его как параметр:
sudo ufw logging high
По умолчанию используется уровень low.
Для просмотра файлов относящихся с логам UFW используйте команду:
ls /var/log/ufw