OVH Cloud OVH Cloud

Firewall et log

14 réponses
Avatar
Gg
Bonjour,

J'essaie en vain d'avoir des logs pour installer mon firewall sous Linux
(RedHat 9)
J'utilise les iptables. J'ai trouvé un bon petit site, conseillé sur ce
newsgroup.

Pour logguer j'ai ça :

iptables -N LOG-ACCEPT
iptables -A LOG-ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG-ACCEPT -j ACCEPT

iptables -N LOG-DROP
iptables -A LOG-DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG-DROP -j DROP

Pour essayer, j'ai tout bloqué histoire de voir si ca loggue quelque chose.
Le blocage marche bien, je n'ai plus d'accès internet, mais rien dans les
logs.

Dans mon syslog.conf, j'ai ajouté : kern.* /var/log/messages, mais rien ne
concerne le firewall dans les messages.

Est-ce que j'ai oublié quelque chose?

Merci

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats

10 réponses

1 2
Avatar
cedric
A la fin du script,

iptables -A INPUT -j LOG-DROP
iptables -A OUTPUT -j LOG-DROP
iptables -A FORWARD -j LOG-DROP

Normalement tu devrais voir passer les messages.

PS : ne pas oublier de flusher les ancienes regles.


Gg wrote:

Bonjour,

J'essaie en vain d'avoir des logs pour installer mon firewall sous Linux
(RedHat 9)
J'utilise les iptables. J'ai trouvé un bon petit site, conseillé sur ce
newsgroup.

Pour logguer j'ai ça :

iptables -N LOG-ACCEPT
iptables -A LOG-ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG-ACCEPT -j ACCEPT

iptables -N LOG-DROP
iptables -A LOG-DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG-DROP -j DROP

Pour essayer, j'ai tout bloqué histoire de voir si ca loggue quelque
chose. Le blocage marche bien, je n'ai plus d'accès internet, mais rien
dans les logs.

Dans mon syslog.conf, j'ai ajouté : kern.* /var/log/messages, mais rien ne
concerne le firewall dans les messages.

Est-ce que j'ai oublié quelque chose?

Merci



Avatar
Gg
cedric wrote:

A la fin du script,

iptables -A INPUT -j LOG-DROP
iptables -A OUTPUT -j LOG-DROP
iptables -A FORWARD -j LOG-DROP

Normalement tu devrais voir passer les messages.


Ah oui exact!
Merci.

Je vois bien les messages maintenant.
Est-ce qu'il est possible de mettre seulement les messages du firewall
dans un fichier log à part?
J'ai vu qu'on pouvait diriger les messages selon leur importance
(critique, info...) dans le syslog.conf.
Quel est le niveau des messages du firewall?

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats

Avatar
cedric
Gg wrote:

Est-ce qu'il est possible de mettre seulement les messages du firewall
dans un fichier log à part?
J'ai vu qu'on pouvait diriger les messages selon leur importance
(critique, info...) dans le syslog.conf.
Quel est le niveau des messages du firewall?


Hélas, je crois bien que non (à faire vérifier par un des gourous du ng).
iptables ressort tous les messages dans la masse.
Il faut se servir des en-têtes de log et faire un petit script pour les
isoler.
Sinon, faire un tour sur http://www.gege.org/iptables/, pour une gestion
graphique du fw

Cedric

Avatar
Gg
En ce beau mardi 21 octobre 2003 à 11:26:03, cedric a tapoté :

Est-ce qu'il est possible de mettre seulement les messages du firewall
dans un fichier log à part?
J'ai vu qu'on pouvait diriger les messages selon leur importance
(critique, info...) dans le syslog.conf.
Quel est le niveau des messages du firewall?


Hélas, je crois bien que non (à faire vérifier par un des gourous du ng).
iptables ressort tous les messages dans la masse.
Il faut se servir des en-têtes de log et faire un petit script pour les
isoler.


Ah.. ok. Bon, déjà je vais me satisfaire de ça alors :-)

Sinon, faire un tour sur http://www.gege.org/iptables/, pour une gestion
graphique du fw


Une gestion des logs en fait.
C'est justement ce à quoi je pensais hier, faire un petit truc en php pour
afficher plus "lisiblement" les logs. Mais je vois que c'est déjà fait,
parfait! :-)

Merci

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats


Avatar
J. Mayer
On Tue, 21 Oct 2003 11:45:35 +0200, Gg wrote:

En ce beau mardi 21 octobre 2003 à 11:26:03, cedric a tapoté :

Est-ce qu'il est possible de mettre seulement les messages du firewall
dans un fichier log à part?
J'ai vu qu'on pouvait diriger les messages selon leur importance
(critique, info...) dans le syslog.conf.
Quel est le niveau des messages du firewall?


Hélas, je crois bien que non (à faire vérifier par un des gourous du ng).
iptables ressort tous les messages dans la masse.
Il faut se servir des en-têtes de log et faire un petit script pour les
isoler.


Ah.. ok. Bon, déjà je vais me satisfaire de ça alors :-)
man iptables:

--log-level level
Level of logging (numeric or see syslog.conf(5)).
avec syslog-ng tu peux mettre des filtres sur le contenu des
messages...



Avatar
Julien Salgado
cedric a écrit :
Gg wrote:

Est-ce qu'il est possible de mettre seulement les messages du firewall
dans un fichier log à part?
J'ai vu qu'on pouvait diriger les messages selon leur importance
(critique, info...) dans le syslog.conf.
Quel est le niveau des messages du firewall?


Hélas, je crois bien que non (à faire vérifier par un des gourous du ng).
iptables ressort tous les messages dans la masse.


