Bonjour à tous,
Ma question est très simple. J'utilise avec une très grande joie IPTABLES qui, me semble-t-il, est très efficace. Le problème c'est que j'aimerais savoir ce qu'il bloque, rejette, ... Comment puis-je faire ?
Merci à tous de vos réponses.
Cordialement.
Guilhem.
Oui oui... Merci ! 🙂
Seulement, FEyes n'arrive pas à lire les logs... J'ai installé FBuilder mais je ne sais pas du tout créer de règles de firewall. Y a-t-il moyen de récupérer celles enregistrées par défaut lors de l'installation de FC4 ?
iptables -A INPUT -m state --state INVALID -m limit --limit 3/s -j LOG --log-prefix "invalid input"

cette ligne LOG les connexions invalides sur la chaines INPUT au niveau de mon serveur.

iptables -A FORWARD -m state --state INVALID -m limit --limit 3/s -j LOG --log-prefix "invalid forward"

Celle-ci fait la mm chose au niveau de la chaine FORWARD...


Il te suffit d'adapter ces lignes en fonction de tes besoins et en faisant un man iptables.

Par contre, ils ne sont pas entrés dans un fichier mais rediriger sur une console dédiée en modifiant le fichier /etc/syslog.conf.
J'y ajoute à la fin la ligne suivante :
*.* /dev/ttyX
X étant le numéro du terminal ou tu souhaites diriger tes logs.
Voilà, en espérant t'avoir aider ...
pour le syslog, le *.* se trouve à gauche et le /dev/ttyX à droite lors de l'édition du fichier 😉
Ok, un grand merci pour ta réponse mais je ne sais où se trouve mon fichier de configuration de iptables...
J'utilise le pare-feu par défaut de FC4 ainsi que SELinux...
Y'a pas vraiment conf pour iptables. Tu mets justes de regles en memoire, et tu les stocks dans un fichier pas toujours editable pour pouvoir les recharger..

Comment as-tu configure ton firewall ?
Bonjour,
Je viens d'écrire un script 'iptables' que j'ai placé dans /etc/rc.d/init.d/.
Ce script est le suivant:
. /etc/rc.d/init.d/functions

# Suppression de toutes les chaines pre-definies de la table FILTER
iptables -t filter -F

# Suppression de toutes les chaines utilisateur de la table FILTER
iptables -t filter -X

# Par defaut, toute les paquets sont detruits
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

# Autorise l'interface loopback a dialoguer avec elle-meme
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

#Connexion a internet (dns, http, ...). Les reponses ne sont envoyees
#seulement lorsque je les demande
iptables -t filter -A OUTPUT -o ppp0 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A INPUT -i ppp0 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
Que pensez-vous de ce script ? Permet-il de bien sécurisé l'ordinateur ?

Que dois-je rajouter pour loguer tout ce qui est refusé ?

Comment appliquer ce script après une modification sans avoir à redémarrer l'ordinateur ?

Merci à tous de vos réponses !

Cordialement.

Guilhem.

[edit] Je ne vois pas très bien la différence entre /etc/init.d/rc.d/iptables et /etc/sysconfig/iptables...
ton script me semble curieux : il effectue des logs en mm temps qu'il filtre. Peut-être que sa marche mais ce n'est pas forcément clair.
Question sécurité, tu autorises tout à rentrer et tout à sortir donc moyen ...
En fichier attaché se trouve un script commenté qui fonctionne très bien chez moi. Tout commentaire est bien sûr le bienvenu...
En fichier attaché se trouve un script commenté qui fonctionne très bien chez moi. Tout commentaire est bien sûr le bienvenu...
Le fichier joint ne fonctionne pas :

