Deshabilite y elimine los servicios no deseados en la instalación mínima de RHEL/CentOS 7


La instalación mínima de RHEL/CentOS 7 para servidores viene con algunos servicios preinstalados predeterminados, como el demonio Postfix del Agente de transferencia de correo, el demonio Avahi mdns (sistema de nombres de dominio de multidifusión) y Chrony service, que es responsable de mantener el reloj del sistema.

Ahora viene la pregunta ... ¿Por qué necesitamos deshabilitar todos estos servicios? si están preinstalados? Una de las principales razones sería aumentar el nivel de seguridad del sistema, la segunda razón es el destino final del sistema y la tercera son los recursos del sistema.

  1. Instalación mínima de CentOS 7
  2. Instalación mínima de RHEL 7

Si planea usar su RHEL/CentOS 7 recién instalado para alojar, digamos, un pequeño sitio web que se ejecuta en Apache o Nginx , o para proporcionar servicios de red como DNS , DHCP, arranque PXE, servidor FTP, etc. u otros servicios que no requieren ejecutar el demonio Postifx MTA, el demonio Chrony o Avahi, entonces ¿por qué debemos mantener todos estos demonios innecesarios instalados o incluso ejecutándose en su servidor?

Los principales servicios externos que su servidor realmente necesita para ejecutarse después de realizar una instalación mínima serían solo un demonio SSH , para permitir inicios de sesión remotos en el sistema y, en algunos casos, el servicio NTP para sincronice con precisión el reloj interno de su servidor con servidores NTP externos.

Deshabilitar/eliminar Postfix MTA, Avahi y Chrony Services

1. Una vez finalizada la instalación, inicie sesión en su servidor con una cuenta root o un usuario con privilegios de root y realice una actualización del sistema, para asegurarse de que su sistema esté actualizado con todos los paquetes y la seguridad. parches.

# yum upgrade

2. El siguiente paso sería instalar algunas utilidades útiles del sistema utilizando YUM Package Manager, como net-tools (este paquete proporciona las
pero buen comando ifconfig ), nano editor de texto, wget y curl para transferencias de URL, lsof (para listar sus archivos abiertos) y bash-complete , que completa automáticamente los comandos escritos.

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

3. Ahora puede comenzar a deshabilitar y eliminar servicios no deseados preinstalados. En primer lugar, obtenga una lista de todos sus servicios habilitados y en ejecución ejecutando el comando netstat contra TCP, UDP y conectores de red de estado de escucha.

# netstat -tulpn  	## To output numerical service sockets

# netstat -tulp      	## To output literal service sockets

4. Como puede ver, Postfix se inicia y escucha en localhost en el puerto 25, el demonio Avahi se vincula en todas las interfaces de red y el servicio Chronyd se vincula en localhost y todas las interfaces de red en diferentes puertos. Continúe con la eliminación del servicio Postfix MTA emitiendo los siguientes comandos.

# systemctl stop postfix
# yum remove postfix

5. A continuación, elimine el servicio Chronyd, que será reemplazado por el servidor NTP, emitiendo los siguientes comandos.

# systemctl stop chronyd
# yum remove chrony

6. Ahora es el momento de eliminar el demonio Avahi . Parece que en RHEL/CentOS 7, el demonio Avahi es muy ajustado y depende del servicio de Network Manager. Realizar la eliminación del demonio Avahi puede dejar su sistema sin ninguna conexión de red.

Por lo tanto, preste especial atención a este paso. Si realmente necesita la configuración de red automática proporcionada por Network Manager o necesita editar sus interfaces
a través de la red y la utilidad de interfaz nmtui , solo debe detener y deshabilitar el demonio Avahi y no realizar ninguna eliminación.

Si aún desea eliminar por completo este servicio, debe editar manualmente los archivos de configuración de red ubicados en /etc/sysconfig/network-scripts/ifcfg-interface_name , luego inicie y habilite el servicio de red.

Ejecute los siguientes comandos para eliminar el demonio Avahi mdns . Precaución: No intente eliminar el demonio Avahi si se conectó a travé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. Este paso es necesario solo si eliminó el demonio Avahi y sus conexiones de red fallaron y necesita configurar manualmente la Tarjeta de interfaz de red nuevamente.

Para editar su NIC para usar IPv6 y dirección IP estática , vaya a la ruta /etc/sysconfig/network-scripts/, abra el archivo de interfaz de NIC (por lo general, la primera tarjeta se llama ifcfg-eno1677776 y ya está configurada por Network Manager) y use el siguiente extracto como guía en caso de que su
La interfaz de red no tiene configuración.

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

Las configuraciones más importantes aquí que debe tener en cuenta son:

  1. BOOTPROTO : establezca ninguno o estático: para la dirección IP estática.
  2. ONBOOT : establézcalo en sí: para que aparezca la interfaz después de reiniciar.
  3. DEFROUTE: declaración comentada con un # o completamente eliminada: no use la ruta predeterminada (si la usa aquí, debe agregar "DEFROUTE: no" a todas las interfaces de red, no se usa como la ruta predeterminada ruta).

8. Si su infraestructura tiene un servidor DHCP que asigna automáticamente direcciones IP, utilice el siguiente extracto para la configuración de interfaces de red.

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 que la configuración con dirección IP estática, asegúrese de que BOOTPROTO esté configurado en dhcp , la declaración DEFROUTE esté comentada o eliminada y el dispositivo esté configurado para se inicia automáticamente al arrancar. Si no usa IPv6, simplemente elimine o comente todas las líneas que contienen IPV6.

9. Para aplicar las nuevas configuraciones para sus interfaces de red, debe reiniciar el servicio de red. Después de reiniciar el demonio de red, use ifconfig
o el comando ip addr show para obtener la configuración de la interfaz e intente hacer ping a un nombre de dominio para ver si la red funciona.

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

10. Como configuración final, asegúrese de configurar un nombre para el sistema nombre de host utilizando la utilidad hostnamectl y revise su configuración con el comando nombre de host .

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

11. ¡Eso es todo! Como prueba final, ejecute nuevamente el comando netstat para ver qué servicios se están ejecutando en su sistema.

# netstat -tulpn
# netstat -tulp

12. Además del servidor SSH, si su red utiliza DHCP para extraer configuraciones de IP dinámicas, un cliente DHCP debe ejecutarse y estar activo en los puertos UDP.

# netstat -tulpn

13. Como alternativa a la utilidad netstat , puede generar sus sockets de red en ejecución con la ayuda del comando Estadísticas de sockets .

# ss -tulpn 

14. Reinicie su servidor y ejecute el comando systemd-analize para determinar el rendimiento del tiempo de inicio de su sistema y, también, use libre y Disco
Comando
gratuito para mostrar estadísticas de RAM y HDD y comando top para ver una parte superior de los recursos del sistema más utilizados.

# free -h
# df -h
# top 

¡Felicidades! Ahora tiene un entorno de sistema RHEL/CentOS 7 mínimo y limpio con menos servicios instalados y en ejecución y más recursos disponibles para configuraciones futuras.

Lea también : Detenga y deshabilite los servicios no deseados de Linux