Мне нужно отфильтровать (отправить в набор 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 защищает от отслеживания в точках на пути между сервером и клиентом.