Что такое UFW
UFW или Uncomplicated Firewall — это приложение для управления брандмауэром на основе iptables в Ubuntu. UFW — это инструмент настройки брандмауэра по умолчанию для Ubuntu Linux, который предоставляет удобный способ настройки брандмауэра. Команда UFW такая же, как и английская, поэтому команды легко запомнить. Брандмауэр UFW поддерживает IPv4 и IPv6.
Как установить UFW
По умолчанию UFW уже должен быть установлен на Ubuntu 20.04. Вы можете проверить это с помощью команды:
which ufw
Как видим, у нас уже установлен UFW. Но если у вас он каким то образом отсутствует, вы можете установить его командой ниже:
apt install ufw
Затем выполните следующую команду, чтобы включить UFW:
ufw enable
Вы можете посмотреть выше, он включился, также будет доступен после перезагрузки ОС.
Основные команды в UFW
Команда «ufw enable» включит UFW с правилами по умолчанию. Вы можете убедиться, что UFW работает, введя эту команду:
Если вы хотите отключить UFW, вы можете использовать команду:
ufw disable
Получим такой ответ:
Видим что UFW остановлен и выключен.
Как добавить UFW правило
UFW будет запрещать все входящие соединения после того, как вы его включите. Итак, первое, что вам нужно сделать, это разрешить SSH-доступ к серверу, если вы хотите управлять системой удаленно. Команда «ufw allow sshport» разрешает доступ по SSH, замените SSHPORT на порт службы SSH, порт SSH по умолчанию — 22.
ufw allow 22
И получаем такой результат:
root@firstbyte:~# ufw allow 22 Rule added Rule added (v6)
Если вы хотите разрешить входящие соединения через порт 22 только для TCP, добавьте в конце команды «/tcp», как показано в следующем примере:
ufw allow 22/tcp
Когда служба, к которой вы хотите разрешить доступ, прослушивает свой порт по умолчанию, вы можете использовать имя службы вместо номера порта. Это упрощает открытие порта, поскольку вы можете не знать его. UFW найдет для вас правильный номер порта в /etc/services.
Эта команда откроет порт SSH по умолчанию:
ufw allow ssh
Теперь проверьте правило с помощью:
ufw status
Мы получим такой результат как указано выше.
Запретное правило в UFW
Команда «deny» работает аналогично команде «allow» и используется для закрытия порта в брандмауэре:
Запретить порт можно так:
ufw deny 80
Получаем такое результат:
Пример для «deny» с именем службы. В этом примере мы заблокируем http порт/80:
ufw deny http
Важно:
Все порты и имена их служб перечислены в файле «/etc/services».
Расширенные команды UFW
Теперь мы углубимся в синтаксис команды UFW, узнаем, как разрешить часть диапазонов (например, для пассивных портов FTP) и доступ только с одного IP-адреса или подсети.
- Разрешить диапазон портов
Вы можете разрешить диапазон портов в UFW. Некоторые службы, такие как FTP или IRC, используют ряд портов для связи со своими клиентами.
В этом примере мы разрешим диапазон портов от 6660 до 6670:
ufw allow 6660:6670/tcp ufw allow 6660:6670/udp
Команда разрешит подключения к портам 6660-6670 по протоколам TCP и UDP.
- Разрешить определенный IP-адрес
Вы можете добавить определенный IP-адрес, чтобы разрешить доступ ко всем службам, добавив опцию «from». Это например полезно, если у вас есть статический IP-адрес дома или в офисе и вы хотите разрешить оттуда доступ ко всем службам на вашем сервере. Команда ниже позволит IP 10.10.10.10 получить доступ ко всем портам на сервере:
ufw allow from 10.10.10.10
- Разрешить подсеть
Если вы хотите разрешить все IP-адреса в вашей подсети, вы можете добавить IP-подсеть (диапазон IP-адресов) в команду UFW следующим образом:
ufw allow from 10.10.10.0/24
Результат:
WARN: Rule changed after normalization
Rule added
- Разрешить доступ с определенного IP-адреса к одному порту
Если вы хотите разрешать доступ к одному порту только с определенного IP-адреса, вы можете комбинировать команды UFW, которые мы изучили выше.
Например, только IP-адрес 10.10.10.10 может получить доступ к SSH-порту 22 TCP, а другие IP-адреса будут отклонены с этого порта, вы можете использовать следующую команду:
ufw allow from 10.10.10.10 proto tcp to any port 22
Результат:
Rule added
- Разрешить весь входящий трафик на определенный порт
Если вы хотите разрешить весь трафик через порт 80, вы можете использовать эту команду:
ufw allow to any port 80
Удаление правила UFW
В этом разделе вы узнаете, как удалить правило, сохраненное в UFW. Вы можете использовать команду «delete», чтобы удалить правило ufw. Пожалуйста, введите команду «ufw delete», а затем выберите вариант, который вы хотите удалить, разрешить или запретить.
Вот некоторые примеры:
Удаление разрешающего SSH-правила с именем службы:
ufw delete allow ssh
Результат:
Rule deleted
Rule deleted (v6)
Эта команда удалит правило «allow ssh». Будьте осторожны, не блокируйте себя от сервера!
Удалите правило «deny» на порту 80:
ufw delete deny 80
Результат:
Rule deleted Rule deleted (v6)
Если у вас есть сложное правило, есть простой способ идентифицировать и удалить правило по его идентификатору правила. Выполните следующую команду, чтобы получить список всех правил с их идентификаторами:
ufw status numbered
Теперь удалите правило SSH для IPv6 только по номеру правила:
ufw delete 9
Результат:
Deleting:
allow 22/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)
Отключить и сбросить настройки UFW
Если вы хотите отключить UFW, не удаляя свои правила, вы можете использовать команду «disable»:
ufw disable
Результат:
Firewall stopped and disabled on system startup
Если вы хотите полностью отключить UFW и удалить все правила, вы можете использовать команду «reset»:
ufw reset
Результат:
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20230426_231930'
Backing up 'before.rules' to '/etc/ufw/before.rules.20230426_231930'
Backing up 'after.rules' to '/etc/ufw/after.rules.20230426_231930'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20230426_231930'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20230426_231930'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20230426_231930'
Заключение
UFW (Uncomplicated Firewall) — это инструмент настройки брандмауэра по умолчанию в Ubuntu. Этот учебник UFW представляет собой руководство по началу работы с этим прекрасным инструментом брандмауэра. Если вы хотите узнать больше о UFW, вы можете перейти на вики Ubuntu или на ufw-manpage.