I. Présentation
Possédant un serveur hébergé Online.net (mais peu importe) avec Proxmox dessus, je voulais faire ressortir le nombre de scan de ports dessus et afficher quelques statistiques.
Les statistiques porteront sur un “top” de ports les plus bloqués par le pare-feu de proxmox.
Tous les jours, mon script tourne pour lire le fichier delog du pare-feu et stocke dans un autre fichier les ports bloqués et le nombre de fois qu’il le sont.
II. Ports bloqués
III. IPs bloquées
IV. Description des ports
Numéro de ports | Protocole | Description |
---|---|---|
21 | TCP | Utilisé par les serveurs FTP (proftpd) |
22 | TCP | Utilisé par les serveurs SSH (sshd) |
23 | TCP | Utilisé par les serveurs TELNET (telnetd) |
80 | TCP | Utilisé par les serveurs WEB (nginx, apache,…) |
1433 | TCP | Utilisé par les serveurs VPN (OpenVPN) |
3306 | TCP | Utilisé par les serveurs SQL (MariaDB, Mysql, ..) |
3389 | TCP | Utilisé par les serveurs RDP (Bureau à distance) |
5060 | UDP | Utilisé par les serveurs de TOIP (protocole SIP asterisk) |
8080 | TCP | Utilisé par les serveurs PROXY (squid, pve-proxy, …) |
45000 | UDP/TCP | Utilisé par les serveurs TORRENT (rutrrent, transmission, …) |
V. Scripts
Comme demandé et qu’on est la pour partager 😛 , je montre ici les scripts qui me servent pour faire les statistiques. Ce sont des scripts fais très rapidement qui sont loin d’être optimaux et qui sont sans aucun doute à enrichir.
Voici le script pour lister les ports bloqués, avec une différenciation TCP / UDP:
Pour le télécharger: Proxmox_list_port_block
Explication: Ce qui nous intéresse dans le c’est cette ligne:
cat /var/log/pve-firewall.log | grep =UDP | cut -d= -f14 | awk ‘{print $1}’ | sort | uniq -c | sort -nr | head -n 30 >> $path
arguments | Signification |
---|---|
grep =UDP | recherche le texte “=UDP” |
cut -d= -f14 | Extrait le contenu, directement après le caractère “=” et seulement le 14ème champs |
awk ‘{print$1}’ | affiche le 1er champs |
sort | trie |
uniq -c | regroupe sans doublon et en affichant le nombre de doublon |
sort -nr | trie numérique (le nombre de doublon précédent) et tri ensuite dans l’ordre inverse (le plus grand en premier) |
head -n 30 | n’affiche seulement que les 30 premiers résultat |
>>$path | ajoute (mais n’efface pas) dans le fichier de log définie dans la variable $path |
Et celui qui me sert à lister les IPs bloquées:
Pour le télécharger: proxmox_list_ip_block
Explication: Même principe que pour le script précédent
Ensuite il suffit de lancer la commande: crontab -e sur notre Proxmox et d’ajouter les lignes suivantes:
59 23 * * * /root/scripts_cron/list_ip_block.sh
59 23 * * * /root/scripts_cron/list_port_block.sh
PS: remplacer le chemin par celui où se trouve votre script.
Dans cette configuration le cron va déclencher à 23H59 tous les jours nos scripts.
Bonjour,
Je serais intéressée par ton script si bien sur tu veux en dévoiler les sources. 🙂
En effet je possède un serveur proxmox également chez online et je souhaiterai faire des stats sur les ports bloqués.
Merci d’avance 🙂
Bonjour,
J’ai modifié l’article pour ajouter les scripts.
Bonne journée
Merci 🙂