Я могу зайти в любой из этих доменов [...] и добавить
:8080
их, чтобы попасть на сервер Дженкинса. Я хотел бы найти способ предотвратить это и разрешить доступ к серверу Jenkins только черезip:port
.
Первый шаг, о котором говорится в комментариях, состоит в том, чтобы заблокировать публичный доступ your_ip:8080
(Jenkins все еще может работать внутри этого порта). То, как вы это сделаете, вероятно, будет зависеть от вашего VPS (хотя ваш iptables или интерфейс брандмауэра могут быть хорошим местом для запуска).
Второй шаг должен сделать « по умолчанию» Apache виртуальный хост для порта обратного прокси ( с помощью Apache mod_proxy модуль) и установить целевой прокси в качестве (локального) ссылкой на Дженкинс работает на порту . Этот обратный прокси-сервер разрешает доступ к Jenkins, даже если в противном случае он будет публично заблокирован. Скорее всего, вас особенно заинтересуют официальные заметки Дженкинса в вики о работе Дженкинса за Apache .:XX
:8080
Заметки
Причина, по которой вы хотите, чтобы обратный прокси-сервер был хостом «по умолчанию» для данного порта, заключается в том, что при использовании Apache и виртуальных хостов на основе имен этот хост «по умолчанию» (обычно первый виртуальный хост с портом
:XX
) возвращается, когда IP-адрес просил.Порт для вашего обратного прокси-сервера определяется вашей записью виртуального хоста. Однако, если Apache и Jenkins работают на одном и том же сервере, этот порт не может быть таким же, как тот, на котором работает Jenkins (например
:8080
).Не забудьте добавить правильную
Listen
директиву для порта:XX
в вашей конфигурации Apache.Если вы используете порт
:443
(SSL), ваш сертификат для этого порта должен включать ваш IP-адрес в качестве допустимого имени. В противном случае вы получите сертификаты с предупреждениями.
Для ясности, порт :XX
- это просто пример / заполнитель и означает любой порт, который вы выберете.
Есть ли способ, которым я могу просто отбросить попытки подключения
ip:80
?
У Apache только Listen
на других портах :80
. Однако это нарушит все обычные порты :80
HTTP-доступа к вашим сайтам (т. Е. Если пользователь явно не наберет https://
в своем браузере или не посетит по явной https://
ссылке, он не сможет подключиться).
В качестве компромисса вы можете использовать ту же технику, описанную выше (с хостом по умолчанию для порта :80
), чтобы перенаправлять (а не прокси) запросы на ваш основной сайт или куда-то еще (например https://www.google.com
).