Série RHCSA: Segurança do SSH, Definindo o Nome do Host e Habilitando Serviços de Rede – Parte 8

Como administrador de sistema, você frequentemente terá que fazer login em sistemas remotos para realizar uma variedade de tarefas administrativas usando um emulador de terminal. Raramente você estará sentado em frente a um terminal real (físico), então você precisa configurar uma maneira de fazer login remotamente nas máquinas que será solicitado a gerenciar.

Na verdade, essa pode ser a última coisa que você terá que fazer em frente a um terminal físico. Por razões de segurança, usar o Telnet para esse propósito não é uma boa ideia, pois todo o tráfego passa pelo cabo em texto simples, não criptografado.

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 nome de rede e de host de forma estática ou dinâmica.

RHCSA: Secure SSH and Enable Network Services – Part 8

Instalando e Protegendo a Comunicação SSH

Para que você possa fazer login remotamente em um servidor RHEL 7 usando SSH, você terá que 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 arquivos remotos:

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

Note que é uma boa ideia instalar os contrapartes de servidor, 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 proteger o acesso remoto ao seu servidor SSH. As seguintes configurações devem estar presentes no arquivo /etc/ssh/sshd_config.

1. Mude o porto onde o demônio sshd irá escutar de 22 (o valor padrão) para um porto alto (2000 ou superior), mas primeiro certifique-se que o porto escolhido não está sendo usado.

Por exemplo, suponha que você escolheu o porto 2500. Use netstat para verificar se o porto escolhido está sendo usado ou não:

# netstat -npltu | grep 2500

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

Port 2500

2. Permitir apenas protocolo 2:

Protocol 2

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

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

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

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Este ponto assume que você já criou um par de chaves com o nome de usuário em seu 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 de todo o sistema:

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

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. O arquivo /etc/resolv.conf especifica os endereços IP dos servidores DNS e o domínio de pesquisa, que é usado para completar um nome de consulta dado para um nome de domínio totalmente qualificado quando nenhum sufixo de domínio é fornecido.

Em circunstâncias normais, você não precisa editar este arquivo, pois ele é gerenciado pelo sistema. No entanto, caso queira alterar os servidores DNS, esteja ciente de que você precisa seguir a seguinte estrutura em cada linha:

nameserver - IP address

Por exemplo,

nameserver 8.8.8.8

3. O arquivo /etc/host.conf especifica os métodos e a ordem pelos quais os nomes de host são resolvidos dentro de uma rede. Em outras palavras, informa ao resolvedor de nomes quais serviços usar e em que ordem.

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

order bind,hosts

O que indica que o resolvedor deve primeiro procurar nos servidores de nomes especificados em resolv.conf e depois no arquivo /etc/hosts para resolução de nomes.

4. O arquivo /etc/sysconfig/network contém informações de roteamento e host 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 do gateway da rede.

GATEWAYDEV=value

Em uma máquina com várias NICs, 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 chamados.

ifcfg-name

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

Check Network Link Status

Por exemplo:

Network Files

Além da interface loopback, você pode esperar uma configuração semelhante para suas NICs. Note que algumas variáveis, se definidas, irão substituir as presentes em /etc/sysconfig/network para esta interface específica. Cada linha é 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

Definindo Hostnames

No Red Hat Enterprise Linux 7, o comando hostnamectl é usado para consultar e definir o hostname do sistema.

Para exibir o hostname atual, digite:

# hostnamectl status
Check System Hostname

Para alterar o hostname, 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 (assim você não precisará fazer logout e login 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 hostname, 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 os Serviços de Rede na Inicialização

Para concluir, vamos ver como podemos garantir que os serviços de rede sejam iniciados automaticamente no boot. Em termos simples, isso é feito criando links simbólicos para certos arquivos especificados na seção [Install] dos arquivos de configuração do serviço.

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

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

Para habilitar o serviço:

# systemctl enable firewalld

Por outro lado, desabilitar o firewalld envolve remover os links simbólicos:

# systemctl disable firewalld
Enable Service at System Boot

Conclusão

Neste artigo, resumimos como instalar e proteger conexões via SSH para um servidor RHEL, como alterar seu nome e, finalmente, como garantir que os serviços de rede sejam iniciados no boot. Se notar que um determinado serviço falhou ao iniciar corretamente, pode usar systemctl status -l [serviço] e journalctl -xn para solucioná-lo.

Fique à vontade para nos informar o que achou deste artigo usando o formulário de comentários abaixo. Perguntas também são bem-vindas. Aguardamos o seu feedback!

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