Configuração inicial do servidor com o Ubuntu 20.04/18.04 e 16.04

Configuração inicial do servidor com o Ubuntu 20.04/18.04 e 16.04

Este tutorial o guiará sobre as primeiras etapas básicas que você precisa configurar em um novo instalado Ubuntu servidor para aumentar a segurança e a confiabilidade para o seu servidor.

As configurações explicadas neste tópico são quase as mesmas para todos os sistemas de servidores Ubuntu, sobre a plataforma subjacente do sistema operacional, seja Ubuntu está instalado em um servidor de metal nu, em uma máquina virtual privada ou em uma máquina virtual girada em uma nuvem pública VPS.

Requisitos

  • Ubuntu 20.04 Instalação do servidor
  • Ubuntu 18.04 Instalação do servidor
  • Ubuntu 16.04 Instalação do servidor

Atualizar e atualizar o sistema Ubuntu

A primeira etapa que você precisa cuidar em caso de nova instalação de Ubuntu servidor ou um novo implantado Ubuntu VPS é garantir que o sistema e todos os componentes do sistema, como o kernel, o gerenciador de pacotes APT e todos os outros pacotes instalados, estejam atualizados com as mais recentes versões lançadas e patches de segurança.

Para atualizar o servidor Ubuntu, faça login no console do servidor com uma conta com privilégios root ou diretamente como root e execute os comandos abaixo para executar o processo de atualização e atualização.

$ sudo apt update 
Atualize o servidor Ubuntu

Depois de executar o comando de atualização, você verá o número de pacotes disponíveis para o processo de atualização e o comando usado para listar as atualizações dos pacotes.

$ sudo APT List -Atualizável 
Listar pacotes ubuntu de atualização

Depois de consultar a lista de pacotes disponíveis para atualização, emita o comando abaixo para iniciar o processo de atualização do sistema.

Atualização de $ sudo apt 
Atualizar pacotes de servidores ubuntu

Para remover todos os pacotes Deb downloads localmente e todos os outros caches apt-get, execute o comando abaixo.

$ sudo apt autoremove $ sudo apt 
Pacotes APT e cache de autorização automática

Crie uma nova conta no Ubuntu

Por padrão, como medida de segurança, a conta raiz está completamente desativada no Ubuntu. Para criar uma nova conta no sistema, faça login no sistema com o usuário da conta com privilégios root e criar uma nova conta com o comando abaixo.

Esta nova conta será concedida com privilégios de poderes raiz via comando sudo e será usado para executar tarefas administrativas no sistema. Certifique -se de configurar uma senha forte para proteger esta conta. Segue o adicionar usuário solicitar configurar os detalhes e a senha do usuário.

$ sudo adduser ubuntu_user 
Crie usuário no Ubuntu

Se esta conta for atribuída a outro administrador do sistema, você poderá forçar o usuário a alterar sua senha no primeiro log na tentativa, emitindo o seguinte comando.

$ sudo chage -d0 ubuntu_user 

Por enquanto, o novo usuário adicionado não pode executar tarefas administrativas via utilitário sudo. Para conceder esta nova conta de usuário com privilégios administrativos, você deve adicionar o usuário a “sudo”System Group emitindo o comando abaixo.

$ sudo userMod -a -g sudo ubuntu_user 

Por padrão, todos os usuários pertencentes ao “sudo”O grupo pode executar comandos com privilégios root via utilitário sudo. O comando sudo deve ser usado antes de escrever o comando necessário para a execução, como mostrado no exemplo abaixo.

$ sudo apt install package_name 

Teste se o novo usuário tem os privilégios root concedidos, fazendo login no sistema e executando o Atualização APT comando prefixado com sudo.

$ su - ubuntu_user $ sudo apt atualização 
Verifique o novo usuário

Configurar o nome do host do sistema no Ubuntu

