GNU/Linux >> Tutoriales Linux >  >> Linux

Vea las conexiones de red de su servidor Linux con netstat

Compartí algunos primeros pasos importantes para ayudar a administrar su servidor Linux personal en un artículo anterior. Mencioné brevemente el monitoreo de las conexiones de red para los puertos de escucha, y quiero ampliar esto usando netstat comando para sistemas Linux.

El monitoreo de servicios y el escaneo de puertos son prácticas estándar de la industria. Hay un software muy bueno como Prometheus para ayudar a automatizar el proceso y SELinux para ayudar a contextualizar y proteger el acceso al sistema. Sin embargo, creo que comprender cómo su servidor se conecta a otras redes y dispositivos es clave para establecer una línea de base de lo que es normal para su servidor, lo que lo ayuda a reconocer anomalías que pueden sugerir un error o una intrusión. Como principiante, descubrí que netstat El comando proporciona información importante sobre mi servidor, tanto para la supervisión como para la resolución de problemas de la red.

Netstat y herramientas de monitoreo de red similares, agrupadas en el paquete net-tools, muestran información sobre las conexiones de red activas. Debido a que los servicios que se ejecutan en puertos abiertos a menudo son vulnerables a la explotación, practicar un monitoreo regular de la red puede ayudarlo a detectar actividades sospechosas de manera temprana.

Instalar netstat

Netstat suele estar preinstalado en las distribuciones de Linux. Si netstat no está instalado en su servidor, instálelo con su administrador de paquetes. En un sistema basado en Debian:

$ sudo apt-get install net-tools

Para sistemas basados ​​en Fedora:

$ dnf install net-tools

Usar netstat

Por sí solo, el netstat El comando muestra todas las conexiones establecidas. Puedes usar el netstat opciones anteriores para especificar aún más el resultado previsto. Por ejemplo, para mostrar todas las conexiones de escucha y no escucha, use el --all (-a para abreviar) opción. Esto devuelve muchos resultados, por lo que en este ejemplo canalizo la salida a head para mostrar solo las primeras 15 líneas de salida:

$ netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:27036                 *:*                     LISTEN      
tcp        0      0 localhost:27060         *:*                     LISTEN      
tcp        0      0 *:16001                 *:*                     LISTEN      
tcp        0      0 localhost:6463          *:*                     LISTEN      
tcp        0      0 *:ssh                   *:*                     LISTEN      
tcp        0      0 localhost:57343         *:*                     LISTEN      
tcp        0      0 *:ipp                   *:*                     LISTEN      
tcp        0      0 *:4713                  *:*                     LISTEN      
tcp        0      0 10.0.1.222:48388        syd15s17-in-f5.1e:https ESTABLISHED
tcp        0      0 10.0.1.222:48194        ec2-35-86-38-2.us:https ESTABLISHED
tcp        0      0 10.0.1.222:56075        103-10-125-164.va:27024 ESTABLISHED
tcp        0      0 10.0.1.222:46680        syd15s20-in-f10.1:https ESTABLISHED
tcp        0      0 10.0.1.222:52730        syd09s23-in-f3.1e:https ESTABLISHED

Para mostrar solo los puertos TCP, use --all y --tcp opciones, o -at para abreviar:

$ netstat -at | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address  State      
tcp        0      0 *:27036         *:*              LISTEN      
tcp        0      0 localhost:27060 *:*              LISTEN      
tcp        0      0 *:16001         *:*              LISTEN

Para mostrar solo los puertos UDP, utilice --all y --udp opciones, o -au para abreviar:

$ netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address    State      
udp        0      0 *:27036           *:*                                
udp        0      0 10.0.1.222:44741  224.0.0.56:46164   ESTABLISHED
udp        0      0 *:bootpc          

Las opciones de netstat suelen ser intuitivas. Por ejemplo, para mostrar todos los puertos TCP y UDP de escucha con ID de proceso (PID) y dirección numérica:

$ sudo netstat --tcp --udp --listening --programs --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Addr  State   PID/Program name    
tcp        0      0 0.0.0.0:111        0.0.0.0:*     LISTEN  1/systemd            
tcp        0      0 192.168.122.1:53   0.0.0.0:*     LISTEN  2500/dnsmasq        
tcp        0      0 0.0.0.0:22         0.0.0.0:*     LISTEN  1726/sshd            
tcp        0      0 127.0.0.1:631      0.0.0.0:*     LISTEN  1721/cupsd          
tcp        0      0 127.0.0.1:6010     0.0.0.0:*     LISTEN  4023/sshd: tux@  
tcp6       0      0 :::111             :::*          LISTEN  1/systemd            
tcp6       0      0 :::22              :::*          LISTEN  1726/sshd            
tcp6       0      0 ::1:631            :::*          LISTEN  1721/cupsd          
tcp6       0      0 ::1:6010           :::*          LISTEN  4023/sshd: tux@  
udp        0      0 0.0.0.0:40514      0.0.0.0:*             1499/avahi-daemon:  
udp        0      0 192.168.122.1:53   0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:67         0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:111        0.0.0.0:*             1/systemd            
udp        0      0 0.0.0.0:5353       0.0.0.0:*             1499/avahi-daemon:  
udp6       0      0 :::111             :::*                  1/systemd            
udp6       0      0 :::44235           :::*                  1499/avahi-daemon:  
udp6       0      0 :::5353            :::*                  1499/avahi-daemon:

La versión corta de esta combinación común es -tulpn .

Para mostrar información sobre un servicio específico, filtre con grep :

$ sudo netstat -anlp | grep cups
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1721/cupsd           tcp6       0      0 ::1:631                 :::*                    LISTEN      1721/cupsd
unix  2      [ ACC ]     STREAM     LISTENING     27251    1/systemd /var/run/cups/cups.sock
unix  2      [ ]         DGRAM                    59530    1721/cupsd
unix  3      [ ]         STREAM     CONNECTED     55196    1721/cupsd /var/run/cups/cups.sock

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Siguientes pasos

Una vez que haya ejecutado el netstat comando, puede tomar medidas para proteger su sistema asegurándose de que solo los servicios que utiliza activamente estén escuchando en su red.

  1. Reconocer puertos y servicios comúnmente explotados. Como regla general, cierre los puertos que no esté usando.
  2. Esté atento a los números de puerto poco comunes y aprenda a reconocer los puertos legítimos en uso en su sistema.
  3. Preste mucha atención a los errores de SELinux. A veces, todo lo que necesita hacer es actualizar los contextos para que coincidan con un cambio legítimo que haya realizado en su sistema, pero lea los errores para asegurarse de que SELinux no lo esté alertando sobre actividades sospechosas o maliciosas.

Si encuentra que un puerto está ejecutando un servicio sospechoso, o simplemente desea cerrar un puerto que ya no usa, puede denegar manualmente el acceso al puerto a través de las reglas del firewall siguiendo estos pasos:

Si está utilizando firewall-cmd , ejecute estos comandos:

$ sudo firewall-cmd –remove-port=<port number>/tcp
$ sudo firewall-cmd –runtime-to-permanent

Si está utilizando UFW, ejecute el siguiente comando:

$ sudo ufw deny <port number>

Luego, detenga el servicio usando systemctl :

$ systemctl stop <service>

Aprende netstat

Netstat es una herramienta útil para recopilar rápidamente información sobre las conexiones de red de su servidor. El monitoreo regular de la red es una parte importante para conocer su sistema y lo ayuda a mantener su sistema seguro. Para incorporar este paso a su rutina administrativa, puede usar herramientas de monitoreo de red como netstat o ss, así como escáneres de puertos de código abierto como Nmap o sniffers como Wireshark, que permiten tareas programadas.

Dado que los servidores albergan mayores cantidades de datos personales, es cada vez más importante garantizar la seguridad de los servidores personales. Al comprender cómo se conecta su servidor a Internet, puede disminuir la vulnerabilidad de su máquina y, al mismo tiempo, beneficiarse de la creciente conectividad de la era digital.


Linux
  1. Comience con NetworkManager en Linux

  2. Cree un gemelo malvado de su red con Fluxion en Kali Linux

  3. Cree su almacenamiento en la nube con ownCloud 6 en Linux Mint 17

  4. Cómo instalar Nextcloud con Docker en su servidor Linux

  5. Proteja su servidor Linux con Fail2Ban [Guía para principiantes]

Configure un servidor VPN en su PC con Linux

Personaliza tu escritorio Linux con FVWM

Crea tu propio servidor de transmisión de video con Linux

Asegure su red Linux con firewall-cmd

ReaR:Respalde y recupere su servidor Linux con confianza

Network Manager en Linux con ejemplos