В статье описано, как заблокировать конкретные IP адреса через ufw.

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)


  1. lolipop
    31.03.2016 12:11
    +10

    Хабр, что с тобой? Вчера статья, про то, как посмотреть список файлов в директории, сегодня — как добавить ip-адрес в iptables.


    1. kt315
      01.04.2016 14:13
      +1

      Да этот хостинг провайдер постоянно фигню постить умудряется. Страшно представить какие там люди работают, если для них это открытие %)
      На днях было про то, как обновить Debian 8.2 к версии 8.3
      *facepalm*


  1. NTP
    31.03.2016 12:14
    +6

    Имхо, тэг Серверное администрирование* здесь неуместен от слова "совсем". На серверах настраиваются iptables с кучей разных плюшек и приколов, которых вообще нет в ufw.


    1. HostingManager
      31.03.2016 13:05
      -5

      Будем признательны, если Вы напишите статью об этом и пришлете её нам (либо опубликуете от своего имени в нашем блоге) — мы с радостью опубликуем это дополнение и даже можем обсудить вознаграждение за Ваш труд.
      Наши клиенты — не все профессиональные администраторы и для многих даже эта публикация — "системное администрирование".
      Помимо прочего на Хабре реально не хватает материалов для "чайников", которые многим начинающим веб-мастерам были бы полезны (именно веб-мастерам, а не только системным администраторам, хотя администраторы — также разных познаний и опыта бывают). Именно в этом наша задача, давать возможность нашим клиентам осваивать какие-то азы просто, а не писать монографии для системных администраторов с многолетним опытом.


      1. ibKpoxa
        31.03.2016 13:39
        +6

        Ваша задача понятна, пропиарить свои услуги или свою компанию, не больше и не меньше, благодаря подобным статьям на хабре всё больше и больше статей, которые не интересны, просто поиск по слову iptables на хабре даёт очень много материала, как для опытных, так и для начинающих. К сожалению на хабре нет возможности забанить все статьи в определенном блоге, если они одновременно в разных разделах, приходится, а то я думаю многие бы уже забанили ваш блог, несмотря на то, что я не имею ничего против вашей компании, но сумма пользы от постов, которые публикуются в вашем блоге, около нуля, полезные нивелируются бесполезными и только зря отвлекающими время и внимание.


    1. Mystray
      03.04.2016 17:43

      Это и есть обвязка к iptables. Аналогично и shorewall, и firewalld.
      Далеко не всегда на серверах нужны «кучи плюшек», во многих случаях хватает открыть четыре порта и related,established на вход.


  1. ibKpoxa
    31.03.2016 12:17
    +1

    А где в схеме прохождения пакетов
    image
    располагается ufw?


    1. ibKpoxa
      31.03.2016 12:23

      В итоге это просто скриптик на питоне для эмуляции ipfw like интерфейса :(


    1. grossws
      01.04.2016 04:16

      Он же просто фронтенд к iptables/netfilter. Можно взять какую-нибудь виртуалку с убунтой, поставить ufw и посмотреть на выхлоп iptables-save.


  1. thunderspb
    31.03.2016 12:51
    +3

    из таких надстроек мне ferm (http://ferm.foo-projects.org/) больше нравится


    1. ValdikSS
      31.03.2016 14:40

      Почему-то о нем очень мало упоминаний, хотя ferm просто замечательный. Он очень простой и крайне удобный, позволяет делать все то, что можно сделать через iptables, ip6tables и ebtables удобно, ничего не скрывая, зато добавляет циклы, переменные, списки, которых очень не хватает в *tables.
      С ferm не будет такого, что временно добавленные правила забыли сохранить, и после перезагрузки у нас в файрволле не то, что ожидалось, и приходится разгребать все это, смотреть в зачастую не самый понятный вывод iptables -vnL.


    1. foxmuldercp
      31.03.2016 15:00

      Тот случай, когда комментарий полезней статьи. Надо поискать, есть ли ферма под CentOS.
      Но вообще, с админскими масштабами где количество хостов 10+ а количество виртуалок за полсотни, разве что ansible'ом фаерволы раздавать, или chef/puppet'ами


      1. thunderspb
        31.03.2016 19:24

        Есть в EPEL репах. А с CM тулами — иногда проще iptables рулить, иногда темплейтами того же ferm'a… Тут уж кому что. В принципе пару статей на хабре есть, в общем и целом особо там разжевывать нечего :) Из вкусностей там еще можно писать что-то похожее на функции.


      1. grossws
        01.04.2016 04:22

        Использовали такой подход, но с классическим подходом (ipstable-save/iptables-restore) работать крайне неприятно: сбрасываются активные соединения, динамически добавленные цепочки (типа докеровской или fail2ban'овской).

        В rhel/centos 7 есть firewalld, который вполне разумен с точки зрения юзабилити. Внизу, естественно, используется iptables. Что хорошо — он имеет так называемые direct правила, позволяющие использовать iptables, когда стандартного интерфейса не хватает. Ну и прописывание правил с таймаутом — тоже прекрасная вещь.


  1. kt315
    01.04.2016 14:06

    Прям таки для ОС Ubuntu Linux? >_<


  1. ChALkeRx
    03.04.2016 17:43
    +1

    Эээ, что это? «Вредоносные IP адреса»? Инструкция как позвать «ufw deny»? Перевод двух строчек из «man ufw»?
    Серьёзно, такая статья может пригодиться в ЧаВо вашего провайдера в разделе справки, для тех, кто ищет информацию именно там. А что тут нового и интересного для местного сообщества — не совсем понимаю.


    1. grossws
      03.04.2016 21:47

      Полезны бывают разве что комментарии под такими статьями. И то редко ,)