Configurando um servidor LEMP Debian 9 - Parte 1

Configuração de um servidor web usando LEMP no Debian 9. Criando um usuário e configurando o SSH

Configurando um servidor LEMP Debian 9 - Parte 1

Fala pessoal tudo beleza?

Esse é o primeiro artigo de alguns que irei publicar com o objetivo de ajudar a configurar um servidor web do zero. Mostrarei como configurar os principais serviços e instalar um servidor web para rodar aplicações e sites.

Essa série será sempre com exemplos práticos sem muito entrar em detalhes, irei simplificar o máximo para não ficar maçante. Chega de enrolação e vamos começar...

Nessa série estou utilizando uma instalação limpa do Debian 9 - Stretch.

Criando um novo usuário

Sabemos que por motivos de segurança não devemos usar o usuário root para tarefas rotineiras. Para isso devemos criar um usuário para nós.

O comando abaixo irá criar um usuário com o nome john. Após confirmar com o Enter, você terá que digitar uma senha para o usuário, insira uma senha forte!

Entre com o seu nome e preencha as informações seguintes caso desejar. Não é obrigatório preencher tudo e você pode apenas confirmar com o Enter para pular as perguntas.

adduser john

Agora devemos adicionar seu usuário para podermos executar alguns comandos com super poderes. Para isso execute o comando abaixo:

usermod -aG sudo john

Assim você já poderá executar comandos com privilégios de root utilizando o sudo.

Aumentando a segurança com autenticação de chaves

Podemos melhorar a segurança do nosso servidor inserindo uma chave pública para autenticação. Vamos criar um par de chaves e adicionar ao nosso servidor.

Caso ainda não tenha uma chave execute o comando abaixo. Caso já tenha pode pular para a parte de Instalar a chave manualmente.

Execute o comando abaixo no seu computador local, assumindo que você esteja usando Linux como sistema operacional. Caso esteja usando Windows busque por Criar chave ssh windows no Google.

$ ssh-keygen

Você poderá cadastrar uma senha caso queira é uma segurança a mais para você. Eu particularmente não utilizo. Com uma senha ou sem, a autenticação com a chave privada é uma maneira mais segura de efetuar o login do que uma autenticação básica com apenas a senha.

O comando acima irá gerar uma chave privada id_rsa e uma chave pública id_rsa.pub no diretório local do usuário na pasta ~/.ssh.

Instalar a chave manualmente

Agora vamos instalar essa chave pública que acabamos de criar no servidor. O comando abaixo irá exibir o conteúdo do arquivo id_rsa.pub. Apenas copie o conteúdo do arquivo.

$ cat ~/.ssh/id_rsa.pub

Logado no servidor como root dê o comando abaixo para trocar de usuário assumindo o usuário que criamos nesse tutorial.

su - john

Crie um diretório chamado .ssh dentro do seu diretório home e restrinja suas permissões com os comandos:

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

Vamos criar agora um arquivo dentro desse diretório chamado authorized_keys. Nesse exemplo vamos utilizar o editor nano.

$ nano ~/.ssh/authorized_keys

Cole todo o conteúdo do arquivo que você copiou no passo acima para este que acabamos de criar. Para salvar pressione CTRL+O e CTRL+X para sair do arquivo.

Agora vamos restringir o acesso a esse arquivo para que apenas seu usuário tenha acesso com o comando abaixo:

$ chmod 600 ~/.ssh/authorized_keys

Pronto. Chave instalada no servidor e agora poderá acessar seu servidor com mais segurança. Para sair do seu usuário digite exit que ele irá voltar para o usuário root.

Configurando o SSH

Podemos realizar algumas alterações no arquivo de configuração do SSH para proteger nosso servidor um pouco mais.

Abra o arquivo abaixo utilizando o usuário root com seu editor de texto:

nano /etc/ssh/sshd_config

Agora vamos fazer as alterações.

Desabilitar login com usuário root

Vamos bloquear o acesso via SSH para o usuário root, este é um procedimento altamente recomendado para servidores. Iremos deixar que apenas o usuário que criamos tenha acesso ao servidor.

Para isso altere a linha abaixo de yes para no. Ficando conforme exemplo:

PermitRootLogin no

Isso irá restringir o login de root. Pessoas má intencionadas sempre utilizam ataques de força bruta em cima desse usuário e se a senha não for forte o suficiente é certeza que seu sistema estará vulnerável à esse ataque.

Alterando a porta padrão

Agora vamos deixar nosso servidor um pouco mais seguro alterando a porta padrão do SSH que é a 22.  Procure a linha abaixo no arquivo de configuração.

Port 22

Nesse exemplo vamos utilizar a porta 54122. Altere a linha deixando a dessa forma:

Port 54122

Nesses dois exemplos que fizemos, nós melhoramos a segurança do nosso servidor. A partir de agora para efeturar login no servidor será necessário especificar a porta SSH nova. Veremos um exemplo mais abaixo.

Quer melhorar a segurança um pouco mais?

Vamos especificar no arquivo de configuração do SSH que apenas o nosso usuário poderá acessar via SSH. Restringindo qualquer outro usuário do sistema.

Abra o arquivo de configuração caso já tenha fechado.

nano /etc/ssh/sshd_conf

Podemos inserir a linha abaixo em qualquer lugar do arquivo, mas para ficar mais organizado vamos inserir após a linha do PermitRootLogin.

AllowUsers john

Para salvar pressione CTRL+O e CTRL+X para sair do arquivo. Para que todas essas alterações surjam efeitos devemos reiniciar o serviço SSH com o comando.

service ssh restart

E como saber se tudo que fizemos deu certo? Vamos testar antes de fechar nossa conexão com o servidor.

Abra uma nova janela do seu terminal e efetue uma nova conexão com o servidor via SSH utilizando seu novo usuário. Agora especificando a porta que escolhemos para o serviço.

ssh john@ip_servidor -p 54122

Se tudo correr bem você estará logado no servidor sem utilizar uma senha. Ao logar o sistema verifica sua chave privada com a chave pública no servidor e autoriza sua entrada caso esteja tudo certo.

Para executar comando com privilégios de root informe o sudo antes do comando.

$ sudo apt update

Maravilha. Agora elevamos o nível de segurança do nosso servidor. Lembre-se que só isso não deixará seu servidor com segurança nível hard, é necessário um conjunto de configurações e serviços executando para ter uma proteção maior.

Até a próxima!

Este artigo faz parte de uma série sobre servidor web. Veja todos no link abaixo:

  1. Configurando um servidor LEMP Debian 9 #Parte 1 (Atual)
  2. Configurando um servidor LEMP Debian 9 #Parte 2