У меня есть Ubuntu и Squid, работающие на машине, выступающей в качестве прозрачного прокси-сервера и шлюзом по умолчанию для многих компьютеров в моей сети, что означает, что вся активность, связанная с Интернетом, проходит через интерфейс и фильтруется перед отправкой на маршрутизатор (192.168.1.1) . HTTPS / SSL (443) не работает, потому что пакеты на порт 443 будут приходить и попадать в стену, поскольку у меня нет определенных правил для этого.
Как использовать iptables для создания сквозной передачи для соединений 443?
----------------- РЕДАКТИРОВАТЬ -----------------------
Удалось заставить https работать после настройки прокси-сервера для SSL, указывающего на поле squid. Однако, если бы я делал Linux-маршрутизатор (который я вроде как), означало бы это, что SSL никогда не работал бы, если у меня не запущен прокси-сервер? IP-адрес для Linux-бокса - 192.168.1.235, и я установил для него тестовый компьютер с WinXP в качестве шлюза по умолчанию. Конечно, есть способ разрешить 443 SSL «проходить», даже не касаясь прокси?
Я также немного сбит с толку, почему https вообще работает ... У меня нет никаких маршрутов или чего-либо в iptables, которые имеют дело с 443. Любой пролить свет на это будет очень признателен!
Вы не можете прозрачно проксировать HTTPS. Когда вы используете прозрачный прокси, клиенты думают, что они разговаривают с удаленным сервером. С HTTPS они попытаются создать SSL-соединение, которое будет аутентифицировать удаленный хост, сравнивая удаленный сертификат с именем хоста. Это не сработает, потому что у вашего кальмара не будет нужного сертификата.
Однако вы можете использовать прокси-соединения HTTPS, потому что клиенты, которые знают, как проксировать HTTPS, откроют соединение с вашим прокси и выдадут запрос CONNECT, который в основном туннелирует соединение через прокси.
Лучше всего заблокировать прямой доступ к порту 443 и сообщить пользователям, что если они хотят использовать HTTPS, они должны настроить свой браузер для использования прокси.
Это немного предполагает вашу конфигурацию, но это должно быть близко к тому, что вам нужно. Предполагая, что сторона LAN - eth1:
iptables -I INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
Это переместит все пакеты, поступающие со стороны LAN с портом назначения 443, на ACCEPT
target, а затем к маршрутизатору, снова я предполагаю, что у вас уже есть эта настройка.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: за ваш комментарий о наличии только одного интерфейса:
Вам понадобится правило на основе адреса источника, затем измените адреса по мере необходимости:
iptables -I INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT