Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 07/08/2011, à 14:29

leo-25

Script iptables : avis, amélioration et optimisation possible

Bonjour à tous.

Je souhaite connaitre vos avis sur ce script iptables que j'ai créer à partir de pas mal de doc différentes trouvée sur le net. Selon vous, ce script est il efficace? Peut il être amélioré?

Voila le script en question :

#!/bin/sh
#
# Script de démarrage qui lance l'interface réseau internet,
# met en place un firewall basique et un partage de connexion
# 
interface=ath0
 
start() {
# init du la périphérique internet (ici derriere un modem ADSL ethernet, DHCP client)
 
/sbin/ifup $interface
 
# Dans cette partie, on met en place le firewall
#vidage des chaines
iptables -F
echo "vidage des chaines"
#destruction des chaines personnelles
iptables -X
echo "destruction des chaines personnelles"
 
#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

echo "mise en place de la stratégie par défault (INPUT et FORWARD = DROP et OUTPUT = ACCEPT)"
 
#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
echo "initialisation des tables NAT et MANGLE" 
 
 
# Acceptation de toutes les connexions en local (un process avec l'autre)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo "Acceptation de toutes les connexions en local"

####################
#pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/ip_filter ] ;
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo > 1 $filtre
done
fi
echo "[mise en route de l'anti-spoofing]"
#pas de synflood
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ;
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
echo "[mise en route de l'anti-synflood]"
####################

#limitation du nombre de connexion
iptables -A INPUT -p tcp --dport 5055 -m state --state NEW -m recent --name BLACKLIST --set
iptables -A INPUT -p tcp --dport 5055 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP

#Bloquage de plages IP indésirables
iptables -I FORWARD -p all -s 85.159.236.252/30 -j DROP
iptables -I FORWARD -p all -s 85.159.232.80/30 -j DROP
iptables -I FORWARD -p all -s 82.138.81.211/32 -j DROP
iptables -I FORWARD -p all -s 193.107.240.0/22 -j DROP
iptables -I FORWARD -p all -s 193.105.197.0/24 -j DROP
iptables -I FORWARD -p all -s 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.208/28 -j DROP
iptables -I FORWARD -p all -s 90.80.100.192/28 -j DROP
iptables -I FORWARD -p all -s 80.12.48.0/24 -j DROP
iptables -I FORWARD -p all -s 195.6.180.141/32 -j DROP
echo "Bloquage plages IP indésirables"


# Connection serveur SSH
iptables -A INPUT -p tcp -i $interface --dport 5055 -j ACCEPT

# PORT FORWARDING:
# attention : on ne peut malheureusement pas mettre un nom de machine en destination, il faut mettre l'adresse IP.
# exemple : on veut qu'un serveur HTTP installé sur une machine du réseau local soit visible depuis l'extérieur.
###iptables -t nat -A PREROUTING -i $interface -p tcp --dport 80 -j DNAT --to-destination 192.168.10.121:80
###iptables -A FORWARD -p tcp -i $interface --dport 80 -j ACCEPT


#création d'une nouvelle règle
iptables -N MAregle
 
#définition de la règle : accepter les nouvelles connexions ne venant pas de l'interface internet
# et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque l'ouverture
# d'une connexion reliée pour acheminer cette page vers l'ordinateur)
 
iptables -A MAregle -m state --state NEW,ESTABLISHED,RELATED,UNTRACKED -j ACCEPT
 
#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle
 
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
echo "Mise en place du partage de connextion internet"



}
 
stop() {
        echo 0 >/proc/sys/net/ipv4/ip_forward
        ifdown $interface
}
 
case "$1" in

start)
        start
    echo "firewall IPv4 démarré"
        ;;
 
stop)
        stop
    echo "firewall IPv4 stopé"
        ;;
restart)
        stop && start
    echo "firewall IPv4 redémarré"
        ;;
status)
    status
    /sbin/iptables -L
    /sbin/iptables -t nat -L
    RETVAL=?
    ;;
*)
        echo "Usage $0 {start|stop|restart}"
        exit 1
esac
 
exit 0

Merci d'avance.

Dernière modification par leo-25 (Le 22/10/2011, à 21:08)


Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#2 Le 23/08/2011, à 19:10

Ypnose

Re : Script iptables : avis, amélioration et optimisation possible

Il serait agréable que tu ajoutes un petit commentaire sur telle ou telle fonction.
Je fais souvent ça dans mes scripts et cela nous éviterais de lire les docs.
EDIT: Désolé de viens de regarder en détail, tu as déjà effectué les coms.

Dernière modification par Ypnose (Le 23/08/2011, à 19:15)

#3 Le 23/08/2011, à 19:25

leo-25

Re : Script iptables : avis, amélioration et optimisation possible

Tout d'abord merci de me répondre Ypnose.