#!/bin/bash
# chkconfig: 2345 08 92
#
# description: Automates a packet filtering firewall with iptables.
# config:
# ETH0 = internet = 10.0.0.1 = web
# ETH1 = lan = 192.168.0.1
start() {
echo "Loading fw: "
# Chargement des modules souhaites:
#----------------------------------------------------------------------
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
echo "1"

# Effacement des regles sur les 3 tables ::
#----------------------------------------------------------------------
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Effacement des chaines definies : :
#----------------------------------------------------------------------
iptables -X

# Tout rejeter par defaut :
#----------------------------------------------------------------------
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Chaines definies pour trier les paquets.
#----------------------------------------------------------------------
iptables -N lan-web
iptables -N lan-fw
iptables -N web-fw
iptables -N web-lan
iptables -N icmp-acc
echo "2"

# La loopback du firewall peut emettre dans touss
# les sens
#----------------------------------------------------------------------
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Connections invalides refusees
#----------------------------------------------------------------------
iptables -A INPUT -m state --state INVALID -m limit --limit 3/s -j LOG --log-prefix "invalid input"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -m limit --limit 3/s -j LOG --log-prefix "invalid forward"
iptables -A FORWARD -m state --state INVALID -j DROP
echo "3"

# Les connections etablies ou assimilables sont
# acceptees en entréee comme en forward
#----------------------------------------------------------------------
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "4"

# On trie les paquets suivants les interfaces
#----------------------------------------------------------------------
iptables -A INPUT -i eth1 -j lan-fw
iptables -A INPUT -i eth0 -j web-fw
iptables -A INPUT -j DROP
echo "5"

# On trie les paquets en fonction de leur cheminement
# dans nos chaines
#----------------------------------------------------------------------
iptables -A FORWARD -i eth1 -o eth0 -j lan-web
iptables -A FORWARD -i eth0 -o eth1 -j web-lan
echo "6"

# Le Firewall peut emettre comme il veut
#----------------------------------------------------------------------
iptables -A OUTPUT -j ACCEPT

# Definition de la chaaine responsable de la gestion des
# paquets icmp
#----------------------------------------------------------------------
iptables -A icmp-acc -p ICMP --icmp-type destination-unreachable -j ACCEPT
iptables -A icmp-acc -p ICMP --icmp-type source-quench -j ACCEPT
iptables -A icmp-acc -p ICMP --icmp-type time-exceeded -j ACCEPT
iptables -A icmp-acc -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A icmp-acc -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A icmp-acc -j DROP
echo "7"

# Flitrage du LAN vers le web
#----------------------------------------------------------------------
#iptables -A lan-web -p TCP --dport http -j ACCEPT
#iptables -A lan-web -p TCP --dport ssh -j ACCEPT
#iptables -A lan-web -p TCP --dport domain -j ACCEPT
#iptables -A lan-web -p UDP --dport domain -j ACCEPT
#ptables -A lan-web -p TCP --dport https -j ACCEPT
#ptables -A lan-web -p TCP --dport ftp -j ACCEPT
#ptables -A lan-web -p TCP --dport smtp -j ACCEPT
#ptables -A lan-web -p ICMP -j icmp-acc
iptables -A lan-web -j ACCEPT
echo "8"

#Filtrage du web vers le LAN
#----------------------------------------------------------------------
#iptables -A web-lan -p TCP --dport 10382 -j ACCEPT
#iptables -A web-lan -p UDP --dport 11181 -j ACCEPT
iptables -A web-lan -j DROP
echo "9"

# Regles pour la connexion sur le Firewall
#----------------------------------------------------------------------
iptables -A web-fw -p icmp -j DROP
iptables -A web-fw -p TCP --dport smtp -j ACCEPT
iptables -A web-fw -p TCP --dport ssh -j ACCEPT
iptables -A web-fw -p TCP --dport ftp -j ACCEPT
#iptables -A web-fw -p TCP --dport http -j ACCEPT
#iptables -A web-fw -p TCP --dport https -j ACCEPT
iptables -A web-fw -p TCP --dport 143 -j ACCEPT
iptables -A web-fw -j DROP
iptables -A lan-fw -p TCP --dport 143 -j ACCEPT
iptables -A lan-fw -p TCP --dport smtp -j ACCEPT
iptables -A lan-fw -p TCP --dport http -j ACCEPT
iptables -A lan-fw -p TCP --dport https -j ACCEPT
iptables -A lan-fw -p TCP --dport ssh -j ACCEPT
iptables -A lan-fw -p TCP --dport 4080 -j ACCEPT
iptables -A lan-fw -p TCP --dport 3306 -j ACCEPT
iptables -A lan-fw -p icmp --icmp-type ping -j ACCEPT
iptables -A lan-fw -p icmp --icmp-type pong -j ACCEPT
iptables -A lan-fw -p TCP --dport ftp -j ACCEPT
iptables -A lan-fw -j icmp-acc
iptables -A lan-fw -j DROP
echo "10"

# Activation du routagee :
#----------------------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Routage Active"

# Regles de nat en entree et en sortiee
#----------------------------------------------------------------------
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -o eth0 -j MASQUERADE
echo "11"

}

stop() {
iptables -t nat -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING

iptables -F
iptables -X

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

rmmod ipt_LOG ipt_state ipt_REJECT iptable_mangle ip_nat_ftp ip_conntrack_ftp ipt_MASQUERADE ipt_limit iptable_filter iptable_nat ip_tables ip_conntrack
}

case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: fw {start|stop}"
exit 1
esac

exit 0
Euh... Je ne logue pas !
Et puis je "DROP" par défaut tout ce qui n'est pas accepté.
Tu n'es pas d'accord ?
Effectivement, tu ne loggues pas, dsl.

Par contre, je ne comprends pas l'intérêt de la ligne suivante :
iptables -t filter -A OUTPUT -o ppp0 -p all -m state --state ! INVALID -j ACCEPT
pour moi, elle est équivalente à :
iptables -t filter -A OUTPUT -o ppp0 -p all -j ACCEPT

car il ne me semble pas que tu es précisé auparavant quelles connexions devaient être considérées comme invalides ...
pour moi, elle est équivalente à :
iptables -t filter -A OUTPUT -o ppp0 -p all -j ACCEPT
car il ne me semble pas que tu es précisé auparavant quelles connexions devaient être considérées comme invalides ...
Je ne pense pas car avant c'était le INPUT...
Ici, j'accepte toutes les connexions sortantes valides...
ok d'acc ...
sinon, tu as pu affiché les logs sur la console comme je te l'avais indiqué ?
Si tu as réussi à les renvoyer dans un fichier, sa m'intéresse ...
++
Oui, ta solution marche très bien...
J'ai réussi à les logguer dans un fichier
iptables: -j LOG
dans le fichier /etc/syslog.conf :
*.* /var/log/messageFW

Et c'est tout !

Mais attention de ne pas loguer tout sinon tu peux être victime des attaques par deni de service...
Je viens d'écrire un script 'iptables' que j'ai placé dans /etc/rc.d/init.d/.
La `bonne' maniere de faire sous fedora core :
1. Configurer son firewall, charger toutes les regles que tu juges necessaires
2. faire "service iptables save", qui mettra les regles dans /etc/sysconfig/iptables
3. Si tu veux charger les modules ip_conntrack*/ip_nat*, edite le etc/sysconfig/iptables-config
4. Faire "chkconfig iptables on". Ces regles seront ensuite rechargees a chaque invoquation du service iptables (donc a chaque boot..).

La seule chose qui manque c'est une interface pour editer les regles en cours facilement.