4 minutos
Checklist do servidor novo
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 indice de pacotes
- Atualizar o sistema
- Adicionar os repositórios extras
- Instalar sudo
- Cria novo usuário
- Configurar o novo usuário com privilégio para utilizar o sudo
- Login sem senha (opcional)
- Remover o acesso com root do SSH
- Firewall (UFW)
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:
- Proper way to add a user account via bash script
- Linux adduser and addgroup commands help and examples
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: