Pesquisa de site

Configuração e configuração inicial do servidor no RHEL 7


Neste tutorial discutiremos as primeiras etapas de configuração que você precisa realizar após uma nova instalação do Red Hat Enterprise Linux 7 em um servidor bare metal ou em um servidor virtual privado.

Requisitos

  1. Instalação mínima do RHEL 7

Importante: usuários do CentOS 7 podem seguir este artigo para fazer uma configuração inicial do servidor no CentOS 7.

Atualizar o sistema RHEL 7

Na primeira etapa, faça login no console do servidor RHEL com uma conta com privilégios de root ou diretamente como root e execute o comando abaixo para atualizar completamente os componentes do sistema, como os pacotes instalados, o kernel ou aplique outros patches de segurança.

yum check-update
yum update

Para remover todos os pacotes baixados localmente e outros caches YUM relacionados, execute o comando abaixo.

yum clean all

Instale utilitários de sistema no RHEL 7

Os seguintes utilitários podem ser úteis para a administração diária do sistema: nano (editor de texto para substituir o editor vi), wget, curl (utilitários usados para baixar pacotes principalmente na rede) net-tools, lsof (utilitários para gerenciar redes locais) e bash-completion (preenchimento automático de linha de comando).

Instale todos eles de uma só vez, executando o comando abaixo.


yum install nano wget curl net-tools lsof bash-completion

Configurar rede no RHEL 7

O RHEL 7 possui uma ampla gama de ferramentas que podem ser usadas para configurar e gerenciar redes, desde a edição manual do arquivo de configuração de rede até o uso de comandos como ip, ifconfig, nmtui, nmcli ou rota.

O utilitário mais fácil que um iniciante pode usar para gerenciar e alterar configurações de rede é a linha de comando gráfica nmtui.

Para alterar o nome do host do sistema através do utilitário nmtui, execute o comando nmtui-hostname, defina o nome do host da sua máquina e pressione OK para finalizar, conforme ilustrado na imagem abaixo.


nmtui-hostname

Para manipular uma interface de rede, execute o comando nmtui-edit, escolha a interface que deseja editar e selecione editar no menu direito, conforme mostrado na imagem abaixo.

Quando estiver na interface gráfica fornecida pelo utilitário nmtui, você pode definir as configurações de IP da interface de rede conforme ilustrado na imagem abaixo. Ao terminar, navegue até OK usando a tecla [tab] para salvar a configuração e sair.

Para aplicar a nova configuração da interface de rede, execute o comando nmtui-connect, selecione a interface que deseja gerenciar e clique na opção Desativar/Ativar para descomissionar e ativar a interface com as configurações de IP, conforme apresentado nas imagens abaixo.


nmtui-connect

Para visualizar as configurações da interface de rede, você pode inspecionar o conteúdo do arquivo de interface ou emitir os comandos abaixo.


ifconfig enp0s3
ip a
ping -c2 google.com

Outros utilitários úteis que podem ser usados para gerenciar velocidade, estado de link ou obter informações sobre interfaces de rede de máquinas são ethtool e mii-tool.


ethtool enp0s3
mii-tool enp0s3

Criar nova conta de usuário

Na próxima etapa, enquanto estiver logado como root em seu servidor, crie um novo usuário com o comando abaixo. Este usuário será usado posteriormente para fazer login em seu sistema e realizar tarefas administrativas.

adduser tecmint_user

Depois de adicionar o usuário usando o comando acima, configure uma senha forte para esse usuário emitindo o comando abaixo.

passwd tecmint_user

Nos casos em que você deseja forçar este novo usuário a alterar sua senha na primeira tentativa de login, execute o comando abaixo.

chage -d0 tecmint_user

Esta nova conta de usuário tem privilégios de conta regulares por enquanto e não pode executar tarefas administrativas por meio do comando sudo.

Para evitar o uso da conta root para executar privilégios administrativos, conceda privilégios administrativos a este novo usuário adicionando-o ao grupo de sistema “wheel”.

Os usuários pertencentes ao grupo “wheel” têm permissão, por padrão no RHEL, para executar comandos com privilégios de root usando o utilitário sudo antes de escrever o comando necessário para execução.

Por exemplo, para adicionar o usuário “tecmint_user” ao grupo “wheel”, execute o comando abaixo.

usermod -aG wheel tecmint_user

Em seguida, faça login no sistema com o novo usuário e tente atualizar o sistema através do comando ‘sudo yum update’ para testar se o usuário possui poderes de root concedidos.

su - tecmint_user
sudo yum update

Configure a autenticação de chave pública SSH no RHEL 7

Na próxima etapa, para aumentar a segurança do seu serviço RHEL, configure a autenticação de chave pública SSH para o novo usuário. Para gerar um par de chaves SSH, a chave pública e privada, execute o seguinte comando no console do servidor. Certifique-se de estar conectado ao sistema com o usuário para o qual está configurando a chave SSH.

su - tecmint_user
ssh-keygen -t RSA

Enquanto a chave é gerada, você será solicitado a adicionar uma senha para protegê-la. Você pode inserir uma senha forte ou optar por deixar a senha em branco se quiser automatizar tarefas via servidor SSH.

