Внимание!!! Все файлы в которых будут меняться настройки обязательно нужно копировать в созданную в корне сервера папку copy.

Новые настройки вступят в силу после рестарта необходимой службы.

Новые настройки, влияние которых на работу сервера в дальнейшем неизвестно, после проведенных работ заменять на исходные (возвращать на старые).

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

Материал из Справка по MediaWiki
Перейти к: навигация, поиск

Одной из немаловажных задач администратора сервера является обеспечение безопасности и работоспособности машины. Классический пример – некий извне, производит огроменный поток запросов какой-либо страницы сайта. В конечном итоге это может вызвать большую нагрузку и сбои в работе сайта. Закрыть доступ такому «пользователю» к ресурсу, пожалуй, это рациональное решение, так или иначе, до выяснения обстоятельств и причин таких нагрузок.

В операционной системе Linux есть утилита IPTables, работа с которой может выполняться из командной строки. Данная утилита является стандартным интерфейсом управления работой межсетевого экрана, его так же называют брандмауэром NETFilter, который стал использоваться в системе Linux с версией ядер начиная от 2.4. Для использования данной утилиты вам необходимо иметь привилегии суперпользователя.

Теперь к действию, предположим у нас есть IP адрес, с которого идут нежелательные запросы: 91.207.7.182, заблокировать доступ в IPTables можно таким образом:

# iptables -A INPUT -s 91.207.7.182 -j REJECT

Данная строка добавляет (-A) правило в таблицу INPUT (данная таблица нужна для работы с входящими пакетами), указанный нами IP-адрес, а так же действие, предпринимаемое при обращении с этого IP-адреса, в нашем случае REJECT – пакеты будут полностью игнорироваться, таким образом, с его стороны сервер будет не виден, даже если пробовать пинговать. Кроме того, вместо значения REJECT так же предусмотрено использование команды DROP, в этом случае обращаемый узел получит ответ от сервера. Однако есть информация, что в некоторых случаях, при большом количестве запросов, использование команды DROP может привести к сбоям в работе сервера. Выводы делайте сами.

После ввода строки из вышеуказанных команд, следует сохранить данные.

# service iptables save

В случае если этого не делать, после перезагрузки в IPTables данных о наших записях не будет.

Путь к файлу с баном IP

/etc/sysconfig/iptables

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

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

# iptables -I INPUT -s 10.0.0.0/8 -j DROP

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

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

# service iptables save

или указав файл конфигурации

# /etc/init.d/iptables save

Как разблокировать 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, для этого введите:

# iptables -D INPUT 1