bonjour ,
je suis entrain de monter un firewall pour mon BTS . mais je suis novice en la matiere . je vous met deja le debut de mon script :
#!/bin/sh
#modules a charger
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#initialisation de la table filter , flush des regles existantes et suppression des chaines eventuellement crées
iptables -F
iptables -X
#initialisation de la table nat ,flush des regles existantes et suppression des chaines eventuellement crées
iptables -t nat -F
iptables -t nat -X
#regles par defaut, on refuse tout ce qui sort (en local) , en entrée et en traversée du firewall; on rajoutera les regles desirées apres, on commence par tout interdire puis autoriser
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
#iptables -t nat -P PREROUTING DROP
iptables -t nat -P POSTROUTING DROP
#iptables -t nat -P OUTPUT DROP
#configuration de la passerelle pour le NAT
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 10.22.202.50
#on active le forwarding ipv4, par defaut normalement le noyau est configurer pour autoriser le routage
echo 1 > /proc/sys/net/ipv4/ip_forward
#communication des processus locaux par l'interface locale, on suppose que la machine est sure
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Les connexions deja etablie sont acceptées
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
#icmp , les interfaces des 2 réseaux locaux ping le firewall
iptables -A INPUT -p icmp -j ACCEPT
#icmp , les 2 réseaux locaux se ping
#iptables -A FORWARD -o eth1 -p icmp -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -p icmp -j ACCEPT
#icmp , le firewall ping eth1 , mais l'icmp est refusé en direction de eth0
iptables -A OUTPUT -o eth1 -p icmp -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp -j REJECT --reject-with icmp-host-prohibited
#ouverture des ports DNS
iptables -A FORWARD -o eth2 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -o eth2 -p tcp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o eth2 -p udp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --destination-port 53 -j ACCEPT
#on autorise les requetes HTTP sur les interfaces
iptables -A FORWARD -o eth2 -p tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --destination-port 80 -j ACCEPT
#on va logger ce qui ne passe pas
iptables -N logNdrop
iptables -A logNdrop -j LOG --log-prefix "! iptables DROP :"
iptables -A logNdrop -j DROP
#tout ce qui est DROP , apparait dans les logs visibles dans /var/log/messages
iptables -A FORWARD -j logNdrop >> /var/log/messages
iptables -A INPUT -j logNdrop >> /var/log/messages
iptables -A OUPUT -j logNdrop >> /var/log/messages
alors deja pour le nat vous pouvez voir que j'ai une regle (au debut du script) . elle marche . mais le pb c'est que j'ai du commenter les regles par defaut du nat pour PREROUTING et OUTPUT qui sont drop car sinon je ne sort plus sur internet .
POSTROUTING est drop par defaut mais avec la regle la translation s'effectue bien . je ne sais pas quoi faire pour que PREROUTING et OUTPUT fonctionne avec comme police par defaut "drop" . s'il faut mettre une regle pouvez-vous m'eclairer ?
sinon j'ai 2 reseaux locaux eth0 et eth1 separé par le routeur et une carte qui sort sur internet eth2 .
sinon si je met un proxy (squid) ai-je toujours besoin du nat ? j'ai lu qu'avec un proxy le nat etait inutlil ..
merci de vos reponse !
Configuration: Linux Debian
Mozilla 1.7.8