Créez votre propre pare-feu avec iptables en utilisant ce script simple partie 2

Firewall_ (mise en réseau)

Bonjour à tous, aujourd'hui je vous apporte une deuxième partie de cette série de tutoriels sur pare-feu avec iptables, très simples pour que vous puissiez copier et coller, je pense qu'en fin de compte c'est ce que recherchent tous les débutants ou même les plus expérimentés, pourquoi nous devons réinventer la roue 100 fois, non?

Cette fois, je leur dis d'essayer de se concentrer sur le cas très spécifique de savoir si nous voulons que notre pare-feu soit beaucoup plus agressif avec une politique OUTPUT DROP. Cet article est également à la demande d'un lecteur de ces pages et de mes articles. (Dans mon esprit wiiiiiiiiiiiii)

Parlons un peu des «avantages et inconvénients» de l'établissement de politiques de baisse de sortie, celui contre lequel je peux vous dire principalement que cela rend le travail beaucoup plus fastidieux et laborieux, mais l'avantage est qu'au niveau du réseau, vous aurez la sécurité que si vous vous asseyez Pour bien penser, concevoir et planifier les politiques, vous aurez un serveur beaucoup plus sécurisé.

Afin de ne pas déambuler ou sortir du sujet, je vais vous expliquer rapidement avec un exemple comment vos règles devraient être plus ou moins

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m état –state ESTABLISHED -j ACCEPT
-A parce que nous avons ajouté la règle
-o fait référence au trafic sortant, alors l'interface est placée si elle n'est pas spécifiée car elle correspond à tous.
-sport port d'origine, joue un rôle important car dans la plupart des cas on ne sait pas depuis quel port ils vont faire la demande, si c'est le cas on pourrait utiliser dport
–Dport port de destination, lorsque nous savons précisément à l'avance que la connexion sortante ne doit aller qu'à un port spécifique. Cela doit être pour quelque chose de très ponctuel comme un serveur mysql distant par exemple.
-m état –état ÉTABLI C'est déjà une parure pour maintenir les connexions déjà établies, nous pourrions l'explorer dans un prochain post
-d pour parler de destination, si elle peut être spécifiée, par exemple ssh à une machine spécifique par son ip

#!/bin/bash

#Nous nettoyons les tables iptables -F iptables -X # Nous nettoyons les iptables NAT -t nat -F iptables -t nat -X # mangle table pour des choses comme PPPoE, PPP et ATM iptables -t mangle -F iptables -t mangle -X # Politiques Je pense que c'est le meilleur moyen pour les débutants et # toujours pas mal, je vais vous expliquer la sortie parce que ce sont des connexions sortantes #, l'entrée nous supprimons tout, et aucun serveur ne doit transférer. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Conserver l'état. Tout ce qui est déjà connecté (établi) nous le laissons comme ceci iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
# Périphérique en boucle. iptables -A INPUT -i lo -j ACCEPTER
# Sortie de bouclage Iptables -A OUTPUT -o lo -j ACCEPTER

# http, https, nous ne spécifions pas l'interface car # nous voulons qu'elle soit tous iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Départ
# http, https, nous ne spécifions pas l'interface car
# nous voulons que ce soit pour tous mais si nous spécifions le port de sortie
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPTER iptables -A OUTPUT -p tcp --sport 443 -j ACCEPTER

# ssh uniquement en interne et à partir de cette plage d'iptables d'ip -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPTER
# output # ssh uniquement en interne et à partir de cette plage d'adresses IP
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ACCEPTER
# surveillance par exemple s'ils ont zabbix ou d'autres iptables snmp -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPTER
# Départ
# surveillance par exemple s'ils ont zabbix ou un autre service snmp
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j ACCEPTER

# icmp, ping bon est votre décision iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPTER
# Départ
# icmp, le ping est votre décision
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j ACCEPTER

#mysql avec postgres est le port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPTER
# output - question également posée par un utilisateur pour créer un # serveur de règles très spécifique: 192.168.1.2 mysql: 192.168.1.3
#mysql avec postgres est le port 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ACCEPTER

#sendmail bueeeh si vous voulez envoyer du courrier #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # server IP - le vrai wan ip de votre LAN_RANGE server = "192.168.xx / 21" # Plage LAN de votre réseau ou de vos # IP vlan qui ne devraient jamais entrer dans l'extranet, c'est pour utiliser un peu de # logique si nous avons une interface purement WAN, elle ne doit jamais entrer # trafic Type de réseau local via cette interface SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # Action par défaut - à effectuer lorsqu'une règle correspond à ACTION = " DROP "# Paquets avec la même adresse IP que mon serveur via les iptables wan -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Paquets avec la plage LAN pour le wan, je le mets comme ceci au cas où vous auriez # un réseau particulier, mais c'est redondant avec la règle # suivante dans la boucle "for" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Tous les réseaux SPOOF non autorisés par le wan pour ip dans $ SPOOF_IPS font iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION
fait

Dans le prochain examen, nous ferons la portée des ports et établirons également des politiques organisées par noms, entre autres ... J'attends vos commentaires et demandes.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.