Checklist do servidor novo

  linux

Este post tem a intenção de ser um guia linear para configuração de servidores Debian, que é aplicável também a Ubuntu. Quero manter este post expansível e sempre adicionar coisas novas que vou aprendendo.

O interessante é que o conteúdo deste post todo foi feito com base em um script que fiz um tempo atrás.

Alguns pontos a se considerar são:

  • Não use root além do necessário
  • apt-get e aptitude são front ends para o APT
  • As referências sobre cada tópico quando houver, serão inseridas ao seu final e não ao final do post como de costume eu sempre faço.

Índice

Atualizar o índice de pacotes

Atualiza o índice de pacotes do sistema, que contém quais pacotes e em que versão estão disponíveis

# apt update

Atualizar o sistema

Faz uma atualização dos pacotes de sistema para a mais recente disponível:

# apt upgrade

Adicionar os repositórios extras

O Debian possui alguns tipos de repositório, o que na verdade simboliza o tipo de software que ele armazena que para ativar ele, você precisa ir no arquivo /etc/apt/sources.list , com isso eu recomendo a leitura dos textos abaixo, já que Debian e Ubuntu tem os repositórios liberados por padrão diferentes:

Nota: gerar um novo arquivo na pasta /etc/apt/sources.d com extensão .list para um repositório que não seja o oficial, assim mantém a organização, após essa ou outras modificações sempre atualize o indice de pacotes.

Caso precise gerar um arquivo source.list ou tenha alterado e não sabe recuperar, pode gerar online utilizando os sites:

Instalar sudo

O comando sudo serve para que um usuário não root, possar utilizar comandos de administrador do sistema:

# apt install sudo

Nota: No Debian o usuário padrão que é cadastrado na instalação não recebe permissão de uso do sudo. Em instalações mínimas o pacote também não vem instalado por padrão, isso vale para instalações de VPS também.

Cria novo usuário

Cria um novo usuário especificando um shell padrão:

# adduser <usuario> --shell /bin/bash --home /home/<usuario>

As referências são:

Configurar o novo usuário com privilégio para utilizar o sudo

Adicione ele no grupo que garante permissões de uso do comando sudo:

# usermod -a -G sudo <usuario>

Ou utiliza uma outra forma de fazer isso é utilizando o comando abaixo:

# echo "<usuario>\t\tALL=(ALL:ALL) ALL" >> /etc/sudoers

As referências são:

Login sem senha (opcional)

Para isto, é preciso gerar uma chave SSH e enviar ao servidor, este procedimento já foi descrito no post Gerar chave SSH

Remover o acesso com root do SSH

No arquivo /etc/ssh/sshd_config alterar o valor da propriedade PermitRootLogin para no:

# sed -i s/PermitRootLogin\ yes/PermitRootLogin\ no/g /etc/ssh/sshd_config

Reiniciar o servidor SSH:

# systemctl restart ssh

Firewall (UFW)

UFW é um firewall com configuração simples e isto fez com que eu utilizasse ele:

Nota: é possível bloquear a porta 22 mesmo estando usando ela em uma conexão SSH, mas depois que ela encerrar, não é possível conectar por ela mais caso a porta esteja bloqueada. Muito provavelmente não irá mais conseguir conectar novamente, então cuidado!

# apt install ufw

Habilita o firewall

# ufw enable

Reinicia a tabela de permissões deixando ela sem nada

# ufw reset

Bloqueia todas as requisições de entrada na máquina

# ufw default deny incoming

Habilita todas as requisições de saída na máquina

# ufw default allow outgoing

Habilita (abre) uma porta especifica

# ufw allow <porta>

Bloqueia uma porta especifica

# ufw deny <PORTA>

Recarrega o UFW com as novas regras:

# ufw reload

As referências são: