UFW (Uncomplicated Firewall) — стандартная утилита для конфигурирования межсетевого экрана iptables для ОС Ubuntu Linux. Она использует интерфейс командной строки, состоящий из небольшого числа простых команд. UFW — это удобный способ создания базового брандмауэра IPv4 или IPv6, чтобы защитить сервер.
Блокировка определенных IP адресов через ufw
Синтаксис:
sudo ufw deny from {ip-address-here} to any
Для блокировки или закрытия всех пакетов с 192.168.1.5, вводим:
sudo ufw deny from 192.168.1.5 to any
Показываем статус фаервола включая правила. Для проверки недавно добавленных правил, вводим:
$ sudo ufw status numbered
или
$ sudo ufw status
Блокировка определенных IP и номера порта через ufw
Синтаксис:
ufw deny from {ip-address-here} to any port {port-number-here}
Для блокировки или закрытия «спамерских» IP адресов 202.54.1.5 порта 80, вводим:
sudo ufw deny from 202.54.1.5 to any port 80
Заново проверяем посредством следующей команды:
$ sudo ufw status numbered
Результат:
Закрытие определенных IP, номеров портов и протоколов через ufw
Синтаксис:
sudo ufw deny proto {tcp|udp} from {ip-address-here} to any port {port-number-here}
Для примера блокировка вредоносных IP адресов 202.54.1.1 tcp порта 22, вводим:
$ sudo ufw deny proto tcp from 202.54.1.1 to any port 22
$ sudo ufw status numbered
Блокировка подсети через ufw. Синтаксис тот же:
$ sudo ufw deny proto tcp from sub/net to any port 22
$ sudo ufw deny proto tcp from 202.54.1.0/24 to any port 22
Как удалить блокировку и разблокировать IP адресов
Ситаксис:
$ sudo ufw status numbered
$ sudo ufw delete NUM
Для удаления правила # 4, вводим:
$ sudo ufw delete 4
Результат:
deny from 202.54.1.5 to any port 80
Proceed with operation (y|n)? y
Rule deleted
Подсказка: UFW, НЕ блокирующий IP-адрес
Чтобы избежать лишних проблем с ненужной блокировкой, необходимо изменить the/etc/ufw/before.rules файл и добавить раздел “Block an IP Address” после “# End required lines”.
$ sudo vi /etc/ufw/before.rules
# End required lines
Добавьте свое правило для блока от спама или хакеров:
Сохраните и закройте файл. И — перезагрузите брандмауэр:
$ sudo ufw reload
Комментарии (17)
NTP
31.03.2016 12:14+6Имхо, тэг Серверное администрирование* здесь неуместен от слова "совсем". На серверах настраиваются iptables с кучей разных плюшек и приколов, которых вообще нет в ufw.
HostingManager
31.03.2016 13:05-5Будем признательны, если Вы напишите статью об этом и пришлете её нам (либо опубликуете от своего имени в нашем блоге) — мы с радостью опубликуем это дополнение и даже можем обсудить вознаграждение за Ваш труд.
Наши клиенты — не все профессиональные администраторы и для многих даже эта публикация — "системное администрирование".
Помимо прочего на Хабре реально не хватает материалов для "чайников", которые многим начинающим веб-мастерам были бы полезны (именно веб-мастерам, а не только системным администраторам, хотя администраторы — также разных познаний и опыта бывают). Именно в этом наша задача, давать возможность нашим клиентам осваивать какие-то азы просто, а не писать монографии для системных администраторов с многолетним опытом.ibKpoxa
31.03.2016 13:39+6Ваша задача понятна, пропиарить свои услуги или свою компанию, не больше и не меньше, благодаря подобным статьям на хабре всё больше и больше статей, которые не интересны, просто поиск по слову iptables на хабре даёт очень много материала, как для опытных, так и для начинающих. К сожалению на хабре нет возможности забанить все статьи в определенном блоге, если они одновременно в разных разделах, приходится, а то я думаю многие бы уже забанили ваш блог, несмотря на то, что я не имею ничего против вашей компании, но сумма пользы от постов, которые публикуются в вашем блоге, около нуля, полезные нивелируются бесполезными и только зря отвлекающими время и внимание.
Mystray
03.04.2016 17:43Это и есть обвязка к iptables. Аналогично и shorewall, и firewalld.
Далеко не всегда на серверах нужны «кучи плюшек», во многих случаях хватает открыть четыре порта и related,established на вход.
thunderspb
31.03.2016 12:51+3из таких надстроек мне ferm (http://ferm.foo-projects.org/) больше нравится
ValdikSS
31.03.2016 14:40Почему-то о нем очень мало упоминаний, хотя ferm просто замечательный. Он очень простой и крайне удобный, позволяет делать все то, что можно сделать через iptables, ip6tables и ebtables удобно, ничего не скрывая, зато добавляет циклы, переменные, списки, которых очень не хватает в *tables.
С ferm не будет такого, что временно добавленные правила забыли сохранить, и после перезагрузки у нас в файрволле не то, что ожидалось, и приходится разгребать все это, смотреть в зачастую не самый понятный вывод iptables -vnL.
foxmuldercp
31.03.2016 15:00Тот случай, когда комментарий полезней статьи. Надо поискать, есть ли ферма под CentOS.
Но вообще, с админскими масштабами где количество хостов 10+ а количество виртуалок за полсотни, разве что ansible'ом фаерволы раздавать, или chef/puppet'амиthunderspb
31.03.2016 19:24Есть в EPEL репах. А с CM тулами — иногда проще iptables рулить, иногда темплейтами того же ferm'a… Тут уж кому что. В принципе пару статей на хабре есть, в общем и целом особо там разжевывать нечего :) Из вкусностей там еще можно писать что-то похожее на функции.
grossws
01.04.2016 04:22Использовали такой подход, но с классическим подходом (ipstable-save/iptables-restore) работать крайне неприятно: сбрасываются активные соединения, динамически добавленные цепочки (типа докеровской или fail2ban'овской).
В rhel/centos 7 есть firewalld, который вполне разумен с точки зрения юзабилити. Внизу, естественно, используется iptables. Что хорошо — он имеет так называемые direct правила, позволяющие использовать iptables, когда стандартного интерфейса не хватает. Ну и прописывание правил с таймаутом — тоже прекрасная вещь.
ChALkeRx
03.04.2016 17:43+1Эээ, что это? «Вредоносные IP адреса»? Инструкция как позвать «ufw deny»? Перевод двух строчек из «man ufw»?
Серьёзно, такая статья может пригодиться в ЧаВо вашего провайдера в разделе справки, для тех, кто ищет информацию именно там. А что тут нового и интересного для местного сообщества — не совсем понимаю.
lolipop
Хабр, что с тобой? Вчера статья, про то, как посмотреть список файлов в директории, сегодня — как добавить ip-адрес в iptables.
kt315
Да этот хостинг провайдер постоянно фигню постить умудряется. Страшно представить какие там люди работают, если для них это открытие %)
На днях было про то, как обновить Debian 8.2 к версии 8.3
*facepalm*