[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

critique sur script



Bonjour,
 
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net.
Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
 
Merci de vos commentaire.
 
Christophe
 
###############################################################################
# REMISE à ZERO des règles de filtrage
###############################################################################
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
###############################################################################
# Logs
###############################################################################
# LOG de tout paquet DROPpé que l'on veut logué
iptables -N log_input_wan_drop
iptables -A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT WAN DROP]'
iptables -A log_input_wan_drop -j DROP
iptables -N log_output_wan_drop
iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT WAN DROP]'
iptables -A log_output_wan_drop -j DROP
iptables -N log_input_lan_drop
iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT LAN DROP]'
iptables -A log_input_lan_drop -j DROP
iptables -N log_output_lan_drop
iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT LAN DROP]'
iptables -A log_output_lan_drop -j DROP
# LOG de tout paquet ACEPTé que l'on veut logué
iptables -N log_input_wan_accept
iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT WAN ACCEPT]'
iptables -A log_input_wan_accept -j ACCEPT
iptables -N log_output_wan_accept
iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables OUTPUT WAN ACCEPT]'
iptables -A log_output_wan_accept -j ACCEPT
iptables -N log_input_lan_accept
iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT LAN ACCEPT]'
iptables -A log_input_lan_accept -j ACCEPT
iptables -N log_output_lan_accept
iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables OUTPUT LAN ACCEPT]'
iptables -A log_output_lan_accept -j ACCEPT
###############################################################################
# DEBUT des politiques par défaut
###############################################################################
# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP
# Je veux que les connexions destinées à être forwardées soient acceptées par défaut
iptables -P FORWARD ACCEPT
# Je veux que les connexions sortantes soient bloquées par défaut
iptables -P OUTPUT DROP
###############################################################################
# FIN des politiques par défaut
###############################################################################
#     INPUT
###############################################################################
# ppp0
###############################################################################
# Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée !
# Une variante de 'no-spoofing' !
iptables -A INPUT -i ppp+ -s 127.0.0.0/8  -j log_input_wan_drop # adr de Loopback
iptables -A INPUT -i ppp+ -s 10.0.0.0/8  -j log_input_wan_drop # adr Class A privée
iptables -A INPUT -i ppp+ -s 169.254.0.0/16  -j log_input_wan_drop # adr Link Local Network
iptables -A INPUT -i ppp+ -s 172.16.0.0/12  -j log_input_wan_drop # adr Class B privée
iptables -A INPUT -i ppp+ -s 192.0.2.0/24  -j log_input_wan_drop # adr TEST-NET
iptables -A INPUT -i ppp+ -s 192.168.0.0/24  -j log_input_wan_drop # adr Class C Privée
iptables -A INPUT -i ppp+ -s 224.0.0.1/4  -j log_input_wan_drop # adr Class D MultiCast
iptables -A INPUT -i ppp+ -s 240.0.0.0/4  -j log_input_wan_drop # adr Class E Réservée
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT
# eth0
###############################################################################
# J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
# general
###############################################################################
# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept
# pour le reste on supprime
iptables -A INPUT -i eth0 -j log_input_lan_drop
iptables -A INPUT -i ppp+ -j log_input_wan_drop
###############################################################################
#     OUTPUT
###############################################################################
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A OUTPUT -o lo -j ACCEPT
# ppp0
###############################################################################
# J'accepte les packets sortants pour internet :
iptables -A OUTPUT -o ppp+ -p tcp --dport 20  -m state --state ! INVALID  -j log_output_wan_accept  # ftp data
iptables -A OUTPUT -o ppp+ -p tcp --dport 21  -m state --state ! INVALID -j log_output_wan_accept  # ftp
iptables -A OUTPUT -o ppp+ -p tcp --dport 25  -m state --state ! INVALID -j log_output_wan_accept  # smtp
iptables -A OUTPUT -o ppp+ -p tcp --dport 53  -m state --state ! INVALID -j log_output_wan_accept  # DNS
iptables -A OUTPUT -o ppp+ -p tcp --dport 80  -m state --state ! INVALID -j log_output_wan_accept  # http
iptables -A OUTPUT -o ppp+ -p tcp --dport 110  -m state --state ! INVALID -j log_output_wan_accept  # pop3
iptables -A OUTPUT -o ppp+ -p tcp --dport 443  -m state --state ! INVALID -j log_output_wan_accept  # https
iptables -A OUTPUT -o ppp+ -p tcp --dport 1863  -m state --state ! INVALID -j log_output_wan_accept  # msn
iptables -A OUTPUT -o ppp+ -p tcp --dport 6667  -m state --state ! INVALID -j log_output_wan_accept  # irc
# J'accepte les packets sortants relatifs à des connexions déjà établies
# iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept
# eth0
###############################################################################
# J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A OUTPUT -o eth0 -p tcp --dport 22  -m state --state ! INVALID -j log_output_lan_accept # ssh
# general
###############################################################################
# pour le reste on supprime
iptables -A OUTPUT -o eth0 -j log_output_lan_drop
iptables -A OUTPUT -o ppp+ -j log_output_wan_drop
###############################################################################
# DEBUT des règles pour le PARTAGE DE CONNEXION
###############################################################################
# Je veux que mon système fasse office de "serveur NAT"
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# Si la connexion que vous partagez est une connexion ADSL, vous
# serez probablement confronté au fameux problème du MTU. En résumé,
# le problème vient du fait que le MTU de la liaison entre votre
# fournisseur d'accès et le serveur NAT est un petit peu inférieur au
# MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui
# sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne
# suivante et remplaçez "eth0" par le nom de l'interface connectée à
# Internet.
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+ --clamp-mss-to-pmtu

###############################################################################
# FIN des règles pour le PARTAGE DE CONNEXION
###############################################################################
# ACCES exterieur au serveur LAN
###############################################################################
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées
# à la machine dont l'IP est 192.168.0.3 sur son port 80
# (la réponse à la requête sera forwardée au client)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
###############################################################################


Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez la version beta.
Reply to: