Rizzla_TSA a écrit :
euh non plus ...
je te raconte pas le bordel si je change l adresse du routeur ...
|
Voici un fichier de configuration d'iptable à adapter a ta config :
#!/bin/sh
# script /etc/firewall.sh
#
### Anti spoofing :
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
#
### Protection contre les mauvais messages d'erreur :
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#
### Bloquer le ping (icmp) :
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#
# Loger les paquets spoofés et redirigés :
for f in /proc/sys/net/ipv4/conf/*/log_martians;do
echo 1 > $f
done
#
### On vide les chaînes :
iptables -F
#
### On supprimes les autres chaînes utilisateurs :
iptables -X
#
### On met par défaut toutes les chaînes à DROP :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
### On vide la table "nat" :
iptables -t nat -F
iptables -t nat -X
#
### On met la table "nat" sur ACCEPT par défaut :
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#
### On vide la table "mangle" :
iptables -t filter -F
iptables -t mangle -F
iptables -t mangle -X
#
### Creation des chaines de LOG :
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
#
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
#
### On met la table "mangle" sur ACCEPT par défaut :
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
#
### On rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté :
iptables -A FORWARD -m state --state ESTABLISHED -p tcp --syn -j LOG_DROP
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
#
### Protection contre le syn-flood :
iptables -A FORWARD -s 0.0.0.0/0 -p TCP --tcp-flags ALL SYN -m limit --limit 1/s -j ACCEPT
#
### Protection contre le test de port furtif :
iptables -A FORWARD -p TCP --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#
### Protection contre le ping de la mort :
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
### On autorise le loopback de la machine firewall :
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#
### On autorise tout le réseau :
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
#
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
#
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A OUTPUT -o eth2 -j ACCEPT
#
iptables -A INPUT -i eth3 -j ACCEPT
iptables -A OUTPUT -o eth3 -j ACCEPT
#
iptables -A INPUT -i eth4 -j ACCEPT
iptables -A OUTPUT -o eth4 -j ACCEPT
#
iptables -A INPUT -i eth5 -j ACCEPT
iptables -A OUTPUT -o eth5 -j ACCEPT
#
### On fait du NAT (translation d'adresses) :
iptables -t nat -A POSTROUTING -s 192.168.1.2/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.2.2/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.3.2/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.4.2/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.5.2/255.255.255.0 -o eth0 -j MASQUERADE
#
### Autoriser tout le réseau vers le Net :
iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth4 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth5 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#
### Autoriser tout le Net à répondre aux requêttes du réseau :
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth3 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth4 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth5 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
### On autorise le DNS local :
iptables -A INPUT -i eth1 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
#
iptables -A INPUT -i eth1 -p tcp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
#
### On autorise le WEB local :
iptables -A INPUT -i eth5 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o eth5 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth5 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o eth5 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
#
### On autorise SSH
#iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -o eth0 -s 192.168.0.2/255.255.255.0 -d 0.0.0.0/0 -p tcp --tcp-flags ALL SYN --sport 1024: --dport ssh -j ACCEPT
#
### On autorise le FTP local" :
iptables -A INPUT -i eth2 -p tcp --sport 21 --dport 1024: -m state --state NEW,RELATED,ESTABLISHED --syn -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 1024: --dport 21 -m state --state ! INVALID ! --syn -j ACCEPT
iptables -A FORWARD -i eth2 -p tcp --sport 21 --dport 1024: -m state --state NEW,RELATED,ESTABLISHED --syn -j ACCEPT
iptables -A FORWARD -o eth2 -p tcp --sport 1024: --dport 21 -m state --state ! INVALID ! --syn -j ACCEPT
#
### On autorise le FTP-DATA local" :
iptables -A INPUT -i eth2 -p tcp --sport 20 --dport 1024: -m state --state NEW,RELATED,ESTABLISHED --syn -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 1024: --dport 20 -m state --state ! INVALID ! --syn -j ACCEPT
iptables -A FORWARD -i eth2 -p tcp --sport 20 --dport 1024: -m state --state NEW,RELATED,ESTABLISHED --syn -j ACCEPT
iptables -A FORWARD -o eth2 -p tcp --sport 1024: --dport 20 -m state --state ! INVALID ! --syn -j ACCEPT
#
### On autorise le SMTP local :
iptables -A INPUT -i eth3 -p tcp --tcp-flags ALL SYN --sport 25 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 25 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i eth3 -p tcp --tcp-flags ALL SYN --sport 25 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 25 -m state --state ! INVALID -j ACCEPT
#
### On autorise le POP3 local :
iptables -A INPUT -i eth3 -p tcp --tcp-flags ALL SYN --sport 110 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 110 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i eth3 -p tcp --tcp-flags ALL SYN --sport 110 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -p tcp --tcp-flags ALL SYN --sport 1024: --dport 110 -m state --state ! INVALID -j ACCEPT
#
### On rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté :
iptables -A INPUT -m state --state ESTABLISHED -p tcp --syn -j DROP # --syn = --tcp-flags ACK,RST,SYN: match TCP dont flag SYN est 1 et flags ACK, RST 0
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # laisse passer les autres connections dejas etablies
#
### On rejete tout ce qui sort du poste firewall qui n'est pas deja connecté :
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --syn -j LOG_DROP
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
#
### Toutes les règles qui n'ont pas passé les règles précedentes sont loguées dans syslog puis DROP
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
---------------
Linuxois1 ex- Linuxois pour perte de mot de passe et @ adresse mail n'existant plus.