Блокировка всех портов, кроме 80 и 443 с помощью CloudFlare

Блокировка всех портов, кроме 80 и 443 с помощью CloudFlare

Я пытаюсь заблокировать все порты, кроме 22, 80 и 443. Я добавил следующие правила в iptables.

*filter
:INPUT ACCEPT [36878:18003219]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [33947:26518456]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -s MY_IP -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -j DROP
COMMIT

Порт 22 работает, но Cloudflare не может подключиться к веб-серверу. -A INPUT -j DROPвызывает проблему. Фактически, соединение 443 не соответствует правилу до конца списка.

решение1

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

Когда вы включили свой пользовательский брандмауэр, CloudFlare сообщил о 504 Gateway Timeout. Но, что примечательно, он сказал, что это была ошибка, полученная от вашего сервера, а не то, что он истек тайм-аут при попытке связаться с вашим сервером. Разница тонкая, но важная: это означает, что CloudFlare нормально общался с вашим сервером, но ваш сервер не общался сам с собой.

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

(P.S. Вам следует оставить ICMP включенным, чтобы предотвратить другие виды сбоев, такие как обнаружение MTU пути.)

Связанный контент