Минимальный набор правил iptables для высокопроизводительного обратного прокси-сервера Nginx (или: как использовать NOTRACK для http и https)?

Я ищу минимальный набор правил iptables для довольно большого объема обратного прокси Nginx/Varnish. Я хотел бы закрыть сервер, чтобы только порты 80 и 22 были открыты вообще для соединений с внешнего устройства.

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

Как реализовать минимальный набор правил, который исключает трафик HTTP и HTTPS на портах 80 и 443 из отслеживания соединений?

Это мой основной набор правил:

iptables -F INPUT
iptables -P INPUT DROP
iptables -i lo -A INPUT -j ПРИНЯТЬ
iptables -i eth0 -A INPUT -m состояние - СОСТОЯНИЕ, СОЗДАНО -j ПРИНЯТЬ
iptables -i eth0 -A ВХОД -p TCP --dport 22 -j ПРИНЯТЬ
iptables -i eth0 -A ВХОД -p TCP --dport 80 -j ПРИНЯТЬ

iptables -i eth0 -A ВХОД -p ICMP -j ПРИНЯТЬ

Сервер запускает Nginx на общедоступном IP-адресе (для примера 10.0.0.1) на портах 80 и 443. Nginx общается с Varnish 10.0.0.1:8080. Varnish общается с веб-сервером на другом компьютере (10.0.0.2:80). Этот внутренний сервер должен общаться с Varnish для очистки URL-адресов.

Я пробовал такие вещи, как

iptables -F PREROUTING -t сырье
iptables -F OUTPUT -t raw
iptables -t raw -A ПРОГНОЗИРОВАНИЕ -p TCP --dport 80 -j NOTRACK
iptables -t raw -A OUTPUT -p TCP --sport 80 -j NOTRACK
iptables -t raw -A ПРОГНОЗИРОВАНИЕ -p TCP --dport 8080 -j NOTRACK
iptables -t raw -A ВЫХОД -p TCP --sport 8080 -j NOTRACK

и варианты с явным упоминанием IP-адресов источника или назначения, но он либо сломал сервер (заблокировав некоторый трафик), либо не смог удалить весь трафик HTTP из отслеживания соединения.

0 ответов

Другие вопросы по тегам