# Effacer toutes les regles dans toutes les tables. $IPT -t filter -F $IPT -t mangle -F $IPT -t nat -F
# Effacer toutes les chaines utilisateurs dans toutes les tables. $IPT -t filter -X $IPT -t mangle -X $IPT -t nat -X
# Creation des chaines de LOG $IPT -N LOG_DROP $IPT -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : ' $IPT -A LOG_DROP -j DROP
$IPT -N LOG_ACCEPT $IPT -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : ' $IPT -A LOG_ACCEPT -j ACCEPT
################################################################################ # # POlices par defaut des tables # ################################################################################
# Filter $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP
################################################################################ # # Regles de la table FILTER # ################################################################################
############## LAN #################
# Je rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté $IPT -A FORWARD $ESTABLISHED -p tcp --syn -j LOG_DROP $IPT -A FORWARD $ESTABLISHED -j ACCEPT
# Protection contre le syn-flood $IPT -A FORWARD -s $ALLNET -p TCP --tcp-flags ALL SYN -m limit --limit 1/s -j ACCEPT
# Protection contre le test de port furtif $IPT -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 $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# DNS $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $DNS_SERVERS -p udp --sport 1024: --dport domain -j ACCEPT $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $DNS_SERVERS -p tcp --tcp-flags ALL SYN --sport 1024: --dport domain -j ACCEPT
# web section $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport http -j ACCEPT $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport https -j ACCEPT
# SSH section $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport ssh -j ACCEPT
# pop3 $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport pop3 -j ACCEPT
# smtp $IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport smtp -j ACCEPT
# Je rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté $IPT -A INPUT $ESTABLISHED -p tcp --syn -j DROP # --syn = --tcp-flags ACK,RST,SYN: match TCP dont flag SYN est 1 et flags ACK, RST 0 $IPT -A INPUT $ESTABLISHED -j ACCEPT # laisse passer les autres connections dejas etablies
# Je rejete tout ce qui sort du poste firewall qui n'est pas deja connecté $IPT -A OUTPUT $ESTABLISHED -p tcp --syn -j LOG_DROP $IPT -A OUTPUT $ESTABLISHED -j ACCEPT
# DNS (firewall) $IPT -A OUTPUT $NEW -o $INET_IFACE -s $INET_IP -d $DNS_SERVERS -p udp --sport 1024: --dport domain -j ACCEPT $IPT -A OUTPUT $NEW -o $INET_IFACE -s $INET_IP -d $DNS_SERVERS -p tcp --tcp-flags ALL SYN --sport 1024: --dport domain -j ACCEPT
# port 80(http) et 443(https) $IPT -A OUTPUT -o $INET_IFACE --protocol tcp --dport https -m state --state NEW,ESTABLISHED -j ACCEPT $IPT -A OUTPUT -o $INET_IFACE --protocol tcp --dport http -m state --state NEW,ESTABLISHED -j ACCEPT
# J'accepte tout ce qui vient de ma machine loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT
################################################################################# # # Règles du firewall # #################################################################################
# Activer le FORWARDING echo 1 > /proc/sys/net/ipv4/ip_forward
######################################################################################################################### # # Toutes les règles qui n'ont pas passé les regles precedente sont loguer 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 30-01-2003 à 22:12:16
Voici mon firewall comment l'ameliorer, de plus je ne peut pas aller sur internet avec le poste firewall juste par le lan pkoi???
ipmodem 10.0.0.138
eth0 (vers modem) 10.0.0.1
eth1 (vers lan) 192.168.0.1
besoin d'autres info ????
#!/bin/bash
################################################################################
#
# Parametre reseau du kernel
#
################################################################################
# Contre 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
# pas de icmp (ping)
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
################################################################################
#
# Creation de variables d'environement
#
################################################################################
# iptables
IPT="/usr/sbin/iptables"
# interface
# interne
LAN_IFACE=eth1
LAN_IP=192.168.0.1
LAN_IP_RANGE=192.168.1.0/24
LAN_BCAST=192.168.1.255
# externe
INET_IFACE=ppp0
INET_IP=10.0.0.1
ALLNET=0.0.0.0/0
# dns wanadoo
DNS_SERVERS=193.252.19.3/32
DNS_SERVERS1=193.252.19.4/32
# state
NEW_ESTABLISHED_RELATED="-m state --state NEW,ESTABLISHED,RELATED"
NEW="-m state --state NEW"
ESTABLISHED="-m state --state ESTABLISHED"
################################################################################
#
# Initialisation d'iptables
#
################################################################################
# Effacer toutes les regles dans toutes les tables.
$IPT -t filter -F
$IPT -t mangle -F
$IPT -t nat -F
# Effacer toutes les chaines utilisateurs dans toutes les tables.
$IPT -t filter -X
$IPT -t mangle -X
$IPT -t nat -X
# Creation des chaines de LOG
$IPT -N LOG_DROP
$IPT -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
$IPT -A LOG_DROP -j DROP
$IPT -N LOG_ACCEPT
$IPT -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
$IPT -A LOG_ACCEPT -j ACCEPT
################################################################################
#
# POlices par defaut des tables
#
################################################################################
# Filter
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# Nat
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
# Mangle
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
################################################################################
#
# Regles de la table FILTER
#
################################################################################
############## LAN #################
# Je rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté
$IPT -A FORWARD $ESTABLISHED -p tcp --syn -j LOG_DROP
$IPT -A FORWARD $ESTABLISHED -j ACCEPT
# Protection contre le syn-flood
$IPT -A FORWARD -s $ALLNET -p TCP --tcp-flags ALL SYN -m limit --limit 1/s -j ACCEPT
# Protection contre le test de port furtif
$IPT -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
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# DNS
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $DNS_SERVERS -p udp --sport 1024: --dport domain -j ACCEPT
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $DNS_SERVERS -p tcp --tcp-flags ALL SYN --sport 1024: --dport domain -j ACCEPT
# web section
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport http -j ACCEPT
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport https -j ACCEPT
# SSH section
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport ssh -j ACCEPT
# pop3
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport pop3 -j ACCEPT
# smtp
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --tcp-flags ALL SYN --sport 1024: --dport smtp -j ACCEPT
# FTP Passif
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --sport 1024: --dport 21 --syn -j ACCEPT
$IPT -A FORWARD $ESTABLISHED -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --sport 1024: --dport 21 ! --syn -j ACCEPT
# FTP Actif
$IPT -A FORWARD $NEW -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --sport 21 --dport 1024: --syn -j ACCEPT
$IPT -A FORWARD $ESTABLISHED -o $INET_IFACE -s $LAN_IP_RANGE -d $ALLNET -p tcp --sport 21 --dport 1024: ! --syn -j ACCEPT
############## FIREWALL #################
# Je rejete tout ce qui entre pour le poste firewall qui n'est pas deja connecté
$IPT -A INPUT $ESTABLISHED -p tcp --syn -j DROP # --syn = --tcp-flags ACK,RST,SYN: match TCP dont flag SYN est 1 et flags ACK, RST 0
$IPT -A INPUT $ESTABLISHED -j ACCEPT # laisse passer les autres connections dejas etablies
# Je rejete tout ce qui sort du poste firewall qui n'est pas deja connecté
$IPT -A OUTPUT $ESTABLISHED -p tcp --syn -j LOG_DROP
$IPT -A OUTPUT $ESTABLISHED -j ACCEPT
# DNS (firewall)
$IPT -A OUTPUT $NEW -o $INET_IFACE -s $INET_IP -d $DNS_SERVERS -p udp --sport 1024: --dport domain -j ACCEPT
$IPT -A OUTPUT $NEW -o $INET_IFACE -s $INET_IP -d $DNS_SERVERS -p tcp --tcp-flags ALL SYN --sport 1024: --dport domain -j ACCEPT
# port 80(http) et 443(https)
$IPT -A OUTPUT -o $INET_IFACE --protocol tcp --dport https -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o $INET_IFACE --protocol tcp --dport http -m state --state NEW,ESTABLISHED -j ACCEPT
# J'accepte tout ce qui vient de ma machine loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
#################################################################################
#
# Règles du firewall
#
#################################################################################
# Masquerade
$IPT -t nat -A POSTROUTING -s $LAN_IP_RANGE -o $INET_IFACE -j MASQUERADE
# Activer le FORWARDING
echo 1 > /proc/sys/net/ipv4/ip_forward
#########################################################################################################################
#
# Toutes les règles qui n'ont pas passé les regles precedente sont loguer dans syslog puis DROP
#
#########################################################################################################################
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP