Мы настраиваем наш веб-сайт для работы на игровой платформе. Он работает по протоколу http на 9000. Мы можем получить доступ к сайту, перейдя по ссылке http://servername.domain.com:9000 где servername - имя веб-сервера.
Мы также настраиваем наш балансировщик нагрузки F5 для перенаправления всего трафика с http на https и трафика с порта 443 на 9000. Мы настраиваем доменное имя для F5, vip.domain.com, которое подключается к этому веб-серверу на бэкэнде. Мы удалили другие веб-серверы из пула для отладки, поэтому в настоящее время в пуле только 1 сервер.
Когда я захожу на сайт в Chrome, если мы идем по http://vip.domain.com, F5 перенаправляет нас на https://vip.domain.com и мы получаем зеленый замок с надписью "Secure".
Когда я вхожу http://server.domain.com:9000, там написано "Not Secure", и мы не получаем замок.
Кто-то провел сканирование безопасности и сказал, что мы отправляем вещи в открытом виде, в незашифрованном виде. Мы провели все наши испытания и сказали всем перейти на http://vip.domain.com, но я предполагаю, что сканирование использовало http://servername.domain.com:9000.
Есть ли способ сделать http://servername.domain.com:9000 не работает, но все же оставьте порт 9000 открытым для http://vip.domain.com? У нас есть доступ для внесения изменений как в сервер, так и в VIP, если это необходимо.
Это просто сделать с помощью iRule:
when HTTP_REQUEST {
if { [HTTP::host] equals "servername.domain.com" } {
# send a TCP reset
reject
# alternatively, redirect somewhere else
# HTTP::redirect "http://www.somedomainyoufindentertaining.com"
}
}
(Почти дословно из https://devcentral.f5.com/questions/block-domain-redirect)
Просто укажите это в виртуальном сервере, обрабатывающем трафик порта 9000. Вы также можете проявить более творческий подход к условию, определяющему, отклонять ли соединение или нет.
Самый простой способ - настроить брандмауэр, который будет блокировать порт 9000 от любого хоста, кроме IP-адреса балансировщика нагрузки (при условии, что он не динамический).
простые правила:
iptables -A INPUT -p tcp --dport 9000 -m comment --comment 'allow LB traffic' -s LB.IP.ADDR.HERE -j ACCEPT
iptables -A INPUT -p tcp --dport 9000 -m comment --comment 'drop all other requests to 9000' -j DROP
Они будут:
Еще лучше было бы определить в вашем приложении, какой домен используется в соединении, и выполнить перенаправление на безопасный адрес, если используется неправильный. Я не уверен насчет вашего фреймворка / приложения, но большинство из них предоставляют такие механизмы.