Recherche de site Web

13 questions d’entretien sur le pare-feu iptables de Linux


Nishita Agarwal, une visiteuse fréquente de Tecmint, nous a partagé son expérience (Question et réponse) concernant l’entretien d’embauche qu’elle venait de passer dans une société d’hébergement privée à Pune, en Inde. On lui a posé beaucoup de questions sur une variété de sujets, mais elle est une experte en iptables et elle voulait partager ces questions et leur réponse (qu’elle a donnée) liée à iptables à d’autres qui pourraient donner une interview dans un avenir proche.

Toutes les questions et leur réponse sont réécrites sur la base de la mémoire de Nishita Agarwal.

"Bonjour les amis ! Je m’appelle Nishita Agarwal. J’ai poursuivi des études de baccalauréat en technologie. Mon domaine de spécialisation est UNIX et les variantes d’UNIX (BSD, Linux) me fascinent depuis le moment où je l’ai entendu. J’ai 1+ ans d’expérience dans le stockage. Je cherchais un changement d’emploi qui s’est terminé par une société d’hébergement à Pune, en Inde. ”

Voici la collection de ce qui m’a été demandé lors de l’interview. Je n’ai documenté que les questions et leurs réponses qui étaient liées à iptables d’après ma mémoire. J’espère que cela vous aidera à réussir votre entretien.

1. Avez-vous entendu parler d’iptables et du pare-feu sous Linux ? Avez-vous une idée de ce qu’ils sont et à quoi cela sert ?

Réponse : J’utilise iptables depuis assez longtemps et je connais à la fois iptables et firewall. Iptables est un programme d’application principalement écrit en langage de programmation C et est publié sous licence publique générale GNU. Écrit pour l’administration système, la dernière version stable est iptables 1.4.21.iptables peut être considéré comme un pare-feu pour un système d’exploitation de type UNIX qui peut être appelé iptables/netfilter, plus précisément. L’administrateur interagit avec iptables via les outils frontaux de la console/interface graphique pour ajouter et définir des règles de pare-feu dans des tables prédéfinies. Netfilter est un module construit à l’intérieur du noyau qui fait le travail de filtrage.

Firewalld est la dernière implémentation des règles de filtrage dans RHEL/CentOS 7 (peut être implémentée dans d’autres distributions dont je ne suis peut-être pas au courant). Il a remplacé l’interface iptables et se connecte à netfilter.

2. Avez-vous utilisé une sorte d’outil frontal basé sur une interface graphique pour iptables ou la ligne de commande Linux ?

Réponse : Bien que j’aie utilisé à la fois les outils frontaux basés sur l’interface graphique pour iptables comme Shorewall en conjugaison de Webmin dans l’interface graphique et l’accès direct à iptables via la console.Et je dois admettre que l’accès direct à iptables via la console Linux donne à l’utilisateur un pouvoir immense sous la forme d’un degré de flexibilité plus élevé et d’une meilleure compréhension de ce qui se passe en arrière-plan, si ce n’est rien d’autre. L’interface graphique est destinée aux administrateurs novices, tandis que la console est destinée aux expérimentés.

3. Quelles sont les différences fondamentales entre iptables et firewalld ?

Réponse : iptables et firewalld ont le même objectif (filtrage de paquets) mais avec une approche différente. iptables vide l’ensemble des règles définies chaque fois qu’une modification est effectuée, contrairement à firewalld. Généralement, l’emplacement de la configuration iptables se trouve à '/etc/sysconfig/iptables' tandis que la configuration de firewalld se trouve à '/etc/firewalld/', qui est un ensemble de fichiers XML.La configuration d’un firewalld basé sur XML est plus facile que la configuration d’iptables, mais la même tâche peut être accomplie en utilisant à la fois l’application de filtrage de paquets, c’est-à-dire iptables et firewalld. Firewalld exécute iptables sous son capot avec sa propre interface de ligne de commande et son fichier de configuration basé sur XML et mentionné ci-dessus.

4. Remplaceriez-vous iptables par firewalld sur tous vos serveurs, si vous en aviez l’occasion ?

Réponse : Je connais iptables et ça marche et s’il n’y a rien qui nécessite un aspect dynamique de firewalld, il ne semble pas y avoir de raison de migrer toute ma configuration d’iptables vers firewalld.Dans la plupart des cas, jusqu’à présent, je n’ai jamais vu iptables créer un problème. Aussi la règle générale de la technologie de l’information dit « pourquoi réparer si ce n’est pas cassé ». Cependant, c’est ma pensée personnelle et cela ne me dérangerait pas d’implémenter firewalld si l’organisation devait remplacer iptables par firewalld.

5. Vous semblez confiant avec iptables et le point positif est que même nous utilisons iptables sur notre serveur.

Quelles sont les tables utilisées dans iptables ? Donnez une brève description des tables utilisées dans iptables et des chaînes qu’elles prennent en charge.

Réponse : Merci pour la reconnaissance. En ce qui concerne la partie question, il y a quatre tables utilisées dans iptables, à savoir :

  1. Tableau Nat
  2. Table à calandres
  3. Table de filtrage
  4. Table brute

Table Nat : La table Nat est principalement utilisée pour la traduction d’adresses réseau. L’adresse IP des paquets masqués est modifiée conformément aux règles du tableau. Les paquets du flux ne traversent la table Nat qu’une seule fois. c’est-à-dire que si un paquet d’un jet de paquets est masqué, le reste des paquets du flux ne traversera plus cette table. Il est recommandé de ne pas filtrer dans ce tableau. Les chaînes prises en charge par la table NAT sont la chaîne PREROUTING, la chaîne POSTROUTING et la chaîne OUTPUT.

Mangle Table : Comme son nom l’indique, cette table sert à mutiler les paquets. Il est utilisé pour l’altération spéciale de l’emballage. Il peut être utilisé pour modifier le contenu de différents paquets et de leurs en-têtes. La table à calandres ne peut pas être utilisée pour la mascarade. Les chaînes prises en charge sont la chaîne PREROUTING, la chaîne OUTPUT, la chaîne Forward, la chaîne INPUT, la chaîne POSTROUTING.

Table de filtres : La table de filtres est la table par défaut utilisée dans iptables. Il est utilisé pour filtrer les paquets. Si aucune règle n’est définie, la table de filtre est prise comme table par défaut et le filtrage est effectué sur la base de cette table. Les chaînes prises en charge sont la chaîne d’entrée, la chaîne de sortie, la chaîne avant.

Table brute : La table brute entre en action lorsque nous voulons configurer des packages qui ont été exemptés précédemment. Il prend en charge la chaîne PREROUTING et la chaîne OUTPUT.

6. Quelles sont les valeurs cibles (qui peuvent être spécifiées dans target) dans iptables et ce qu’elles font, soyez bref !

Réponse : Voici les valeurs cibles que nous pouvons spécifier dans target dans iptables :

    1. ACCEPT : Accepter les paquets
    2. QUEUE : Paquet Paas vers l’espace utilisateur (lieu où résident l’application et les pilotes)
    3. DROP : Laisser tomber des paquets
    4. RETURN : Rétablissez le contrôle de la chaîne appelante et arrêtez l’exécution du prochain ensemble de règles pour les paquets actuels de la chaîne.
7. Passons aux aspects techniques d’iptables, par technique I signifie pratique.

Comment allez-vous vérifier le rpm d’iptables qui est requis pour installer iptables dans CentOS ?.

Réponse : iptables rpm sont inclus dans l’installation standard de CentOS et nous n’avons pas besoin de l’installer séparément. Nous pouvons vérifier le régime comme suit :

# rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Si vous avez besoin de l’installer, vous pouvez faire miam pour l’obtenir.

# yum install iptables-services
8. Comment vérifier et s’assurer que le service iptables est en cours d’exécution ?

