Я использую CentOS 5.8 (final), ядро 2.6.18-308.8.2, iptables v1.3.5
Я хочу заблокировать HTTP-запрос POST / GET, который соответствует строке (определенной как ABCxyz) в полезной нагрузке POST / GET. Я попытался заблокировать исходящий HTTP-запрос GET, добавив следующее правило в iptables
iptables -I OUTPUT -p tcp --dport 443 -m string --string 'GET / HTTP/1.1' --algo bm -j DROP
Я не знаю, почему, когда я запускаю команду curl, как показано ниже, она все еще работает:
curl https://website.com
Это должно быть заблокировано, как мое воображение, но ...
Есть ли у вас какие-нибудь идеи по этому поводу?
HTTPS-запросы зашифрованы с общим секретом между клиентом и сервером. Зашифрованные данные можно расшифровать, только если у вас есть общий секрет, который генерируется во время рукопожатия TLS.
Итак, чтобы проверить данные, вам нужно каким-то образом получить общий секрет, и даже в этом случае вам все равно придется получить iptables, чтобы использовать его для расшифровки трафика, а затем проверить его. Iptables не подходит для того, чего вы пытаетесь достичь, вам следует обратить внимание на прокси HTTPS. Имейте в виду, что в некоторых юрисдикциях это незаконно.
Для получения дополнительной информации о том, как работает HTTPS, вы можете оформить заказ эта ссылка.
Большое спасибо @poige за указание на неточности в моем первоначальном ответе.