UFW (Uncomplicated Firewall) является интерфейсом для команды iptables/nftables и особенно хорошо подходит для брандмауэров на базе одного сервера или хоста. Это инструмент настройки брандмауэра по умолчанию в Ubuntu Linux. UFW разработан для начинающих системных администраторов с учетом простоты использования. Это удобный способ создания брандмауэра на основе IPv4 или IPv6 для защиты сервера. Давайте посмотрим, как заблокировать IP-адрес с помощью ufw на сервере Ubuntu.
ufw блокировать определенный IP-адрес
Синтаксис следующий:
1 | sudo ufw deny from [ip-address] to any |
Чтобы заблокировать или запретить все пакеты с адреса 192.168.1.10, введите:
1 | sudo ufw deny from 192.168.1.10 to any |
Блокирование IP-адреса ufw
Вместо правила deny мы можем отклонить соединение с любого IP следующим образом:
1 | sudo ufw reject from [ip-address] to any |
Вы используете reject, когда хотите, чтобы другой конец (атакующий) знал, что порт или IP недостижим. Однако мы используем deny для соединений с атакующими (хостами), которые вы не хотите, чтобы люди вообще видели. Другими словами, reject посылает ответ отклонения источнику, а deny (DROP) цели вообще ничего не посылает.
Показать состояние брандмауэра, включая ваши правила
Проверьте недавно добавленные правила, введите:
1 | sudo ufw status numbered |
ИЛИ
1 | sudo ufw status |
ufw блокировать определенный IP-адрес и номер порта
Синтаксис следующий:
1 | sudo ufw deny from [ip-address] to any port [port-number] |
Чтобы заблокировать или запретить спамерам IP-адрес 105.54.1.5 на порт 80, введите:
1 | sudo ufw deny from 105.54.1.5 to any port 80 |
Проверьте еще раз с помощью следующей команды:
1 | sudo ufw status numbered |
ufw запретить определенный IP-адрес, номер порта и протокол
Если вам нужно заблокировать IP-адрес, номер порта и протокол, синтаксис выглядит следующим образом:
1 | sudo ufw deny proto [tcp|udp] from [ip-address] to any port [port-number] |
Например, заблокируйте хакеру IP-адрес 101.45.1.1 для tcp-порта 22, введите:
1 | sudo ufw deny proto tcp from 101.45.1.1 to any port 22 |
Проверьте с помощью следующей команды:
1 | sudo ufw status numbered |
ufw блокировать подсеть (CIDR)
Подсеть (также известная как "подсеть") - это логическое подразделение IP-сети. Подсеть - это практика разделения сети на две или более сетей. Префикс маршрутизации может быть выражен в нотации Classless Inter-Domain Routing (CIDR).
Синтаксис команды ufw следующий:
1 | sudo ufw deny proto tcp from [sub/net] to any port 22 |
Пример
1 | sudo ufw deny proto tcp from 10.54.1.0/24 to any port 22 |
Как удалить заблокированный IP-адрес или снова разблокировать IP-адрес?
Синтаксис следующий:
1 | sudo ufw delete [NUM] |
Где [NUM] - номер правила в UFW. Который мы можем получит ьс помощью следующей команды
1 | sudo ufw status numbered |
Чтобы удалить правило номер # 2, введите:
1 | sudo ufw delete 2 |
Пример вывода:
UFW НЕ блокирует IP-адрес
Правила UFW (iptables) применяются в порядке появления, и проверка заканчивается сразу же при обнаружении совпадения. Поэтому, например, если правило разрешает доступ к порту tcp 22 (скажем, с помощью sudo ufw allow 22), а затем указывается другое правило, блокирующее IP-адрес (скажем, с помощью ufw deny proto tcp from 202.54.1.1 to any port 22), то правило для доступа к порту 22 применяется, а более позднее правило для блокирования IP-адреса хакера 202.54.1.1 - нет. Все дело в порядке. Чтобы избежать такой проблемы, необходимо отредактировать файл /etc/ufw/before.rules и добавить секцию "Блокировать IP-адрес" после секции "# End required lines".
1 | sudo nano /etc/ufw/before.rules |
Найдите строку следующего содержания:
# End required lines
Добавьте ваше правило для блокировки :
1 2 3 4 | # Блокировать IP -A ufw-before-input -s 10.137.80.191 -j DROP # Блокировать ip/net (подсеть) -A ufw-before-input -s 10.54.1.0/24 -j DROP |
Сохраните и закройте файл. Наконец, перезагрузите брандмауэр:
1 | sudo ufw reload |
Мы можем пропустить весь процесс и использовать следующий простой синтаксис:
1 | sudo ufw insert 1 deny from [IP-Address] |
К примеру
1 | sudo ufw insert 1 deny from 17.137.80.191 comment 'block ' |
1 | sudo ufw insert 1 deny from 20.54.1.0/24 comment 'Block subnet' |
Заключение
Мы узнали, как блокировать IP-адрес или подсеть сети/CIDR (Classless Inter-Domain Routing) с помощью брандмауэра на базе ufw, чтобы защитить наш сервер.