Réponse : Pour vérifier l’état d’iptables, vous pouvez exécuter la commande suivante sur le terminal.

# service iptables status			[On CentOS 6/5]
systemctl status iptables			[On CentOS 7]

S’il n’est pas en cours d’exécution, la commande ci-dessous peut être exécutée.

---------------- On CentOS 6/5 ---------------- 
chkconfig --level 35 iptables on
service iptables start

---------------- On CentOS 7 ---------------- 
systemctl enable iptables 
systemctl start iptables 

Nous pouvons également vérifier si le module iptables est chargé ou non, comme :

# lsmod | grep ip_tables
9. Comment allez-vous revoir les règles actuelles définies dans iptables ?

Réponse : Les règles actuelles dans iptables peuvent être consultées aussi simplement que :

# iptables -L

Exemple de sortie

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
10. Comment allez-vous vider toutes les règles iptables ou une chaîne particulière ?

Réponse : Pour vider une chaîne iptables particulière, vous pouvez utiliser les commandes suivantes.

 
iptables --flush OUTPUT

Pour vider toutes les règles iptables.

# iptables --flush
11. Ajouter une règle dans iptables pour accepter les paquets d’une adresse IP de confiance (disons 192.168.0.7)

Réponse : Le scénario ci-dessus peut être réalisé simplement en exécutant la commande ci-dessous.

# iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Nous pouvons inclure une barre oblique ou un masque de sous-réseau standard dans la source comme suit :

# iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT 
iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
12. Comment ajouter des règles au service ssh ACCEPT, REJECT, DENY et DROP dans iptables.

Réponse : En espérant que ssh fonctionne sur le port 22, qui est aussi le port par défaut pour ssh, nous pouvons ajouter une règle à iptables comme suit :

Pour ACCEPTER les paquets tcp pour le service ssh (port 22).

# iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 

Pour REJETER les paquets tcp pour le service ssh (port 22).

# iptables -A INPUT -s -p tcp --dport 22 -j REJECT

Pour REFUSER les paquets tcp pour le service ssh (port 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DENY

Pour DROP tcp packets pour le service ssh (port 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Permettez-moi de vous donner un scénario. Supposons qu’il existe une machine dont l’adresse IP locale est 192.168.0.6. Vous devez bloquer les connexions sur les ports 21, 22, 23 et 80 à votre machine. Qu’allez-vous faire ?

Réponse : Eh bien, tout ce que j’ai besoin d’utiliser est l’option 'multiport' avec iptables suivi des numéros de port à bloquer et le scénario ci-dessus peut être réalisé en une seule fois as.

# iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP

Les règles écrites peuvent être vérifiées à l’aide de la commande ci-dessous.

# iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
DROP       tcp  --  192.168.0.6          anywhere             multiport dports ssh,telnet,http,webcache

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Intervieweur : C’est tout ce que je voulais demander. Vous êtes un employé précieux que nous n’aimerons pas manquer. Je recommanderai votre nom aux RH. Si vous avez des questions, vous pouvez me les poser.

En tant que candidat, je ne veux pas tuer la conversation, alors je continue à poser des questions sur les projets que je gérerais si j’étais sélectionné et quels sont les autres postes vacants dans l’entreprise. Sans oublier que le tour de table des RH n’a pas été difficile à percer et que j’ai eu l’opportunité.

Je tiens également à remercier Avishek et Ravi (dont je suis un ami de longue date) d’avoir pris le temps de documenter mon interview.

amis! Si vous aviez donné une telle interview et que vous souhaitiez partager votre expérience d’interview avec des millions de lecteurs de Tecmint à travers le monde ? Envoyez ensuite vos questions et réponses à [email ou vous pouvez soumettre votre expérience d’entretien en utilisant le formulaire suivant.

Merci! Restez connecté. Faites-moi également savoir si j’aurais pu répondre à une question plus correctement que ce que j’ai fait.

Articles connexes: