Ajuste fino para melhoria da segurança do SSH

Após instalarmos o SSH para que possamos acessar remotamente de maneira mais segura nosso servidor, é preciso tomar alguns cuidados básicos para que esse acesso não seja uma porta escancarada aos visitantes indesejados. Lembre-se: boa parte dos ataques e invasões em sistemas são oriundos de dentro da própria rede então todo cuidado é pouco. Claro que as dicas abaixo são apenas algumas de uma série de outras que você tem que observar e utilizar no seu ambiente, como o uso de senhas

Essa e as outras alterações sugeridas, deverão ser feitas no arquivo /etc/ssh/sshd_config. Lembrando que toda e qualquer modificação a ser feita, para entrar em vigor, será preciso que o serviço SSH seja reiniciado.

Um dos primeiros itens que faremos será trocar a porta padrão. Alguns scripts utilizados para ataque fazem varredura na porta 22 para localizar servidores candidatos a ser atacado. Então vamos mudar para uma outra porta. Por exemplo, a porta 2222.

Abra o arquivo sshd_config e localize a linha que contém “Port 22” e altere para “Port 2222” (ou a porta que você escolheu).

Vamos garantir também que não apenas os usuários que queiramos que acesse ao servidor remotamente, de fato tenham acesso. Para isso vamos evitar que o usuário ROOT tenha acesso direto à console. Localize a linha

PermitRootLogin yes

e altere de yes para no. Assim ao tentar o acesso passando o usuário root (ex.: ssh -p 2222 root@meuip), a conexão será recusada. Em conjunto a esta alteração, precisamos incluir a linha que irá limitar os usuários que terão acesso. Logo em seguida a linha acima que você alterou insira:

AllowUsers eden # digite aqui o usuário que terá acesso

Esse usuário deverá ser um usuário ativo no seu linux e é ideal que ele seja um usuário criado especificamente para este fim, com acessos reduzidos, pois caso caia em mãos erradas, ao ser indevidamente utilizado, fará com que o invasor fique “enjaulado” sem condições de seguir adiante. Evite a todo custo usar um usuário que tenha outras utilizações e permissões.

Vamos também alterar o tempo da opção “LoginGraceTime” que informa ao servidor SSH o tempo que ele deve aguardar para que o usuário tente com sucesso efetuar sua conexão. Caso o usuário que está tentando acesso não tenha êxito antes deste tempo definido por você, a sessão será encerrada. Isso não impede que ele tente outra e outra e inúmeras outras vezes. Então, apesar de existir essa configuração, é bom que esse recurso seja utilizado em conjunto com outros, como o Fail2Ban por exemplo.

Vamos alterar também os valores das opções “ClientAliveInterval”“ClientAliveCountMax” para os tempos que você julgar adequado para o seu cenário. Essas duas opções servem respectivamente para:

  • ClientAliveInterval: tempo em segundos que aguarda para deslogar a maquina que nao responde ao keepalive.
  • ClientAliveCountMax:  quantidade de vezes que aguarda por uma resposta de keepalive antes de desconectar o host remoto.

Existem muitos outros detalhes que você pode adequar ao seu cenário, como por exemplo limitar os endereços IPs que você deseja dar permissão para acessar ao seu servidor ou mesmo os que são oficialmente bloqueados.

FONTES:

  • man sshd_config
  • https://wiki.debian.org/SSH

 

Deixe uma resposta