Soyons précis, c'est netfilter qui loggue, ici on parle de la cible LOG,
les messages de netfilter (qui est dans le noyau) passe par le système
de log standard du noyau (c'est-à-dire klog). La « facilité » est donc
« kern » par contre la « priorité » est info (c'est moins simple à
voir) qui peut être changée avec l'option --log-level.



Donc les messages de LOG de netfilter font partis des messages
kern.info, le seul hic c'est qu'il y en a d'autre.
Il faut se servir des en-têtes de log et faire un petit script pour les
isoler.


Une solution consiste à utiliser syslog-ng avec une règle de filtrage
sur le contenu.
source s_dgram {
unix-dgram("/dev/log");
};
filter f_netfilter {
facility(kern) and level(debug) and match("log_firewall");
};
log {
source(s_dgram);
filter(f_netfilter);
destination(d_netfilter);
};
avec des logs netfilter configurés avec l'option --log-prefix pour faire
apparaître log_firewall dans les log (pour le match) :
iptables -A chaine -j LOG --log-prefix "log_firewall blablabla"

Sinon, faire un tour sur http://www.gege.org/iptables/, pour une gestion
graphique du fw


Sinon on peut aussi utiliser la cible ULOG avec le daemon ulogd, ce qui
permet d'avoir les log netfilter là où on veut sans se fatiguer (on peut
même les envoyer directement dans une base de donnée)... voir la doc de
ULOG et ulogd.

Cedric





--
Julien


Avatar
Gg
J. Mayer wrote:

man iptables:
--log-level level
Level of logging (numeric or see syslog.conf(5)).


Ah oui, je vais regarder ça.
Mais déjà par défaut, j'ai redirigé les messages kern.info dans un
fichier à part, etj'ai l'impression qu'il y a tous les logs du firewall.

avec syslog-ng tu peux mettre des filtres sur le contenu des
messages...


Je n'ai pas ce syslog-ng. On le trouve où?

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats

Avatar
Gg
Julien Salgado wrote:

Soyons précis, c'est netfilter qui loggue, ici on parle de la cible LOG,
les messages de netfilter (qui est dans le noyau) passe par le système
de log standard du noyau (c'est-à-dire klog). La « facilité » est donc
« kern » par contre la « priorité » est info (c'est moins simple à
voir) qui peut être changée avec l'option --log-level.


Oui, c'est ce que j'avais cru comprendre. Donc là c'est bon, j'ai mes
messages de firewall dans un fichier qui va bien.


Donc les messages de LOG de netfilter font partis des messages
kern.info, le seul hic c'est qu'il y en a d'autre.


Oui...


Une solution consiste à utiliser syslog-ng avec une règle de filtrage
sur le contenu.
source s_dgram {
unix-dgram("/dev/log");
};
filter f_netfilter {
facility(kern) and level(debug) and match("log_firewall");
};
log {
source(s_dgram);
filter(f_netfilter);
destination(d_netfilter);
};


Avec un d_netfilter comme ça je suppose :

destination d_netfilter {
file("/var/log/firewall.log");
};

avec des logs netfilter configurés avec l'option --log-prefix pour faire
apparaître log_firewall dans les log (pour le match) :
iptables -A chaine -j LOG --log-prefix "log_firewall blablabla"


Ok, j'ai installé syslog-ng, j'ai mis mes règles, mais comment dire à
syslog d'arrêter de faire ses logs et à syslog-ng de le faire à sa place?


--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats

Avatar
Julien Salgado
Gg a écrit :
Une solution consiste à utiliser syslog-ng avec une règle de filtrage
sur le contenu.
source s_dgram {
unix-dgram("/dev/log");
};
filter f_netfilter {
facility(kern) and level(debug) and match("log_firewall");
};
log {
source(s_dgram);
filter(f_netfilter);
destination(d_netfilter);
};


Avec un d_netfilter comme ça je suppose :

destination d_netfilter {
file("/var/log/firewall.log");
};


En effet...

avec des logs netfilter configurés avec l'option --log-prefix pour faire
apparaître log_firewall dans les log (pour le match) :
iptables -A chaine -j LOG --log-prefix "log_firewall blablabla"


Ok, j'ai installé syslog-ng, j'ai mis mes règles, mais comment dire à
syslog d'arrêter de faire ses logs et à syslog-ng de le faire à sa place?


Il faut arrêter syslogd, dans de nombreuses distribution c'esr le même
script qui contrôle syslogd et klogd, il peut être intéressant de
s'inspirer du script de démarrage pour utiliser syslog-ng à la place de
syslogd et ainsi garder klogd pour avoir des logs du noyau plus lisibles.
Ensuite :
/etc/init.d/syslog stop
/etc/init.d/syslog-ng start
ou équivalent...

Le seul truc est d'avoir une configuration équivalente à celle
de syslog pour syslog-ng


--
Julien


Avatar
Gg
Julien Salgado wrote:

Il faut arrêter syslogd, dans de nombreuses distribution c'esr le même
script qui contrôle syslogd et klogd, il peut être intéressant de
s'inspirer du script de démarrage pour utiliser syslog-ng à la place de
syslogd et ainsi garder klogd pour avoir des logs du noyau plus lisibles.
Ensuite :
/etc/init.d/syslog stop
/etc/init.d/syslog-ng start
ou équivalent...


Ok.. Mais je n'ai pas trouvé où est lancé syslogd. Et ni comment
l'arrêter d'ailleurs.


Le seul truc est d'avoir une configuration équivalente à celle
de syslog pour syslog-ng


Ok, je vais essayer.

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://emcity.nexenservices.com/mystats

1 2