У меня есть сервер Ubuntu 22.04, список IP-адресов пользователей моей локальной сети, и я хочу перенаправить http/https-трафик из этого списка на локальную информационную html-страницу.Подобно тому, как точка доступа будет. Я пробовал с apache2, squid, wpad (252 dhcp), iptables, но не смог. https не перенаправляет.
как мне это сделать?
решение1
iptables не может перенаправить ip:443 на другой ip:port (где у меня опубликован виртуальный хост apache2 со страницей информационного блока)
Вы можете перенаправить поток TCP/IP, но браузер выдаст предупреждение безопасности, поскольку вы не сможете предоставить действительный сертификат.
squid-cache отображает информацию в браузере только тогда, когда это http-страница со «страницей ошибки» (пользовательские страницы ошибок не отображаются для HTTPS) (для получения дополнительной информации посетите здесь)
Как вы заметили, браузеры не показывают страницу ошибки для TLS; при получении чего-либо, кроме кода 200, они показывают собственное сообщение об ошибке.
ПочтивсеСегодня трафик зашифрован TLS, и вы не можете его просматривать или изменять. То есть: вы не можете утверждать, что вы example.com
, и не можете перенаправлять example.com
куда-либо еще.
Если у вас нет полного контроля над клиентами и вы не можете установить новый корневой сертификат, вы не можете претендовать на звание example.com
.
PS: Если есть какой-то способ заблокировать и отобразить страницу блокировки, которая позволяет https-трафику (tcp 443) поступать на эту страницу, я был бы признателен за подробное объяснение с конкретными примерами.
Нет такого метода, который бы работал с современными браузерами, и это не ошибка; этодизайнособенность tls. Предполагается, что он останавливает атаки типа «человек посередине» — что, по сути, вы и пытаетесь сделать.
Так что нет, нет способа достичь того, чего вы пытаетесь достичь. Если бы был, это была бы серьезная проблема безопасности.
решение2
Вы не можете одновременно блокировать пользователей и предоставлять им контент.
Если бы я хотел, чтобы люди знали, что их заблокировали, я бы, вероятно, создал список контроля доступа в своем обратном прокси-сервере/балансировщике нагрузки и направлял клиентов с заблокированными IP-адресами на статическую страницу, размещенную либо внутри системы, либо в сети доставки контента.