Como proteger o acesso SSH no servidor ubuntu.

1

Acabei de instalar o Ubuntu Server em um dos meus computadores. Eu uso um roteador Netgear e isso me ajudou a criar uma conta DynDNS. Eu tenho um nome de host para o meu endereço IP dinâmico e encaminhei as portas para o endereço IP do meu computador. Eu posso acessar meu computador (Ubuntu Server) com HTTP, HTTPS, FTP e SSH de qualquer computador remoto.

Recentemente, quando verifiquei meus logs de roteador, descobri que há vários computadores remotos que se conectaram aos meus servidores SSH (porta 22).

[LAN access from remote] from 218.12.159.34:43871 to 10.X.X.X:22 Monday, Sep 05,2011 04:10:19
[LAN access from remote] from 194.213.42.58:36664 to 10.X.X.X:22 Monday, Sep 05,2011 01:00:41

Esses endereços IP tentaram acessar meu computador por mais de uma hora. Existem vários outros IPs tentando fazer isso também. Quando eu entrei na minha conta SSH, descobri que ninguém logou com sucesso. Meu computador está vulnerável? Ou esses programas automatizados estão tentando fazer uma conexão ou alguém está tentando invadir meu computador?

    
por Jeyanth Kumar 05.09.2011 / 04:23

2 respostas

2

Essas conexões que você vê são de bots que tentam acessar contas comuns com senhas conhecidas do outro lado da internet. Você não está sob ataque, você está apenas conectado à internet:)

Você pode filtrar essas conexões de várias maneiras:

Uma maneira é permitir que endereços IP específicos acessem sua máquina apenas com iptables :

# iptables -N SSH
# iptables -A SSH --src <src_ip1> -j  ACCEPT
# iptables -A SSH --src <src_ip2> -j  ACCEPT
# iptables -A SSH --src <src_ipN> -j  ACCEPT
# iptables -A INPUT -i <iface> -p tcp --dport 22 -j SSH
# iptables -A INPUT -i <iface> -p tcp --dport 22 -j DROP

Outra forma, se você preferir deixar alguém acessar sua máquina, mas descartar o acesso com base em logins com falha, você pode usar fail2ban , apenas apt-get e seguir a documentação. É um serviço muito fácil de configurar, que elimina conexões de IPs remotos com base em quantas vezes eles tentaram acessar seu computador e falharam.

    
por 05.09.2011 / 05:16
1

Outra opção é desativar os logins interativos com senha / teclado e usar as chaves ssh para autenticação.

Primeiro, você precisará gerar seu par de chaves se ainda não tiver um - dependendo do seu sistema operacional, isso varia, mas aqui estão alguns guias:

Uma vez feito isso, você precisará adicionar a chave pública ao arquivo authorized_keys (sob a conta de usuário que você deseja fazer login):

mkdir -p ~/.ssh
chmod 0700 ~/.ssh
echo "ssh-rsa AAAA..0Wovw== [email protected]" > ~/.ssh/authorized_keys

Em seguida, tente conectar-se ao seu cliente:

ssh -i ~/.ssh/id_rsa [email protected]

Se isso não funcionar, edite sua configuração de SSH ( /etc/ssh/sshd_config ) e verifique se as seguintes entradas estão definidas (e reinicie o serviço com service ssh restart ):

RSAAuthentication yes
PubkeyAuthentication yes

No entanto, se isso funcionar, você poderá desativar os logins de senha no servidor SSHd (mais uma vez, no arquivo de configuração /etc/ssh/sshd_config e reiniciar o serviço com service ssh restart ):

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Por fim, desconecte e tente novamente sua conexão - se isso funcionar, tente ssh sem o argumento -i ~/.ssh/id_rsa e a autenticação falhará.

    
por 06.09.2011 / 04:30