Geralmente, o nome do host da máquina é configurado durante o processo de instalação do sistema ou quando o VPS é criado na nuvem. No entanto, você deve alterar o nome da sua máquina para refletir melhor o destino do seu servidor ou descrever melhor seu objetivo final.

Em uma grande empresa, as máquinas têm o nome de esquemas complexos de nomeação para identificar facilmente a máquina nos racks do datacenter. Por exemplo, se sua máquina Ubuntu operará um servidor de email, o nome da máquina deve refletir esse fato e você poderá configurar o nome do host da máquina como MX01.MyDomain.LAN, por exemplo.

Para mostrar detalhes sobre seu nome de host da máquina, execute o seguinte comando.

$ hostnamectl 

Para mudar o nome da sua máquina, emitir comando hostnamectl Com o novo nome, você configurará para sua máquina, conforme ilustrado no trecho abaixo.

$ sudo hostnamectl set-hostname tecmint 

Verifique o novo nome do seu sistema com um dos comandos abaixo.

$ hostname $ hostname -s $ cat /etc /hostname 
Defina o nome do host no servidor Ubuntu

Configure SSH com autenticação pública -chave no Ubuntu

Para aumentar o grau de segurança do sistema de um servidor Ubuntu, você deve configurar a autenticação de chave pública ssh para uma conta local. Para gerar o par de chaves SSH, a chave pública e privada, com uma especificação de uma duração chave, como 2048 bits, execute o seguinte comando no seu console de servidor.

Verifique se você está conectado ao sistema com o usuário que você está configurando a tecla SSH.

$ su -ubuntu_user $ ssh -keygen -t rsa -b 2048 
Configure as chaves ssh no Ubuntu

Enquanto a chave é gerada, você será solicitado a adicionar senha Para garantir a chave. Você pode inserir uma senha forte ou optar por deixar a senha em branco se quiser automatizar tarefas via servidor ssh.

Depois que a chave SSH foi gerada, você pode copiar a chave pública para um servidor remoto executando o comando abaixo. Para instalar a chave pública para o servidor SSH remoto, você precisará de uma conta de usuário remota com as permissões e credenciais adequadas para fazer login no servidor remoto.

$ SSH-COPY-ID [Email Protected] _server 
Copie a chave SSH para o servidor remoto

Você deve poder fazer login automaticamente via SSH no servidor remoto usando o método de autenticação de chave pública. Você não precisará adicionar a senha do usuário remoto enquanto estiver usando a autenticação de chave pública ssh.

Depois de fazer login no servidor remoto, você pode começar a executar comandos, como w comando Para listar os usuários do SSH Remote logous, conforme mostrado na captura de tela abaixo.

Digite a saída no console para fechar a sessão SSH remota.

$ ssh [email protegido] _server $ w $ sai 
Verifique o login sem senha do SSH

Para ver o conteúdo da sua chave SSH pública para instalar manualmente a chave para um servidor SSH remoto, emita o seguinte comando.

$ cat ~//.ssh/id_rsa.bar 
Veja a chave SSH

Senhor SSH seguro no Ubuntu

Para garantir o daemon ssh, você deve alterar o número da porta SSH padrão de 22 para uma porta aleatória, superior a 1024, e proibir o acesso remoto SSH à conta raiz por senha ou chave, abrindo o arquivo de configuração principal do SSH Server e faça as seguintes alterações.

$ sudo vi/etc/ssh/sshd_config 

Primeiro, procure a linha comentada #Porta22 e adicione uma nova linha abaixo (substitua o número da porta de escuta de acordo):

Porta 2345 

Não feche o arquivo, role para baixo e procure a linha #Permitrootlogin sim, descomentar a linha removendo o # sinal (hashtag) desde o início da linha e modifique a linha para parecer mostrada no trecho abaixo.

Permitrootlogina no 
Serviço SSH seguro

Posteriormente, reinicie o servidor SSH para aplicar as novas configurações e testar a configuração tentando fazer login de uma máquina remota a este servidor com a conta raiz através do novo número da porta. O acesso à conta raiz via SSH deve ser restrita.

