Pesquisa de site

Desative e remova serviços indesejados na instalação mínima do RHEL/CentOS 7


A instalação mínima do RHEL/CentOS 7 para servidores vem com alguns serviços padrão pré-instalados, como o daemon Postfix Mail Transfer Agent, Avahi daemon mdns (sistema de nomes de domínio multicast) e serviço Chrony, que é responsável por manter o relógio do sistema.

Agora vem a questão. Por que precisaríamos desabilitar todos esses serviços. se eles estão pré-instalados? Um dos principais motivos seria aumentar o nível de segurança do sistema, o segundo motivo é o destino final do sistema e o terceiro são os recursos do sistema.

Requisitos

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

Se você está planejando usar seu RHEL/CentOS 7 recém-instalado para hospedar, digamos, um pequeno site que roda em Apache ou Nginx, ou para fornecer serviços de rede como DNS , DHCP, inicialização PXE, servidor FTP, etc ou outros serviços que não exigem a execução do daemon Postifx MTA, daemon Chrony ou Avahi, então por que devemos manter todos esses daemons desnecessários instalados ou mesmo em execução em seu servidor.

Os principais serviços externos que seu servidor realmente precisa para rodar depois de realizar uma instalação mínima seriam apenas um daemon SSH, para permitir logins remotos no sistema, e, em alguns casos, serviço NTP, para sincronize com precisão o relógio interno do seu servidor com servidores NTP externos.

Desativar/remover serviços Postfix MTA, Avahi e Chrony

1. Após a conclusão da instalação, faça login em seu servidor com uma conta root ou um usuário com privilégios de root e execute uma atualização do sistema, para garantir que seu sistema esteja atualizado. -date com todos os pacotes e patches de segurança.

yum upgrade

2. O próximo passo seria instalar alguns utilitários de sistema úteis usando o YUM Package Manager, como net-tools (este pacote fornece o
mais antigo mas bom comando ifconfig), editor de texto nano, wget e curl para transferências de URL, lsof (para listar seus arquivos abertos) e bash-completion, que completa automaticamente os comandos digitados.

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

3. Agora você pode começar a desativar e remover serviços indesejados pré-instalados. Primeiro de tudo, obtenha uma lista de todos os seus serviços habilitados e em execução executando o comando netstat em soquetes de rede de estado TCP, UDP e Listen.

netstat -tulpn  	## To output numerical service sockets

netstat -tulp      	## To output literal service sockets

4. Como você pode ver, o Postfix é iniciado e escuta no host local na porta 25, o daemon Avahi se liga em todas as interfaces de rede e no Chronyd o serviço é vinculado ao host local e a todas as interfaces de rede em portas diferentes. Prossiga com a remoção do serviço Postfix MTA emitindo os seguintes comandos.

systemctl stop postfix
yum remove postfix

5. Em seguida, remova o serviço Chronyd, que será substituído pelo servidor NTP, emitindo os seguintes comandos.

systemctl stop chronyd
yum remove chrony

6. Agora é hora de remover o daemon Avahi. Parece que no RHEL/CentOS 7 o daemon Avahi é fortemente rígido e depende do serviço Network Manager. A remoção do daemon Avahi pode deixar seu sistema sem nenhuma conexão de rede.

Portanto, preste atenção redobrada nesta etapa. Se você realmente precisa da configuração automática de rede fornecida pelo Network Manager ou precisa editar suas interfaces
através do utilitário de rede e interface nmtui, então você deve apenas parar e desabilitar o daemon Avahi e não realizar nenhuma remoção.

Se ainda quiser remover completamente este serviço, você deverá editar manualmente os arquivos de configuração de rede localizados em /etc/sysconfig/network-scripts/ifcfg-interface_name e, em seguida, iniciar e ativar o serviço de rede.

Emita os seguintes comandos para remover o daemon Avahi mdns. Cuidado: Não tente remover o daemon Avahi se você se conectou através de SSH.

systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service
--------- Stop here if you don't want removal --------- 

yum remove avahi-autoipd avahi-libs avahi

7. Esta etapa será necessária apenas se você tiver removido o daemon Avahi e suas conexões de rede travarem e você precisar configurar manualmente a placa de interface de rede novamente.

Para editar sua NIC para usar IPv6 e endereço IP estático, vá para o caminho /etc/sysconfig/network-scripts/, abra o arquivo de interface NIC (geralmente a primeira placa é chamada ifcfg-eno1677776 e já está configurada pelo Network Manager) e use o trecho a seguir como guia caso seu
interface de rede não tem configuração.

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
#DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
                IPADDR=192.168.1.25
                NETMASK=255.255.255.0
                GATEWAY=192.168.1.1
                DNS1=192.168.1.1
                DNS2=8.8.8.8

As configurações mais importantes aqui que você deve levar em consideração são:

  1. BOOTPROTO – Definido como nenhum ou estático – para endereço IP estático.
  2. ONBOOT – Defina como sim – para abrir sua interface após a reinicialização.
  3. DEFROUTE – Instrução comentada com um # ou completamente removida – não use rota padrão (Se você usar aqui você deve adicionar “DEFROUTE: no” a todas as interfaces de rede, não usada como rota padrão).

8. Se sua infraestrutura tiver um servidor DHCP que atribua endereços IP automaticamente, use o seguinte trecho para Configuração de interfaces de rede.

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=dhcp
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
##DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9

Igual à configuração com endereço IP estático, certifique-se de que BOOTPROTO esteja definido como dhcp, a instrução DEFROUTE esteja comentada ou removida e o dispositivo esteja configurado para iniciar automaticamente na inicialização. Se você não usa IPv6 basta remover ou comentar todas as linhas que contêm IPV6.

9. Para aplicar as novas configurações às suas interfaces de rede, você deve reiniciar o serviço de rede. Depois de reiniciar o daemon de rede, use ifconfig
ou o comando ip addr show para obter as configurações da interface e tentar executar ping em um nome de domínio para ver se a rede está funcionando.

service network restart	## Use this command before systemctl
chkconfig network on
systemctl restart network
ifconfig
ping domain.tld

10. Como configuração final, certifique-se de definir um nome para o hostname do sistema usando o utilitário hostnamectl e revise sua configuração com hostname comando.

hostnamectl set-hostname FQDN_system_name
hostnamectl status
hostname
hostname -s   	## Short name
hostname -f   	## FQDN name

11. Isso é tudo! Como teste final, execute o comando netstat novamente para ver quais serviços estão sendo executados em seu sistema.

netstat -tulpn
netstat -tulp

12. Além do servidor SSH, se sua rede usar DHCP para obter configurações IP dinâmicas, um cliente DHCP deverá ser executado e estar ativo nas portas UDP.

netstat -tulpn

13. Como alternativa ao utilitário netstat você pode exibir seus soquetes de rede em execução com a ajuda do comando Estatísticas de soquetes.

ss -tulpn 

14. Reinicie seu servidor e execute o comando systemd-analize para determinar o desempenho do tempo de inicialização do sistema e, também, use free e Disco
Comando gratuito
para exibir estatísticas de RAM e HDD e comando top para ver os principais recursos do sistema mais usados.

free -h
df -h
top 

Parabéns! Agora você tem um ambiente de sistema RHEL/CentOS 7 mínimo e limpo, com menos serviços instalados e em execução e mais recursos disponíveis para configurações futuras.

Leia também: Pare e desative serviços indesejados do Linux