GNU/Linux >> Tutoriels Linux >  >> Linux

Affichez les connexions réseau de votre serveur Linux avec netstat

J'ai partagé quelques premières étapes importantes pour vous aider à gérer votre serveur Linux personnel dans un article précédent. J'ai brièvement mentionné la surveillance des connexions réseau pour les ports d'écoute, et je souhaite développer cela en utilisant le netstat commande pour les systèmes Linux.

La surveillance des services et l'analyse des ports sont des pratiques standard de l'industrie. Il existe de très bons logiciels comme Prometheus pour aider à automatiser le processus, et SELinux pour aider à contextualiser et protéger l'accès au système. Cependant, je pense que comprendre comment votre serveur se connecte à d'autres réseaux et appareils est essentiel pour établir une base de référence de ce qui est normal pour votre serveur, ce qui vous aide à reconnaître les anomalies pouvant suggérer un bogue ou une intrusion. En tant que débutant, j'ai découvert que le netstat La commande fournit des informations importantes sur mon serveur, à la fois pour la surveillance et le dépannage du réseau.

Netstat et des outils de surveillance réseau similaires, regroupés dans le package net-tools, affichent des informations sur les connexions réseau actives. Étant donné que les services exécutés sur des ports ouverts sont souvent vulnérables à l'exploitation, la pratique d'une surveillance régulière du réseau peut vous aider à détecter rapidement les activités suspectes.

Installer netstat

Netstat est souvent préinstallé sur les distributions Linux. Si netstat n'est pas installé sur votre serveur, installez-le avec votre gestionnaire de paquets. Sur un système basé sur Debian :

$ sudo apt-get install net-tools

Pour les systèmes basés sur Fedora :

$ dnf install net-tools

Utiliser netstat

Seul, le netstat La commande affiche toutes les connexions établies. Vous pouvez utiliser le netstat options ci-dessus pour spécifier davantage la sortie prévue. Par exemple, pour afficher toutes les connexions d'écoute et de non-écoute, utilisez le --all (-a pour faire court). Cela renvoie beaucoup de résultats, donc dans cet exemple, je dirige la sortie vers head pour afficher uniquement les 15 premières lignes de sortie :

$ 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

Pour afficher uniquement les ports TCP, utilisez le --all et --tcp options, ou -at pour faire court :

$ 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

Pour afficher uniquement les ports UDP, utilisez le --all et --udp options, ou -au pour faire court :

$ 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          

Les options de netstat sont souvent intuitives. Par exemple, pour afficher tous les ports TCP et UDP en écoute avec l'ID de processus (PID) et l'adresse numérique :

$ 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 version courte de cette combinaison courante est -tulpn .

Pour afficher des informations sur un service spécifique, filtrez avec 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

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Étapes suivantes

Une fois que vous avez exécuté le netstat commande, vous pouvez prendre des mesures pour sécuriser votre système en vous assurant que seuls les services que vous utilisez activement écoutent sur votre réseau.

  1. Reconnaître les ports et services couramment exploités. En règle générale, fermez les ports que vous n'utilisez pas réellement.
  2. Soyez à l'affût des numéros de port inhabituels et apprenez à reconnaître les ports légitimes utilisés sur votre système.
  3. Portez une attention particulière aux erreurs SELinux. Parfois, tout ce que vous avez à faire est de mettre à jour les contextes pour correspondre à une modification légitime que vous avez apportée à votre système, mais lisez les erreurs pour vous assurer que SELinux ne vous alerte pas d'une activité suspecte ou malveillante.

Si vous constatez qu'un port exécute un service suspect ou si vous souhaitez simplement fermer un port que vous n'utilisez plus, vous pouvez refuser manuellement l'accès au port via des règles de pare-feu en suivant ces étapes :

Si vous utilisez firewall-cmd , exécutez ces commandes :

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

Si vous utilisez UFW, exécutez la commande suivante :

$ sudo ufw deny <port number>

Ensuite, arrêtez le service lui-même en utilisant systemctl :

$ systemctl stop <service>

Apprendre netstat

Netstat est un outil utile pour collecter rapidement des informations sur les connexions réseau de votre serveur. La surveillance régulière du réseau est importante pour apprendre à connaître votre système et vous aide à assurer la sécurité de votre système. Pour intégrer cette étape dans votre routine administrative, vous pouvez utiliser des outils de surveillance du réseau tels que netstat ou ss, ainsi que des analyseurs de ports open source tels que Nmap ou des renifleurs tels que Wireshark, qui permettent des tâches planifiées.

Comme les serveurs hébergent de plus grandes quantités de données personnelles, il est de plus en plus important d'assurer la sécurité des serveurs personnels. En comprenant comment votre serveur se connecte à Internet, vous pouvez réduire la vulnérabilité de votre machine, tout en bénéficiant de la connectivité croissante de l'ère numérique.


Linux
  1. Analysez votre sécurité Linux avec Lynis

  2. Créez un jumeau maléfique de votre réseau avec Fluxion sur Kali Linux

  3. Créez votre stockage cloud avec ownCloud 6 sur Linux Mint 17

  4. Comment installer Nextcloud avec Docker sur votre serveur Linux

  5. 6 outils open source indispensables pour sécuriser votre serveur Linux

Configurez un serveur VPN sur votre PC Linux

Personnalisez votre bureau Linux avec FVWM

Créez votre propre serveur de streaming vidéo avec Linux

Sécurisez votre réseau Linux avec firewall-cmd

ReaR :sauvegardez et restaurez votre serveur Linux en toute confiance

Network Manager sur Linux avec des exemples