$ sudo systemctl reiniciar sshd 

Além disso, execute netstat ou comando ss e filtre a saída via comando grep para mostrar o novo número da porta de escuta para o servidor SSH.

$ sudo ss -tlpn | Grep ssh $ sudo netstat -tlpn | Grep SSH 
Verifique a porta SSH Artigo relacionado: 7 dicas úteis de segurança SSH para Harden OpenSsh Server

Há situações em que você pode desconectar automaticamente todas as conexões SSH remotas estabelecidas em seu servidor após um período de inatividade.

Para ativar esse recurso, execute o comando abaixo, que adiciona o Tmout Bash variável para sua conta .Bashrc Arquivo oculto e força todas as conexões SSH feitas com o nome do usuário a serem desconectadas ou abandonadas após 5 minutos de inatividade.

$ echo 'tmout = 300' >> .Bashrc 

Execute o comando da cauda para verificar se a variável foi adicionada corretamente no final de .Bashrc arquivo. Todas as conexões SSH subsequentes serão fechadas automaticamente após 5 minutos de inatividade a partir de agora.

$ cauda .Bashrc 

Na captura de tela abaixo, a sessão SSH remota da Drupal Machine para o Ubuntu Server via Ubuntu_User Conta foi cronometrada e Logout automático após 5 minutos.

Desconectar automaticamente sessões SSH

Configure o firewall ubuntu ufw

Cada servidor precisa de um firewall bem configurado para proteger o sistema no nível da rede. O servidor Ubuntu usa Ufw aplicativo para gerenciar as regras iptables no servidor.

Verifique o status do aplicativo de firewall do UFW no Ubuntu, emitindo os comandos abaixo.

$ sudo status Systemctl ufw $ sudo ufw status 
Verifique o status do firewall do UFW

Geralmente, o daemon do Firewall da UFW está em funcionamento no servidor Ubuntu, mas as regras não são aplicadas por padrão. Antes de ativar a política de firewall do UFW em seu sistema, primeiro você deve adicionar uma nova regra para permitir que o tráfego SSH passe pelo firewall através da porta SSH alterada. A regra pode ser adicionada executando o comando abaixo.

$ sudo ufw permitir 2345/tcp 

Depois de permitir o tráfego SSH, você pode ativar e verificar o aplicativo de firewall do UFW com os seguintes comandos.

$ sudo ufw ativar $ sudo ufw status 
Abra a porta SSH e verifique

Para adicionar novas regras de firewall para outros serviços de rede posteriormente instalados em seu servidor, como o servidor HTTP, um servidor de email ou outros serviços de rede, use os exemplos de comandos do firewall abaixo como guia.

$ sudo ufw permitir http #low http tráfego $ sudo ufw permite proto tcp de qualquer um para qualquer porta 25.443 # permitir https e smtp tráfego 

Para listar todas as regras do firewall, executem o comando abaixo.

$ sudo ufw status detalhado 
Verifique as regras do firewall do UFW Artigo relacionado: Como configurar o UFW Firewall no servidor Ubuntu

Defina o tempo do servidor Ubuntu

Para controlar ou consultar o relógio do servidor Ubuntu e outras configurações de tempo relacionadas, execute o comando timedatectl sem argumento.

Para alterar as configurações do fuso horário do servidor, primeiro execute comando timedatectl Com o argumento do tempo de listagem para listar todos os fusos horários disponíveis e, em seguida, defina o fuso horário do seu sistema, como mostrado no trecho abaixo.

$ sudo timedatectl $ sudo timedatectl list-time-pemones $ sudo timedatectl set-timezone europeu/viena 
Defina o fuso horário do Ubuntu

O novo Systemd-Timesyncd O Systemd Daemon Client pode ser utilizado no Ubuntu para fornecer um tempo preciso para o seu servidor na rede e sincronizar o tempo com um servidor de pares de tempo superior.

