Iptables блокировка ip linux

Содержание
  1. 📑 Блокирование ip адреса при помощи iptables
  2. Как заблокировать ip на UBUNTU 16.04/18.04/20.04 LTS & etc через iptables
  3. Примеры действий iptables
  4. Таблицы iptables
  5. Варианты таблиц iptables:
  6. Cинтаксис запуска iptables
  7. Перечень основных действий iptables
  8. Дополнительные параметры iptables
  9. Как показать текущие правила iptables?
  10. Как сбросить все правила iptables?
  11. Правила iptables «по умолчанию»
  12. Как заблокировать ip или ip подесть в iptables?
  13. Как разблокировать ip или ip подесть в iptables?
  14. Схема движения пакетов по цепочкам в различных таблицах iptables
  15. Сохранение правила Iptables
  16. Официальный мануал по iptables
  17. Полезные команды iptables
  18. Сброс всех правил iptables при помощи cron
  19. Сбросить счетчики iptables
  20. Как в одном правиле iptables добавить сразу несколько (диапазон) портов
  21. Рубрики
  22. Как заблокировать IP адрес с помощью iptables на Linux
  23. Как заблокировать IP адрес с помощью iptables на Linux
  24. Как заблокировать IP -адрес ?
  25. Как заблокировать подсеть ?
  26. Как сохранить заблокированный IP -адрес ?
  27. Как разблокировать IP- адрес?

📑 Блокирование ip адреса при помощи iptables

Достаточно часто при работе с VDS возникает необходимость заблокировать особо надоедливые IP адреса. Для портов HTTP можно конечно использовать плагины CMS, настройки .htacess или nginx.conf. Но есть еще порты SSH сервера, почтового сервера и т.п.

Лучше всего, с наименьшими затратами, блокировать ip адреса при помощи iptables (для ipv4). Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4.

Существенно облегчает жизнь использование fail2ban. Но иногда нужно просто забанить какой то ip-шник без всяких правил и ко всему серверу.

Самый простой и эффективный способ заблокировать ip:

sudo iptables -A INPUT -s XXX.XXX.XXX.XXX -j DROP

Этой командой добавляется правило блокирующее с ip адреса XXX.XXX.XXX.XXX все входящие запросы к серверу.

Вместо DROP можно поставить REJECT. Насчет целесообразности использования того или другого можно услышать диаметрально противоположные мнения.

DROP — просто закрывает соединение и не отправляет ничего в ответ. Соединение потом убивается по таймауту, время которого при желании можно сократить. В итоге при множестве запросов мы не посылаем ничего в ответ. Однако при сканировании закрытых портов, они будут помечаться как filtered, что говорит, что что-то всё-таки слушает порт.

REJECT — сбрасывает соединение и отправляет в ответ сообщение, указанное в опции —reject-with. По умолчанию отправляется host is unreachable. При множестве запросов — множество ответов, но при сканировании порты будут unreachable. Ресурсов сервера будет потребляться больше.

Посмотреть все правила можно командой:

sudo iptables -n -L -v --line-numbers
  • -L : Показать список правил.
  • -v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы ‘K’, ‘M’ or ‘G’.
  • -n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение).
  • —line-numbers: Нумерация правил.

На экране получим нечто подобное:

Chain INPUT (policy ACCEPT 6796 packets, 3406K bytes) num pkts bytes target prot opt in out source destination 1 926 46804 DROP all -- * * XXX.XXX.XXX.XXX 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 6697 packets, 4944K bytes) num pkts bytes target prot opt in out source destination

Разблокировать строку можно по номеру правила:

Читайте также:  What is block device linux

или указав правило полностью:

sudo iptables -D INPUT -s XXX.XXX.XXX.XXX -j DROP

Настроенные блокировки ip будут действовать до следующей перезагрузки системы. Чтобы они восстанавливались при последующих загрузках системы, можно использовать разные методы.
Один из самых простых – установить пакет iptables-persistent, с помощью которого можно будет сохранять создаваемые правила в отдельные конфигурационные файлы, которые в свою очередь будут автоматически загружаться после перезагрузки системы.

sudo apt-get install iptables-persistent

Для сохранения правил нужно набрать:

sudo service iptables-persistent save

Источник

Как заблокировать ip на UBUNTU 16.04/18.04/20.04 LTS & etc через iptables

Input — обрабатываются входящие подключения вроде подключения по протоколу SSH или при отправке на веб-сайт каких-либо файлов.
Forward — цепочка формируется при активации проходящего соединения, когда информация предназначена «третьему» компьютеру, а текущий сервер выполняет роль маршрутизатора.
Output — исходящие пакеты данных, например, при запуске какого-либо сайта в браузере или при проверке скорости соединения и доступности PING.
В реальной работе сервера постоянно формируется минимум два вида пакетов – Input и Output. Т.к. на каждый запрос пользователя сервер обязан дать ответ (сначала о поступлении данных на сервер, а затем и о результате обработки) или отклонить вредоносный запрос. Если «принято решение» отказать в доступе, об этом также сообщается пользователю (REJECT). Иначе запрос зависнет, и пользователь будет видеть пустой экран (DROP).

Примеры действий iptables

  • ACCEPT – пропустить пакет данных далее по цепочке;
  • DROP – полностью удалить пакет;
  • REJECT – отклонить запрос и направить пользователю ответ с информацией об этом;
  • LOG – инициируется запись в лог-файл об обработанном пакете;
  • QUEUE – отправка данных на компьютер пользователя.

