Bonjour
Mon objectif est de configurer un systeme GREEN, ORANGE et RED.
J'ai un probleme avec la DMZ qui ne veut savoir.
voici mon fichier de conf :
Init()
{
# Interface GREEN
LAN="eth0"
IP_LAN="192.168.1.0"
IP_LAN_IF="192.168.1.0"
#Interface ORANGE
DMZ="eth1"
IP_DMZ_IF="192.168.2.0"
IP_HTTP_DMZ="192.168.2.1"
#Interface RED
NET="eth2"
IP_NET="X.X.X.X"
IP_NET_IF="X.X.X.X"
IP_HTTP="X.X.X.X"
#Chemin vers iptable
IPT="/sbin/iptables"
echo "- Activation de l'IP forwarding..."
echo 1 > /proc/sys/net/ipv4/ip_forward
###echo "- Activation du ftp actif..."
###echo 1 > /proc/sys/net/ipv4/ip_nat_ftp
###echo 1 > /proc/sys/net/ipv4/ip_conntrack_ftp
echo "- Activation de la protection IP spoofing..."
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for f in /proc/sys/net/ipv4/conf/*/rp_filter
do echo 1 > $f
done
fi
}
###################################################
# Fonction Init_chaine
#
# Initialisation des chaines
# Vide chaines par defauts et personnelles
#
###################################################
Init_chaine()
{
echo "- Flush chaines defaut..."
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
#on rejette tout par defaut
echo "- Chaines pointent par defaut sur DROP..."
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
#Meme chose que precedemment avec toutes les autres tables
#A savoir nat et mangle, mais en les faisant pointer
#par defaut sur ACCEPT. Cela ne pose pas de probleme
#puisque tout est bloque au niveau de filter
$IPT -t nat -F
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
}
###################################################
# Fonction Init_protection
#
# Initialisation des diverses protections
#
###################################################
Init_protection()
{
#Ne pas archiver les fichiers de journaux avec des paquets IGMP ou PIM
echo "- Rejet connection IGMP ou PIM ..."
$IPT -A INPUT -i $NET -p igmp -j REJECT
$IPT -A INPUT -i $NET -p pim -j REJECT
#Elimination des paquets de demande de connection n ayant pas le flag SYN active
echo "- Rejet connection sans flag SYN ..."
$IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Elimination du ping
echo "- Rejet contre les tests ICMP..."
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Elimination des paquets avec aucun ou tous les flags TCP actives
echo "- Rejet des tests de ports furtifs"
$IPT -A FORWARD -p tcp --tcp-flag ALL ALL -j DROP
$IPT -A FORWARD -p tcp --tcp-flag ALL NONE -j DROP
$IPT -A FORWARD -p tcp --tcp-flag SYN,FIN SYN,FIN -j DROP
$IPT -A FORWARD -p tcp --tcp-flag SYN,RST SYN,RST -j DROP
$IPT -A FORWARD -p tcp --tcp-flag FIN,RST FIN,RST -j DROP
$IPT -A FORWARD -p tcp --tcp-flag ACK,FIN FIN -j DROP
$IPT -A FORWARD -p tcp --tcp-flag ACK,PSH PSH -j DROP
$IPT -A FORWARD -p tcp --tcp-flag ACK,URG URG -j DROP
$IPT -A INPUT -p tcp --tcp-flag ALL ALL -j DROP
$IPT -A INPUT -p tcp --tcp-flag ALL NONE -j DROP
$IPT -A INPUT -p tcp --tcp-flag SYN,FIN SYN,FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flag SYN,RST SYN,RST -j DROP
$IPT -A INPUT -p tcp --tcp-flag FIN,RST FIN,RST -j DROP
$IPT -A INPUT -p tcp --tcp-flag ACK,FIN FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flag ACK,PSH PSH -j DROP
$IPT -A INPUT -p tcp --tcp-flag ACK,URG URG -j DROP
# Protection syn-flood
echo "- Protection syn-flood..."
$IPT -A FORWARD -p tcp --syn -m limit --limit 5/m -j ACCEPT
$IPT -A INPUT -p tcp --syn -m limit --limit 5/m -j ACCEPT
echo "- Protection contre le multicast..."
$IPT -A FORWARD -i $LAN ! -s $IP_LAN -j DROP
$IPT -A FORWARD -i $DMZ ! -s $IP_HTTP_DMZ -j DROP
echo "- Protection contre le broadcast invalid..."
$IPT -A INPUT -i $LAN -d 0.0.0.0 -j DROP
# Protection contre les IPs sources non assignées par IANA ou IPs privées.
echo "- Rejet des IPs sources non assignées par IANA ou IPs privées..."
#Limitation du spoofing
$IPT -A SRC -s 10.0.0.0/8 -i $NET -j DROP # class A
$IPT -A SRC -s 172.16.0.0/12 -i $NET -j DROP # class B reserved
$IPT -A SRC -s 192.168.0.0/16 -i $NET -j DROP # class C reserved
$IPT -A SRC -s 224.0.0.0/4 -i $NET -j DROP # class D multicast
$IPT -A SRC -s 240.0.0.0/4 -i $NET -j DROP # class E
}
###################################################
# Fonction Gestion_3_interfaces
#
# Gestion des trois cartes d'interfaces de firewall
# Masquage adresses en sotie interface NET
# Accepte tout ce qui entre, sort ou est forwarde
# si une connection est deja etablie
# Rejete toutes les connections invalides
#
###################################################
Gestion_3_interfaces()
{
# Translation d'adresse de tout ce qui sort par le net
echo "- Translation d'adresse LAN..."
$IPT -t nat -A POSTROUTING -o $NET -j MASQUERADE
###Translation d'adresse de tout ce qui sort par le net et par adresse
###$IPT -t nat -A POSTROUTING -s $IP_NET -o $NET -j MASQUERADE
echo "- Accord entree, sortie et forward 3 interfaces si deja etablie..."
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "- Rejet entree, sortie et forward 3 interfaces si invalide..."
$IPT -A INPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A FORWARD -p ALL -m state --state INVALID -j DROP
}
###################################################
# Fonction Gestion_machine_locale
#
# Gestion des processus locaux et communication
# des machines locales
#
###################################################
Gestion_machine_locale()
{
echo "- Accord processus locaux..."
$IPT -A INPUT -i lo -p all -j ACCEPT
$IPT -A OUTPUT -o lo -p all -j ACCEPT
}
###################################################
# Fonction Gestion_regles_lan_net
#
# Gestion des liaisons lan-net
# Autoriser les connexions http(80), https(443),
# ssh(22), ftp(20, 21)
#
###################################################
Gestion_regles_lan_net()
{
###echo "- Accord LAN->NET toutes liaisons..."
###$IPT -A FORWARD -i $LAN -o $NET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
###$IPT -A FORWARD -i $NET -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# A Activer si Gestion _3_interfaces n'est pas utilise
###echo "- Accord LAN->NET toutes liaisons etablies..."
###$IPT -A FORWARD -i $NET -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "- Accord LAN->NET ftp..."
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "- Accord LAN->NET ssh..."
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "- Accord LAN->NET http..."
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport http -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "- Accord LAN->NET https microsoft..."
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "- Accord LAN->NET https..."
$IPT -A FORWARD -i $LAN -o $NET -p tcp --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
}
###################################################
# Fonction Gestion_regles_lan_firewall
#
# Gestion des liaisons lan-firewall
#
###################################################
Gestion_regles_lan_firewall()
{
echo "- Accord LAN->FIREWALL toutes liaisons..."
$IPT -A INPUT -i $LAN -p ALL -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o $LAN -p ALL -m state --state ESTABLISHED -j ACCEPT
}
###################################################
# Fonction Gestion_regles_total_dmz
#
# Gestion total de la DMZ
#
###################################################
Gestion_regles_total_dmz()
{
echo "- Creation chaines personnelles DMZ..."
$IPT -N LAN_DMZ
$IPT -N NET_DMZ
$IPT -N DMZ_LAN
$IPT -N DMZ_FIR
$IPT -N DMZ_NET
echo "- Flush chaines personnelles DMZ..."
$IPT -F LAN_DMZ
$IPT -F NET_DMZ
$IPT -F DMZ_LAN
$IPT -F DMZ_FIR
$IPT -F DMZ_NET
$IPT -A INPUT -i $DMZ -j DMZ_FIR
$IPT -A OUTPUT -o $DMZ -j DMZ_FIR
$IPT -A FORWARD -i $LAN -o $DMZ -j LAN_DMZ
$IPT -A FORWARD -i $NET -o $DMZ -j NET_DMZ
$IPT -A FORWARD -i $DMZ -o $LAN -j DMZ_LAN
$IPT -A FORWARD -i $DMZ -o $NET -j DMZ_NET
echo "- Accord DMZ->FIREWALL toutes liaisons..."
$IPT -A DMZ_FIR -p ALL -j ACCEPT
echo "- Redirection requetes du net du port 80 sur la DMZ..."
$IPT -t nat -A PREROUTING -j DNAT -i $NET -p tcp --dport 80 --to-destination $IP_DMZ_IF
echo "- Accord NET->DMZ toutes liaisons..."
###$IPT -A NET_DMZ -p tcp -d 192.168.2.1 --dport ftp -j ACCEPT
$IPT -A NET_DMZ -p all -j ACCEPT
echo "- Accord DMZ->NET toutes liaisons..."
###$IPT -A DMZ_NET -p tcp -s 192.168.2.1 --dport ftp -j ACCEPT
$IPT -A DMZ_NET -p all -j ACCEPT
echo "- Accord LAN->DMZ toutes liaisons..."
###$IPT -A LAN_DMZ -p tcp -d 192.168.2.1 --dport http -j ACCEPT
$IPT -A LAN_DMZ -p all -j ACCEPT
echo "- Accord DMZ->LAN toutes liaisons..."
###$IPT -A DMZ_NET -p tcp -s 192.168.2.1 --dport http -j ACCEPT
$IPT -A DMZ_LAN -p all -j ACCEPT
}
###################################################
# Fonction Arret
#
# Arret du firewall
#
###################################################
Arret()
{
echo "- Flush chaines defaut..."
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
echo "- Flush chaines personnelles..."
$IPT -F SRC
echo "- Chaines pointent par defaut sur ACCEPT..."
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
#Meme chose que precedemment avec toutes les autres tables
#A savoir nat et mangle.
$IPT -t nat -F
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
}
###################################################
#
# Debut du programme START/STOP
#
###################################################
case "$1" in
start)
#Execute au demarrage du firewall
Init
Init_chaine
Init_protection
Gestion_3_interfaces
Gestion_machine_locale
Gestion_regles_lan_net
Gestion_regles_lan_firewall
Gestion_regles_total_dmz
echo "- Rejet de tout le reste..."
$IPT -A FORWARD -j DROP
$IPT -A INPUT -j DROP
$IPT -A OUTPUT -j DROP
;;
stop)
#Execute a l'arret du firewall
Arret
;;
restart)
#Execute sinon
Arret
;;
esac
################################
Il s'agit de la version 1.4.0b3 de ipcop.
La connexion internet est effectue par IP statique
De meme, lorsque je demande un redemmarage depuis l'interface web, la fonction arret n'est pas applique
D'avance merci