- Как заблокировать ip в iptables
- Как заблокировать ip с помощью iptables
- 1. Как заблокировать конкретный IP
- 2. Как заблокировать подсеть iptables?
- 3. Как заблокировать IP сетевом интерфейсе?
- 4. Как разблокировать IP адрес?
- Выводы
- Как заблокировать IP адреса через ufw
- Блокировка определенных IP адресов через ufw
- Блокировка определенных IP и номера порта через ufw
- Закрытие определенных IP, номеров портов и протоколов через ufw
- Как удалить блокировку и разблокировать IP адресов
- Как заблокировать IP адрес с помощью iptables на Linux
- Как заблокировать IP адрес с помощью iptables на Linux
- Как заблокировать IP -адрес ?
- Как заблокировать подсеть ?
- Как сохранить заблокированный IP -адрес ?
- Как разблокировать IP- адрес?
Как заблокировать ip в iptables
При работе в любой сети передачи данных, например, локальной вычислительной сети (ЛВС), сети Интернет, часто возникает необходимость ограничить доступ какого-то конкретного узла к другому узлу сети, или конкретного узла ко всем компьютерам, находящимся под вашим управлением. Каждый компьютер, использующий при обмене данными протокол IPv4 или IPv6, имеет уникальный, в определенных рамках, номер.
Этот номер называется IP адресом. Мы рассмотрим в нашей статье блокировку IP-адреса IPv4 для ограничения доступа узла с данным идентификатором к определенному компьютеру, на котором мы настраиваем правила брандмауэра Netfilter с помощью пакета iptables. В прошлых статьях мы изучили возможность просматривать настроенные правила, закрывать и открывать порты. Теперь займёмся блокированием нежелательных для нас участников сетевого обмена информацией.
Как заблокировать ip с помощью iptables
1. Как заблокировать конкретный IP
Для блокирования IP адреса используются действия DROP и REJECT. Рассмотрим общий синтаксис действия по блокированию.
sudo i ptables [ -t таблица ] -A [ цепочка ] -s [ IP адрес/маска ] -d [ IP адрес/маска ] -j [ действие ]
- -s [IP адрес/маска] — IP адрес источника пакета, к которому мы хотим применить действие;
- -d [IP адрес/маска] — IP адрес получателя пакета, к которому мы хотим применить действие.
Например, вот это правило чтобы запретить ip iptables блокирует все входящие на защищаемую машину пакеты от узла, с IP адресом 8.8.8.8. При этом следует заметить, что узел источник пакетов при использовании действия DROP не получит никакой ответной информации от защищаемого узла. Для него всё будет выглядеть так, как будто данный узел в данный момент отсутствует в сети.
sudo iptables -t filter -A INPUT -s 8.8.8.8/32 -j DROP
Есть второе действие для блокирования всех пакетов от конкретного узла или к конкретному узлу — это REJECT. Данное действие предусматривает при блокировании пакета отправку служебной информации источнику пакета о выполнении блокировки. То есть в данном случае узел отправитель будет уведомлен, что пакет был заблокирован Netfilter. В данном случае чтобы заблокировать ip iptables надо выполнить:
sudo iptables -t filter -A INPUT -s 8.8.8.8/32 -j REJECT
Следует отметить, что, как в случае с портами, существует возможность блокирования исходящего трафика и входящего трафика. То есть, если мы хотим заблокировать доступ конкретного узла сети к нашей машине, то мы блокируем входящий трафик:
sudo iptables -t filter -A INPUT -s 8.8.4.4/32 -j REJECT
Если же мы захотим заблокировать доступ нашего компьютера к конкретному узлу в сети, например, Интернет, то мы блокируем исходящий трафик:
sudo iptables -t filter -A OUTPUT -d 8.8.8.8/32 -j REJECT
2. Как заблокировать подсеть iptables?
Блокирование конкретного адреса это частный случай блокирования подсети. Подсеть — это строго ограниченная часть всего пространства IP адресов, используемая для адресации определенного подмножества всех компьютеров глобальной сети. Подсеть задается маской. Маска может быть задана в виде четырех, разделенных точками, чисел или в виде одного числа. Например: 255.255.255.0 — это маска посети, и /24 — маска подсети. При чем это одинаковые маски, просто записанные в разной форме.
Не будем вдаваться в значение маски, это информация для отдельной статьи. Отметим только, что все множество адресов IPv4 разбито на сети, сети имеют классы, которые задают количество адресов в сетях, и их практическое назначение. А сети, в свою очередь разбиваются на подсети, для отдельных организаций и частных лиц. И сеть, и подсеть задаются с помощью маски сети. Теперь давайте рассмотрим как забанить диапазон ip адресов iptables.
Так вот, например, если мы хотим заблокировать доступ к конкретной организации, подмножество адресов которой мы знаем, мы сделаем это с помощью известного нам адреса сети (подсети) и маски. Правило блокировки будет выглядеть следующим образом:
sudo iptables -t filter -A INPUT -s 8.0.0.0/9 -j DROP
В данном случае мы заблокировали подсеть адресов диапазона 8.0.0.0 — 8.127.255.255. Другой вариант маски будет выглядеть так:
sudo iptables -t filter -A INPUT -s 8.0.0.0/255.128.0.0 -j DROP
Стоить заметить, что всё множество адресов IPv4 разбито на подмножества по отдельным регионам мира. Поэтому существует возможность блокировать доступ отдельных регионов мира с помощью блокирования IP сетей. Ведет выдачу IP сетей и протоколирование выданных блоков адресов организация IANA. По ссылке мы можем отследить выданные блоки и заблокировать нужные нам, как отдельные подсети. Например, это правило блокирует сеть, выданную европейскому региону:
sudo iptables -t filter -A INPUT -s 2.0.0.0/255.0.0.0 -j DROP
3. Как заблокировать IP сетевом интерфейсе?
Обычно у компьютера один физический интерфейс подключения. Но, бывают случаи, когда в защищаемом устройстве присутствуют несколько сетевых интерфейсов, подключенных к разным сетям, или к одной сети, но разными путями (протоколами, маршрутами, организациями). В таком случае часто бывает нужна блокировка ip iptables с определенного интерфейса. Правило блокирования в этом случае будет выглядеть так:
sudo iptables [ -t таблица ] -A INPUT -i [ имя интерфейса входа ] -s [ IP адрес/маска ] -d [ IP адрес/маска ] -j [ действие ]
Для входящего сетевого интерфейса:
sudo iptables [ -t таблица ] -A OUTPUT -o [ имя интерфейса выхода ] -s [ IP адрес/маска ] -d [ IP адрес/маска ] -j [ действие ]
Для исходящего сетевого интерфейса. В частном случае входящий и исходящий интерфейс один и тот же.
Например, чтобы заблокировать все пакеты от IP адреса 8.8.8.8, поступающие нам с интерфейса enp0s3, можно использовать правило:
sudo iptables -t filter -A INPUT -i enp0s3 -s 8.8.8.8/32 -j DROP
Чтобы заблокировать все пакеты, уходящие к машине с IP адресом 8.8.8.8, с нашего узла через интерфейс enp0s3 следует использовать правило:
sudo iptables -t filter -A OUTPUT -o enp0s3 -d 8.8.8.8/32 -j DROP
Как узнать доступные сетевые интерфейсы и их параметры можно в статье настройка сети из консоли в Ubuntu.
4. Как разблокировать IP адрес?
По умолчанию в межсетевом экране Netfilters используется действие ACCEPT для всех таблиц и цепочек. Поэтому, чтобы заблокировать IP адрес, необходимо добавить правило с действием DROP, что мы рассмотрели выше. Соответственно, чтобы разблокировать адрес, необходимо удалить уже установленное правило. Как удалить уже написанное правило мы рассмотрели в статье как удалить правило iptables.
Также для того, чтобы ограничить доступ к компьютеру более строго, мы можем заменить правило по умолчанию ACCEPT на правило DROP или REJECT с помощью команды
sudo iptables -t [ таблица ] -P [ цепочка ] [ действие ]
Например, следующая команда установит правило по умолчанию для таблицы filter цепочки INPUT действие по умолчанию -отбрасывать пакеты:
sudo iptables -t filter -P INPUT DROP
В таком случае, чтобы разблокировать IP iptables адрес, необходимо будет задать правило для данного IP адреса с действием ACCEPT:
sudo iptables -t filter -A INPUT -i enp0s3 -s 8.8.8.8/32 -j ACCEPT
Выводы
Итак, мы сегодня обсудили как заблокировать ip iptables или же целую подсеть адресов. Данная операция необходима, чтобы запретить доступ внешнего узла в сети к нашему компьютеру. Также у нас есть в арсенале два действия для таких правил — одно, DROP, заставит удаленную машину думать, что наш узел в данный момент вообще отсутствует в сети, а другое, REJECT, позволит удаленному узлу понять, что пакет был отброшен из-за правил межсетевого экрана.
Также мы рассмотрели возможность блокирования пакетов на конкретном интерфейсе компьютера, что позволяет писать очень гибкие правила, имея в наличии несколько сетевых интерфейсов, подключенных к разным сегментам сети.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как заблокировать IP адреса через ufw
В статье описано, как заблокировать конкретные IP адреса через ufw.
UFW (Uncomplicated Firewall) — стандартная утилита для конфигурирования межсетевого экрана iptables для ОС Ubuntu Linux. Она использует интерфейс командной строки, состоящий из небольшого числа простых команд. UFW — это удобный способ создания базового брандмауэра IPv4 или IPv6, чтобы защитить сервер.
Блокировка определенных IP адресов через ufw
sudo ufw deny from to any
Для блокировки или закрытия всех пакетов с 192.168.1.5, вводим:
sudo ufw deny from 192.168.1.5 to any
Показываем статус фаервола включая правила. Для проверки недавно добавленных правил, вводим:
Блокировка определенных IP и номера порта через ufw
ufw deny from to any port
Для блокировки или закрытия «спамерских» IP адресов 202.54.1.5 порта 80, вводим:
sudo ufw deny from 202.54.1.5 to any port 80
Заново проверяем посредством следующей команды:
Закрытие определенных IP, номеров портов и протоколов через ufw
sudo ufw deny protofrom to any port
Для примера блокировка вредоносных 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, вводим:
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
Добавьте свое правило для блока от спама или хакеров:
Сохраните и закройте файл. И — перезагрузите брандмауэр:
Как заблокировать IP адрес с помощью iptables на Linux
Как заблокировать IP адрес с помощью iptables на Linux
Я установил и запустил CentOS на моем сервере , и я часто нахожу , что мой сервер подвергается нападению другими компьютерами. Грубая сила SSH атаки, сканирование портов , сканирование вирусов и так далее. В этой теме я расскажу и покажу вам на готовом примере, как можно блокировать IP -адрес на сервере Linux с помощью IPTables .
Во-первых, я буду считать что вы уже используете IPTables . Если вам нужна помощь в настройке, то прочитайте эту статью.
Как заблокировать IP -адрес ?
Пример. Я хочу заблокировать входящий запрос от некоторого IP, предположим 192.168.244.134 , то нужно войти как root и ввести следующую команду:
# iptables -I INPUT -s 192.168.244.134 -j DROP
Где ,
— I: Вставка цепи в верхней части правил .
— s: Матч IP -адрес источника .
— j : Перейти к указанным целевым цепям , если пакету соответствует текущее правило .
Чтобы отбрасывать пакеты , приходящие на интерфейс eth0 с 192.168.244.134 , введите следующую команду:
# iptables -I INPUT -i eth0 -s 192.168.244.134 -j DROP
Иногда, стоит заблокировать IP следующим образом:
# iptables -A INPUT -s 11.22.33.44 -j REJECT
- -A: Добавляет правило в таблицу INPUT(входящие пакеты) для IP указанного ИП и выполнет действие REJECT(полностью отбрасывать пакеты не показывая признаков жизни даже по пингу).
- — s: Матч IP -адрес источника .
- — j : Перейти к указанным целевым цепям , если пакету соответствует текущее правило .
Как заблокировать подсеть ?
Используйте следующий синтаксис для блокирования 10.0.0.0 /8:
# iptables -I INPUT -s 10.0.0.0/8 -j DROP
Как сохранить заблокированный IP -адрес ?
Чтобы сохранить заблокированный IP -адрес для Iptables в файл конфигурации , введите следующую команду:
Как разблокировать IP- адрес?
Во-первых, вам нужно отобразить заблокированный IP -адрес вместе с номером строки и прочей информации, для этого введите следующую команду
# iptables -L INPUT -n --line-numbers # iptables -L INPUT -n --line-numbers | grep 192.168.244.134
Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all -- 192.168.244.134 0.0.0.0/0 2 LOCALINPUT all -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT udp -- 213.152.14.11 0.0.0.0/0 udp spts:1024:65535 dpt:53
Чтобы разблокировать 192.168.244.134 необходимо удалить номер строки 1, для этого введите:
Тема «Как заблокировать IP адрес с помощью iptables на Linux» окончена.