Как заблокировать 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 в файл конфигурации , введите следующую команду:
# 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
21 пример использования iptables для администраторов
Защита от DDoS с iptables, готовый скрипт
Как настроить Iptables в CentOS
Как заблокировать IP адрес с помощью iptables на Linux
Настройка IPtables для web сервера на RedHat/CentOS/Fedora
Тема «Как заблокировать IP адрес с помощью iptables на Linux» окончена.
Разблокировать IP адрес, помогите как!
В чем собственно проблема, тогда смогу помочь?
Коллеги помогите советом, я не большой специалист в iptables поэтому нужна ваша помощь.
Ситуация следующая, есть софт работающий на CentOS 6.6 который периодически отправляет информацию на различные ip компании изготовителя. Адресов много и они периодически меняются, закрыть по ip не вариант. Нужно заткнуть этот фонтан. Но оставить возможность пользователям работать и удаленно подключаться.
Те надо прибить весь трафик с хоста, который инициирован самим хостом. Но разрешить исходящий трафик для пользователей, те типа reflexive acl если пользоваться терминами cisco.
Так закрой все соединения на входящий трафик, только разреши доступ с определенных IP (можно указать маску для IP-шников). И разреши все исходящие соединения. Так же, можно сделать подключения не по логину\паролю, а по ключу. Нужно больше информации о твоей задачи.
Доброго времени суток!
Прошу сильно не пинайте, только начинаю разбираться с iptables…
Но тоже проблема, на Mandriva стоит VBox, на Боксе поднят почтовый сервер на Win2008 сервер H-Mail ip 192.185.0.55
Постоянно пытаются ломать. ( IP разные, уже целый список)
—————————————————————
3949 15:03:16.618245 vnesh_IP 180.166.46.151 SMTP S: 535 Authentication failed. Too many invalid logon attempts.
—————————————————————
делаю так iptables -I INPUT -s 180.166.46.151 -j DROP
результата нет
IP может меняться и по этому может не блокироваться, можно попробовать вот так сделать (для некоторой подсети):
Но мой совет для этой задачи — это использовать Fail2Ban. Я очень подробно рассказывал что и как в своей статье ( Но это для Unix/Linux ОС):
http://linux-notes.org/ustanovka-fail2ban/
Уверен, что она поможет со взломом почтового сервера и не только…
Понял спасибо!!!
А если такое правило:
Здравствуйте. Хочу заблокировать ВСЕ айпи Китая. Прямо все, без исключений. Как это можно реализовать?
Смотря для каких целей ( если для web-сервера — можно установить и использовать GeoIP и забанить сразу целую страну). Если просто заблокировать страну с IPtables, то вот список IP адресов и для примера я взял China (ПРИМИТЕ ВО ВНИМАНИЕ, что IPtables тормозит при обработке большого количества правил. Мой совет — использовать IPset, я рассказывал на своем сайте как он работает):
Здравствуйте! Может кто нибудь сможет ответить, как можно разрешить подключение на внешний интерфейс freepbx15 etc1 только с 1 Ip адреса(остальное всё запретить), и разрешить все подключения для внутреннего интерфейса etc0. И как понять, что используется в приоритете, фаерволл freepb или fail2ban, потому что когда запрещаю правила в iptables, то подключения всё равно проходят.
Здравствуйте
можно ли в айпитеблсе ограничить доступ к интернету кроме белого списка айпи?