Dear all, Please find a new release of my iptables script. I thank you sincerely all the guys who answered my uqestion last times, I have now two others: where do I put this rules: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
And why can't I reach the mail server (internal ip: 10.0.0.12) from outside with this script ? this is a tcpdump of the connection (assuming 1.2.3.4 is the official ip address of the mail server) [root@gate /usr]# tcpdump -i eth1:1 | grep smtp tcpdump: listening on eth1:1 20:21:06.470000 dyn-212-129-44-75.ppp.tiscali.fr.10666 > 1.2.3.4.smtp: S 826430586:826430586(0) win 16384 <mss 1400,nop,nop,sackOK> (DF) 20:21:06.470000 1.2.3.4.smtp > dyn-212-129-44-75.ppp.tiscali.fr.10666: R 0:0(0) ack 826430587 win 0 (DF) 20:21:07.350000 dyn-212-129-44-75.ppp.tiscali.fr.10667 > 1.2.3.4.smtp: S 826430586:826430586(0) win 16384 <mss 1400,nop,nop,sackOK> (DF) 20:21:07.350000 1.2.3.4.smtp > dyn-212-129-44-75.ppp.tiscali.fr.10667: R 0:0(0) ack 826430587 win 0 (DF) 20:21:08.140000 dyn-212-129-44-75.ppp.tiscali.fr.10668 > 1.2.3.4.smtp: S 826430586:826430586(0) win 16384 <mss 1400,nop,nop,sackOK> (DF) 20:21:08.140000 1.2.3.4.smtp > dyn-212-129-44-75.ppp.tiscali.fr.10668: R 0:0(0) ack 826430587 win 0 (DF) # Configuration firewall # Variables ############################################################################ ### # Locale LO_IFACE="lo" # Internet NET_IFACE="eth1" IP_NET="official ip on the net" WEB_NET="another one official ip on the net" MAIL_NET="another one" NUX_NET="another one" # Intranet TRA_IFACE="eth0" IP_TRA="192.168.1.1" TRA_LAN="192.168.1.0/24" # Dmz DMZ_IFACE="eth2" IP_DMZ="10.0.0.1" DMZ_LAN="10.0.0.1/8" WEB_LAN="10.0.0.10" MAIL_LAN="10.0.0.12" NUX_LAN="10.0.0.13" # Creation des sub interface pour les machines hebergees en DMZ ############################################################################ ### #ifconfig eth1:0 $WEB_NET netmask 255.255.255.248 broadcast *bc address* ifconfig eth1:1 $MAIL_NET netmask 255.255.255.248 broadcast *bc address* #ifconfig eth1:2 $NUX_NET netmask 255.255.255.248 broadcast *bc address* # Nettoyage des tables existantes ############################################################################ ### iptables -F iptables -X iptables -t nat -F iptables -t nat -X # Permet le mode ftp passif ############################################################################ ### /sbin/insmod -s ip_conntrack_ftp /sbin/insmod -s ip_nat_ftp # Options systemes ############################################################################ ### # Permet au kernel de forwarder IP echo 1 > /proc/sys/net/ipv4/ip_forward # Bloque les echo ICMP echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Le firewall ne repond plus au ping et les traceroute ne sont plus routes echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Empeche le routage des paquets pre-routes echo 1 > /proc/sys/net/ipv4/conf/all/accept_source_route # Protege de l'ip-spoofing echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # log les paquets portant des adresses impossibles echo 1 > /proc/sys/net/ipv4/conf/$NET_IFACE/log_martians # Blocage de tous les paquets pour le temps de la configuration # (sauf loopback) ############################################################################ ### iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Creation des tables ############################################################################ ### # Table ICMP #iptables -N ICMP # Table "log et jette" #iptables -N LOGDROP # Table Intranet vers Internet iptables -N TRA_NET # Table Internet vers Intranet iptables -N NET_TRA # Table Intranet vers Dmz #iptables -N TRA_DMZ # Table Dmz vers Intranet #iptables -N DMZ_TRA # Table Internet vers Dmz iptables -N NET_DMZ # Table Dmz vers Internet iptables -N DMZ_NET # Table client SSH vers Firewall #iptables -N SSH_FW # Acces en SSH au fw a partir de l'ext ############################################################################ ### #iptables -A SSH_FW -p tcp --dport ssh -j ACCEPT #iptables -A SSH_FW -p udp --dport ssh -j ACCEPT # Regles de la table ICMP ############################################################################ ### #iptables -A ICMP -p icmp --icmp-type destination-unreachable -j ACCEPT #iptables -A ICMP -p icmp --icmp-type source-quench -j ACCEPT #iptables -A ICMP -p icmp --icmp-type time-exceed -j ACCEPT #iptables -A ICMP -p icmp --icmp-type echo-request -j ACCEPT #iptables -A ICMP -p icmp --icmp-type echo-reply -j ACCEPT #iptables -A ICMP -m limit --limit 15/minute -j LOG --log-prefix Firewall_icmp: #iptables -A ICMP -j DROP # Regles de la table LOGDROP ############################################################################ ### #iptables -A LOGDROP -m limit --limit 15/minute -j LOG --log-prefix Firewall: #iptables -A LOGDROP -j DROP # Regles de la table TRA_NET ############################################################################ ### #iptables -A TRA_NET -p icmp -j ICMP iptables -A TRA_NET -p tcp --dport smtp -j ACCEPT #smtp iptables -A TRA_NET -p tcp --dport pop3 -j ACCEPT #pop3 iptables -A TRA_NET -p tcp --dport http -j ACCEPT #http iptables -A TRA_NET -p tcp --dport https -j ACCEPT #https iptables -A TRA_NET -p tcp --dport ftp -j ACCEPT #ftp iptables -A TRA_NET -p tcp --dport ftp-data -j ACCEPT #ftp-data iptables -A TRA_NET -p tcp --dport domain -j ACCEPT #dns iptables -A TRA_NET -p udp --dport domain -j ACCEPT #dns # Regles de la table NET_TRA ############################################################################ ### # Regles "Log et drop" #iptables -A NET_TRA -p tcp --tcp-flags ALL FIN,URG,PSH -j LOGDROP #iptables -A NET_TRA -p tcp --tcp-flags ALL ALL -j LOGDROP #iptables -A NET_TRA -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOGDROP #iptables -A NET_TRA -p tcp --tcp-flags ALL NONE -j LOGDROP #iptables -A NET_TRA -p tcp --tcp-flags SYN,RST SYN,RST -j LOGDROP #iptables -A NET_TRA -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOGDROP #iptables -A NET_TRA -p icmp -j LOGDROP # Regles de la table TRA_DMZ ############################################################################ ### # Regles de la table DMZ_TRA ############################################################################ ### # Regles de la table NET_DMZ ############################################################################ ### iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport smtp -j ACCEPT #smtp iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport pop3 -j ACCEPT #pop3 iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport http -j ACCEPT #http iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport https -j ACCEPT #https iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport 8080 -j ACCEPT #8080 iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport 8082 -j ACCEPT #8082 iptables -A NET_DMZ -p tcp -d $MAIL_LAN --dport 8083 -j ACCEPT #8083 # Regles de la table DMZ_NET ############################################################################ ### # NAT ############################################################################ ### # Activation de la NAT sortante iptables -t nat -A POSTROUTING -s $TRA_LAN -o $NET_IFACE -j SNAT --to $IP_NET iptables -t nat -A POSTROUTING -s $DMZ_LAN -o $NET_IFACE -j SNAT --to $IP_NET # Activation de la NAT entrante iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport smtp -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport pop3 -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport http -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport https -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport 8080 -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport 8082 -j DNAT --to $MAIL_LAN iptables -t nat -A PREROUTING -i $NET_IFACE -p tcp -d $MAIL_NET --dport 8083 -j DNAT --to $MAIL_LAN # Sauts entre tables ############################################################################ ### # Saut vers la table SSH_FW #iptables -A INPUT -s *another ip* -d $IP_NET -i $NET_IFACE -j SSH_FW # Saut vers la table TRA_NET iptables -A FORWARD -s $TRA_LAN -i $TRA_IFACE -j TRA_NET # Saut vers la table NET_TRA iptables -A FORWARD -d $TRA_LAN -i $NET_IFACE -j NET_TRA # Saut vers la table TRA_DMZ #iptables -A FORWARD -s $TRA_LAN -i $TRA_IFACE -j TRA_DMZ # Saut vers la table DMZ_TRA #iptables -A FORWARD -s $DMZ_LAN -i $DMZ_IFACE -j DMZ_TRA # Saut vers la table NET_DMZ iptables -A FORWARD -d $DMZ_LAN -i $NET_IFACE -j NET_DMZ # Saut vers la table DMZ_NET iptables -A FORWARD -s $DMZ_LAN -i $DMZ_IFACE -j DMZ_NET # Acceptation des paquets relies iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Remove des regles bloquantes ############################################################################ ### #iptables -A FORWARD -j DROP Thanx, Francois
