Назад | Перейти на главную страницу

iptables не блокирует IP от доступа к HTTP / HTTPS

У меня проблемы с блокировкой доступа определенных IP-адресов к портам HTTP / HTTPS через iptables на моем веб-сервере CentOS 7.7.

Проблема в том, когда я добавляю IP-адрес в iptablesи подтвердите, что это указано в правилах, это не блокирует IP-адрес от доступа к HTTP / HTTPS. Однако это делает заблокируйте их от всего остального (ping, SSH, telnet и т. д.).

Ноты:

Это мои текущие правила (с 1.2.3.4 IP для блокировки):

# iptables -L -v --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      783  120K ACCEPT     all  --  lo     any     anywhere             anywhere            
2       15   780 drop       all  --  eth0   any     1.2.3.4              anywhere            
3        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-reply
4        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp destination-unreachable
5        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp time-exceeded
6        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request limit: avg 10/sec burst 5
7        0     0 drop       icmp --  any    any     anywhere             anywhere            
8      224 18088 ACCEPT     tcp  --  eth0   any     anywhere             anywhere             tcp dpt:http
9      432 58244 ACCEPT     tcp  --  eth0   any     anywhere             anywhere             tcp dpt:https
10       0     0 drop       all  --  eth0   any     1.2.3.4              anywhere            
11     260  204K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
12     275 19648 drop       all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2771 packets, 634K bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain drop (4 references)
num   pkts bytes target     prot opt in     out     source               destination         
1      290 20428 DROP       all  --  any    any     anywhere             anywhere

Как указано выше, это блокирует IP 1.2.3.4 для всего на моем сервере, кроме доступа к моим веб-сайтам.

Единственное, что я могу думать о том, что потенциально может вызвать проблему или сбой во всем этом, - это тот факт, что мои сайты находятся за Cloudflare. Но даже тогда у меня есть модуль mod_cloudflare установлен, что в основном означает, что он показывает "реальные IP-адреса посетителей" и не IP-адреса Cloudflare в журналах Apache.

Как я это тестирую, я добавляю 1.2.3.4 в брандмауэр, как указано выше, подтверждаю его присутствие в правилах, tailf журналы Apache, и я вижу, что этот IP-адрес все еще очищает мои веб-сайты.

Есть ли у кого-нибудь идеи о том, что я делаю неправильно?

РЕДАКТИРОВАТЬ №1: Согласно обновлениям сообщения, я переместил drop 1.2.3.4 ниже ACCEPT anywhere но это по-прежнему не блокирует доступ IP-адреса к HTTP / HTTPS на сервере. Я наклеил свой новый iptables правилом выше, размещая каплю как до, так и после ACCEPT.

РЕДАКТИРОВАТЬ № 2: Похоже, что это проблема исключительно Cloudflare. Поскольку я только что протестировал это в домене, который не использует DNS Cloudflare, и он блокирует доступ HTTP / HTTPS с IP-адреса, как и ожидалось.

Mod_cloudflare_module предназначен только для Apache или вашего веб-сервера, чтобы видеть исходный IP-адрес. Не IPTables.

IPTables не знает о таком модуле.

Тем не менее, вы блокируете, а затем принимаете все на eth0. Это могло быть из-за этого (не уверен). Кроме того, это eth0 действительно интерфейс / ip, связанный с ответом на запрос к вашей веб-службе (httpd или другой)

Я бы сохранил эту конфигурацию для запуска и попробовал сделать следующее:

https://www.cyberciti.biz/faq/iptables-block-port/