Configuração inicial do servidor com o Ubuntu 20.04/18.04 e 16.04
- 1177
- 96
- Randal Kuhlman
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 updateAtualize 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ávelListar 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 aptAtualizar 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 aptPacotes 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_userCrie 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çãoVerifique 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 /hostnameDefina 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 2048Configure 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] _serverCopie 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 $ saiVerifique 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.barVeja 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 noServiç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 SSHVerifique 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 SSHConfigure 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 statusVerifique 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 statusAbra 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 detalhadoVerifique 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/vienaDefina 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.comConfiguraçã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çoStart 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 -tulpnListe 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çoVerifique 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 resolvidoDesativar 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çãoVerifique 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 pSTreeLista 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.
- « Como instalar o LightTPD com PHP, Mariadb e Phpmyadmin no Ubuntu
- Como clonar um servidor do CentOS com RSYNC »