====== TP5 (Firewall)====== == Memento == Voici quelques notes concernant l'utilisation d'iptables pour configurer un firewall. La configuration du firewall se base sur la table "filter" et est subdivisée en 3 chaînes (notée ) : * INPUT : tout ce qui rentre dans la machine ; * OUTPUT : tout ce qui sort dans la machine ; * FORWARD : tout ce qui traverse la machine (i.e. lors du routage). Pour afficher les règles de la table filter : $ iptables -t filter -L -v Pour effacer toutes les règles ajoutées : $ iptables -t filter -F Pour chaque règle que l'on ajoute, trois actions sont possibles (notée ) : * ACCEPT : on accepte ; * REJECT : on rejette poliment (réponse d'erreur envoyé à l'émetteur) ; * DROP : on jette à la poubelle (pas de réponse d'erreur). Pour modifier la politique par défaut du firewall : $ iptables -t filter -P Pour ajouter une nouvelle règle à une chaîne du firewall (attention à l'ordre des règles) : $ iptables -t filter -A <...> -j * avec des indications sur la provenance des paquets IP, comme par exemple "-i eth0" ou "-s 192.168.0.0/24" ou encore "-s 0/0" ; * avec des indications sur la destination des paquets IP, comme par exemple : "-o eth1" ou "-d 147.210.0.0/24" ; * avec <...> des infos complémentaires sur par exemple la nature du protocole "-p icmp" ou "-p tcp", avec éventuellement des precisions spécifiques à ces protocoles ("--dport 80" pour TCP) ou encore sur l'état "-m state --state NEW", ... Pour plus d'info, consulter le manuel : man iptables. ==Accepter le traffic partant du réseau interne vers des serveurs web ou SSH== Soit 192.168.1.0/24 notre réseau interne. On configure le firewall sur //immortal// notre passerelle. $ iptables -F $ iptables -P FORWARD DROP $ iptables -P INPUT DROP $ iptables -P OUTPUT DROP # traffic sortant $ iptables -A FORWARD -s 192.168.1.0/24 -m multiport -p tcp --dport 22,80 -j ACCEPT # traffic retour $ iptables -A FORWARD -d 192.168.1.0/24 -m multiport -p tcp --sport 22,80 -m state --state ESTABLISHED -j ACCEPT == Accepter un ping toutes les 10s à destination de nile == Soit //nile// la machine 192.168.0.4. On configure le firewall sur //immortal// notre passerelle. $ iptables -F $ iptables -P FORWARD DROP $ iptables -A FORWARD -d 192.168.0.4 -p icmp -m limit --limit 6/mn --limit-burst 1 -j ACCEPT $ iptables -A FORWARD -s 192.168.0.4 -p icmp -m state --state ESTABLISHED -j ACCEPT Pour faire un test depuis une machine extérieure, on envoie un ping à //nile// toutes les 5 secondes... $ ping -i 5 192.168.0.4