Após a geração da chave SSH, copie o par de chaves públicas para um servidor remoto executando o comando abaixo. Para instalar a chave pública no servidor SSH remoto, você precisará de uma conta de usuário que tenha credenciais para fazer login nesse servidor.

ssh-copy-id [email 

Agora você deve tentar fazer login via SSH no servidor remoto usando a chave privada como método de autenticação. Você deverá conseguir fazer login automaticamente sem que o servidor SSH solicite uma senha.

ssh [email 

Para ver o conteúdo da sua chave SSH pública se desejar instalar manualmente a chave em um servidor SSH distante, emita o seguinte comando.

cat ~/.ssh/id_rsa

SSH seguro no RHEL 7

Para proteger o daemon SSH e proibir o acesso SSH remoto à conta root por meio de senha ou chave, abra o arquivo de configuração principal do servidor SSH e faça as seguintes alterações.

sudo vi /etc/ssh/sshd_config

Procure a linha #PermitRootLogin yes, remova o comentário da linha removendo o sinal # (hashtag) do início da linha e modifique a linha para ficar como mostrado abaixo excerto.

PermitRootLogin no

Em seguida, reinicie o servidor SSH para aplicar as novas configurações e teste a configuração tentando fazer login neste servidor com a conta root. O acesso à conta root via SSH já deve estar restrito.

sudo systemctl restart sshd

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

Para ativar esse recurso em todo o sistema, execute o comando abaixo, que adiciona a variável bash TMOUT ao arquivo bashrc principal e força todas as conexões SSH a serem desconectadas ou descartadas- após 5 minutos de inatividade.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

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

tail /etc/bashrc

Na captura de tela abaixo, a sessão SSH remota da máquina drupal para o servidor RHEL foi desconectada automaticamente após 5 minutos.

Configurar Firewall no RHEL 7

Na próxima etapa, configure o firewall para proteger ainda mais o sistema no nível da rede. RHEL 7 vem com aplicativo Firewalld para gerenciar regras de iptables no servidor.

Primeiro, certifique-se de que o firewall esteja funcionando em seu sistema, emitindo o comando abaixo. Se o daemon Firewalld estiver parado, você deverá iniciá-lo com o seguinte comando.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Depois que o firewall estiver ativado e em execução no seu sistema, você poderá usar o utilitário de linha de comando firewall-cmd para definir as informações da política do firewall e permitir o tráfego para algumas portas de rede específicas, como o daemon SSH, conexão feita para um servidor web interno ou outros serviços de rede relacionados.

Como no momento estamos apenas executando um daemon SSH em nosso servidor, podemos ajustar a política do firewall para permitir o tráfego para a porta de serviço SSH emitindo o seguinte comando.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Para adicionar uma regra de firewall imediatamente, sem aplicar a regra na próxima vez que o servidor for iniciado, use a sintaxe de comando abaixo.

sudo firewall-cmd --add-service=sshd

Se você instalar outros serviços de rede em seu servidor, como um servidor HTTP, um servidor de e-mail ou outros serviços de rede, poderá adicionar regras para permitir conexões específicas da seguinte maneira.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Para listar todas as regras de firewall, execute o comando abaixo.

sudo firewall-cmd --permanent --list-all

Remova serviços desnecessários no RHEL 7

Para obter uma lista de todos os serviços de rede (TCP e UDP) em execução no seu servidor RHEL por padrão, emita o comando ss, conforme ilustrado no exemplo abaixo.

sudo ss -tulpn

O comando ss revelará alguns serviços interessantes que são iniciados e executados por padrão em seu sistema, como o serviço mestre Postfix e o servidor responsável pelo protocolo NTP.

Se você não planeja configurar este servidor como um servidor de e-mail, você deve parar, desabilitar e remover o daemon Postfix emitindo os comandos abaixo.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Recentemente, foram relatados alguns ataques DDOS desagradáveis sobre o protocolo NTP. Caso você não esteja planejando configurar seu servidor RHEL para funcionar como um servidor NTP para que os clientes internos sincronizem o horário com este servidor, você deve desabilitar e remover completamente o daemon Chrony emitindo os comandos abaixo.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Novamente, execute o comando ss para identificar se outros serviços de rede estão em execução no seu sistema e desative-os e remova-os.

sudo ss -tulpn

Para fornecer a hora precisa para o seu servidor e sincronizar a hora com um servidor peer de horário superior, você pode instalar o utilitário ntpdate e sincronizar a hora com um servidor NTP público, executando os comandos abaixo.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Para automatizar o comando de sincronização de tempo ntpdate para ser executado todos os dias sem qualquer intervenção do usuário, agende um novo trabalho crontab para ser executado à meia-noite com o conteúdo a seguir.

sudo crontab -e

Trecho do arquivo Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

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

Para proteger e fortalecer ainda mais o servidor RHEL 7, verifique estes artigos a seguir.

  1. O mega guia para fortalecer e proteger o RHEL 7 – Parte 1
  2. O mega guia para fortalecer e proteger o RHEL 7 – Parte 2

Se você está planejando implantar sites neste sistema RHEL 7, aprenda como instalar e configurar a pilha LAMP ou a pilha LEMP.