I can go to any of these domains [...] and append
:8080
to them to get to the Jenkins server. I'd like to find a way to prevent this and allow me to only access the Jenkins server viaip:port
.
O primeiro passo, como mencionado nos comentários, é bloquear o acesso público a your_ip:8080
(o Jenkins ainda pode ser executado internamente nesta porta). Como você faz isso provavelmente dependerá do seu VPS (embora sua iptables ou interface de firewall possa ser um bom lugar para começar).
O segundo passo é tornar o host virtual Apache "padrão" para a porta :XX
a proxy reverso (usando o módulo mod_proxy do Apache) e defina o alvo do proxy como uma referência (local) para Jenkins operando em porta :8080
. Esse proxy reverso é o que permitiria o acesso a Jenkins, mesmo que isso fosse bloqueado publicamente de outra forma. Você provavelmente estará especialmente interessado no notas oficiais do Jenkins sobre a execução do Jenkins por trás do Apache .
Notas
-
O motivo pelo qual você deseja que seu proxy reverso seja o host "padrão" de uma determinada porta é porque, com os hosts virtuais baseados em nome e Apache, esse host "padrão" (geralmente o primeiro host virtual com porta
:XX
) é retornado quando um IP é solicitado. -
A porta do seu proxy reverso é definida pela entrada do host virtual. No entanto, se o Apache e o Jenkins operarem no mesmo servidor, essa porta não pode ser a mesma que a Jenkins opera (por exemplo,
:8080
). -
Não se esqueça de adicionar a diretiva
Listen
adequada para a porta:XX
em sua configuração do Apache. -
Se você usar a porta
:443
(SSL), seu certificado para essa porta deverá incluir seu IP como um nome válido. Você provavelmente receberá avisos de certificados de outra forma.
Para ficar claro, a porta :XX
é apenas um exemplo / espaço reservado e significa qualquer porta que você escolher.
Is there any way that I can just drop attempts to connect to
ip:80
as well?
Tenha o Apache apenas Listen
em portas diferentes de :80
. No entanto, isso quebrará todos os acessos HTTP :80
HTTP da porta normal aos seus sites (ou seja, se um usuário não digitar explicitamente https://
no navegador ou visitar usando um link explícito https://
, eles não poderão se conectar ).
Como um compromisso, você pode usar a mesma técnica acima (com um host "padrão" na porta :80
) para redirecionar (em vez de proxy) solicitações para seu site principal ou em outro lugar (por exemplo, https://www.google.com
). / p>