Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/03/2006, à 12:19

kinkey_wizard

[Résolu] Ulogd + mysql 5 : can't establish database connection

Bonjour tout le monde, :]

Bon je vais essayer d'expliquer mon probleme en détails :
Connaissez-vous ulogd ? Pour ceux qui ne savent pas il s'agit d'un démon pouvant servir de cible à des règles iptables. Comme vous le savez sans doute une règle de filtrage iptables peut permettre d'envoyer les paquets vers une cible LOG, ce qui permet de les enregistrer dans /var/log/messages. Comme ce fichier contient tous les messages du noyau (si je ne m'abuse) il n'est pas très pratique d'en extraire les paquets issus des enregistrements de notre règle iptables, c'est pourquoi ulog a été développé. En fait ce démon permet simplement d'enregistrer les paquets à l'endroit où l'on souhaite, c'est à dire qu'au lieu d'être dans /var/log/messages ils peuvent être enregistrés dans un fichier de notre choix, une base de données mysql, une base de données postgresql, ou encore une base de données sqlite. Son utilisation n'a rien de difficile en soit, si vous savez rediriger les paquets vers une cible LOG avec iptables, il vous suffit de remplacer LOG par ULOG et cela fonctionne parfaitement (à condition que ulog soit installé et correctement configuré).
Site officiel d'ulogd : /http://netfilter.org/projects/ulogd/index.html

Bon ce que je voudrais faire dans l'histoire c'est ceci : je cherche à faire fonctionner ensemble ulog et mysql 5.
Je sais, je sais, pourquoi la version 5 ? C'est un impératif, il s'agit du seul SGBD ( definition : /http://fr.wikipedia.org/wiki/SGBD ) relativement rapide capable de gérer les "triggers" ( definition : /http://en.wikipedia.org/wiki/Database_trigger ).

J'ai essayé avec mysql 4 (sans les triggers bien sur, vu qu'il ne les gère pas, d'où l'intérêt de prendre la version 5), cela fonctionne parfaitement. J'ai même fait un script, alors pour ceux que cela interesse :

#! /bin/bash

# Mot de passe root de mysql :
pass_root="pass"
# Nom d'utilisateur ulog :
nom_user="ulog"
# Mot de passe d'utilisateur ulog :
pass_user="ulogpass"
# Nom de la base de données :
nom_db="ulogdb"
# Fichier contenant la structure de la base :
path_struct="./struct_mysql4.table"

# Installation de ulogd, mysql, etc
apt-get install ulogd mysql-server ulogd-mysql
echo
/etc/init.d/ulogd stop

# Definition des regles iptables
iptables -t filter -F
iptables -t filter -A INPUT -p all -j ULOG
iptables -L

echo
echo "Edition de /etc/ulogd.conf"
sleep 2
nano /etc/ulogd.conf

echo

mysqladmin -u root password ${pass_root}

mysql -p${pass_root} -e"create database ${nom_db}"

mysql -p${pass_root} -D ${nom_db} -e"source ${path_struct}; show tables; grant select,insert,update,drop,delete,create temporary tables on ${nom_db}.* to ${nom_user}@localhost identified by '${pass_user}'; flush privileges;"

/etc/init.d/mysql restart
/etc/init.d/ulogd start
echo
echo "Fin du script"

Avec ceci comme structure de table /https://svn.netfilter.org/netfilter/trunk/ulog/ulogd/doc/mysql.table
Et cela enregistre comme je voudrais.
Je me suis basé sur cet article pour ce script : /http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/121/lg121-A.html

Maintenant je voudrais faire la même chose avec mysql 5, malheureusement pour moi, le .deb n'étant pas encore disponible je suis obligé de faire l'installation à la main, de même que la configuration du /etc/mysql/my.cnf.
J'ai tenté de faire un script là aussi, mais cela ne fonctionne pas, mysql s'installe bien et est utilisable mais ulog me renvoit un "can't establish database connection" dans /var/log/ulog/ulogd.log et le démon se ferme juste après.

Je récupère cette version de mysql : /http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-standard-5.0.19-linux-i686-glibc23.tar.gz/from/http://ftp.club-internet.fr/mirrors/ftp.mysql.com/
Et voici le script en question :

#! /bin/bash

# Mot de passe root de mysql :
pass_root="pass"
# Nom d'utilisateur ulog :
nom_user="ulog"
# Mot de passe d'utilisateur ulog :
pass_user="ulogpass"
# Nom de la base de données :
nom_db="ulogdb"
# Fichier contenant la structure de la base :
path_struct="./struct_mysql5.table"

# Installation de ulogd, mysql, etc
apt-get install ulogd ulogd-mysql
echo
/etc/init.d/ulogd stop

# Definition des regles iptables
iptables -t filter -F
iptables -t filter -A INPUT -p all -j ULOG
iptables -L

echo
echo "Edition de /etc/ulogd.conf"
sleep 2
nano /etc/ulogd.conf

echo

groupadd mysql
useradd -g mysql mysql

cp mysql-standard-5.0.19-linux-i686-glibc23.tar.gz /usr/local/

cd /usr/local
tar zxf mysql-standard-5.0.19-linux-i686-glibc23.tar.gz

ln -s mysql-standard-5.0.19-linux-i686-glibc23 mysql

cd mysql

./scripts/mysql_install_db
chown -R root  .
chown -R mysql data
chgrp -R mysql .

support-files/mysql.server start

nano /etc/mysql/my.cnf

bin/mysqladmin -u root password ${pass_root}
bin/mysql -p${pass_root} -e"create database ${nom_db}"

bin/mysql -p${pass_root} -D ${nom_db} -e"source /home/utilisateur/iptables_ulog/install_mysql5/struct_mysql5.table; show tables; grant select,insert,update,drop,delete,create temporary tables on ${nom_db}.* to ${nom_user}@localhost identified by '${pass_user}'; flush privileges;"

support-files/mysql.server restart
/etc/init.d/ulogd start
echo
echo "Fin du script"

Avec la même structure de base que precedemment.

Je pense que le problème vient du fait que je ne configure pas correctement le /etc/mysql/my.cnf, pourtant j'ai changé le chemin du fichier socket par /tmp/mysql.sock et ce genre de choses...
A moins que ce ne soit ulogd qui ne supporte vraiment pas mysql 5 mais bon ce serait assez curieux O_o.

Je teste ça sous une Ubuntu mais une solution pour une Sarge me va très bien, de même d'ailleurs que pour n'importe qu'elle autre distribution en fait (du moment que c'est adaptable sur une Debian lol).
Donc en bref si vous avez une idée pour faire fonctionner ces trucs là ensemble (ou quelque chose qui m'aurait échappé), j'en veux bien.

En vous remerciant par avance. :]

Dernière modification par kinkey_wizard (Le 24/07/2007, à 08:55)

Hors ligne

#2 Le 04/04/2007, à 10:33

Saber

Re : [Résolu] Ulogd + mysql 5 : can't establish database connection

salut,
je suis un étudiant en Projet de Fin d'étude et j'ai le même problème que le votre,
SVP, si vous avez eu une solution je vous emprie de m'aider.

Merci.

#3 Le 26/06/2007, à 08:38

kinkey_wizard

Re : [Résolu] Ulogd + mysql 5 : can't establish database connection

Bonjour,

Je ne sais pas si la chose est toujours d'actualité mais à l'époque j'avais finalement réussi à résoudre le problème en utilisant le paquet de mysql 5 issus des dépôts au lieu du site officiel.

Navré pour la réponse tardive.

Hors ligne