Regle Iptables

Voici un schéma

Après faut que cela reste simple. Si il y a pas internet il redirige le flux sur le routeur de secours.

J’aurai juste une règle c’est que le flux du port 80 passe par mon proxy.

Merci

guigui69

Pour le proxy HTTP il n’y pas de problème, le changement de route par défaut suffit car le proxy ne fait pas intervenir la fonction routeur du pare-feu : ce n’est pas une même connexion qui passe à travers le pare-feu mais deux connexions distinctes entre le client et le proxy d’une part et entre le proxy et le serveur cible d’autre part. Néanmoins il faut que la résolution DNS de la machine qui fait tourner le proxy fonctionne.

Par contre pour les connexions routées à travers le pare-feu (DNS, SMTP, POP, HTTPS…), ce n’est pas simple comme je l’ai expliqué (si c’est pas clair il faut me dire).

EDIT à mon précédent message : si on active le masquerading sur l’interface $lan du pare-feu, il faut désactiver ou bloquer l’envoi d’ICMP redirect aussi, car tous les paquets aller doivent impérativement passer par le pare-feu afin de subir la transformation NAT. Si le routeur de secours voit le premier paquet d’une connexion avec une adresse source et les suivants avec une autre, ça ne marchera pas.

Merci pour ces réponses, voici 2 regles dit moi si je part dans le bon sens

iptables -A FORWARD -p ALL -i $lan -o $lan -m state --state NEW -j ACCEPT

Cette j’autorise tout les protocoles à travers le pare feu en rentrant par le lan et en ressortant par le lan
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 172.16.0.254
Cette regle: Je modifie la source du packet avec l’adresse ip du pare feu linux pour les source venant de mon réseau 172.16.0.0/16

Le script ou je vais intégrer ces 2 règles.

#!/bin/bash
wan="eth1"
lan="eth0"

# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise à ero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################
iptables -A FORWARD -i $lan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT


#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $lan -p tcp --dport 80 -m state --state NEW -j ACCEPT


###############################################################
######################    FTP    ##############################
###############################################################
#################### Active Module ############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
####################### FW => WAN ############################
iptables -A OUTPUT -o $lan -p tcp --dport 21 -m state --state NEW -j ACCEPT
################## ftp du LAN vers WAN #######################
iptables -A FORWARD -p tcp -i $lan --sport 1024:65535 --dport 21 -o $lan -m state --state NEW -j ACCEPT

Merci

guigui69

[quote]iptables -A FORWARD -p ALL -i $lan -o $lan -m state --state NEW -j ACCEPT
Cette j’autorise tout les protocoles à travers le pare feu en rentrant par le lan et en ressortant par le lan[/quote]
Cette règle n’autorise que les paquets dans l’état NEW, pas le reste de la connexion. Je vois la règle correspondante pour ESTABLISHED,RELATED dans le nouveau script, tu pourrais mettre les trois états dans une seule et même règle. Note qu’avec ces règles le pare-feu n’impose plus de restrictions sur les communications autorisées entre le LAN et internet, il faudra mettre les éventuelles restrictions dans le routeur de secours.

La règle SNAT est correcte. Cependant il manque la désactivation de l’envoi des ICMP redirect sur l’interface $lan.

Je constate que le nouveau jeu de règles est sensiblement différent du précédent. Il n’autorise plus aucune communication directe entre le LAN et internet excepté en FTP.

Merci pour tes réponses.

voici le script:

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"

# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians


