Búsqueda de sitios web

Deshabilite y elimine 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 predeterminados preinstalados, como el demonio Postfix Mail Transfer Agent, Avahi. demonio mdns (sistema de nombres de dominio de multidifusión) y servicio Chrony, que es responsable de mantener el reloj del sistema.

Ahora viene la pregunta... ¿Por qué necesitamos desactivar todos estos servicios? si estan preinstalados? Una de las razones principales 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.

Requisitos

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

Si planea utilizar 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, Chrony o Avahi, entonces ¿por qué deberíamos 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 simplemente un demonio SSH, para permitir inicios de sesión remotos en el sistema y, en algunos casos, el servicio NTP. Sincronice con precisión el reloj interno de su servidor con servidores NTP externos.

Deshabilitar/eliminar los servicios Postfix MTA, Avahi y Chrony

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. -fecha con todos los paquetes y parches de seguridad.

yum upgrade

2. El siguiente paso sería instalar algunas utilidades útiles del sistema utilizando el Administrador de paquetes YUM, como net-tools (este paquete proporciona la versión anterior
pero buen comando ifconfig), editor de texto nano, wget y curl para transferencias de URL, lsof (para enumerar los archivos abiertos) y bash-completion, 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 en los sockets de red de estado TCP, UDP y Listen.

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 Chronyd. El servicio se vincula al host local y a 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 estricto y depende del servicio Network Manager. Realizar la eliminación del demonio Avahi puede dejar su sistema sin conexiones de red.

Así que presta 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 utilidad de red e interfaz nmtui, entonces solo debe detener y deshabilitar el demonio Avahi y no realizar ninguna eliminación.

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

Emita los siguientes comandos para eliminar el daemon mdns de Avahi. 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/ y abra el archivo de interfaz de NIC. (normalmente la primera tarjeta se llama ifcfg-eno1677776 y ya está configurada por Network Manager) y utilice el siguiente extracto como guía en caso de que
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 que debes tener en cuenta aquí son:

  1. BOOTPROTO – Establecer en ninguno o estático – para dirección IP estática.
  2. ONBOOT: configúrelo en Sí para abrir la interfaz después de reiniciar.
  3. DEFROUTE – Declaración comentada con un # o eliminada por completo – no use la ruta predeterminada (si la usa aquí debe agregar “DEFROUTE: no” a todas las interfaces de red, no se usa como ruta predeterminada).

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, que la declaración DEFROUTE esté comentada o eliminada y que el dispositivo esté configurado para se inicia automáticamente al arrancar. Si no utiliza IPv6, simplemente elimine o comente todas las líneas que contengan 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, utilice ifconfig
o el comando ip addr show para obtener la configuración de su interfaz e intentar 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 hostname usando la utilidad hostnamectl y revise su configuración con hostname comando.

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 el comando netstat nuevamente para ver qué servicios se están ejecutando en su sistema.

netstat -tulpn
netstat -tulp

12. Además del servidor SSH, si su red usa DHCP para obtener 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 los 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-analizar para determinar el rendimiento del tiempo de arranque de su sistema y, también, use free y Disco
Comando gratuito
para mostrar estadísticas de RAM y HDD y comando top para ver una lista de los recursos más utilizados del sistema.

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.

Leer también: Detener y desactivar servicios no deseados desde Linux