Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [IPTABLES] Aide pour script Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
Vash
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 132

MessagePosté le: Lun 02 Juin 2008 - 23:21 Répondre en citantRevenir en haut

Bonjour,

j'essaie de mettre en place un firewall avec iptables

voici le schéma :


Image


eth0 : 192.168.1.0/24
eth2 : 192.168.2.0/24
eth3 : 192.168.3.0/24

L'objectif étant :
- accés au serveur WEB via HTTP a partir du réseau local et extérieur
- accès au serveur WEB via SSH a partir du réseau local
- autoriser les ping du réseau local vers la DMZ et l'extérieur

voici le script que j'ai repri :

Code:
start() {

#Preparer le systeme a router et filtrer
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe ip_conntrack
modprobe ipt_multiport

#Purger le filtre par precaution
iptables -F
iptables -X
iptables -t filter -F
iptables -t nat -F

#Appliquer les strategies par default : tout refuser
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Nous considérons que la machine elle même est sûre et que les processus locaux peuvent communiquer entre eux via l'interface locale :
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Nous considérons que notre réseau local est  également sûr
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A OUTPUT -o eth2 -j ACCEPT


#Activer la translation d'adresses (NAT) pour l'exterieur
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE


###### Creation des regles de filtrage (par ordre de priorite) ######

#1) Autoriser les echanges HTTP(S), FTP
iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -m multiport -d 192.168.1.0/24 --sport http,https,ftp -i eth0 -j ACCEPT
iptables -A FORWARD -p tcp -m multiport -s 192.168.1.0/24 --dport http,https,ftp,ftp-data -o eth0 -j ACCEPT

#Reponses HTTP venant du serveur WEB (DMZ)
iptables -A FORWARD -p tcp -d 192.168.3.1/32 --dport http -j ACCEPT
iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -s 192.168.3.1/32 --sport http -j ACCEPT

#2) Autoriser certains echanges ICMP (reponses venant de l'exterieur)
iptables -A FORWARD -p icmp -m state --state RELATED,ESTABLISHED -d 192.168.1.0/24 -i eth0 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.1.0/24 -o eth0 -j ACCEPT


#3) Autoriser les connexions SSH sur le serveur (firewall)
iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport ssh -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.2.0/24 --sport ssh -j ACCEPT

#4) Rediriger les entrees sur port 80 sur le serveur WEB (DMZ)
iptables -t nat -A PREROUTING -p tcp -i eth2 -d 172.16.1.0/24 --dport 80 -j DNAT --to-destination 192.168.3.1:80

}

stop() {

iptables -t filter -F
iptables -t nat -F

modprobe -r ipt_state
modprobe -r ipt_MASQUERADE
modprobe -r iptable_filter
modprobe -r iptable_nat
modprobe -r ip_conntrack
modprobe -r ipt_multiport
modprobe -r ip_tables

}

case "$1" in
'start')
start
;;
'stop')
stop
;;
*)

echo "usage $0 start|stop"
esac


L'accès au serveur Web s'effectue comme il faut du réseau local ou extérieur cependant je ne trouve pas les règles pour les ping et l'accès au serveur WEB via SSH

Si quelqu'un pourrais donc m'éclairer sur les lignes a rajouter, ça me serai d'une grande aide

Merci
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
Micko77666
Résident du forum
Résident du forum



Sexe: Sexe:Masculin
Messages: 354

MessagePosté le: Mar 10 Fév 2009 - 12:54 Répondre en citantRevenir en haut

Je te mais le script que j'ai réalisé :


# Configuration réseau de la machine
#RESEAU PVI

#Activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Nous vidons toutes les chaines
iptables -F

# Nous supprimons les chaines non standards
iptables -X

# Par defaut tout est ferme
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# reinitialisation table NAT
iptables -t nat -F
iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

# Translation d'adresse pour tout ce qui sort vers l'internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# La machine locale est sure
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Resolution DNS pour les machines du LAN
iptables -A FORWARD -i eth0 -o eth0 --protocol udp --source-port 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 --protocol tcp --destination-port 53 -j ACCEPT

# On permet toutes les connexions sur le LAN depuis le firewall
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# On permet toutes les connexions sur le firewall depuis le LAN
iptables -A INPUT -i eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# On accepte toutes les liaisons firewall-Internet
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# On accepte les liaisons Internet-firewall deja etablies
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# On accepte toutes les liaisons LAN-Internet
iptables -A FORWARD -i eth0 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# On accepte les liaisons Internet-LAN deja etablies
iptables -A FORWARD -i eth0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


################# PROXY ################

# on fait une redirection de port 80 vers le port 8080 ( proxy ) pour que cela soit transparent pour les utilisateurs)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

# autorise tous les paquets entrant par notre interface eth0 dont le port de destination est le 80 et utilisant du TCP comme protocol)
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT

# autorise les autres postes à configurer le proxy à distance)
iptables -A INPUT -i eth0 -p tcp --dport 10000 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 10000 -j ACCEPT
# autorise le serveur à interroger le serveur DNS afin de pouvoir, en cas de requêtes dun client, résoudre les noms de domaines demandés par le client)
iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT

# Fin du fichier


Si tu a besoin ICMP (PING) , tu a juste à reprendre les lignes

iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT

par exemple et mettre le port et le protocole ICMP et reject ou accept Smile



cordialement,Micko
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer l'e-mailMSN Messenger
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum