View previous topic :: View next topic |
Author |
Message |
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 10:53 am Post subject: [TOOL] - Md5Check - Controlliamo i pacchetti |
|
|
Md5Check ver 0.1_pre1
Code: |
wget http://www.xchris.net/download.php?file=files/md5check.tar.gz -O md5check.tar.gz
|
http://www.xchris.net/download.php?file=files/md5check.tar.gz
------------------
Cosa fa Md5Check?
Specificato un pacchetto (in realta' un pattern che matchera' alla meglio) riporta quali file sono cambiati e quali no ed eventualemte riporta l'md5 per ogni file.
OK..A cosa serve?
Penso che qualche esempio sia meglio:
-Quali file STANDARD ho cambiato nel mio firweall shorewall?
Code: |
root@lyra md5check # ./md5check shorewall
* net-firewall/shorewall-2.0.4
-Changed- /etc/shorewall/masq
--NOT FOUND /usr/share/doc/shorewall-2.0.4/releasenotes.txt.gz
-Changed- /etc/shorewall/zones
-Changed- /etc/shorewall/shorewall.conf
-Changed- /etc/shorewall/policy
-Changed- /etc/shorewall/interfaces
-Changed- /etc/shorewall/rules
|
ok! Quindi sappiamo quali file sono cambiati...e notiamo pure che ci manca un file (cancellato per l'occasione)
supponiamo ora che vogliamo restringere il controllo su /etc
Code: |
root@lyra md5check # ./md5check shorewall /etc
* net-firewall/shorewall-2.0.4
-Changed- /etc/shorewall/masq
-Changed- /etc/shorewall/zones
-Changed- /etc/shorewall/shorewall.conf
-Changed- /etc/shorewall/policy
-Changed- /etc/shorewall/interfaces
-Changed- /etc/shorewall/rules
|
Possiamo anche utilizzarlo al posto di etcat -f dspam! (elecare tutti i file)
Avremo pero' + dettagli!
Code: | * mail-filter/dspam-3.2.2
--NOT FOUND /usr/share/doc/dspam-3.2.2/README.qmail.gz
--NOT FOUND /usr/share/doc/dspam-3.2.2/CHANGELOG.gz
Unchanged /usr/bin/dspam_admin
Unchanged /usr/include/dspam/libdspam.h
Unchanged /usr/share/man/man1/dspam_merge.1.gz
Unchanged /usr/include/dspam/storage_driver.h
Unchanged /var/log/dspam/.keep
Unchanged /usr/share/man/man1/dspam_dump.1.gz
Unchanged /usr/share/man/man1/dspam_corpus.1.gz
Unchanged /usr/bin/dspam_corpus
Unchanged /usr/share/man/man1/dspam.1.gz
Unchanged /usr/share/man/man3/libdspam.3.gz
Unchanged /etc/logrotate.d/dspam
Unchanged /usr/bin/dspam_genaliases
Unchanged /usr/bin/dspam_merge
Unchanged /usr/include/dspam/libdspam_objects.h
Unchanged /usr/lib/libdspam.a
Unchanged /etc/mail/dspam/.keep
Unchanged /usr/lib/libdspam.so.6.0.0
Unchanged /usr/include/dspam/buffer.h
Unchanged /usr/include/dspam/decode.h
Unchanged /usr/lib/pkgconfig/dspam.pc
Unchanged /usr/include/dspam/config.h
--NOT FOUND /usr/share/doc/dspam-3.2.2/RELEASE.NOTES.gz
Unchanged /etc/env.d/40dspam
Unchanged /usr/bin/dspam_crc
Unchanged /usr/include/dspam/nodetree.h
--NOT FOUND /usr/share/doc/dspam-3.2.2/README.postfix.gz
Unchanged /etc/cron.daily/.keep
-Changed- /etc/mail/dspam/dspam.conf
Unchanged /var/spool/dspam/.keep
Unchanged /usr/share/man/man1/dspam_clean.1.gz
Unchanged /usr/include/dspam/lht.h
Unchanged /etc/logrotate.d/.keep
Unchanged /etc/cron.daily/dspam.cron
Unchanged /usr/include/dspam/tbt.h
Unchanged /usr/lib/libdspam.la
Unchanged /usr/bin/dspam_2sql
--NOT FOUND /usr/share/doc/dspam-3.2.2/LICENSE.gz
Unchanged /usr/bin/dspam
Unchanged /usr/include/dspam/error.h
Unchanged /usr/bin/dspam_clean
--NOT FOUND /usr/share/doc/dspam-3.2.2/README.gz
Unchanged /usr/bin/dspam_stats
Unchanged /usr/share/man/man1/dspam_stats.1.gz
Unchanged /usr/bin/dspam_dump
|
in un colpo solo sappiamo:
quali file dovrebbe contenere il pacchetto,quali mancano,quali sono stati modificati.
-Potrebbe essere anche visto come un tripwire dei poveri (per vedere se qualcuno ha manomesso uno dei nostri pacchetti)
-Puo essere utilizzato per vedere se un crash di sistema ha provocato problemi su pkg vitali!! (magari su glibc)
-puo' essere utilizzato come un etc-purger PRIMA di rimuovere un pacchetto con delle semplici regexp (sapendo eventualemente quali file salvare..)
-costituisce un ottima base per un etc-update avanzato (che magari implementero' presto...perche' mi sono un po' rotto di quello attuale)
Conclusioni:
Usatelo come preferite
Allo stato dei fatti Overlappa un po' con checkintegrity...magari in futuro li posso fondere. (anche perche' usano routine simili)
Se qc ha voglia e tempo di provarlo,riporti le impressioni (e i bug)
Grazie
ciao _________________ while True:Gentoo()
Last edited by xchris on Sat Feb 26, 2005 10:23 am; edited 2 times in total |
|
Back to top |
|
|
gutter Bodhisattva
Joined: 13 Mar 2004 Posts: 7162 Location: Aarau, Aargau, Switzerland
|
Posted: Mon Nov 22, 2004 11:21 am Post subject: |
|
|
Premetto che è possibile che commetta qualche errore io nella sintassi (in tal caso mi punisco in anticipo).
Ho un problema con il tuo tool:
Code: | gutter@morpheus ~/tmp/md5check $ ./md5check x11-plugins/gaim-encryption
No file match your search options for: x11-plugins/gaim-encryption-2.32
|
EDIT:
Idem nel caso:
Code: | gutter@morpheus ~/tmp/md5check $ ./md5check gaim-encryption
No file match your search options for: x11-plugins/gaim-encryption-2.32
|
_________________ Registered as User #281564 and Machines #163761 |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 11:25 am Post subject: |
|
|
non devi punirti...
di dafult cerca i file cambiati...
con -u mostra quelli non cambiati
con -a li mostra tutti
con -sm mostra anche md5
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
gutter Bodhisattva
Joined: 13 Mar 2004 Posts: 7162 Location: Aarau, Aargau, Switzerland
|
Posted: Mon Nov 22, 2004 11:29 am Post subject: |
|
|
xchris wrote: | non devi punirti...
di dafult cerca i file cambiati...
con -u mostra quelli non cambiati
con -a li mostra tutti
con -sm mostra anche md5
ciao |
Ok tutto chiaro. Il messaggio comunque mi pare un poco criptico dal momento che mi sembrava non capisse quale pacchetto volessi indicare. Non pensi sia meglio scrivere qualcosa tipo:
Nessun file cambiato in questo pacchetto
ovviamente tradotto in inglese _________________ Registered as User #281564 and Machines #163761 |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30885 Location: here
|
Posted: Mon Nov 22, 2004 11:29 am Post subject: |
|
|
Aggiunto ai post utilissimi sezione tools _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 11:31 am Post subject: |
|
|
gutter wrote: | Il messaggio comunque mi pare un poco criptico |
concordo
in realta' e' un messaggio comune per tutti i metodi di ricerca...
(la pigrizia... brutta bestia)
lo cambio alla prossima uscita
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
DaVe&OpenMOsix Apprentice
Joined: 30 Dec 2003 Posts: 213
|
Posted: Mon Nov 22, 2004 11:32 am Post subject: |
|
|
Bravo xchris!
la tua è un'ottima idea, credo che sia molto utile.
non ho ancora provato lo script, ma a priori ho un dubbio...
l'MD5 è un sistema di hashing che porta ad avere firme diverse per file diversi, e fin qui ci siamo.
se si tratta di controllare un file binario l'MD5 credo sia ottimo, perchè se cambia (per errore o per crash) anche un solo byte del file, probabilmente non funzionerà più.
ma nel caso di un file di testo, quale ad esempio un file di configurazione, cambiare un byte non sempre porta ad errore.
ad esempio se viene aggiunto uno spazio a fine file, l'MD5 è completamente diverso, e verrebeb segnalato come possibile errore un file che magari funziona lo stesso. chiaro che è cambiato, ma imho nel caso di file di configurazione il classico diff è meglio.
spero di essermi spiegato bene, e spero che il mio intervento sia d'aiuto nel proseguire il tuo ottimo lavoro!
ciao
DV _________________ -- Siccome sono un informatico ho votato PCI convinto di aumentare gli slot di espansione della società --
-^v^v^v^v^v^v^v^v^v^-
DaVe the WaVe
http://dave.ccni.it
http://www.davethewave.it
-^v^v^v^v^v^v^v^v^v^- |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 11:43 am Post subject: |
|
|
si hai ragione.
parlando di solo /etc spesso capita che alcuni file non vengano proprio toccati e in questo modo vengono rilevati.
Avere un indicazione almeno se e' stato toccato o meno un file e' gia' qc cosa. (se poi contiene solo uno spazio in +....amen)
Se ti riferisci ad discorso di etc-update si potrebbero combinare i 2 metodi.Se md5 e' diverso passa al diff....
Grazie per l'osservazione
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
DaVe&OpenMOsix Apprentice
Joined: 30 Dec 2003 Posts: 213
|
Posted: Mon Nov 22, 2004 11:56 am Post subject: |
|
|
Quote: | Avere un indicazione almeno se e' stato toccato o meno un file e' gia' qc cosa. (se poi contiene solo uno spazio in +....amen) |
sì, è vero che sapere che è stato toccato è buono, ma se ha solo un carattere cambiato, voglio vedere che ansia viene a trovare cosa è successo...
è ottima l'idea dell'accoppiata MD5/diff, risolverebbe proprio!
bravo xchris!
DV _________________ -- Siccome sono un informatico ho votato PCI convinto di aumentare gli slot di espansione della società --
-^v^v^v^v^v^v^v^v^v^-
DaVe the WaVe
http://dave.ccni.it
http://www.davethewave.it
-^v^v^v^v^v^v^v^v^v^- |
|
Back to top |
|
|
gutter Bodhisattva
Joined: 13 Mar 2004 Posts: 7162 Location: Aarau, Aargau, Switzerland
|
Posted: Mon Nov 22, 2004 12:00 pm Post subject: |
|
|
Concordo con entrambi.
@xchris: potresti inserire un flag che se attivato mostri kle differenze non banali. Per differenze banali intendo: uno spazio righe vuote, ecc...
Potresti usare una tiga tipo:
Code: | Tivial Changes /etc/nome_file |
_________________ Registered as User #281564 and Machines #163761 |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 12:12 pm Post subject: |
|
|
si..
anche se etc-update-ng per lavorare sugli md5 dovrebbe fare:
- snapshot /etc md5 pre emerge
- emerge
- controllo
purtroppo servono questi passi altrimenti i vecchi md5 vanno persi...
ma a me tornerebbe comodissimo quando si tratta di fare l'upgrade di xorg!!!
ciauz
EDIT: dimenticavo @fedeliallalinea: grazie _________________ while True:Gentoo() |
|
Back to top |
|
|
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Mon Nov 22, 2004 12:37 pm Post subject: |
|
|
io uso samhain per il momento.. dove e' meglio di lui (apparte la categorizzazione dei pacchetti)? _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 22, 2004 12:44 pm Post subject: |
|
|
certo..
non si propone di rimpiazzare un app del genere.
Il punto e' che con portage Tutti hanno a disposizione da subito un controllo su md5 senza installare nulla.(spesso utenti non skilled sentono la necessita' di app del genere quando ormai e' troppo tardi... ma utilizzando l'md5 gia' qc indicazione la hai)
ciao ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fabius Guru
Joined: 29 Nov 2004 Posts: 525
|
Posted: Thu Jun 09, 2005 10:13 pm Post subject: |
|
|
Riesumo questo post per segnalare un possibile baco. Nel report ottengo
Code: | * app-text/sablotron-1.0
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Sablotron
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Debugging
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-DOM
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Known
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Errors logs.html
--NOT FOUND /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Named
|
Il problema è dovuto al fatto che i file esistono ma contengono uno spazio. Da un estratto di /var/db/pkg/app-text/sablotron-1.0/CONTENTS
Code: |
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Sablotron DOM.html ab1ff23425590637e5c73f50ac26f52b 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Debugging XSLT.html dcc60280edbb463b7542871dc17d5130 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-DOM types.html 184e63e47a1d9e4c59871e11c7b1c694 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-DOM functions.html e04fd6e8622141683510680cdbd2eb71 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Known Issues.html 3d922b333be475c7353c97fbd603f12d 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Errors and logs.html 10ec3a15a622795977b4d65982a91e87 1115143220
obj /usr/share/doc/sablotron-1.0/html/sablot/apidocs/api-.Named buffers.html 046531928d32c252e87fc2cce6c24a8c 1115143220
|
|
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Fri Jun 10, 2005 8:18 am Post subject: |
|
|
uploadata nuova versione.
Vedi un po' se e' ok,
Grazie mille per la segnalazione!
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Fri Jun 10, 2005 10:19 am Post subject: |
|
|
Bello! Bellissimo! Complimenti ancora per i tuoi utilissimi script...
Accetti qualche suggerimento per feature aggiuntive?
E' possibile implementare una cosa del tipo: md5check world ? (o magari anche md5check -D world per le dipendenze...)
L'idea sarebbe di generare un elenco di tutti i file di configurazione cambiati in modo da generare un backup "intelligente"....
Diciamo una lista da dare direttamente poi in pasto a tar
occhei che con un paio di pipe, cut e grep in fila si ottiene una cosa simile... ma implementarla direttamente sarebbe carino _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Fri Jun 10, 2005 10:28 am Post subject: |
|
|
Cazzantonio wrote: | Bello! Bellissimo! Complimenti ancora per i tuoi utilissimi script...
|
Cazzantonio wrote: |
Accetti qualche suggerimento per feature aggiuntive?
|
mi pare di essere sempre ben disposto a commenti,critiche suggerimenti
(per lo meno so che vengo cagato)
Cazzantonio wrote: |
E' possibile implementare una cosa del tipo: md5check world ? (o magari anche md5check -D world per le dipendenze...)
L'idea sarebbe di generare un elenco di tutti i file di configurazione cambiati in modo da generare un backup "intelligente"....
Diciamo una lista da dare direttamente poi in pasto a tar
occhei che con un paio di pipe, cut e grep in fila si ottiene una cosa simile... ma implementarla direttamente sarebbe carino |
sul world non ci sarebbero' problemi..
sulle dipendenze si... a meno di non usare lo zio pino
Tieni cmq conto che alcuni file che tu scrivi exnovo non potrebbero essere intercettati con md5check!
In teoria dovevo modificare checkintegrity e integrarlo in md5check per dare un tool + completo... in teoria..
(checkintegrity uso lo stesso motore e controlla tutto il sistema... ma controlla solo l'esistenza... non l'md5)
Ci pensero' cmq
Grazie Mille!
Ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Fri Jun 10, 2005 10:37 am Post subject: |
|
|
xchris wrote: | sul world non ci sarebbero' problemi..
sulle dipendenze si... a meno di non usare lo zio pino |
In realtà (imho) basterebbe la lista di tutti i file di conf cambiati... stare a fare differenze tra le dipendenze e i pacchetti in world serve a poco secondo me...
Quote: | Tieni cmq conto che alcuni file che tu scrivi exnovo non potrebbero essere intercettati con md5check! |
Ovvio, però intanto darebbe una bella mano a tenere dietro a quelli "ufficiali" modificati...
Quote: | Ci pensero' cmq
Grazie Mille! |
Grazie a te ... io non ho proprio fatto nulla... _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Fri Jun 10, 2005 10:47 am Post subject: |
|
|
ecco un'implementazione semplicissima di quello che intendevo
Code: | #!/bin/bash
emerge -ep world |grep ebuild |cut -d" " -f 8 > /tmp/tuttiipacchetti
for i in `cat /tmp/tuttiipacchetti`
do
md5check $i |grep Changed
done
|
effettivamente non serve poi così tanto inegrarlo in md5check
[EDIT]
piccolo dubbio....
come mai mi lista anche tutte queste librerie?
Code: | -Changed- /usr/lib/python2.3/base64.pyc
-Changed- /usr/lib/python2.3/idlelib/Debugger.pyo
-Changed- /usr/lib/python2.3/fnmatch.pyc
-Changed- /usr/lib/python2.3/hmac.pyo
-Changed- /usr/lib/python2.3/fnmatch.pyo
-Changed- /usr/lib/python2.3/hmac.pyc
-Changed- /usr/lib/python2.3/shelve.pyc
-Changed- /usr/lib/python2.3/curses/wrapper.pyo
-Changed- /usr/lib/python2.3/curses/wrapper.pyc
-Changed- /usr/lib/python2.3/encodings/cp864.pyo
|
(piccolissimo estratto di tutte le librerie elencate)
inoltre mi sengnala anche file di conf che non ho mai cambiato
Code: | -Changed- /etc/security/pam_env.conf
-Changed- /etc/pam.d/su |
_________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Fri Jun 10, 2005 11:00 am Post subject: |
|
|
python e' un discordo molto complicato...
prova a vedere un emerge --oneshot python
per i file che non hai mai modificato....eh..
prova a verere con "-sm"
in qualche modo sono cambiati...
ciao
EDIT: i file pyo,pyc vengono cambiati run-time _________________ while True:Gentoo() |
|
Back to top |
|
|
fabius Guru
Joined: 29 Nov 2004 Posts: 525
|
Posted: Fri Jun 10, 2005 6:22 pm Post subject: |
|
|
xchris wrote: | Vedi un po' se e' ok |
Ora funziona, grazie mille!! |
|
Back to top |
|
|
|