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

Iptables: строка фильтрации, зашифрованная ssl

Мне нужно отфильтровать (отправить в набор BANRULES) входящие пакеты http / https с определенной строкой (matchword). Я делаю это легко, когда ssl не используется (порт 80):

iptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "matchword" --algo bm --to 65535 -j BANRULES

Но он не работает (из-за шифрования пакетов) при использовании ssl (порт 443):

iptables -A INPUT -p tcp -m tcp --dport 443 -m string --string "matchword" --algo bm --to 65535 -j BANRULES

Как я могу это сделать? Спасибо.

@DanFarrell частично верен в той мере, в какой вам нужен секретный ключ для его расшифровки - однако, если у вас есть секретный ключ (то есть вы владеете заблокированным веб-сервером, что подразумевается, поскольку вы говорите, что пакеты входят), его можно расшифровать - но, вероятно, не с помощью iptables.

Вы можете настроить обратный прокси-сервер (или, в зависимости от вашей сети, даже перенести обработку SSL на ваш брандмауэр на основе iptables) - для этого может потребоваться запуск чего-то вроде Squid (или веб-сервера с mod_proxy или аналогичным). Вот это пример того, как это сделать с помощью squid.

Это невозможно. Вы не можете расшифровать только HTTPS-трафик; вам нужен секретный ключ для его расшифровки. В этом весь смысл HTTPS - уровень TLS защищает от отслеживания в точках на пути между сервером и клиентом.