Registrare i log di Iptables in MySQL: differenze tra le versioni
(Nuova pagina: ==Introduzione== Lo scopo di questa guida è di mostrare come registrare le attività del firewall di Linux in un database MySQL.<br/> Il target <code>-j LOG</code> di iptables viene u...) |
(Nessuna differenza)
|
Versione delle 18:19, 6 mar 2010
Introduzione
Lo scopo di questa guida è di mostrare come registrare le attività del firewall di Linux in un database MySQL.
Il target -j LOG
di iptables viene utilizzato per salvare nel file di log di syslog
un sommario testuale degli headers dei pacchetti intercettati.
Ma cosa occorre fare per registrare l’intero pacchetto, o una porzione particolare di esso, per eventuali esami futuri?
Contrariamente a quanto avviene con altri moduli firewall, c'è bisogno di un programma che gira in userspace, nella fattispecie ulogd
, per poter trattare i pacchetti ottenuti.
ulogd
affianca o sostituisce il tradizionale metodo di logging bastato su syslogd
con il più evoluto target ULOG
, capace di loggare direttamente in userspace e gestire i log nei modi più svariati. Le informazioni risultano più schematiche e molto simili a quelle dei tradizionali log di sistema.
In pratica i log vengono gestiti da un apposito programma che è in grado di elaborarli in modi diversi, da file di testo a database MySQL, il tutto in modo nativo senza usare filtri o script in perl come capitava con il tradizionale target LOG.
Installazione
L’installazione dei pacchetti necessari è velcoe e semplice come al solito in Debian:
# apt-get install ulogd ulogd-mysql
Configurazione
Come prima cosa occorre creare un database vuoto, con gli opportuni privilegi, in cui registrare gli eventi ulogd
. Potete creare il database utilizzando PhpMyAdmin o direttamente da linea di comando, in questo modo:
# mysql -u root -p CREATE DATABASE ulogd; GRANT ALL PRIVILEGES ON ulogd.* TO ‘ulogduser’@'localhost’ IDENTIFIED BY ‘Digitate_la_password_per_ulogd’ WITH GRANT OPTION; quit
Come avrete notato, abbiamo creato un nuovo database, un nuovo utente e abbiamo attribuito a questo utente i permessi per leggere e scrivere sul database.
Le struttura delle tabelle per il database appena creato è scritta nel file /usr/share/doc/ulogd-mysql/mysql.table
. Carichiamolo quindi nel database appena creato con:
# mysql -u ulogduser -p ulogd < /usr/share/doc/ulogd-mysql/mysql.table
Adesso possiamo procedere con la configurazione di ULOG editando il file /etc/ulogd.conf
.
Nella sezione plugins
va decommentata la riga:
plugin="/usr/lib/ulogd/ulogd_MYSQL.so"
per permettere la registrazione dei log su un db MySQL.
Impostiamo poi l’account per l’accesso al database:
[MYSQL] table="ulog" pass="password_per_ulogduser" user="ulogduser" db="ulogd" host="localhost" <pre> Arrivati a questo punto è sufficiente riavviare <code>ulogd</code>: <pre> /etc/init.d/ulogd restart