Je pensais que les commentaires mis dans mon script seraient suffisant. A savoir que je ne suis pas un pro d'iptables. J'ai formé ce script en croisant beaucoup d'info pris sur le net. Ce script est utilisé sur un serveur ICS. l'interface eth0 est la pate internet.
Je souhaite être sur que je n'ai pas ouvert de faille de sécurité et savoir si des amélioration peuvent être mis en place.

Dernière modification par leo-25 (Le 22/10/2011, à 21:09)


Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#4 Le 20/10/2011, à 21:27

leo-25

Re : Script iptables : avis, amélioration et optimisation possible

Après approfondissement du sujet, je partage le scrip iptables que j'utilise maintenant. Si ça peut intéresser quelqu'un, servez vous

#!/bin/sh
#
# Script de démarrage qui lance l'interface réseau internet,
# met en place un firewall basique et un partage de connexion
# 
interface_WAN=eth0 # connecter à une freebox
interface_LAN=eth1 # connecter au lan
 
start() {
# init du la périphérique internet (ici derriere une freebox)
 
/sbin/ifup $interface_WAN
echo "activation de l'interface WAN"
 
# Dans cette partie, on met en place le firewall
#vidage des chaines
iptables -F
echo "vidage des chaines"
#destruction des chaines personnelles
iptables -X
echo "destruction des chaines personnelles"
 
#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

echo "mise en place de la stratégie par défault (INPUT et FORWARD = DROP et OUTPUT = DROP)"
 
#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
#permet de rediriger les requètes vers 8080 (proxy squid)
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
echo "initialisation des tables NAT et MANGLE" 
 
 
# Acceptation de toutes les connexions en local (un process avec l'autre)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo "Acceptation de toutes les connexions en local"

# === anti scan ===
iptables -N SCANS
iptables -A SCANS -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL ALL -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL NONE -j DROP
iptables -A SCANS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
####################
echo "mise en route de l'anti-scan"
#pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/ip_filter ] ;
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo > 1 $filtre
done
fi
echo "[mise en route de l'anti-spoofing]"
#pas de synflood
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ;
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
echo "[mise en route de l'anti-synflood]"
# === limite TCP, UDP, ICMP Flood ! ===
# TCP Syn Flood
iptables -A INPUT -i $interface_WAN -p tcp --syn -m limit --limit 3/s -j ACCEPT
# UDP Syn Flood
iptables -A INPUT -i $interface_WAN -p udp -m limit --limit 10/s -j ACCEPT
# Ping Flood
iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
#
echo "limite TCP, UDP, ICMP Flood !"
####################
# === Netoyage des Paquets particuliers ===
# Make sure NEW incoming tcp connections are SYN packets
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Packets with incoming fragments
iptables -A INPUT -f -j DROP
# incoming malformed XMAS packets
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Incoming malformed NULL packets
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
#limitation du nombre de connexion
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BLACKLIST --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP
echo "Netoyage des Paquets particuliers"
#Blocage de l'icmp sur le WAN du serveur
iptables -A INPUT -i $interface_WAN -p icmp -j DROP 
echo "blocage du ping (ICMP) sur l'interface WAN"
#drop des broadcast
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP

#Bloquage de plages IP indésirables
iptables -I FORWARD -p all -s 85.159.236.252/30 -j DROP
iptables -I FORWARD -p all -s 85.159.232.80/30 -j DROP
iptables -I FORWARD -p all -s 82.138.81.211/32 -j DROP
iptables -I FORWARD -p all -s 193.107.240.0/22 -j DROP
iptables -I FORWARD -p all -s 193.105.197.0/24 -j DROP
iptables -I FORWARD -p all -s 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.208/28 -j DROP
iptables -I FORWARD -p all -s 90.80.100.192/28 -j DROP
iptables -I FORWARD -p all -s 80.12.48.0/24 -j DROP
iptables -I FORWARD -p all -s 195.6.180.141/32 -j DROP
echo "Bloquage plages IP indésirables"

# =====================================================
# === TENTATIVE pour SORTIE (OUTPUT)Pour le SERVEUR ===
# =====================================================
# == On accepte la sortie de certains protocoles ==
iptables -A OUTPUT -o $interface_WAN -p UDP --dport 123 -j ACCEPT        # Port 123  (Time ntp udp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 123 -j ACCEPT        # Port 123  (Time ntp tcp)
iptables -A OUTPUT -o $interface_WAN -p UDP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport http -j ACCEPT        # Port 80   (Http)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport https -j ACCEPT        # Port 443  (Https)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 143 -j ACCEPT        # Port 143 (imap)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport pop3 -j ACCEPT        # Port 110  (Pop3)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 993 -j ACCEPT        # Port 993  (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 995 -j ACCEPT        # Port 995  (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport smtp -j ACCEPT        # Port 25   (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 587 -j ACCEPT        # Port 587   (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp-data -j ACCEPT    # Port 20   (Ftp Data)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp -j ACCEPT        # Port 21   (Ftp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5055 -j ACCEPT        # Port #5055   (Ssh)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 10000 -j ACCEPT        # Port 10000   (webmin)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 445 -j ACCEPT            # Port 445  (Samba)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 139 -j ACCEPT            # Port 139  (Samba)
#iptables -A OUTPUT -o $interface_WAN -p UDP --dport 137:138 -j ACCEPT        # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport nntp -j ACCEPT        # Port 119  (News groups)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 1863 -j ACCEPT        # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5222 -j ACCEPT        # Port 1863 (Msn Pidgin)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 11443 -j ACCEPT    #port de connection routeur cheval
# === OUTPUT générique ? ===
# On autorise les connexions deja etablies ou relatives à  une autre connexion a sortir
iptables -A OUTPUT -o $interface_WAN --match state --state ESTABLISHED,RELATED -j ACCEPT
echo "Aceptation de certain protocole en sortie pour le serveur"
#Autoriser le ping sur des IP externes 
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# ==================================================
# === TENTATIVE pour SORTIE (OUTPUT) Pour le LAN ===
# ==================================================
# == On accepte la sortie de certains protocoles ==
iptables -A OUTPUT -o $interface_LAN -p UDP --dport 123 -j ACCEPT        # Port 123  (Time ntp udp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 123 -j ACCEPT        # Port 123  (Time ntp tcp)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport http -j ACCEPT        # Port 80   (Http)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport https -j ACCEPT        # Port 443  (Https)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 143 -j ACCEPT        # Port 143 (imap)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport pop3 -j ACCEPT        # Port 110  (Pop3)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 993 -j ACCEPT        # Port 993  (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 995 -j ACCEPT        # Port 995  (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport smtp -j ACCEPT        # Port 25   (Smtp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp-data -j ACCEPT    # Port 20   (Ftp Data)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp -j ACCEPT        # Port 21   (Ftp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 5055 -j ACCEPT        # Port #5055   (Ssh)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 10000 -j ACCEPT        # Port 10000   (webmin)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 445 -j ACCEPT            # Port 445  (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 139 -j ACCEPT            # Port 139  (Samba)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport 137:138 -j ACCEPT        # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport nntp -j ACCEPT        # Port 119  (News groups)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 1863 -j ACCEPT        # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 5222 -j ACCEPT        # Port 1863 (Msn Pidgin)
# === OUTPUT générique ? ===
# On autorise les connexions deja etablies ou relatives à  une autre connexion a sortir
iptables -A OUTPUT -o $interface_LAN --match state --state ESTABLISHED,RELATED -j ACCEPT
#
echo "Aceptation de certain protocole en sortie pour le LAN"

# Connection serveur SSH
iptables -A INPUT -p tcp -i $interface_WAN --dport 22 -j ACCEPT
echo "connection SSH sur le serveur ok"
#Vlc sur serveur
iptables -A INPUT -p udp -i $interface_WAN --dport 34725:34726 -s 212.27.38.253 -j ACCEPT
echo "ouverture des ports pour vlc sur le serveur(source 212.27.38.253 uniquement)"

#redirection tv freebox vlc : a config dans Préférences => Lecture/Codecs =>Démultiplexeurs => RTP/R de v
# remplacer dans la partie "port client" le -1 par le port 34724
iptables -A INPUT -i $interface_WAN -p udp --dport 34723:34724 -s 212.27.38.253 -j ACCEPT
iptables -t nat -A PREROUTING -i $interface_WAN -p udp --dport 34723:34724 -s 212.27.38.253 -j DNAT --to-destination 192.168.168.103
echo "redirection des ports pour tv avec vlc sur pc1 sur lan"

#création d'une nouvelle règle
iptables -N MAregle
#définition de la règle : accepter les nouvelles connexions ne venant pas de l'interface internet
# et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque l'ouverture
# d'une connexion reliée pour acheminer cette page vers l'ordinateur)

iptables -A MAregle -m state --state NEW -i $interface_LAN -j ACCEPT
iptables -A MAregle -m state --state NEW,ESTABLISHED,RELATED,UNTRACKED -j ACCEPT

#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $interface_WAN -j MASQUERADE
echo "Mise en place du partage de connextion internet"

# Ecriture de la politique de log
# Ici on affiche [IPTABLES DROP] dans /var/log/message a chaque paquet rejette par iptables
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-level 1 --log-prefix '[IPTABLES DROP]:'
iptables -A LOG_DROP -j DROP
#
# On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
echo "Mise en place des log dans /var/log/messages avec préfixe [IPTABLES DROP]:"

}
 
