Búsqueda de sitios web

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.