Como posso configurar o Apache para usar a porta 1 e outras portas abaixo de 80?

6

O usuário mysql não pode usar portas abaixo de 1024 porque estas são reservadas para o usuário root.

O Apache, por outro lado, pode usar a porta 80. O Apache é executado como root antes de ser executado como Apache e, portanto, pode usar a porta 80. Ele pode até mesmo ouvir a porta 81 e qualquer outra porta.

No entanto, quando tentei obter o Apache para escutar na porta 79, ele não funcionou. Eu tentei escutar na porta 1 também, e isso também não funcionou.

Quando eu altero as configurações do Apache, o Apache é reiniciado, mas ele não funciona na Web.

Posso usar a porta 1 na Web?

    
por Sümer Kolçak 25.08.2014 / 16:21

3 respostas

24

Vou usar o Firefox como um exemplo, porque é um código aberto e fácil de encontrar as informações, mas isso se aplica (provavelmente com listas ligeiramente diferentes de portas) a outros navegadores também.

Em agosto de 2001, a CERT emitiu uma nota de vulnerabilidade sobre como um navegador da Web poderia ser usado para enviar dados quase arbitrários para portas TCP escolhidas por um invasor, em qualquer endereço IP arbitrário. Isso pode ser usado, por exemplo, para enviar e-mails que parecem vir do usuário que está executando o navegador da web. Para mitigar isso, a Mozilla (assim como muitos outros fornecedores) impediu o acesso do Firefox a certas portas .

As duas portas que você tentou, 79 e 1, estão na lista de bloqueio. A fonte contém a lista completa de portas bloqueadas . Você pode (no seu navegador) substituir essa lista usando as preferências network.security.ports.banned.override e network.security.ports.banned . Isso não é útil na Internet em geral, já que você teria que convencer todos que podem visitar seu site para ir para about:config e alterá-los.

(Nota: As versões atuais do Firefox fornecerão uma mensagem de erro explicando que, se você tentar navegar para um site em uma porta bloqueada).

Em geral, há poucas razões para usar portas HTTP adicionais, pelo menos externamente. Se você precisar, prefira portas extras tradicionais como 8080, 8000, etc. que têm muito menos probabilidade de serem bloqueadas ou pelo menos outras que estejam fora do intervalo de portas do sistema atribuído pela IANA (0-1023). Consulte o registro de porta da IANA para obter mais detalhes.

    
por 25.08.2014 / 18:01
6

apache restarts just fine but on the web it does not work.

A porta 80 é a porta HTTP padrão para navegadores e servidores. Isso significa que, para acessar um servidor que está operando em uma porta não padrão de um navegador, você precisa incluir a porta no endereço, por exemplo:

http://localhost:79/rest/of/url

Sem o :79 após o nome do host, o navegador tentará acessar a porta 80 e não receber nada, já que o apache está usando outra coisa.

    
por 25.08.2014 / 17:48
1

Você pode executar qualquer serviço em qualquer porta (privilégios modulo). Que o HTTP está na porta 80 é pura convenção, não há razão técnica para isso. Então, sim, você poderia executar o HTTP na porta 1 (a menos que esteja sendo usado por outro programa). Se não funcionou para você, então você ainda precisa consertar a configuração do servidor (verifique o que o netstat -ntl diz), ou, como goldilocks apontou, você simplesmente não estava ciente de que para HTTP em qualquer porta com número diferente de 80 você precisa informar ao navegador o número da porta também.

    
por 25.08.2014 / 19:50