stop() {
        echo 0 >/proc/sys/net/ipv4/ip_forward
        ifdown $interface_WAN
}
 
case "$1" in

start)
        start
    echo "firewall IPv4 démarré"
        ;;
 
stop)
        stop
    echo "firewall IPv4 stopé"
        ;;
restart)
        stop && start
    echo "firewall IPv4 redémarré"
        ;;
status)
    status
    /sbin/iptables -L
    /sbin/iptables -t nat -L
    RETVAL=?
    ;;
*)
        echo "Usage $0 {start|stop|restart|status}"
        exit 1
esac
 
exit 0

( a adapter selon vos besoin )


Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#5 Le 22/10/2011, à 21:06

leo-25

Re : Script iptables : avis, amélioration et optimisation possible

Code à ajouter pour utiliser ushare sur la freebox :

#ushare & UPNP sur la freebox
# Autoriser le serveur à écouter les messages d'annonce pour les services UPNP
iptables -t filter -A INPUT -i $interface_WAN -m state --state NEW -s $WAN -d $UPNP_Broadcast -p udp --sport 1024: --dport $SSDP_port -j ACCEPT

# Autoriser les connexions TCP UPNP depuis la Freebox HD via la Freebox ADSL
iptables -t filter -A INPUT -i $interface_WAN -m state --state NEW -s $freebox_adsl -d $UPNP_Broadcast -p udp --sport 1024: --dport $ushare_port -j ACCEPT

pour input,

et

iptables -t filter -A OUTPUT -o $interface_WAN -m state --state NEW -s $serveur -d $UPNP_Broadcast -p udp --sport 1024: --dport $SSDP_port -j ACCEPT   # broadcast UPNP pour ushare

pour l' OUTPUT

Après remaniement du scrip et ajout de variable cela donne :

#!/bin/sh

#Déclaration des interfaces :
interface_WAN=eth0   # connecter à une freebox
interface_LAN=eth1    # connecter au lan

# Variable
ushare_port=49152   # a adapter selon le port utilisé par ushare
upnp_port=5000
SSDP_port=1900
UPNP_Broadcast=239.255.255.250
freebox_adsl=192.168.0.254 
serveur=192.168.0.250
WAN=192.168.0.0/24

start() {
# init du la périphérique internet 
 
/sbin/ifup $interface_WAN
echo "activation de l'interface WAN"
 
# Dans cette partie, on met en place le firewall
#vidage des chaines
iptables -F
echo "vidage des chaines"
#destruction des chaines personnelles
iptables -X
echo "destruction des chaines personnelles"
 
#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

echo "mise en place de la stratégie par défault (INPUT et FORWARD = DROP et OUTPUT = DROP)"
 
#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
#permet de rediriger les requètes vers 8080 (proxy squid)
#iptables -t nat -A PREROUTING -i $interface_LAN -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
echo "initialisation des tables NAT et MANGLE" 
 
 
# Acceptation de toutes les connexions en local (un process avec l'autre)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo "Acceptation de toutes les connexions en local"

###############
###    INPUT    ###
###############

# === anti scan ===
iptables -N SCANS
iptables -A SCANS -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL ALL -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL NONE -j DROP
iptables -A SCANS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
####################
echo "mise en route de l'anti-scan"
#pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/ip_filter ] ;
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo > 1 $filtre
done
fi
echo "[mise en route de l'anti-spoofing]"
#pas de synflood
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ;
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
echo "[mise en route de l'anti-synflood]"
# === limite TCP, UDP, ICMP Flood ! ===
# TCP Syn Flood
iptables -A INPUT -i $interface_WAN -p tcp --syn -m limit --limit 3/s -j ACCEPT
# UDP Syn Flood
iptables -A INPUT -i $interface_WAN -p udp -m limit --limit 10/s -j ACCEPT
# Ping Flood
iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
#
echo "limite TCP, UDP, ICMP Flood !"
####################
# === Netoyage des Paquets particuliers ===
# Make sure NEW incoming tcp connections are SYN packets
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Packets with incoming fragments
iptables -A INPUT -f -j DROP
# incoming malformed XMAS packets
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Incoming malformed NULL packets
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
#limitation du nombre de connexion
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BLACKLIST --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP
echo "Netoyage des Paquets particuliers"
#Blocage de l'icmp sur le WAN du serveur
iptables -A INPUT -i $interface_WAN -p icmp -j DROP 
echo "blocage du ping (ICMP) sur l'interface WAN"
#drop des broadcast
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
# Connection serveur SSH
iptables -A INPUT -p tcp -i $interface_WAN --dport 22 -j ACCEPT
echo "connection SSH sur le serveur ok"
#redirection tv freebox de Vlc sur serveur
iptables -A INPUT -p udp -i $interface_WAN --dport 34725:34726 -s 212.27.38.253 -j ACCEPT
echo "ouverture des ports pour vlc sur le serveur(source 212.27.38.253 uniquement)"

#ushare & UPNP sur la freebox
# Autoriser le serveur à écouter les messages d'annonce pour les services UPNP
iptables -t filter -A INPUT -i $interface_WAN -m state --state NEW -s $WAN -d $UPNP_Broadcast -p udp --sport 1024: --dport $SSDP_port -j ACCEPT

# Autoriser les connexions TCP UPNP depuis la Freebox ADSL
iptables -t filter -A INPUT -i $interface_WAN -m state --state NEW -s $freebox_adsl -d $UPNP_Broadcast -p udp --sport 1024: --dport $ushare_port -j ACCEPT

###################
###    FORWARD    ###
###################

# PORT FORWARDING:
# attention : on ne peut malheureusement pas mettre un nom de machine en destination, il faut mettre l'adresse IP.
# exemple : on veut qu'un serveur HTTP installé sur une machine du réseau local soit visible depuis l'extérieur.
#iptables -t nat -A PREROUTING -i $interface_WAN -p tcp --dport 554 -j DNAT --to-destination 192.168.168.103 ACCEPT
#iptables -A FORWARD -p tcp -i $interface_WAN --dport 554 -j ACCEPT
#iptables -t nat -A PREROUTING -p udp --dport 32768:32784 -J DNAT --to-destination 192.168.168.103 ACCEPT
#iptables -A FORWARD -s 192.168.168.103 -p udp --dport 32768:32784 -J ACCEPT

#redirection tv freebox vlc : a config dans Préférences => Lecture/Codecs =>Démultiplexeurs => RTP/R de vlc
# remplacer dans la partie "port client" le -1 par le port 34724
iptables -A INPUT -i $interface_WAN -p udp --dport 34723:34724 -s 212.27.38.253 -j ACCEPT
iptables -t nat -A PREROUTING -i $interface_WAN -p udp --dport 34723:34724 -s 212.27.38.253 -j DNAT --to-destination 192.168.168.103
echo "redirection des ports pour tv avec vlc sur dell"


#Bloquage de plages IP indésirables
iptables -I FORWARD -p all -s 85.159.236.252/30 -j DROP
iptables -I FORWARD -p all -s 85.159.232.80/30 -j DROP
iptables -I FORWARD -p all -s 82.138.81.211/32 -j DROP
iptables -I FORWARD -p all -s 193.107.240.0/22 -j DROP
iptables -I FORWARD -p all -s 193.105.197.0/24 -j DROP
iptables -I FORWARD -p all -s 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.208/28 -j DROP
iptables -I FORWARD -p all -s 90.80.100.192/28 -j DROP
iptables -I FORWARD -p all -s 80.12.48.0/24 -j DROP
iptables -I FORWARD -p all -s 195.6.180.141/32 -j DROP

echo "Bloquage plages IP indésirables"

####################
###    OUTPUT    ###
####################


# ====================================================
# ===  TENTATIVE pour SORTIE (OUTPUT)Pour le SERVEUR  ===
# ====================================================
# == On accepte la sortie de certains protocoles ==
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 22 -j ACCEPT            # Port 22 (SSH)
iptables -A OUTPUT -o $interface_WAN -p UDP --dport 123 -j ACCEPT        # Port 123  (Time ntp udp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 123 -j ACCEPT        # Port 123  (Time ntp tcp)
iptables -A OUTPUT -o $interface_WAN -p UDP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport http -j ACCEPT        # Port 80   (Http)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport https -j ACCEPT        # Port 443  (Https)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 143 -j ACCEPT        # Port 143 (imap)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport pop3 -j ACCEPT        # Port 110  (Pop3)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 993 -j ACCEPT        # Port 993  (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 995 -j ACCEPT        # Port 995  (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport smtp -j ACCEPT        # Port 25   (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 587 -j ACCEPT        # Port 587   (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp-data -j ACCEPT    # Port 20   (Ftp Data)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp -j ACCEPT        # Port 21   (Ftp)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 445 -j ACCEPT            # Port 445  (Samba)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 139 -j ACCEPT            # Port 139  (Samba)
#iptables -A OUTPUT -o $interface_WAN -p UDP --dport 137:138 -j ACCEPT        # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport nntp -j ACCEPT        # Port 119  (News groups)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 1863 -j ACCEPT        # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5222 -j ACCEPT        # Port 5222 (Msn Pidgin)
iptables -t filter -A OUTPUT -o $interface_WAN -m state --state NEW -s $serveur -d $UPNP_Broadcast -p udp --sport 1024: --dport $SSDP_port -j ACCEPT   # broadcast UPNP pour ushare

# === OUTPUT générique ? ===
# On autorise les connexions deja etablies ou relatives à  une autre connexion a sortir
iptables -A OUTPUT -o $interface_WAN --match state --state ESTABLISHED,RELATED -j ACCEPT
echo "Aceptation de certain protocole en sortie pour le serveur"
#Autoriser le ping sur des IP externes 
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# ==================================================
# === TENTATIVE pour SORTIE (OUTPUT) Pour le LAN ===
# ==================================================
# == On accepte la sortie de certains protocoles ==
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 22 -j ACCEPT            # Port 22 (SSH)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport 123 -j ACCEPT        # Port 123  (Time ntp udp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 123 -j ACCEPT        # Port 123  (Time ntp tcp)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport domain -j ACCEPT        # Port 53   (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport http -j ACCEPT        # Port 80   (Http)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport https -j ACCEPT        # Port 443  (Https)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 143 -j ACCEPT        # Port 143 (imap)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport pop3 -j ACCEPT        # Port 110  (Pop3)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 993 -j ACCEPT        # Port 993  (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 995 -j ACCEPT        # Port 995  (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport smtp -j ACCEPT        # Port 25   (Smtp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp-data -j ACCEPT    # Port 20   (Ftp Data)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp -j ACCEPT        # Port 21   (Ftp)
#iptables -A OUTPUT -o $interface_LAN -p TCP --dport 10000 -j ACCEPT        # Port 10000 (webmin)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 445 -j ACCEPT            # Port 445  (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 139 -j ACCEPT            # Port 139  (Samba)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport 137:138 -j ACCEPT        # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport nntp -j ACCEPT        # Port 119  (News groups)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 1863 -j ACCEPT        # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 5222 -j ACCEPT        # Port 5222 (Msn Pidgin)
# === OUTPUT générique ? ===
# On autorise les connexions deja etablies ou relatives à  une autre connexion a sortir
iptables -A OUTPUT -o $interface_LAN --match state --state ESTABLISHED,RELATED -j ACCEPT
#
echo "Aceptation de certain protocole en sortie pour le LAN"




####################################
###    Partage de la connexion internet    ###
####################################

#création d'une nouvelle règle
iptables -N MAregle
#définition de la règle : accepter les nouvelles connexions ne venant pas de l'interface internet
# et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque l'ouverture
# d'une connexion reliée pour acheminer cette page vers l'ordinateur)

iptables -A MAregle -m state --state NEW -i $interface_LAN -j ACCEPT
iptables -A MAregle -m state --state NEW,ESTABLISHED,RELATED,UNTRACKED -j ACCEPT

#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $interface_WAN -j MASQUERADE
echo "Mise en place du partage de connextion internet"

# Ecriture de la politique de log
# Ici on affiche [IPTABLES DROP] dans /var/log/message a chaque paquet rejette par iptables
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-level 1 --log-prefix '[IPTABLES DROP]:'
iptables -A LOG_DROP -j DROP

# On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
echo "Mise en place des log dans /var/log/messages avec préfixe [IPTABLES DROP]:"

}
 
stop() {
        echo 0 >/proc/sys/net/ipv4/ip_forward
        ifdown $interface_WAN
}
 
case "$1" in

start)
        start
    echo "firewall IPv4 démarré"
        ;;
 
stop)
        stop
    echo "firewall IPv4 stopé"
        ;;
restart)
        stop && start
    echo "firewall IPv4 redémarré"
        ;;
status)
    status
    /sbin/iptables -L
    /sbin/iptables -t nat -L
    RETVAL=?
    ;;
*)
        echo "Usage $0 {start|stop|restart|status}"
        exit 1
esac
 
exit 0

Dernière modification par leo-25 (Le 22/10/2011, à 21:16)


Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#6 Le 18/12/2011, à 10:01

hulk

Re : Script iptables : avis, amélioration et optimisation possible

Voisi un scripte iptables avec fonction start stop restart et création de fichiers de log .
pratique en cas de problèmes. ya  mieux mais c'est déja un debut
Entre ### BEGIN INIT INFO .... ### END INIT INFO ce trouve les infos pour update-rc.d
il est conseiller de faire  iptables -L -n au lieu de  iptables -L  pour afficher les règle en cour car le segond fait des résolution de nom
ce qui est très long quant on utilise des plage ip.
quelques infos utils
http://memoire-grise-liberee.fr.eu.org/ … ables/FAQ/

#! /bin/sh
### BEGIN INIT INFO
# Provides:          iptables
# Required-Start:   
# Required-Stop:    
# Should-Start:      
# Should-Stop:       
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: script iptables 
### END INIT INFO

# activer au demarage.
# en root avec su ou sudo
# cp ...iptables /etc/init.d/
# chown root:root /etc/init.d/iptables
# chmod 750 /etc/init.d/iptables
# update-rc.d iptables defaults
# /etc/init.d/iptables start


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
start() { 
    ### SUPRESSION de TOUTES LES ANCIENNES TABLES (OUVRE TOUS!!) ###
    iptables -F
    iptables -X
    ### BLOC TOUS PAR DEFAULT (si aucune regle n'est definit par la suite) ###
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
    ### IP indesirables
    ## en gros elle sont sur le site du RIPE (organisme distribuent les IP ou plage IP au profesionnel)
    ## site du RIPE https://apps.db.ripe.net/search/full-text.html (ADOPI et trident media guard (tmg) sont de mot a rechercher ;)
    iptables -I INPUT  -s 85.116.217.200/29 -j DROP    # ADOPI
    iptables -I INPUT  -s 193.107.240.0/22 -j DROP     # trident media guard (tmg)
    iptables -I INPUT  -s 195.191.244.0/23 -j DROP     # trident media guard (tmg)
    iptables -I INPUT  -s 193.105.197.0/24 -j DROP     # trident media guard (tmg)

    iptables -I OUTPUT  -d 85.116.217.200/29 -j DROP   # ADOPI
    iptables -I OUTPUT  -d 193.107.240.0/22 -j DROP     # trident media guard (tmg)
    iptables -I OUTPUT  -d 195.191.244.0/23 -j DROP     # trident media guard (tmg) 
    iptables -I OUTPUT  -d 193.105.197.0/24 -j DROP     # trident media guard (tmg)

    ### ACCEPT ALL interface loopbaak ###
    iptables -A INPUT  -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    ### axepte en entrer les connection deja etablie (en gros sa permet d'axépter que les conection inicier 
    ### par sont propre PC)
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

    ### DNS indispensable pour naviguer facilement sur le web ###
    iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

    ### HTTP navigation internet non sécuriséer ###
    iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

    ### HTTPS pour le site de banque .... ###
    iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

    ### emesene,pindgin,amsn...  ####
    iptables -A OUTPUT -p tcp -m tcp --dport 1863 -j ACCEPT      
    iptables -A OUTPUT -p tcp -m tcp --dport 6891:6900 -j ACCEPT # pour transfer de fichiers , webcam
    iptables -A OUTPUT -p udp -m udp --dport 6891:6900 -j ACCEPT # pour transfer de fichiers , webcam
    ### pop thunderbird ... réceptions des message ####
    iptables -A OUTPUT -p tcp -m tcp --dport 110 -j ACCEPT

    ### smtp thunderbird ... envoi des messages ###
    iptables -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT

    ### ntpdate ( client ntp )... sincro a un serveur de temp ###
    iptables -A OUTPUT -p udp -m udp --dport 123 -j ACCEPT

    ### client-transmition
    iptables -A OUTPUT -p udp -m udp --sport 51413 -j ACCEPT
    iptables -A OUTPUT -p tcp -m tcp --sport 30000:65000 -j ACCEPT 
    ### ping ... autorise a pinger un ordinateur distent ###
    iptables -A OUTPUT -p icmp -j ACCEPT

    ### LandesEternelles
    iptables -A OUTPUT  -d 62.93.225.45 -p tcp --sport 39943 --dport 3000 -j ACCEPT
    ### SecondeLife
    iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
    iptables -A INPUT  -s 216.82.0.0/18 -p tcp --dport 1023:65000 -j ACCEPT # Secondelife
    iptables -A INPUT  -s 64.94.252.0/23 -p tcp --dport 1023:65000 -j ACCEPT # Voice
    iptables -A INPUT  -s 70.42.62.0/24 -p tcp --dport 1023:65000 -j ACCEPT # Voice
    iptables -A INPUT  -s 74.201.98.0/23 -p tcp --dport 1023:65000 -j ACCEPT # Voice

    iptables -A INPUT  -s 216.82.0.0/18 -p udp --dport 1023:65000 -j ACCEPT # Secondelife
    iptables -A INPUT  -s 64.94.252.0/23 -p udp --dport 1023:65000 -j ACCEPT # Voice
    iptables -A INPUT  -s 70.42.62.0/24 -p udp --dport 1023:65000 -j ACCEPT # Voice
    iptables -A INPUT  -s 74.201.98.0/23 -p udp --dport 1023:65000 -j ACCEPT # Voice

    iptables -A OUTPUT  -d 216.82.0.0/18 -p tcp --sport 1023:65000 -j ACCEPT # Secondelife
    iptables -A OUTPUT  -d 64.94.252.0/23 -p tcp --sport 1023:65000 -j ACCEPT # Voice
    iptables -A OUTPUT  -d 70.42.62.0/24 -p tcp --sport 1023:65000 -j ACCEPT # Voice
    iptables -A OUTPUT  -d 74.201.98.0/23  -p tcp --sport 1023:65000 -j ACCEPT # Voice

    iptables -A OUTPUT  -d 216.82.0.0/18 -p udp --sport 1023:65000 -j ACCEPT # Secondelife
    iptables -A OUTPUT  -d 64.94.252.0/23 -p udp --sport 1023:65000 -j ACCEPT # Voice
    iptables -A OUTPUT  -d 70.42.62.0/24 -p udp --sport 1023:65000 -j ACCEPT # Voice
    iptables -A OUTPUT  -d 74.201.98.0/23  -p udp --sport 1023:65000 -j ACCEPT # Voice

    ### ping ... autorise l'extèrieur a vous pinger  ###
  # iptables -A INPUT -p icmp -j ACCEPT               # enlever le # du début de ligne pour activer cette règle


    ### LOG ### Log tous ce qui qui n'est pas accepter par une règles précédente
        # prés requit :       sudo apt-get install sysklogd
        #                     echo 'kern.warning             /var/log/iptables.log' > /etc/syslog.conf                     
    iptables -A OUTPUT -j LOG --log-level 4
    iptables -A INPUT -j LOG  --log-level 4
    iptables -A FORWARD -j LOG  --log-level 4
    echo "############ <START> ##############"
    iptables -L -n  # commanter pour desactiver l'afichage des règles en cours
    echo "############ </START> ##############"
 }
stop() { 
 ### OUVRE TOUS !! ###
    iptables -F
    iptables -X
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    echo "############ <STOP> ##############"
    iptables -L -n  # commanter pour desactiver l'afichage des règles en cours
    echo "############ </STOP> ##############"
 }

case "$1" in
  start)
    start
    ;;
  stop)
       stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    N=/etc/init.d/${0##*/}
    echo "Usage: $N {start|stop|restart}" >&2
    exit 1
    ;;
esac

exit 0

Dernière modification par hulk (Le 18/12/2011, à 10:58)


Amilo A 1667G , turion64 , X700 .
debian  squeeze amd64
driver libre radeon

Hors ligne

#7 Le 18/12/2011, à 11:35

leo-25

Re : Script iptables : avis, amélioration et optimisation possible

Merci pour ta participation hulk.

Pour la partie des log, au niveau des pré-requis il faut installer le packet sysklogd, mais je n'ai pas compris la ligne :

echo 'kern.warning             /var/log/iptables.log' > /etc/syslog.conf

Peut tu m'expliquer ce que c'est?

Merci


Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#8 Le 18/12/2011, à 19:28

hulk

Re : Script iptables : avis, amélioration et optimisation possible

sudo echo 'kern.warning             /var/log/iptables.log' > /etc/syslog.conf

elle rajout la ligne "kern.warning             /var/log/iptables.log" dans /etc/syslog.conf
qui indique a syslog de rediriger les kernel warning dans /var/log/iptables.log
les infos de log iptables font partie des  kern.warning
si non par defaut tous vas dans /var/log/messages .

faut aussi relancer  syslogd pour que cela marche si non au prochain redémarrage c'est bon.

penser a rajouter --log-level 4 ( warning ) dans les règles de log iptables .
iptables -A OUTPUT -j LOG --log-level 4

Dernière modification par hulk (Le 18/12/2011, à 19:40)


Amilo A 1667G , turion64 , X700 .
debian  squeeze amd64
driver libre radeon

Hors ligne

#9 Le 22/12/2011, à 19:37

leo-25

Re : Script iptables : avis, amélioration et optimisation possible

Merci,

J'ai du l'ajouter à la main car la permission était refusée.
j'ai aussi ajouté des --log-prefix, ce qui donne :

    iptables -A OUTPUT -j LOG --log-level 4 --log-prefix '[OUTPUT DROP]:'
    iptables -A INPUT -j LOG  --log-level 4 --log-prefix '[INPUT DROP]:'
    iptables -A FORWARD -j LOG  --log-level 4 --log-prefix '[FORWARD DROP]:'
    echo "############ <START> ##############"
    iptables -L -n  # commanter pour desactiver l'afichage des règles en cours
    echo "############ </START> ##############"

Site dédié à l'exposition de tableau pyrogravé : http://ombre-et-lumiere-du-monde.fr/

Hors ligne

#10 Le 23/12/2011, à 10:37

hulk

Re : Script iptables : avis, amélioration et optimisation possible

leo-25 a écrit :

Merci,

J'ai du l'ajouter à la main car la permission était refusée.

sa arrive des foie dans ces cas la faut pas utiliser juste sudo mais sudo -s ce qui bascule en mod root le terminal:

moi@monpc:~$sudo -s
moi@monpc:/home/moi# echo 'kern.warning             /var/log/iptables.log' > /etc/syslog.conf

Amilo A 1667G , turion64 , X700 .
debian  squeeze amd64
driver libre radeon

Hors ligne

Haut de page ↑