Para aplicar esse novo recurso do Systemd, modifique Systemd-Timesyncd Arquivo de configuração de daemon e adicione os servidores NTP geograficamente mais próximos à linha de instrução NTP, conforme mostrado no trecho de arquivo abaixo:

$ sudo nano/etc/systemd/timesyncd.conf 

Adicione a configuração seguinte a timesyncd.conf arquivo:

[Tempo] ntp = 0.piscina.ntp.org 1.piscina.ntp.org fallbackntp = ntp.Ubuntu.com 
Configuração do tempo NTP

Para adicionar os servidores NTP geograficamente mais próximos, consulte a lista de servidores de projeto do Pool NTP no seguinte endereço: http: // www.piscina.ntp.org/pt/

Posteriormente, reinicie o daemon systemd timesync para refletir as alterações e verificar o status da daemon executando os comandos abaixo. Após reiniciar, o daemon começará a sincronizar o tempo com o novo par de servidores NTP.

$ sudo systemctl reinicie systemd-timesyncd.Serviço $ sudo systemctl status systemd-timesyncd.serviço 
Start Timesyncd Service

Desativar e remover serviços desnecessários no Ubuntu

Para obter uma lista de todos os serviços de rede TCP e UDP em funcionamento por padrão no seu servidor Ubuntu, execute o ss ou comando netstat.

$ sudo netstat -tulpn ou $ sudo ss -tulpn 
Liste todos os serviços em execução

Olhando com Ubuntu 16.10 liberação, o resolvedor de DNS padrão agora é controlado por Systemd resolvido serviço, conforme revelado pela saída de netstat ou comandos ss.

Você também deve verificar o Systemd resolvido status de serviço executando o seguinte comando.

$ sudo Systemctl status resolvido.serviço 
Verifique o status Systemd resolvido

O Systemd resolvido O serviço liga em todas as interfaces de rede habilitadas e ouve em portas 53 e 5355 TCP e UDP.

Correndo resolvido pelo sistema O daemon DNS em cache em um servidor de produção pode ser perigoso devido ao numeroso número de ataques de DDoS realizados por hackers maliciosos contra servidores DNS não seguros.

Para parar e desativar este serviço, execute os seguintes comandos.

$ sudo systemctl stop systemd resolvido $ sudo systemctl desative systemd resolvido 
Desativar o Systemd Resolved Service

Verifique se o serviço foi interrompido e desativado ao emitir ss ou comando netstat. As portas de escuta resolvidas pelo SystemD, 53 e 5355 TCP e UDP, não devem ser listadas na saída do comando NetStat ou SS, como ilustrado no abaixo.

Você também deve reiniciar a máquina para desativar completamente todos os serviços de daemon resolvidos do SystemD e restaurar o padrão /etc/resolv.conf arquivo.

$ sudo ss -tulpn $ sudo netstat -tulpn $ sudo systemctl reinicialização 
Verifique todos os serviços em execução

Embora você tenha desativado alguns serviços de rede indesejados para executar em seu servidor, também existem outros serviços instalados e executados em seu sistema, como LXC processo e Snapd serviço. Esses serviços podem ser facilmente detectados via PS, Top ou PSTEE comandos.

$ sudo ps aux $ sudo top $ sudo pSTree 
Lista de serviços em execução em formato de árvore

Caso você não use a virtualização de contêineres LXC em seu servidor ou comece a instalar o software embalado via Snap Package Manager, você deve desativar completamente e remover esses serviços, emitindo os comandos abaixo.

$ sudo apt autoremove-purge lxc-common lxcfs $ sudo apt autoremove-purge snapd 

Isso é tudo! Agora, o Ubuntu Server está agora preparado para instalar software adicional necessário para serviços ou aplicativos de rede personalizados, como instalar e configurar um servidor da web, um servidor de banco de dados, um serviço de compartilhamento de arquivos ou outros aplicativos específicos.