mise en place [Firewall] - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 09-04-2003 à 11:04:33
Rizzla_TSA a écrit : Voila j ai envie de monter un firewall entre mon routeur et mon reseau |
tu peux pas avoir 2 cartes rezo qui ont des ip dans le même sous-reseau sur la même machine (un moins de faire un bridge mais c'est pas le but).
prends plutot 192.168.0.XXX avec un masque 255.255.255.0 pour l'une et 192.168.1.XXX avec le même masque et roulaiz. pour le reste j'ai fais que du firewall sous win donc .
Marsh Posté le 09-04-2003 à 11:06:12
tu peux faire ca :
http://lea-linux.com/reseau/pont-f [...] troduction, c ce que j'essaye difficilement de faire
Marsh Posté le 09-04-2003 à 11:34:04
ok merci pour les reponses
Ouais je vais me renseigner sur les ponts ca me parait etre la soluce !
paske sinon pour un firewall avec le net ca pose pas de probleme par contre je peux pas changer les IP. plus de 200 postes deja adresses !
Marsh Posté le 09-04-2003 à 11:51:21
Rizzla_TSA a écrit : ok merci pour les reponses |
yep mais tu peux changer l'ip entre le firewall et le retour
Marsh Posté le 09-04-2003 à 17:56:04
euh non plus ...
je te raconte pas le bordel si je change l adresse du routeur ...
Marsh Posté le 09-04-2003 à 23:27:37
Rizzla_TSA a écrit : euh non plus ... |
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
Marsh Posté le 10-04-2003 à 09:14:03
Merci Beaucoup !
tu utilises combien de cartes reseau ???
et si je les adresses en fixe les eth0 et eth1 genre 192.168.0.248 et 249
ca ne posera pas de probleme ?
et avec ton script j ai pas besoin de faire un pont filtrant ?
en tout cas chapeau pour ton script tres propre bien commente !
Marsh Posté le 10-04-2003 à 20:39:20
Rizzla_TSA a écrit : Merci Beaucoup ! |
Merci, j'utilise 5 cartes rezo. J'ai une DMZ qui est separée du rezo local.
La reponse a ta question est non ta pas besoin de faire un pont filtrant.
Marsh Posté le 10-04-2003 à 21:19:44
linuxois1 a écrit : |
Pardon 6 cartes rezo
Marsh Posté le 10-04-2003 à 21:24:06
Je@nb a écrit : et l'antispoof |
Merci
Marsh Posté le 09-04-2003 à 10:41:03
Voila j ai envie de monter un firewall entre mon routeur et mon reseau
router+modem adsl ip 192.168.0.250
relie a la premiere carte reseau du firewall (eth1) ip 192.168.0.249
et la seconde carte reseau eth0 relie a mon reseau ip 192.168.0.248
Bon deja est ce que les ip (vu qu elles font parties du meme subnet ) ne poseront pas de probleme pour mes regles IPTABLES ?
ensuite comment dois je specifier que tout ce uqi arrive sur eth0 doit etre redirige vers eth1 puis vers le router pour sortir et inversement ce qui arrive de eth1 et qui autorise doit aller sur eth0 ?
merci d avance !
Mais surtout est ce qu avec les ip que j ai attribue c sense marcher ?
---------------
"Douter de tout ou tout croire, ce sont les deux solutions également commodes qui l'une et l'autre nous dispensent de reflechir." Henri Poincaré.