Sécuriser votre réseau avec Iptables - Proxy - NAT - IDS: PARTIE 2

Dans l' article précédent, nous avons vu comment configurer IPTables pour qu'il fonctionne comme un pare-feu. Nous allons maintenant voir comment créer des scripts pour exécuter automatiquement des règles au démarrage du système, et comment supprimer ou suspendre temporairement ces règles.

Avant de faire le script et de vous montrer à quoi il ressemble, parlons un peu de NAT et du concept de ce que nous voulons faire avec cet équipement.

NAT et contexte de l'exemple.

Quand on parle de NAT, on peut confondre cela avec le routage, puisque les deux sont chargés de connecter deux réseaux différents entre eux. La vraie différence est que le routage est appliqué pour aller d'un réseau local à un autre et que cet autre réseau peut se connecter à un routeur et sortir sur Internet.

Alors que lorsque nous parlons de NAT, nous parlons de routage de paquets d'un réseau local ou privé vers un réseau public ou Internet. Il le fait en masquant les paquets en mettant l'adresse IP publique avec laquelle il va sur Internet. Autrement dit, nous n'avons pas besoin d'un routeur, car l'adresse IP publique appartient directement à l'ordinateur GNU / Linux.

nat

Nous travaillerons cela avec le slogan que nous utilisons notre Linux comme routeur / pare-feu pour accéder à Internet à partir d'un réseau local. Mais ici deux scénarios peuvent apparaître.

  • Que notre Linux se situe entre le routeur du fournisseur de services et le réseau local.

Dans ce cas, il y aurait un réseau entre le routeur et notre système Linux, et un autre réseau entre le système Linux et le réseau local. Cela signifie que notre routeur n'aurait pas besoin d'effectuer de NAT à proprement parler ; un simple routage du trafic, comme expliqué dans l' article précédent, suffirait.

  • Que notre Linux dispose d'une interface connectée au réseau local et que via l'autre interface, il reçoit directement une adresse IP publique avec laquelle il navigue.

Cela signifie que notre Linux doit faire du NAT pour que les paquets puissent atteindre Internet.

Pour les besoins de ce petit laboratoire alors, nous dirons que notre Linux reçoit directement une IP publique et pourra ainsi tester les effets du NAT.

Pour faire du NAT, nous utilisons ensuite la syntaxe

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

Où eth1 est l'interface où nous recevons l'adresse IP publique, c'est-à-dire où nous allons sur Internet.

MASQUERADE est utilisé lorsque l'ip est public mais il peut varier dans le temps (dynamique). Sinon, nous pouvons utiliser SNAT - to-source ip

Création d'un script iptables

Supposons alors que: 172.26.0.0 est notre réseau local et 81.2.3.4 est l'adresse IP publique avec laquelle nous allons sur Internet. (c'est une adresse IP statique). J'ai les interfaces eth0 (réseau local)

eth1 (réseau public).

Il consiste essentiellement à créer un script qui peut être appelé depuis /etc/init.d/firestop (par exemple). et à partir de ce script, nous pouvons démarrer, arrêter ou vérifier l'état de notre configuration, comme nous le faisons avec n'importe quel démon système.

Supposons que mes règles IPTABLES SONT:

#! / bin / bash # Pare-feu de ma maison. # Nom de fichier / etc / firewall_on # Par Jlcmux Twitter: @Jlcmux # # Politique de base. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT pour partager Internet de eth0 à eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Autoriser les connexions entrantes démarrées par mon iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT # # Trafic sortant autorisé iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPTER iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPTER iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPTER
N'oublions pas de donner des autorisations d'exécution

Explication:

Le script effectue essentiellement les opérations suivantes:

  1. Limitez d'abord toute navigation, connexions et trafic. (Politiques de pare-feu de base)
  2. Créez ensuite le NAT avec la destination eth1. indiquant que nous avons une adresse IP publique statique « 81.2.3.4 »
  3. Il ouvre les ports nécessaires pour recevoir les paquets de connexions initiées par moi.
  4. Accepte le trafic sortant HTTP, HTTPS et DNS.
Les règles sont destinées au trafic FORWARD parce que nous utilisons notre Linux comme un routeur, donc les politiques sont utilisées pour le trafic qui passe par Linux, c'est-à-dire qu'il agit comme un intermédiaire. Cela signifie que notre Linux ne peut pas vraiment naviguer ou recevoir directement des données. Cela ne s'applique qu'aux ordinateurs qui y sont connectés, mais pas à lui-même

Si nous voulons utiliser notre équipement pour naviguer, nous devons répéter les lignes et changer FORWARD en INPUT ou OUTPUT selon le cas.

Annuler le script.

Nous allons maintenant créer un script qui remplace tout ce qui précède et laisse l'ordinateur propre de tout cela. (À des fins de test ou nous voulons simplement désactiver le pare-feu).

#! / bin / bash # Pare-feu de ma maison. # Nom de fichier / etc / firewall_off # Par Jlcmux Twitter: @Jlcmux # #Suppression des règles iptables -F # #Application des politiques par défaut (tout le trafic accepté) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatiser.

Il nous faut maintenant créer le script dans /etc/init.d/ afin que le service démarre automatiquement et que nous puissions le gérer plus facilement.

#! / bin / bash # Pare-feu de ma maison. # Nom du fichier /etc/init.d/ firewall # Par Jlcmux Twitter: @Jlcmux case $ 1 au début) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Syntaxe incorrecte. Valide = /etc/init.d/ firewall start | stop | status ;; esac

Explication:

Nous plaçons ce dernier script dans /etc/init.d/ et le nommons « firewall » . Ensuite, pour gérer le pare-feu, nous utilisons la commande /etc/init.d/firewall start. Nous pouvons également l'arrêter ou vérifier son état de la même manière.

Nous allons maintenant modifier le fichier /etc/rc.local et ajouter quelque chose comme : /etc/init.d/firewall start afin qu'il démarre avec le système.

Aussi. Ceci est la deuxième partie. J'espère que cela vous apportera quelque chose. Dans le suivant, nous voyons Proxy et IDS.


Ajouter comme source préférée dans Google