Как заблокировать ip ubuntu

Обновлено: 01.07.2024

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

Если вы хотите разобраться с утилитой более подробно, тогда стоит открыть статью в wikibooks и хорошенько запастись энтузиазмом и терпением, а в этой статье будут следующие, довольно простые, но в тоже время важные темы (кликабельно):

Перед тем, как начинать настраивать фаервол, необходимо авторизоваться под root. Если вы уже авторизованы под обычным пользователем в группе sudo , то перейти в root можно простой командой:

Если ввести команду с sudo не предоставляется возможности, тогда нужно ввести просто su , но для этого потребуется ввести пароль от root.

Установка iptables

Для начала убедимся, что утилита iptables установлена. Для этого введем команду iptables -h и если вывод будет command not found , значит утилиту требуется установить.

Установка iptables очень простая, для этого достаточно ввести:

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

Основные настройки iptables для десктопа

Чтобы защитить наш десктоп огненной стеной и не бояться, что к нам подключатся извне посторонние, технически подкованные персоны, следует прописать базовые правила в фаервол. Это не даст 100% гарантии безопасности вашего ПК (что в принципе невозможно), но существенно усложнит жизнь незваным гостям, которые скорее всего выберут цель полегче.

И так, если вы уже авторизованы под root в вашем домашней ОС и готовы забаррикадироваться от недоброжелателей, то стоит начать с правил по-умолчанию. Они будут срабатывать, если для соединения не нашлось других правил.

Теперь по-умолчанию у нас стоит запрет на все соединения, кроме исходящих. Но для комфортной работы этого мало и необходимо добавить несколько исключений:

Просмотр правил iptables

После того, как мы внесли новые правила в iptables, необходимо их проверить и убедиться, что мы все сделали правильно. Для этого достаточно ввести простую команду, которая отобразит все установленные правила:

Если вы вводили команды из прошлого раздела, то у вас должен быть примерно такой вывод:

Как открыть порт в iptables

Чтобы разрешить подключаться к нашей ОС по SSH, нам потребуется разрешить подключение через порт 22, прописав правило в iptables:

Далее проверим все наши правила с помощью команды iptables -L

Как мы видим, появилось новое правило для ssh по стандартному порту 22. Теперь он открыт и можно подключаться, так как теперь блокируются все входящие соединения, кроме соединений по этому порту. О том, как подключаться к серверу по SSH, вы можете почитать здесь.

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

Вместо используемого адреса в примере может быть любой, как внутренний, так и внешний. Проверим правила с помощью iptables -L

Как сохранить правила iptables

Одной из особенностей утилиты iptables является то, что прописанные правила полностью сбрасываются после перезагрузки системы. Самый простым способом сохранить настройки iptables будет поставить утилиту iptables-persistent . В debian и ubuntu это делается так, если вы по прежнему авторизованы под root:

Во время установки будет вопрос, сохранить ли текущие настройки iptables, пока выберем не сохранять, то есть No , потому что для начала нужно сохранить их в отдельный текстовый файл. В противном случае iptables-persistent ничего не сохранит.

После установки сохраним текущие настройки iptables в отдельный файл, который будет располагаться в папке утилиты:

А затем перезапустим службу iptables-persistent

То попробуйте перезапустить службу с другим названием:

В debian и ubuntu должен работать второй вариант.

Все, теперь можно смело перезагружать компьютер или сервер, все настройки iptables при это сохранятся.

Как откатить сохраненные правила iptables

Если вы ввели несколько правил по ошибке и хотите откатиться к тому набору правил, которые мы сохранили в файл в предыдущем разделе с помощью команды iptables-save , то для их восстановления достаточно ввести команду iptables-restore и указать пусть к этому файлу с сохраненными настройками:

Как удалить правило в iptables

Чтобы удалить одно конкретное правило из iptables, для начала нужно выяснить его номер и цепочку. Для этого нужно получить список всех правил с опцией --line-numbers :

Если вы вводили команды из прошлых разделов, то у вас должен быть примерно такой вывод:

В данном примере мы будем удалять правило под номером 1, который запрещает все входящие соединения с IP адреса 192.168.122.122 :

Уникальный номер правила мы знаем, теперь смотрим название его цепочки:

Теперь выведем весь список и проверим удалилось ли правило:

Как мы видим, правило успешно удалилось.

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

Если необходимо сбросить все правила сразу, то нужно ввести следующие команды:

Теперь выведем список правил и проверим сбросились ли они:

Основные настройки iptables для веб-сервера

Для начала следует очистить правила, которые выставляет хостер по-умолчанию, потому что при определенных обстоятельствах прописанные ниже правила могут конфликтовать с теми, что уже есть.

Затем выставим настройки по-умолчанию, запретив все входящие соединения. А потом будем уже настраивать исключения из этих правил.

Теперь разрешим внутренние соединения с 127.0.0.1 (localhost), а также установленные соединения для приложений и пинга.

Добавим несколько дополнительных фильтров:

Далее откроем порт 22, чтобы была возможность подключаться к серверу по SSH:

Открываем порты для базовых сервисов веб-сервера:

Если дополнительно планируется настраивать на сервере почту, то следует открыть порты и для этих служб:

Затем проверим все настройки командой iptables -L

И наконец стоит сохранить наши правила, чтобы они не испарились после перезагрузки сервера. Как это сделать, уже рассказано в разделе выше.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

При работе в любой сети передачи данных, например, локальной вычислительной сети (ЛВС), сети Интернет, часто возникает необходимость ограничить доступ какого-то конкретного узла к другому узлу сети, или конкретного узла ко всем компьютерам, находящимся под вашим управлением. Каждый компьютер, использующий при обмене данными протокол 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, позволит удаленному узлу понять, что пакет был отброшен из-за правил межсетевого экрана.

Также мы рассмотрели возможность блокирования пакетов на конкретном интерфейсе компьютера, что позволяет писать очень гибкие правила, имея в наличии несколько сетевых интерфейсов, подключенных к разным сегментам сети.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Как заблокировать IP адрес с помощью iptables на Linux

Я установил и запустил CentOS на моем сервере , и я часто нахожу , что мой сервер подвергается нападению другими компьютерами. Грубая сила SSH атаки, сканирование портов , сканирование вирусов и так далее. В этой теме я расскажу и покажу вам на готовом примере, как можно блокировать IP -адрес на сервере Linux с помощью IPTables .

Во-первых, я буду считать что вы уже используете IPTables . Если вам нужна помощь в настройке, то прочитайте эту статью.

Как заблокировать IP -адрес ?

Пример. Я хочу заблокировать входящий запрос от некоторого IP, предположим 192.168.244.134 , то нужно войти как root и ввести следующую команду:

Чтобы отбрасывать пакеты , приходящие на интерфейс eth0 с 192.168.244.134 , введите следующую команду:

Иногда, стоит заблокировать IP следующим образом:

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

Используйте следующий синтаксис для блокирования 10.0.0.0 /8:

Как сохранить заблокированный IP -адрес ?

Чтобы сохранить заблокированный IP -адрес для Iptables в файл конфигурации , введите следующую команду:

Как разблокировать IP- адрес?

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

Чтобы разблокировать 192.168.244.134 необходимо удалить номер строки 1, для этого введите:

11 thoughts on “ Как заблокировать IP адрес с помощью iptables на Linux ”

Разблокировать IP адрес, помогите как!

В чем собственно проблема, тогда смогу помочь?

Коллеги помогите советом, я не большой специалист в iptables поэтому нужна ваша помощь.
Ситуация следующая, есть софт работающий на CentOS 6.6 который периодически отправляет информацию на различные ip компании изготовителя. Адресов много и они периодически меняются, закрыть по ip не вариант. Нужно заткнуть этот фонтан. Но оставить возможность пользователям работать и удаленно подключаться.
Те надо прибить весь трафик с хоста, который инициирован самим хостом. Но разрешить исходящий трафик для пользователей, те типа reflexive acl если пользоваться терминами cisco.

Так закрой все соединения на входящий трафик, только разреши доступ с определенных IP (можно указать маску для IP-шников). И разреши все исходящие соединения. Так же, можно сделать подключения не по логину\паролю, а по ключу. Нужно больше информации о твоей задачи.

Но тоже проблема, на Mandriva стоит VBox, на Боксе поднят почтовый сервер на Win2008 сервер H-Mail ip 192.185.0.55

IP может меняться и по этому может не блокироваться, можно попробовать вот так сделать (для некоторой подсети):

Favorite

Добавить в избранное

Главное меню » Операционная система Ubuntu » Блокирование нежелательного IP-адреса с помощью брандмауэра IPTABLES в Debian/Ubuntu

(1 оценок, среднее: 5,00 из 5)

Блокирование нежелательного IP-адреса с помощью брандмауэра IPTABLES в Debian/Ubuntu

В одной из нашей предыдущей статье мы разместили учебное руководство о том, как защитить ваш Debian/Ubuntu на базе VPS с помощью IPTABLES/Netfilter .

В этой статье мы добавляем черный список в сценарий брандмауэра, который позволит вам блокировать любые нежелательные IP-адреса или диапазоны IP-адресов из вашей Debian или Ubuntu на базе виртуального сервера.

Что такое Iptables?

Это пространство прикладных программ пользователя, позволяющий системному администратору настраивать таблицы, предоставляемые брандмауэром ядра Linux (реализованы в виде различных Netfilter модулей), цепей и правил.

Перед тем, как продолжить работу, убедитесь, что вы читали статью о том, как обеспечить/дизайн брандмауэра в вашей системы Linux VPS . Включает:

  • Очистка старых правил брандмауэра
  • Определение портов службы
  • Наладка политики по умолчанию
  • Наладка правила брандмауэра
  • Сохранение правил брандмауэра

Блокирующие IP-адреса с использованием IPtables

Создание Blacklist

Таким образом, создайте или отредактируйте /usr/local/bin/fwall-rules и сделайте его следующим образом:

Применения правил

Чтобы применить правила брандмауэра и блокировать нарушителей, вам нужно просто запустить скрипт fwall-rules и все.

PS. Если вам понравился этот пост, поделитесь им с друзьями в социальных сетях с помощью кнопок соц сетей или просто оставьте комментарий ниже. Заранее благодарю.

Блокирование нежелательного IP-адреса с помощью брандмауэра IPTABLES в Debian/Ubuntu

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

брандмауэр ubuntu

Брандмауэр стал одним из основных инструментов безопасности для любого компьютера, будь то домашний или рабочий. Его конфигурация часто бывает непростой. А для менее опытных пользователей это может стать головной болью. Чтобы помочь в этой работе, есть такие инструменты, как UWF (Несложный брандмауэр), который пытается упростить управление правилами брандмауэра команды.

UWF - это интерфейс iptables, который особенно хорошо подходит для серверов и, по сути, инструмент настройки по умолчанию в Ubuntu Linux. Его разработка велась с идеей создания простого и удобного в использовании приложения, и так оно и было. Создание правил для адресов IPv4 и IPv6 никогда не было таким простым. В руководстве, которое мы покажем вам ниже, мы научим вас использовать основные инструкции UWF для настройки типичных правил, которые могут вам понадобиться в вашем брандмауэре.

Основные задачи, которые мы можем выполнять в брандмауэре системы, очень разнообразны и включают от блокировки определенного IP-адреса или порта до разрешения трафика только из определенной подсети. Теперь мы рассмотрим наиболее важные из них, используя необходимые команды для вызова UWF, да, всегда из системного терминала:

Блокировать определенный IP-адрес с помощью UWF

Основной синтаксис, который мы должны ввести, следующий:

Чтобы заблокировать или предотвратить прохождение всех пакетов с определенного IP-адреса, мы введем:

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

Мы можем проверить новые правила, которые мы только что ввели, с помощью следующего предложения:

Или с помощью следующей команды:

uwf-изображение

Специальная блокировка определенного IP-адреса или порта

Синтаксис в этом случае будет следующим:

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

Пример вывода, который может предоставить эта команда, следующий:

Блокировать определенный IP-адрес, порт и тип протокола

Чтобы иметь возможность заблокировать определенный IP-адрес, порт и / или тип протокола на вашем компьютере, вы должны ввести следующую команду:

Например, если бы мы получали атаку от хакер С IP-адреса 202.54.1.1 через порт 22 и по протоколу TCP необходимо ввести следующее предложение:

Блокировка подсети

Для этого конкретного случая синтаксис очень похож на предыдущие случаи, обратите внимание:

Разблокировать IP-адрес или удалить правило

Если вы больше не хотите блокировать IP-адрес в своей системе или просто запутались при вводе правила, попробуйте следующую команду:

Например, если мы хотим отменить правило номер 4, мы должны ввести команду следующим образом:

Как заставить UWF не блокировать IP-адрес

Правила, которые применяет UWF (или iptables, в зависимости от того, как вы на это смотрите) всегда следуют вашему заказу и выполняются, как только происходит совпадение. Таким образом, например, если правило разрешает компьютеру с определенным IP-адресом подключаться к нашему компьютеру через порт 22 и с использованием протокола TCP (скажем, sudo ufw позволяет 22), а позже появилось новое правило, которое специально блокирует определенный IP-адрес для того же порта 22 (например, с ufw deny proto tcp с 192.168.1.2 на любой порт 22), первым применяется правило, которое разрешает доступ к порту 22 и позже, правило, которое блокирует этот порт для указанного IP-адреса, нет. Это из-за этого порядок правил является решающим фактором при настройке брандмауэра машины.

На этом руководство, которое мы подготовили для вас, заканчивается. Как видите, отныне и с помощью UWF администрирование брандмауэр Он больше не будет эксклюзивным для системных администраторов или опытных пользователей.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » Учебники » Простое управление брандмауэром с помощью UWF

Читайте также: