Cómo detener y deshabilitar servicios no deseados del sistema Linux
Construimos un servidor de acuerdo con nuestro plan y requisitos, pero ¿cuáles son las funciones previstas al construir un servidor para que funcione de manera rápida y eficiente? Todos sabemos que al instalar un sistema operativo Linux, algunos paquetes y aplicaciones no deseados se instalan automáticamente sin el conocimiento del usuario.
Al construir un servidor debemos preguntarnos qué es lo que realmente necesitamos de la caja. ¿Necesito un Servidor Web o un Servidor FTP, un Servidor NFS o un Servidor DNS, un Servidor >Servidor de base de datos o algo más.
Aquí, en este artículo, analizaremos algunas de estas aplicaciones y servicios no deseados que quizás no necesite, pero que se instalan de forma predeterminada durante la instalación del sistema operativo y, sin saberlo, comienzan a consumir los recursos de su sistema.
Primero, sepamos qué tipo de servicios se están ejecutando en el sistema usando los siguientes comandos.
[avishek@tecmint]# ps ax
Salida de muestra
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
3 ? S 0:00 \_ [migration/0]
4 ? S 0:09 \_ [ksoftirqd/0]
5 ? S 0:00 \_ [migration/0]
6 ? S 0:24 \_ [watchdog/0]
7 ? S 2:20 \_ [events/0]
8 ? S 0:00 \_ [cgroup]
9 ? S 0:00 \_ [khelper]
10 ? S 0:00 \_ [netns]
11 ? S 0:00 \_ [async/mgr]
12 ? S 0:00 \_ [pm]
13 ? S 0:16 \_ [sync_supers]
14 ? S 0:15 \_ [bdi-default]
15 ? S 0:00 \_ [kintegrityd/0]
16 ? S 0:49 \_ [kblockd/0]
17 ? S 0:00 \_ [kacpid]
18 ? S 0:00 \_ [kacpi_notify]
19 ? S 0:00 \_ [kacpi_hotplug]
20 ? S 0:00 \_ [ata_aux]
21 ? S 58:46 \_ [ata_sff/0]
22 ? S 0:00 \_ [ksuspend_usbd]
23 ? S 0:00 \_ [khubd]
24 ? S 0:00 \_ [kseriod]
.....
Ahora, echemos un vistazo rápido a los procesos que aceptan conexiones (puertos) usando el comando netstat como se muestra a continuación.
[avishek@tecmint]# netstat -lp
Salida de muestra
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:31138 *:* LISTEN 1485/rpc.statd
tcp 0 0 *:mysql *:* LISTEN 1882/mysqld
tcp 0 0 *:sunrpc *:* LISTEN 1276/rpcbind
tcp 0 0 *:ndmp *:* LISTEN 2375/perl
tcp 0 0 *:webcache *:* LISTEN 2312/monitorix-http
tcp 0 0 *:ftp *:* LISTEN 2174/vsftpd
tcp 0 0 *:ssh *:* LISTEN 1623/sshd
tcp 0 0 localhost:ipp *:* LISTEN 1511/cupsd
tcp 0 0 localhost:smtp *:* LISTEN 2189/sendmail
tcp 0 0 *:cbt *:* LISTEN 2243/java
tcp 0 0 *:websm *:* LISTEN 2243/java
tcp 0 0 *:nrpe *:* LISTEN 1631/xinetd
tcp 0 0 *:xmltec-xmlmail *:* LISTEN 2243/java
tcp 0 0 *:xmpp-client *:* LISTEN 2243/java
tcp 0 0 *:hpvirtgrp *:* LISTEN 2243/java
tcp 0 0 *:5229 *:* LISTEN 2243/java
tcp 0 0 *:sunrpc *:* LISTEN 1276/rpcbind
tcp 0 0 *:http *:* LISTEN 6439/httpd
tcp 0 0 *:oracleas-https *:* LISTEN 2243/java
....
En el resultado anterior, observa que algunas de las aplicaciones que quizás no necesite en su servidor, pero aún se ejecutan de la siguiente manera:
1. smbd y nmbd
smbd y nmbd son demonios del proceso Samba. ¿Realmente necesita exportar un recurso compartido smb en Windows u otra máquina? ¡Si no! ¿Por qué se ejecutan estos procesos? Puede finalizar estos procesos de forma segura y desactivarlos para que no se inicien automáticamente cuando la máquina se inicie la próxima vez.
2.Telnet
¿Necesita comunicación bidireccional interactiva orientada a texto a través de Internet o red de área local? ¡Si no! Elimine este proceso y desactívelo para que no comience al arrancar.
3. iniciar sesión
¿Necesita iniciar sesión en otro host a través de la red? ¡Si no! Elimine este proceso y desactívelo para que no se inicie automáticamente en el arranque.
4. rexec
La ejecución remota de procesos, también conocida como rexec, le permite ejecutar comandos de shell en una computadora remota. Si no necesita ejecutar el comando Shell en una máquina remota, simplemente finalice el proceso.
5.FTP
¿Necesita transferir archivos de un host a otro a través de Internet? De lo contrario, puede detener el servicio de forma segura.
6. montaje automático
¿Necesita montar diferentes sistemas de archivos automáticamente para abrir el sistema de archivos de red? ¡Si no! ¿Por qué se ejecuta este proceso? ¿Por qué permites que esta aplicación utilice tu recurso? Elimine el proceso y desactívelo para que no se inicie automáticamente.
7. nombrado
¿Necesita ejecutar NameServer (DNS)? Si no, ¿qué diablos te obliga a ejecutar este proceso y permitir que consumas tus recursos? Primero finalice el proceso en ejecución y luego desactívelo para que no se ejecute en el arranque.
8. lpd
lpd es el demonio de la impresora que permite imprimir en ese servidor. Si no necesita imprimir desde el servidor, es probable que se estén consumiendo los recursos de su sistema.
9. Inetd
¿Está ejecutando algún servicio de inetd? Si está ejecutando una aplicación independiente como ssh que utiliza otra aplicación independiente como Mysql, Apache, etc., entonces no necesita inetd. Será mejor finalizar el proceso y desactivarlo comenzando la próxima vez automáticamente.
10. mapa de puertos
Portmap, que es una llamada a procedimiento remoto de computación en red abierta (ONC RPC) y utiliza el demonio rpc.portmap y rpcbind. Si estos procesos se están ejecutando, significa que está ejecutando un servidor NFS. Si el servidor NFS se está ejecutando desapercibido significa que los recursos de su sistema se están utilizando innecesariamente.
Cómo matar un proceso en Linux
Para finalizar un proceso en ejecución en Linux, utilice el comando 'Kill PID'. Pero, antes de ejecutar el comando Kill, debemos conocer el PID del proceso. Por ejemplo, aquí quiero encontrar un PID del proceso 'cupsd'.
[avishek@tecmint]# ps ax | grep cupsd
1511 ? Ss 0:00 cupsd -C /etc/cups/cupsd.conf
Entonces, el PID del proceso 'cupsd' es '1511'. Para eliminar ese PID, ejecute el siguiente comando.
[avishek@tecmint]# kill -9 1511
Para obtener más información sobre el comando Kill con sus ejemplos, lea el artículo Una guía sobre el comando Kill para terminar un proceso en Linux.
Cómo deshabilitar un servicio en Linux
En distribuciones basadas en Red Hat como Fedora y CentOS, utilice un script llamado 'chkconfig' para habilitar y deshabilitar los servicios en ejecución en Linux. .
Por ejemplo, deshabilitemos el servidor web Apache al iniciar el sistema.
[avishek@tecmint]# chkconfig httpd off
[avishek@tecmint]# chkconfig httpd --del
En distribuciones basadas en Debian como Ubuntu, Linux Mint y otras distribuciones basadas en Debian utilizan un script llamado update-rc.d.
Por ejemplo, para deshabilitar el servicio Apache al inicio del sistema, ejecute el siguiente comando. Aquí la opción '-f' significa que la fuerza es obligatoria.
[avishek@tecmint]# update-rc.d -f apache2 remove
Después de realizar estos cambios, la próxima vez el sistema arrancará sin estos procesos necesarios, lo que de hecho ahorrará recursos de nuestro sistema y el servidor será más práctico, rápido y seguro.
Eso es todo por ahora. Estaré aquí de nuevo con otro artículo interesante. Hasta entonces, estad atentos y conectados a Tecmint. No olvide brindarnos sus valiosos comentarios en la sección de comentarios.