# désactivation de l'envoi des ICMP redirect
echo 0 > /proc/sys/net/ipv4/conf/*/accept_redirects

# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise àero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X


######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################
iptables -A FORWARD -i $lan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $lan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -p ALL -i $lan -o $lan -m state --state NEW -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT


### Modification de l'adresse source
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j  SNAT --to-source   172.16.0.254 

#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $lan -p tcp --dport 80 -m state --state NEW -j ACCEPT


###############################################################
######################    FTP    ##############################
###############################################################
#################### Active Module ############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
####################### FW => WAN ############################
iptables -A OUTPUT -o $lan -p tcp --dport 21 -m state --state NEW -j ACCEPT
################## ftp du LAN vers WAN #######################
iptables -A FORWARD -p tcp -i $lan --sport 1024:65535 --dport 21 -o $lan -m state --state NEW -j ACCEPT

Je comprend pas quand tu dit que je n’autorise que le FTP, en mettant la règle
iptables -A FORWARD -p ALL -i $lan -o $lan -m state --state NEW -j ACCEPT

je laisse normalement tout passer ? Qu’est que je n’ai pas compris?

Merci

guigui69

  1. Je parlais des connexions directes $lan <-> $wan et non les connexions $lan <-> $lan qui repartent vers le routeur de secours. Mais j’avais mal lu la règle pour FTP, en fait elle aussi n’autorise que le trafic $lan <-> $lan et est d’ailleurs superflue puisqu’une autre règle accepte déjà tout, y compris FTP. En fait le nouveau script n’autorise plus aucune communication directe $lan <-> $wan. Pourquoi ? Tu comptes changer de jeu de règles selon la connexion internet active ? C’est complètement inutile, tu peux traiter les deux situations avec un même jeu de règles.

  2. Il y a deux fois la règle

  1. Pourquoi faire deux règles séparées pour NEW d’une part et ESTABLISHED,RELATED d’autre part au lieu d’une seule règle avec les trois états puisqu’elles sont identiques par ailleurs ? -p all ne sert à rien à part alourdir l’écriture de la règle. C’est comme -s 0.0.0.0/0.0.0.0, –dport 0:65535

ou

  1. La commande suivante

# désactivation de l'envoi des ICMP redirect echo 0 > /proc/sys/net/ipv4/conf/*/accept_redirects
contient deux erreurs. D’une part, c’est send_redirects, pas accept_redirects. D’autre part, la redirection du shell (>) ne permet pas d’écrire dans plusieurs fichiers. En supposant que les interfaces réseau de la machine soient lo, eth0 et eth1, la commande est étendue en

ce qui est équivalent à

dont le résultat est d’écrire “0 /proc/sys/net/ipv4/conf/default/accept_redirects /proc/sys/net/ipv4/conf/eth0/accept_redirects /proc/sys/net/ipv4/conf/eth1/accept_redirects /proc/sys/net/ipv4/conf/lo/accept_redirects” dans /proc/sys/net/ipv4/conf/all/accept_redirects.
Ce n’est probablement pas ce que tu attends.
Pour désactiver l’envoi des ICMP redirect sur l’interface $lan, il faut mettre /proc/sys/net/ipv4/conf/all/send_redirects et /proc/sys/net/ipv4/conf/$lan/send_redirects à 0.

sysctl -w net.ipv4.conf.all.send_redirects=0 sysctl -w net.ipv4.conf.$lan.send_redirects=0
(j’aime bien l’écriture avec sysctl, je trouve que c’est plus lisible)

Merci pour ces informations,

c’est vrai je voulait que si la connexion internet ne repond plus cela modifie les regles.

[quote]…
C’est complètement inutile, tu peux traiter les deux situations avec un même jeu de règles.[/quote]

Comment?

Voici le script mis à jour:

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"

# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians


# désactivation de l'envoi des ICMP redirect
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/$lan/send_redirects  
# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise àero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X


######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################

iptables -A FORWARD -i $lan -o $lan -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT


### Modification de l'adresse source
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j  SNAT --to-source   172.16.0.254 

#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $lan -p tcp --dport 80 -m state --state NEW -j ACCEPT

Merci pour ton aide.

guigui69

J’avais déjà expliqué dans un message précédent comment adapter le script existant :

[quote]Pour les postes du LAN, la passerelle par défaut reste le pare-feu. Celui-ci reçoit les paquets de requête sur son interface $lan et doit les retransmettre au routeur de secours par la même interface $lan. Cela correspond à -i $lan -o $lan dans la chaîne FORWARD. Pour autoriser ces paquets, tu as plusieurs options :

  • dupliquer toutes les règles avec -i $lan -o $wan en -i $lan -o $lan (la création d’une chaîne utilisateur aiderait à réduire le nombre de règles en les factorisant) ;
  • supprimer -o wan de ces règles ;
  • ajouter une simple règle avec -i $lan -o $lan autorisant tout ;[/quote]

Tu sembles avoir choisi la dernière option, mais il n’était pas nécessaire de supprimer ou modifier les règles contenant $wan. A ce propos, je n’avais pas vu que tu avais remplacé des occurences de $wan en $lan, ce qui crée des règles en doublon.

Dernière remarque : il serait préférable de spécifier -o $lan dans la règle SNAT pour limiter cette opération aux connexions qui sortent par l’interface $lan.

Merci,

j’ai pas compris. je sais qu’il faut que je reroute les packet vers le routeur de secours. donc il faut bien que je rentre de nouvelle règle iptables ( à la place de celle actuelle) pour re router le packet.

j’aurai besoin donc d’un 2 eme script ?

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"

# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians


# désactivation de l'envoi des ICMP redirect
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/$lan/send_redirects 
# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise àero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X


######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################

iptables -A FORWARD -i $lan -o $lan -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT


### Modification de l'adresse source
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o $lan -j  SNAT --to-source   172.16.0.254

#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT

###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $lan -p tcp --dport 80 -m state --state NEW -j ACCEPT

Merci d’avance pour ton aide

guigui69

De nouvelles règles, oui. Mais à la place des règles actuelles, non. Ou alors des règles modifiées qui acceptent les paquets dans les deux situations.

Quand tu veux autoriser deux protocoles différents, tu crées deux règles qui coexistent en même temps. Tu ne remplaces pas l’une par l’autre en fonction du protocole que tu vas utiliser à un moment donné.

D’accord, oui je suis tout à fait d’accord mais la je bloque je ne vois pas.

Désolé. peux-tu m’expliquer.

je bloque

Guigui69

  1. Tu reprends ton script précédent qui allait bien pour les communications LAN <-> WAN.

  2. Tu ajoutes les commandes pour désactiver l’envoi d’ICMP redirect.

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/$lan/send_redirects
3) Tu ajoutes la règle SNAT sur l’interface $lan.

  1. Tu ajoutes la règle dans FORWARD qui autorise le trafic LAN <-> LAN. Ceci si tu ne veux rien filtrer de ce qui est rerouté vers le routeur de secours, à charge pour ce dernier de le faire.

Et voilà, c’est tout.
Pour changer de connexion de sortie, il suffira de modifier la route par défaut. Pas besoin de modifier les règles iptables.

D’accord,

Je regarde ca. :smiley:

Au niveau du filtrage je veut conserver uniquement le passage par le proxy.

guigui69

Pourrais-tu préciser ?
Forcer HTTP à passer par le proxy et autoriser tout le reste ou bloquer tout le reste ?
Dans quelle configuration : normale, secours, les deux ?

Dans la configuration de secours.

Car dans la config normale je redirige tout le flux 80 vers mon analyseur de contenue (dansguardian).

Je voudrait que cela face pareille sur le cas de la config de secours. ( au niveau du reste je débloque l’accès.)

guigui69

Dans ce cas il n’y a rien à modifier puisque :

  • les connexions HTTP sont toujours interceptées par le proxy ;
  • les autres connexions sont filtrées selon les règles en place en configuration normale et non filtrées (donc autorisées sans restriction) en configuration de secours.

voici le script:

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"
serveur1="172.16.0.19"
serveur2="172.16.0.252"
pcadmin1="172.16.0.91"
pcadmin2=$(/usr/bin/host pan-por03.panidor.org | cut -d" " -f4)

# Refuse les rénses aux broadcasts.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise à ero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

iptables -A POSTROUTING -t nat -o $wan -j MASQUERADE
######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################
iptables -A FORWARD -i $wan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $lan -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT

######################## PARTIE SERVEUR #######################
#### Autorise protocole UDP pour le dns, Serveur 1 et 2 #######
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
#### Autorise protocole TCP pour serveur 1 (pop3,smtp,dns)et 2(dns) ####
iptables -A FORWARD -p tcp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 110,25,53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
#### Autorise LAN Ã aire de l'https ####
iptables -A FORWARD -p tcp --dport 443 -i $lan -o $wan -m state --state NEW -j ACCEPT
iptables -A FORWARD -p ICMP -i $lan -o $wan -m state --state NEW -j ACCEPT
## Autorisation des pcadmin 1 et 2 en tcp udp 47 (gre)
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT

iptables -A FORWARD  -p 47  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT




#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $wan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $wan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $wan -p tcp --dport 80 -m state --state NEW -j ACCEPT


###############################################################
######################    FTP    ##############################
###############################################################
#################### Active Module ############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
####################### FW => WAN ############################
iptables -A OUTPUT -o $wan -p tcp --dport 21 -m state --state NEW -j ACCEPT
################## ftp du LAN vers WAN #######################
iptables -A FORWARD -p tcp -i $lan --sport 1024:65535 --dport 21 -o $wan -m state --state NEW -j ACCEPT

############################################################################
#########PARTIE BASCULE ROUTEUR SECOUR#####################################
# désactivation de l'envoi des ICMP redirect
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/$lan/send_redirects
### Modification de l'adresse source
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o $lan -j  SNAT --to-source   172.16.0.254
iptables -A FORWARD -i $lan -o $lan -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
###########################################################################

Voici mon script, je regarde pour le script de bascule qui test la connexion internet.

guigui69

A part la date qui n’a pas été mise à jour, ça m’a l’air bon.

Merci ,

Au départ je voulait laisser juste le redirection du 80 sur le proxy, mais je peut appliqué les autres interdictions. Je regarde ca.

guigui69

Appliquer les autres restrictions en configuration secours serait quelque peu illusoire car si un utilisateur peut changer la route par défaut de son poste il lui serait possible de les contourner en déclarant directement le routeur de secours comme passerelle par défaut. Un filtrage par le routeur de secours serait plus sûr.