bonsoir, après avoir lu quelques posts sur iptables, et le ‘truc et astuces pour les nuls’ j’ai donc essayé d’installer une passerelle sur mon réseau.
-> desactivation de la fonction routeur de la freebox.
-> installation d’un pc (P3 800Mhz - 500Mo SDRAM) avec trois cartes réseau entre la freebox et le switch.
-> debian etch - 2.6.18-6-686
-> cette machine fera office dans un premier temps de routeur, pare-feu, proxy (avec filtrage), apt-proxy, et NTP
-> ensuite j’y migrerai aussi les services DNS & DHCP qui sont deja installés sur une autre machine.
-> j’ai utilisé le script de fran.b pour lancer la config au démarage de la machine.
-> et j’ai donc pondu ma config pour iptables qui a l’air de marcher, mais je voulais savoir si vous n’y voyez pas un trou de sécurité ou une annerie grosse comme moi.
#
# CONFIGURATION IPTABLES POUR LE FIREWALL
#
# serveur de mail : hébergé sur le LAN (192.168.100.002) - smtp & https doivent être accessible depuis internet
# serveur web : hébergé sur le LAN (192.168.100.004) - http doit être accessible depuis internet
#
# serveur dns : hébergé sur le LAN (192.168.100.001) mais à migrer sur le firewall
# serveur dhcp : hébergé sur le LAN (192.168.100.001) mais à migrer sur le firewall
# serveur ntp : hébergé sur le firewall
# serveur proxy : hébergé sur le firewall
# serveur apt-proxy : hébergé sur le firewall
#
# eth0 : connectée sur le LAN - 192.168.100.254/24
# eth1 : connectée sur la freebox
# eth2 : pas encore en service
#
# activation de l'ip forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
# MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# par defaut tout est ferme
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# la machine locale est sure
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# anti scan
iptables -X SCANS
iptables -N SCANS
iptables -A SCANS -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL ALL -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL NONE -j DROP
iptables -A SCANS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -j SCANS
# paquets des connexions existantes autorisees
iptables -X KEEP_STATE
iptables -N KEEP_STATE
iptables -A KEEP_STATE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A KEEP_STATE -m state --state INVALID -j DROP
iptables -A INPUT -j KEEP_STATE
iptables -A OUTPUT -j KEEP_STATE
iptables -A FORWARD -j KEEP_STATE
# services hebergés par la machine locale accessibles depuis eth0
iptables -A INPUT -m state --state NEW -p tcp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -i eth0 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 3128 -i eth0 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 9999 -i eth0 -j ACCEPT
iptables -A INPUT -m state --state NEW -p icmp -i eth0 -j ACCEPT
# services hebergés par la machine locale qui communiquent vers eth0
iptables -A OUTPUT -m state --state NEW -p icmp -o eth0 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -d 192.168.100.001 -o eth0 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -d 192.168.100.001 -o eth0 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 25 -d 192.168.100.002 -o eth0 -j ACCEPT
# services hebergés par la machine locale qui communiquent vers eth1
iptables -A OUTPUT -m state --state NEW -p tcp --dport 123 -o eth1 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 443 -o eth1 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -o eth1 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 21 -o eth1 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p icmp -o eth1 -j ACCEPT
# services autorisés en forward depuis eth0 vers eth1
iptables -A FORWARD -m state --state NEW -p udp --dport 53 -i eth0 -s 192.168.100.001 -o eth1 -j ACCEPT
iptables -A FORWARD -m state --state NEW -p tcp --dport 53 -i eth0 -s 192.168.100.001 -o eth1 -j ACCEPT
iptables -A FORWARD -m state --state NEW -p tcp --dport 25 -i eth0 -s 192.168.100.002 -o eth1 -j ACCEPT
iptables -A FORWARD -m state --state NEW -p icmp -i eth0 -o eth1 -j ACCEPT
# services autorisés en forward depuis eth1 vers eth0
iptables -A FORWARD -m state --state NEW -p tcp --dport 25 -d 192.168.100.002 -i eth1 -o eth0 -j LOG --log-prefix 'forward SMTP :'
iptables -A FORWARD -m state --state NEW -p tcp --dport 25 -d 192.168.100.002 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state NEW -p tcp --dport 80 -d 192.168.100.004 -i eth1 -o eth0 -j LOG --log-prefix 'forward HTTP :'
iptables -A FORWARD -m state --state NEW -p tcp --dport 80 -d 192.168.100.004 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state NEW -p tcp --dport 443 -d 192.168.100.002 -i eth1 -o eth0 -j LOG --log-prefix 'forward HTTPS :'
iptables -A FORWARD -m state --state NEW -p tcp --dport 443 -d 192.168.100.002 -i eth1 -o eth0 -j ACCEPT
# services demandés depuis eth1 et redirigés vers des machines du LAN
iptables -t nat -A PREROUTING -p tcp --dport 25 -i eth1 -j DNAT --to-destination 192.168.100.002 # SMTP
iptables -t nat -A PREROUTING -p tcp --dport 443 -i eth1 -j DNAT --to-destination 192.168.100.002 # HTTPS
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to-destination 192.168.100.004 # HTTP
-> je ne suis pas vraiment sur de moi concernant la redirection des paquets pour les serveurs qui sont hébergés sur le LAN. dan sun premier temps j’utilise DNAT en prerouting, puis j’autorise le forward vers le LAN pour les trois ports concernés. je ne sais pas si c’est la meilleur façon de faire.
merci pour vos commentaires.