Série RHCSA: Garantindo SSH, Configurando Nome do Host e Habilitando Serviços de Rede – Parte 8

Como administrador de sistema, você frequentemente precisará fazer login em sistemas remotos para realizar uma variedade de tarefas de administração usando um emulador de terminal. Dificilmente você ficará na frente de um terminal real (físico), então você precisa configurar uma maneira de fazer login remotamente nas máquinas que lhe serão solicitadas para gerenciar.

De fato, essa pode ser a última coisa que você terá que fazer na frente de um terminal físico. Por razões de segurança, usar Telnet para esse fim não é uma boa ideia, pois todo o tráfego passa pela rede de forma não criptografada, em texto simples.

Além disso, neste artigo, também revisaremos como configurar serviços de rede para iniciar automaticamente na inicialização e aprenderemos a configurar a resolução de rede e nome do host de forma estática ou dinâmica.

RHCSA: Secure SSH and Enable Network Services – Part 8

Instalando e Segurando a Comunicação SSH

Para que você possa fazer login remotamente em um RHEL 7 utilizando SSH, você precisará instalar os pacotes openssh, openssh-clients e openssh-servers. O seguinte comando não apenas instalará o programa de login remoto, mas também a ferramenta de transferência de arquivos segura, bem como a utilidade de cópia de arquivo remoto:

# yum update && yum install openssh openssh-clients openssh-servers

Observe que é uma boa ideia instalar os servidores correspondentes, pois você pode querer usar a mesma máquina como cliente e servidor em algum momento.

Após a instalação, há algumas coisas básicas que você precisa levar em consideração se quiser garantir o acesso remoto seguro ao seu servidor SSH. As seguintes configurações devem estar presentes no arquivo /etc/ssh/sshd_config.

1. Altere a porta em que o daemon sshd irá escutar de 22 (o valor padrão) para uma porta alta (2000 ou superior), mas primeiro verifique se a porta escolhida não está sendo usada.

Por exemplo, suponha que você escolha a porta 2500. Use netstat para verificar se a porta escolhida está sendo usada ou não:

# netstat -npltu | grep 2500

Se netstat não retornar nada, você pode usar com segurança a porta 2500 para sshd, e você deve alterar a configuração de porta no arquivo de configuração da seguinte forma:

Port 2500

2. Permita apenas protocolo 2:

Protocol 2

3. Configure o tempo limite de autenticação para 2 minutos, não permita logins de root e restrinja ao mínimo a lista de usuários que estão autorizados a fazer login via ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Se possível, use autenticação baseada em chave em vez de senha:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Isso pressupõe que você já criou um par de chaves com seu nome de usuário em sua máquina cliente e o copiou para seu servidor conforme explicado aqui.

  1. Ativar Login sem Senha SSH

Configurando Rede e Resolução de Nomes

1. Todo administrador de sistema deve estar bem familiarizado com os seguintes arquivos de configuração em todo o sistema:

  1. /etc/hosts é usado para resolver nomes <—> IPs em pequenas redes.

Cada linha no arquivo /etc/hosts tem a seguinte estrutura:

IP address - Hostname - FQDN

Por exemplo,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf especifica as entradas de endereço IP dos servidores DNS e do domínio de busca, usado para completar um nome de consulta dado para um nome de domínio totalmente qualificado quando nenhuma extensão de domínio é fornecida.

Na maioria das situações, você não precisa editar este arquivo, já que é gerenciado pelo sistema. No entanto, caso queira mudar os servidores DNS, avise que você precisará seguir a estrutura de cada linha abaixo:

nameserver - IP address

Por exemplo,

nameserver 8.8.8.8

3. 3. /etc/host.conf especifica os métodos e a ordem pelos quais os nomes de máquina são resolvidos dentro de uma rede. Noutras palavras, diz ao resolvente quais serviços usar e na ordem em que usá-los.

Embora este arquivo tenha várias opções, a configuração mais comum e básica inclui uma linha como a seguinte:

order bind,hosts

O que indica que o resolvente deve procurar primeiro nas nameservers especificadas em resolv.conf e depois no arquivo /etc/hosts para a resolução de nomes.

4. /etc/sysconfig/network contém informações de roteamento e de máquina global para todas as interfaces de rede. Os seguintes valores podem ser usados:

NETWORKING=yes|no
HOSTNAME=value

Onde o valor deve ser o Nome de Domínio Totalmente Qualificado (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

Onde XXX.XXX.XXX.XXX é o endereço IP da gateway da rede.

GATEWAYDEV=value

Em uma máquina com várias NICs, o valor é o dispositivo gateway, como enp0s3.

5. Arquivos dentro de /etc/sysconfig/network-scripts (arquivos de configuração de adaptadores de rede).

Dentro do diretório mencionado anteriormente, você encontrará vários arquivos de texto simples nomeados.

ifcfg-name

Onde o nome é o nome da NIC como retornado por ip link show:

Check Network Link Status

Por exemplo:

Network Files

Exceto para a interface loopback, você pode esperar uma configuração semelhante para suas NICs. Observe que algumas variáveis, se definidas, substituirão aquelas presentes em /etc/sysconfig/network para esta interface específica. Cada linha está comentada para esclarecimento neste artigo, mas no arquivo real você deve evitar comentários:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Configurando Hostnames

No Red Hat Enterprise Linux 7, o comando hostnamectl é usado tanto para consultar quanto para definir o nome do sistema.

Para exibir o nome do host atual, digite:

# hostnamectl status
Check System Hostname

Para alterar o nome do host, use

# hostnamectl set-hostname [new hostname]

Por exemplo,

# hostnamectl set-hostname cinderella

Para que as alterações tenham efeito, você precisará reiniciar o daemon hostnamed (desta forma você não precisará sair e entrar novamente para aplicar a alteração):

# systemctl restart systemd-hostnamed
Set System Hostname

Além disso, o RHEL 7 também inclui o utilitário nmcli que pode ser usado para o mesmo propósito. Para exibir o nome do host, execute:

# nmcli general hostname

e para alterá-lo:

# nmcli general hostname [new hostname]

Por exemplo,

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

Iniciando Serviços de Rede na Inicialização

Para encerrar, vejamos como podemos garantir que os serviços de rede são iniciados automaticamente na reinicialização. Em termos simples, isso é feito criando simlinks para determinados arquivos especificados nas seções [Install] dos arquivos de configuração de serviço.

No caso do firewalld (/usr/lib/systemd/system/firewalld.service):

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Para ativar o serviço:

# systemctl enable firewalld

Por outro lado, desativar o firewalld então remove os simlinks:

# systemctl disable firewalld
Enable Service at System Boot

Conclusão

Neste artigo, nós resumimos como instalar e garantir conexões via SSH the um servidor RHEL, como mudar seu nome, e finalmente como garantir que os serviços de rede forem iniciados na reinicialização. Se você achar que um determinado serviço não começou corretamente, você pode usar systemctl status -l [serviço] e journalctl -xn para solucioná-lo.

Sinta-se livre para nos informar o que você acha sobre este artigo usando o formulário de comentários abaixo. Perguntas também são bem-vindas. Esperamos ouvir de você!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/