Поиск по сайту:

Как защитить свой сервер Linux с помощью брандмауэра UFW


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

Настройка УФВ

UFW установлен по умолчанию в Ubuntu, но если это не так, вы можете установить его из apt:

sudo apt-get install ufw

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

sudo ufw status

Что должно сказать «Неактивно», если вы не настроили его раньше.

Хороший способ начать работу с любым брандмауэром — закрыть весь входящий трафик и разрешить исходящий. Не волнуйтесь, это не приведет к немедленному отключению вашего SSH-соединения, так как брандмауэр еще не включен.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Это дает нам чистый лист для работы и добавления правил поверх него.

Открытие портов с помощью UFW

Чтобы открыть порты, используйте команду ufw allow. Например, вам нужно открыть порт 22, так что вперед и запустите:

sudo ufw allow 22

Вы также можете оставить заметку для себя в будущем при добавлении любого правила:

sudo ufw allow 8080/tcp comment 'Open port for Express API'

Многие приложения устанавливают профили для UFW, одним из которых является SSH. Таким образом, вы также можете разрешить определенным приложениям открывать нужные им порты, указав имя:

sudo ufw allow ssh

Вы можете просмотреть список доступных приложений с помощью списка приложений ufw и просмотреть сведения о приложении с помощью информации о приложении ufw [имя].

Вы также можете разрешить целый диапазон портов, используя двоеточие в качестве разделителя, и вы можете указать протокол. Например, чтобы разрешить только TCP-трафик на портах с 3000 по 3100, вы можете запустить:

sudo ufw allow 3000:3100/tcp

Поскольку по умолчанию установлен запрет на входящие, вам не придется вручную закрывать какие-либо порты. Если вы хотите закрыть исходящий порт, вам нужно будет указать направление вместе с ufw reject:

sudo ufw reject out 3001

Внесение в белый список и ограничение скорости с помощью UFW

Вы можете разрешить определенным IP-адресам иметь разные разрешения. Например, чтобы разрешить весь трафик с вашего IP-адреса, вы можете запустить:

sudo ufw allow 192.168.1.1

Чтобы внести в белый список определенные порты, вам придется использовать более полный синтаксис:

sudo ufw allow proto tcp from 192.168.1.1 to any port 22

Скорее всего, вы не захотите заносить в белый список доступ по SSH таким образом, если у вас нет резервного соединения или какой-либо настройки перехвата портов, поскольку IP-адреса меняются довольно часто. Один из вариантов, если вы хотите ограничить доступ по SSH только вам, — настроить сервер OpenVPN в том же частном облаке и внести в белый список доступ к этому серверу.

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

sudo ufw allow 192.168.0.0/24

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

Ограничение скорости — еще одна полезная функция брандмауэров, которая может блокировать соединения, которые явно неправомерны. Это используется для защиты от злоумышленника, пытающегося взломать открытый порт SSH. Очевидно, вы можете добавить порт в белый список, чтобы защитить его полностью, но ограничение скорости в любом случае полезно. По умолчанию скорость UFW ограничивает 6 подключений за 30 секунд и предназначена для использования с SSH:

sudo ufw limit ssh

Включите UFW

После того, как вы закончите настройку правил, вы можете включить UFW. Убедитесь, что SSH на порту 22 открыт, иначе вы заблокируете себя. Если вы хотите, вы можете отключить запуск UFW при загрузке, чтобы сброс устранил любые потенциальные проблемы:

sudo systemctl disable ufw

Затем вы можете включить UFW с помощью:

sudo ufw enable

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

sudo systemctl enable ufw

Каждый раз, когда вы вносите изменения, вам нужно будет перезагрузить брандмауэр с помощью:

sudo ufw reload

Вы также можете включить ведение журнала, чтобы регистрировать подключения к /var/log/:

sudo ufw logging on

Управление и удаление правил

Если вы хотите удалить правило, вам нужно будет получить его номер с помощью:

sudo ufw status numbered

Обратите внимание, что номера начинаются с 1, а не с 0. Вы можете удалить правило по номеру:

sudo ufw delete [number]

Опять же, убедитесь, что вы не удалили правило, оставив порт 22 открытым. Вы можете использовать параметр --dry-run , чтобы UFW запрашивал у вас подтверждение:

Если вы внесете какие-либо изменения, вам нужно будет снова перезагрузить брандмауэр.