Правила проверки устанавливаются в зависимости от характера соединения. Возможен мониторинг IP-адреса, порта подключения, отправителя, заголовка. Если пакет не проходит хотя бы по одному критерию, осуществляется действие ACCEPT (сквозное пропускание пакета, который не требуется блокировать файрволом). Фильтрация возможна на двух этапах:

  • prerouting – система только получила пакет, и нет команды «что с ним делать»: обрабатывать на сервере, возвращать пользователю или пропускать насквозь;
  • postroutnig – обработка после оценки «пункта назначения».

Таблицы iptables

Существует еще один «уровень» обработки – это таблицы, содержащие правила обработки тех или иных действий над пакетами. Например, фильтрация данных в Iptables осуществляется в таблице filter.

Варианты таблиц iptables:

  • raw – предназначен для работы с «сырыми» данными, еще не прошедшими обработку;
  • mangle – используется для модификации пакетов;
  • nat – обеспечивает работу сервера в качестве маршрутизатора;
  • filter – основная таблица, используемая «по умолчанию».

Cинтаксис запуска iptables

iptables -t таблица действие цепочка дополнительные_параметры

Перечень основных действий iptables

  • -A – добавить правило в цепочку;
  • -C – проверить применяемые правила;
  • -D – удалить текущее правило;
  • -I – вставить правило с указанным номером;
  • -L – вывести правила текущей цепочки;
  • -S – вывести все активные правила;
  • -F – очистить все правила;
  • -N – создать цепочку;
  • -X – удалить цепочку;
  • -P – установить действие «по умолчанию».
Читайте также:  Системный трей в linux

Дополнительные параметры iptables

  • -p – вручную установить протокол (TCP, UDP, UDPLITE, ICMP, ICMPv6, ESP, AH, SCTP, MH);
  • -s – указать статичный IP-адрес оборудования, откуда отправляется пакет данных (ip-источник);
  • -d – установить IP получателя;
  • -i – настроить входной сетевой интерфейс;
  • -o – то же самое в отношении исходящего интерфейса;
  • -j – выбрать действие при подтверждении правила.

Как показать текущие правила iptables?

iptables -L iptables -L INPUT iptables -L INPUT -n -v iptables -L --line-numbers
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP all -- 123.123.123.101 anywhere 2 REJECT all -- 123.123.123.102 anywhere reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination

Как сбросить все правила iptables?

sudo iptables -F sudo iptables -F Input

Правила iptables «по умолчанию»

Разрешаем все цепочки INPUT и OUTPUT, запрещаем FORWARD.

sudo iptables -p INPUT ACCEPT sudo iptables -p OUTPUT ACCEPT sudo iptables -p FORWARD DROP

Как заблокировать ip или ip подесть в iptables?

sudo iptables -t filter -A INPUT -s 123.456.789.101 -j DROP или sudo iptables -t filter -A INPUT -s 123.456.789.101/32 -j DROP

Как разблокировать ip или ip подесть в iptables?

sudo iptables -t filter -D INPUT -s 123.456.789.101 -j DROP или sudo iptables -t filter -D INPUT -s 123.456.789.101/32 -j DROP

Схема движения пакетов по цепочкам в различных таблицах iptables

Сохранение правила Iptables

В Ubuntu 16.04-20.04 процесс требует ввода команды:

sudo /sbin/iptables-save > /dir/filename

Официальный мануал по iptables

Полезные команды iptables

Сброс всех правил iptables при помощи cron

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

Открываем таблицу заданий cron:

Вписываем следующее правило:

#каждые 30 минут очищаем все правила iptables и делаем действием по умолчанию для всех цепочек ACCEPT */30 * * * * sleep 1 && /sbin/iptables -P INPUT ACCEPT > /dev/null 2>&1 */30 * * * * sleep 2 && /sbin/iptables -P OUTPUT ACCEPT > /dev/null 2>&1 */30 * * * * sleep 3 && /sbin/iptables -P FORWARD ACCEPT > /dev/null 2>&1 */30 * * * * sleep 4 && /sbin/iptables -F > /dev/null 2>&1

Теперь в случае ошибки сервер каждые 30 минут будет сбрасывать все настройки iptables. После настройки не забываем удалить данное правило и проверить сохранность всех внесенных изменений!

Сбросить счетчики iptables

В iptables для каждой цепочки и каждого правила есть два счетчика — счетчик обработанных пакетов и счетчик пропущенного / заблокированного трафика. Их можно посмотреть командой:

Иногда вам потребоваться их обнулить, это делается следующей командой:

Как в одном правиле iptables добавить сразу несколько (диапазон) портов

Для этого используем следующее выражение

*********************** #При помощи следующей команды смотрим номер правила, которое нам здесь необходимо удалить: iptables -L INPUT --line-number #Запомним номер и удалим правило под номером 2 iptables -D INPUT 2 *********************** ############## дополнительно #Отклоняем все подключения на порт 80 и 443 порт сервера c ip# 37.120.136.252: iptables -A INPUT -p tcp -s 37.120.136.252 -m multiport --dports 80,443 -j REJECT #Блокируем без ответа все подключения на порт 80 и 443 сервера c ip# 37.120.136.252: iptables -A INPUT -p tcp -s 37.120.136.252 -m multiport --dports 80,443 -j DROP

Рубрики

При заказе по этой ссылке бесплатно помогу настроить и подготовить сервер к повседневной эксплуатации.

Читайте также:  Установка woeusb linux mint

Источник

Как заблокировать 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» окончена.

Источник

Оцените статью
Adblock
detector