Por que devo usar um número de porta bem conhecido? (ex. 22, 80, etc…)

7

Eu apenas configurei o ssh remoto pela primeira vez com o openssh.

Consegui usar o ssh no meu servidor com massa usando as três configurações a seguir:

  1. /etc/init.d/ssh restart

    # What ports, IPs and protocols we listen for
    Port 1234
    
  2. painel de controle de rede dd-wrt (192.168.1.1 na URL do navegador)

    Aplicativo ---- Port From ---- Protocol ---- Endereço IP ---- Porta para ---- Ativar

    myssh ---------- 1234 ---------- TCP --------- 192.168.1.x --- 1234 ------ -sim

  3. massa

    Nome do host (ou endereço IP) ---- Porta

    w.x.y.z ----------------------------- 1234

Existe algum motivo para eu usar a porta 22 em vez de 1234?

    
por user784637 27.12.2011 / 22:25

6 respostas

8

Primeiro, os números de porta conhecidos são "bem conhecidos". Eles eliminam algumas suposições sobre a porta na qual um determinado serviço está escutando.

Segundo, as portas 1024 e inferiores só podem ser abertas por root . Isso dá um nível adicional de "confiança" a esses serviços. I.E., o serviço ao qual estou me conectando na porta 22 deve estar em execução (ou ter sido iniciado) como root. Se um serviço estiver sendo executado em 1234, pode ser qualquer usuário que tenha acesso à caixa que abriu e iniciou um programa "programa-que-age-como-SSHD-mas-intercepta-senhas". (Isso pressupõe que não há NAT ou outros redirecionamentos no lugar - veja a resposta de mmi.)

Também concordou com um ponto feito por mmi - Eu não precisaria executar um programa desnecessariamente como root apenas para obter o número de porta desejado. Se um programa em execução como root fosse comprometido, todo o sistema seria comprometido. No entanto, se um programa já estiver sendo executado como root para outras necessidades, também pode usar o número de porta correto.

Algumas pessoas desaconselham o uso de portas conhecidas em um esforço para "ocultar" serviços comuns que podem ser usados para tentativas de exploração, mas considero que isso seja apenas "segurança por obscuridade" - e não aconselho fazer isso.

    
por 27.12.2011 / 22:33
6

Depende basicamente de quanto você deseja ocultar esse serviço.

As pessoas (e os bots examinando as vulnerabilidades de segurança) presumirão que o SSH está sendo executado na porta 22, o HTTP está sendo executado na porta 80 e assim por diante. Se um serviço estiver sendo executado em uma porta não padrão, será menos fácil detectá-lo, mas será mais difícil de usar para usuários legítimos.

  • HTTP em execução na porta 80:
    • Você pode acessá-lo usando http://servername
    • Será facilmente acessível por qualquer pessoa que aponte um navegador da web para ele
  • HTTP em execução na porta 8042:
    • Você precisará digitar http://servername:8042 para acessá-lo
    • Ele não será facilmente detectado como um servidor web

  • SSH em execução na porta 22:
    • Você pode contatá-lo dizendo a Putty (ou qualquer outro programa semelhante) para se conectar ao nome de host ou ao endereço IP do seu servidor
    • Será facilmente acessível por qualquer pessoa que aponte um cliente SSH para ele
  • SSH em execução na porta 2242:
    • Você precisará dizer ao seu cliente SSH para usar essa porta personalizada
    • Ele não será facilmente detectado como um servidor SSH

E assim por diante ...

    
por 28.12.2011 / 01:39
3

Você pode usar qualquer porta que desejar. O uso da porta 22 para ssh é convencional, e você encontrará muitos firewalls, clientes ssh e daemons como padrão para isso por conveniência.

A melhor pergunta deveria ser "por que não devo usar a porta 22?". Há alguns benefícios de segurança discutíveis para fazer isso, mas eu nunca fui pessoalmente convencido por eles.

    
por 27.12.2011 / 22:34
3

Eu discordo em algum momento com ziesemer: Esses programas NÃO precisam necessariamente ser executados pelo root. E NÃO é recomendado executar qualquer serviço relacionado à rede como root, a menos que você precise fazer isso. Quando alguém é capaz de explorar seu serviço, ele ganhará direitos de root.

Além disso, um NAT pode converter a porta 80 de fora para qualquer porta na LAN. Portanto, você pode executar um serviço como não-raiz.

A principal vantagem de portas bem conhecidas (especialmente a porta 80): elas geralmente não são bloqueadas por firewalls (filtros de porta). Se você tentar acessar seu servidor da escola, ele poderá falhar, dependendo da configuração do roteador da escola.

    
por 28.12.2011 / 00:11
1

Existe algum motivo para eu usar a porta 22 em vez de 1234?

Porque é onde os outros 99% dos serviços SSH ouvem e as pessoas esperam que seja assim. A convenção não é uma regra difícil e rápida, mas você descobrirá que a maioria dos administradores espera ver o SSH na porta 22, o HTTP na porta 80 e assim por diante. A menos que você tenha um bom motivo para se desviar da convenção estabelecida - sugiro que não o faça.

Nove em dez vezes, alguém muito mais esperto do que você (ou eu) escolhemos as configurações padrão por um bom motivo e, a menos que você tenha uma melhor, por que alterá-la?

(É muito chato ter que passar o primeiro dia no trabalho nmap-ing tudo para tentar descobrir quais portas "não-convencionais" o administrador / consultor anterior / BOFH decidiu executar tudo).

    
por 28.12.2011 / 00:57
1

Há uma boa razão para usar 22 para o ssh, evitar a necessidade de aprender como configurar ou parâmetros adicionais para usar em vários clientes, ssh, scp, git, rsync etc. E também evitar alterar scripts criados para assumir o porta padrão.

Há sempre ganhos subjetivos de segurança alterando uma porta padrão, mas acho que deve existir uma boa e incontável razão para alterar um padrão comportamento.

    
por 28.12.2011 / 01:09