Swisslinux.org

− The GNU/Linux crossroads in Switzerland −

 

Language

 

The Forum

You are not logged in.

#1 02 Jun 2008 19:47:04

Willow
Affranchi(e)
 
Registered: 02 Jun 2008
Posts: 2

[IPTABLES] Aide pour script

Bonjour,

je mène un petit projet dans le cadre de mes études, qui est la mise en place d'un firewall avec iptables

le petit problème est que je n'ai pas une très bonne connaissance encore en matière de filtrage c'est pourquoi je sollicite votre aide big_smile

voici le schéma :

http://img71.imageshack.us/img71/8348/dessin1mo8.png

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 :

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'acces au serveur Web s'effectu comme il faut du reseau local ou exterieur cependant je ne trouve pas les règles pour les ping et l'acces 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

Last edited by Willow (02 Jun 2008 19:59:44)

Offline

 

#2 02 Jun 2008 20:06:31

lepetitalbert
Prêcheu(r|se) du libre
 
From: campagne morgeoise
Registered: 04 May 2005
Posts: 212

Re: [IPTABLES] Aide pour script

Salut,

c'est bien expliqué.


Il n'y a que 10 sortes d'êtres humains, ceux qui comprennent le binaire et les autres.

Offline

 

#3 02 Jun 2008 21:34:26

BOFH
Admin
From: Ecublens, VD
Registered: 03 Feb 2005
Posts: 862
Website

Re: [IPTABLES] Aide pour script

Hello,

  Si c'est un projet, je ne suis pas sûr que te donner la réponse toute cuite soit d'un grand intérêt pédagogique. Surtout que le script que tu donnes contient déjà tous les éléments nécessaires.

  Tu peux cependant prendre note des points suivants:
  - c'est beaucoup plus simple de ne filtrer que les nouvelles connexions (--state new) et accepter automatiquement les paquets des connexions déja établies (--state established, related)
  - il faut activer le routage après, pas avant la mise en place des règles de filtrage. Sinon, le firewall sera vulnérable pendant l'exécution du script

Offline

 

#4 02 Jun 2008 23:06:38

Willow
Affranchi(e)
 
Registered: 02 Jun 2008
Posts: 2

Re: [IPTABLES] Aide pour script

merci a vous deux je vais maté le lien et réessayer quelques lignes demain

le problème c'est que il doit être prêt pour lundi c'est pour ça que je stresse un peu big_smile

Offline

 

#5 03 Jun 2008 08:15:01

lepetitalbert
Prêcheu(r|se) du libre
 
From: campagne morgeoise
Registered: 04 May 2005
Posts: 212

Re: [IPTABLES] Aide pour script

Salut,

si tu veux faire de l'informatique, t'as intérêt à t'habituer au stress smile

Bonne journée


Il n'y a que 10 sortes d'êtres humains, ceux qui comprennent le binaire et les autres.

Offline

 

#6 12 Apr 2010 14:11:47

ubuntu.ca
Affranchi(e)
 
Registered: 12 Apr 2010
Posts: 1

Re: [IPTABLES] Aide pour script

Bonjour !
Afin d'étendre iptables, je voulais mettre en œuvre  une nouvelle extension, et pour ce la j'ai codé 3 programmes en C ! le header.h,libipt_extension.c et ipt_extension.c. Je travaille sur un noyau de linux 2.6.31-14 (qui existe sur ubuntu 9.10) et la version d'iptables disponible est 1.4.4 ! J’ai téléchargé 1.4.0 car cette version la contient le fichier makefile pour que je puisse ajouter ma nouvelle extension ! j'ai sui les procédures de Rusty Russell et Nicola Boulianne mais en fin j'ai pas pu compiler le libipt_extension.c et ipt_extension.c (mais ca marche avec le header.h), j'ai cru que cela est a cause de gcc (car il m'indique des erreurs enfaite sont des fonctions prédéfinis pour étendre iptables comme parse,init  et les fonctions help,print, save ...etc) alors j'ai upgrade le gcc et finalement les mêmes erreurs apparaissent ! Et dans ce cas la je crois que je dois compiler le noyau 2.6.31-14 avec iptables 1.4.0rc1 entièrement avec les nouveaux modules (y compris la nouvelle extension), j’ai téléchargé le patch-o-matic mais je n’ai aucune idée si je suis sur la bonne voie pour réaliser mon travaille et si oui comment faire pour compiler noyau+iptables (des versions que je les dispose) et si non comment faire ???  Je vous remercie

Offline

 

Board footer

Powered by FluxBB