L'un des frameworks de sécurité les plus couramment utilisés dans Linux Netfilter, cette fonctionnalité se trouve dans le noyau Linux et offre une flexibilité pour diverses opérations liées au réseau à implémenter sous la forme de pilotes personnalisés.
Netfilter offre plusieurs options pour le filtrage de paquets, la résolution d'adresse réseau et les ports de résolution. Ces fonctions fournissent le nécessaire pour diriger les paquets via une fonctionnalité réseau ainsi que pour fournir la capacité d'interdire aux paquets d'atteindre des emplacements sensibles au sein d'un réseau informatique.
Netfilter est un ensemble d'outils au sein du noyau Linux, qui permet à des modules spécifiques du noyau d'enregistrer les transactions réseau des fonctions de rappel au sein du noyau.
Ces fonctions sont généralement appliquées sous la forme de règles de filtrage du trafic, elles sont invoquées à chaque nouvelle transaction ou chaque paquet de données passant par le système de filtrage respectif au sein du réseau, ce système est un filtre pare-feu.
Le pare-feu est responsable de l'interception et de la manipulation des paquets réseau. Il permet également la gestion des paquets à différentes étapes du traitement. Netfilter est également le nom donné au projet chargé de fournir des outils gratuits pour les pare-feu ou les pare-feu basés sur Linux.
Le composant le plus populaire construit sur Netfilter est le pare-feu ou pare-feu de l'outil iptables qui permet de filtrer les packages et également d'effectuer une résolution d'adresse réseau ou de conserver des enregistrements de journal sur ce qui se passe. Le projet Netfilter propose non seulement des composants disponibles en tant que noyau de modules, mais propose également des outils à utiliser par l'utilisateur et des bibliothèques pour les développeurs.
Voici comment configurer un pare-feu à l'aide d'iptables. Nous voyons d'abord si iptables est actif, pour ce faire depuis une fenêtre de terminal, écrivez ce qui suit :
sudo iptables -L
Si nous ne l'avions pas installé, nous pouvons l'installer avec la déclaration suivante :
sudo apt-get install iptables
Nous pouvons également utiliser la commande :
whereis iptables
Nous renverrons l'emplacement d'Iptables, quelque chose comme ceci :
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
Pour démarrer dans le cas de Debian/Ubuntu et dérivés exécutez la commande :
sudo ufw enable // iniciar
sudo ufw disable //detener
Si nous utilisons CentOS / RHEL / Fedora, exécutez la commande suivante :
service iptables stop
service iptables start
service iptables restart
Comment appliquer les règles Iptables
Les règles de filtrage des paquets sont mises en place à l'aide de la commande iptables. Le type de syntaxe répond à l'instruction suivante.
Exemple Pour insérer des règles pour autoriser l'accès au port 80 utilisé par les services Web :
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
Nous expliquons les paramètres définis par la règle :
-A =Indique d'ajouter cette règle à un filtre de chaîne. La chaîne où nous indiquons que nous faisons, la plupart du temps, nous traitons le trafic entrant ou sortant INPUT et OUTPUT, en autorisant ou non certains ports ou IP spécifiques pour le trafic de données.
-m =pour indiquer que la règle de filtrage doit correspondre au support ou au protocole de connexion et de transmission, par exemple dans ce cas nous autorisons le trafic de données mais uniquement pour tcp et udp ou autre n° de protocole.
-s =indique le trafic de l'adresse IP source autorisé, la plage d'adresses en utilisant [/netmask] ou en spécifiant le port d'origine.
ip =-d indique le trafic d'adresse de destination autorisé, la plage d'adresses en utilisant [/netmask] ou en spécifiant le port de destination.
j – =indique que l'action aura lieu si elle correspond à la règle de filtrage de paquets. Par défaut, iptables autorise quatre actions possibles :
ACCEPT indique que le paquet est accepté et peut continuer.
REJECT indique que le paquet est rejeté et notifie la source qui n'est pas acceptée, arrête le traitement du paquet.
DROP indique qu'il rejette et ignore le paquet, ne produit aucun avertissement et arrête le traitement du paquet.
LOG indique que le paquet est accepté et que le traitement continu de plusieurs règles dans cette chaîne permet de voir un journal de ce qui s'est passé.
Exemple :fermer l'accès distant SSH au port 22 :
iptables -A INPUT -p tcp --dport 22 -j DROP
Nous entendons par là rejeter toute entrée ou trafic de données entrant ou tentant de se connecter au port 22.
Exemple :si on veut qu'un développeur ou designer ait un accès ftp depuis un ordinateur mais personne d'autre, on peut alors utiliser la règle suivante, que j'accepte en FTP, port 21 pour une ip donnée.
iptables -A INPUT -s Your_IP_Address -p tcp -dport 21 -j ACCEPT
Exemple :les administrateurs de base de données peuvent avoir leur propre accès depuis un ordinateur. Ensuite, nous activons la connexion au port ou la base de données Mysql que nous avons.
iptables -A INPUT -s Your_IP_Address -p tcp --dport 3306 -j ACCEPT
Exemple :la plupart des administrateurs de serveur restent fermés le port 25 (SMTP) pour générer du spam et la facilité des spammeurs à l'utiliser pour les envois de masse, nous pouvons donc bloquer pour que quiconque l'utilise de manière simple et facile.
iptables -A INPUT -p tcp --dport 22 -j DROP
Exemple :Si vous devez autoriser l'accès à des sites Web sécurisés en utilisant le format https://www.miweb.com , nous devons autoriser l'accès au port 443 qui est le protocole HTTPS/SSL utilisé pour le transfert sécurisé des pages Web.
iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
Attention Administrateurs système
Tous les administrateurs et utilisateurs de Linux doivent être conscients qu'il est important de considérer cet outil comme une première ligne de défense de sécurité, sachez nous utiliser pour servir dans de nombreux cas car il empêche l'accès à notre système, mais sert également à stopper une éventuelle attaque en cours.
Une façon de personnaliser facilement iptables en fonction de nos besoins afin de minimiser les problèmes de sécurité et les vulnérabilités potentiels.
Si vous avez besoin de connaître tous les ports que nous avons dans notre système, nous pouvons utiliser le guide suivant pour les ports les plus couramment utilisés et à considérer comme protégés.
Ports Internet à prendre en compte
20 Transfert de fichiers et données FTP
21 FTP
22 SSH, accès à distance SFTP
23 L'équipement de traitement à distance Telnet est un protocole non sécurisé
25 Le courrier électronique SMTP n'est pas sécurisé
53 Résolution du nom de domaine DNS du système
67 BOOTP (serveur) utilisé par les adresses IP dynamiques DHCP
68 BOOTP (client), également utilisé par DHCP
80 HTTP Hypertext Transfer Protocol. Service WWW
110 Protocole de bureau de poste POP3. Réception d'e-mails
143 Protocole IMAP Application permettant d'accéder aux messages stockés sur un serveur de messagerie
389 Protocole LDAP Accès léger aux bases de données
443 Protocole HTTPS/SSL pour le transfert sécurisé de pages Web
/>465 SMTP en toute sécurité et crypté avec SSL. Il est utilisé pour envoyer des e-mails
631 Système d'impression CUPS Linux et dérivés
993 IMAP avec sécurité et cryptage SSL est utilisé pour recevoir des e-mails
995 POP3 avec sécurité et cryptage SSL est utilisé pour recevoir des e-mails
Port Serveur 1433 base de données SQLServer
1434 Port Surveillance serveur SQLServer avec SQLMonitor
1521 Port Serveur Base de données Oracle
2082 port d'accès CPanel panneau de contrôle pour la gestion Web
2083 port CPanel accès sécurisé avec SSL.
Port d'accès 3306 Bases de données du serveur MySQL MYSQL
3389 RDP Remote Desktop ou Terminal Server
3396 port de service Novell Novell Print
3690 Apache Subversion est un outil de contrôle de version, également appelé comme SVN
5000 Le port plug-and-play est un ensemble universel de protocoles de communication qui permet aux ordinateurs, imprimantes, points d'accès Wi-Fi et appareils mobiles, trouvés dans un réseau
5222 Jabber / XMPP est le protocole utilisé aujourd'hui Facebook, Tuenti, entre autres WhatsApp
5223 Jabber / XMPP port par défaut pour SSL c connexions client
5269 Connexion au serveur Jabber / XMPP
5432 Bases de données du système de gestion PostgreSQL
5400 Protocole de bureau à distance VNC utilisant le protocole HTTP.
8080 est le port utilisé par le serveur Web Tomcat avec JSP.