Tripwire je hostitelský systém detekce narušení pro Linux. Tripwire monitoruje systém Linux, aby zjistil a nahlásil jakékoli neoprávněné změny souborů a adresářů. Jakmile je vytvořena základní linie, Triwire monitoruje a zjišťuje, který soubor byl přidán, který soubor se změnil, co se změnilo, kdo to změnil a kdy byl změněn. Pokud jsou změny legitimní, můžete aktualizovat databázi tripwire, aby tyto změny přijala.
Ohledně řešení pro monitorování si také přečtěte všechny naše předchozí články o Nagios
Tento průvodce krok za krokem vysvětluje, jak nainstalovat a nakonfigurovat open source verzi tripwire.
1. Stáhněte si Tripwire
Stáhněte si nejnovější verzi open source tripwire z webu projektu tripwire sourceforget. Extrahujte zdrojový kód tripwire do adresáře /usr/src, jak je ukázáno níže.
# cd /usr/src # wget http://internap.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.1.2-src.tar.bz2 # bzip2 -d tripwire-2.4.1.2-src.tar.bz2 # tar xvf tripwire-2.4.1.2-src.tar
2. Nainstalujte Tripwire
K určení instalačního adresáře použijte volbu předpony, jak je uvedeno níže. V tomto příkladu jsem nainstaloval tripwire pod /opt/tripwire. Během make install vás vyzve k zadání různých uživatelských vstupů, které jsou níže zvýrazněny červeně.
# cd tripwire-2.4.1.2-src # ./configure --prefix=/opt/tripwire # make # make install make[3]: Entering directory `/usr/src/tripwire-2.4.1.2-src' prefix="/opt/tripwire" sysconfdir="/opt/tripwire/etc" \ path_to_vi="/bin/vi" path_to_sendmail="/usr/sbin/sendmail" \ ./install/install.sh Installer program for: Tripwire(R) 2.4 Open Source LICENSE AGREEMENT for Tripwire(R) 2.4 Open Source Please read the following license agreement. You must accept the agreement to continue installing Tripwire. Press ENTER to view the License Agreement. [Note: Press enter key as instructed to view the license] Please type "accept" to indicate your acceptance of this license agreement. [do not accept] accept [Note: Type accept to accept the license] This program will copy Tripwire files to the following directories: TWBIN: /opt/tripwire/sbin TWMAN: /opt/tripwire/man TWPOLICY: /opt/tripwire/etc TWREPORT: /opt/tripwire/lib/tripwire/report TWDB: /opt/tripwire/lib/tripwire TWSITEKEYDIR: /opt/tripwire/etc TWLOCALKEYDIR: /opt/tripwire/etc CLOBBER is false. Continue with installation? [y/n] y [Note: Press y to continue the installation] The Tripwire site and local passphrases are used to sign a variety of files, such as the configuration, policy, and database files. (When selecting a passphrase, keep in mind that good passphrases typically have upper and lower case letters, digits and punctuation marks, and are at least 8 characters in length.) Enter the site keyfile passphrase: Verify the site keyfile passphrase: [Note: Assign a passphrase for site keyfile.] Generating key (this may take several minutes)...Key generation complete. (When selecting a passphrase, keep in mind that good passphrases typically have upper and lower case letters, digits and punctuation marks, and are at least 8 characters in length.) Enter the local keyfile passphrase: Verify the local keyfile passphrase: [Note: Assign a passphrase for local keyfile.] Creating signed configuration file... Please enter your site passphrase: Wrote configuration file: /opt/tripwire/etc/tw.cfg [Note: Enter the site passphrase.] Creating signed policy file... Please enter your site passphrase: Wrote policy file: /opt/tripwire/etc/tw.pol [Note: Enter the site passphrase] The installation succeeded.
- Přístupová fráze webu zajistí konfigurační soubor tw.cfg tripwire
a soubor zásad tw.pol tripwire. Musíte přiřadit přístupovou frázi webu
i pro jednu instanci tripwire. - Místní přístupová fráze bude chránit databázi tripwire a soubory zpráv.
3. Inicializujte databázi Tripwire
Při prvním použití byste měli inicializovat databázi tripwire, jak je uvedeno níže.
# cd /opt/tripwire/sbin/ # ./tripwire --init Please enter your local passphrase: Parsing policy file: /opt/tripwire/etc/tw.pol Generating the database... *** Processing Unix File System *** The object: "/sys" is on a different file system...ignoring. ### Warning: File system error. ### Filename: /cdrom ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /floppy ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /initrd ### No such file or directory ### Continuing... ### Warning: File system error. Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd The database was successfully generated.
4. Upravte soubor zásad Tripwire
Jak je uvedeno výše, během inicializace databáze tripwire se může zobrazit chybová zpráva „Žádný takový soubor nebo adresář“ pro některé z výchozích souborů uvedených v souboru zásad tripwire. Pokud váš systém tyto soubory nemá, upravte soubor zásad a okomentujte tyto položky.
Například upravte /opt/tripwire/etc/twpol.txt tripwire policy file a zakomentujte /cdrom a /floppy, jak je ukázáno níže.
( rulename = "OS Boot Files and Mount Points", ) { /boot -> $(ReadOnly) ; # /cdrom -> $(Dynamic) ; # /floppy -> $(Dynamic) ; /mnt -> $(Dynamic) ; }
Pomocí souborů zásad tripwire můžete definovat adresáře a soubory, u kterých je třeba sledovat změny. Můžete být také podrobnější a určit atributy souborů, které by měly být monitorovány nebo ignorovány.
Následují některé vlastnosti systému UNIX, které jsou monitorovány pomocí tripwire.
- Přidávání, mazání a úprava souborů
- Oprávnění a vlastnosti souborů
- Časové razítko přístupu
- Časové razítko úpravy
- Typ a velikost souboru
- ID uživatele vlastníka a ID skupiny vlastníka
- Hash checking:CRC-32, POSIX 1003.2 kompatibilní 32bitová kontrola cyklické redundance; MD5, algoritmus RSA Security Message Digest Algorithm; SHA, součást algoritmu SHS/SHA; HAVAL, silný 128bitový podpisový algoritmus
5. Aktualizujte soubor zásad Tripwire
Jakmile soubor zásad upravíte, je třeba jej aktualizovat, jak je uvedeno níže.
# ./tripwire --update-policy --secure-mode low ../etc/twpol.txt Parsing policy file: /opt/tripwire/etc/twpol.txt Please enter your local passphrase: Please enter your site passphrase: ======== Policy Update: Processing section Unix File System. ======== Step 1: Gathering information for the new policy. The object: "/sys" is on a different file system...ignoring. ======== Step 2: Updating the database with new objects. ======== Step 3: Pruning unneeded objects from the database. Wrote policy file: /opt/tripwire/etc/tw.pol Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
Poznámka: pokud byly nějaké soubory změněny od okamžiku, kdy jste provedli inicializaci tripwire, do zásady aktualizace tripwire, budou uvedeny ve výstupu „Krok 1:Shromažďování informací pro novou politiku“ výše uvedeného příkazu.
### Warning: Policy Update Changed Object. ### An object has been changed since the database was last updated. ### Object name: Conflicting properties for object ### /u01/app/oracle/oradata/dbfiles/prod01.dbf ### > Modify Time ### > CRC32 ### > MD5
6. Zkontrolujte všechny změny v souborech a aktualizujte databázi tripwire.
Jakmile je nastavení tripwire dokončeno, měli byste pravidelně provádět kontroly, abyste zjistili, které soubory byly přidány nebo změněny od poslední aktualizace databáze tripwire. Tuto kontrolu můžete provést interaktivně z příkazového řádku, jak je ukázáno níže.
# ./tripwire --check --interactive Parsing policy file: /opt/tripwire/etc/tw.pol *** Processing Unix File System *** Performing integrity check... Wrote report file: /opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr
To automaticky otevře následující soubor zprávy tripwire ve vi, kde si můžete prohlédnout všechny soubory, které byly přidány nebo upraveny do systému. Jak je ukázáno níže, soubory „Added“ a „Modified“ budou mít před sebou značku zaškrtnutí, což znamená, že přijímáte tyto změny k aktualizaci do databáze tripwire.
=============================================================================== Report Summary: =============================================================================== Host name: prod-db-srv Host IP address: 192.168.1.10 Host ID: None Policy file used: /opt/tripwire/etc/tw.pol Configuration file used: /opt/tripwire/etc/tw.cfg Database file used: /opt/tripwire/lib/tripwire/prod-db-srv.twd Command line used: ./tripwire --check --interactive Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Added: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trm" Modified: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_CONFIG.ams" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_INFO.ams" Added object name: /u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc Property: Expected Observed ------------- ----------- ----------- * Object Type --- Regular File * Device Number --- 2049 * Inode Number --- 12026017 * Mode --- -rw-r----- * Num Links --- 1 * UID --- oracle (1082) * GID --- oinstall (1083) * Size --- 837 * Modify Time --- Sat 06 Dec 2008 10:01:51 AM PST * Blocks --- 8 * CRC32 --- AYxMeo * MD5 --- AXSkOul8R/np0fQP4q3QLv Modified object name: /u01/app/oracle/diag/tnslsnr/proddb/listener/trace/listener.log Property: Expected Observed ------------- ----------- ----------- Object Type Regular File Regular File Device Number 2049 2049 Inode Number 2295281 2295281 Mode -rw-r----- -rw-r----- Num Links 1 1 UID oracle (1082) oracle (1082) GID oinstall (1083) oinstall (1083) * Size 5851880 5858608 * Modify Time Sat 06 Dec 2008 09:58:53 AM PST Sat 06 Dec 2008 11:39:56 AM PST * Blocks 11456 11472 * CRC32 ANdM8R CK+bWM * MD5 DCW84lCuD2YJOhQd/EuVsn CV8BMvZNJB9KQBXAf5yRDY Please enter your local passphrase: Incorrect local passphrase. Please enter your local passphrase: Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
7. Jak zobrazit soubor zprávy twr?
Všechny soubory zpráv tripwire s příponou *.twr jsou uloženy v adresáři /opt/tripwire/lib/tripwire/report. tripwire report file *.twr není textový soubor, který si můžete prohlédnout přímo. Chcete-li zobrazit zprávu, použijte twprint a převeďte soubor *.twr do čitelného textového formátu, jak je uvedeno níže.
# ./twprint --print-report --twrfile \ /opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr > \ /tmp/readable-output.txt
8. Pravidelně sledujte integritu systému Linux
Přidejte kontrolu tripwire jako úlohu cron, abyste mohli průběžně sledovat a hlásit jakékoli změny. Například přidejte následující řádek do svého crontab, abyste mohli provádět kontrolu tripwire denně ve 4:00.
# Tripwire Monitor process 00 4 * * * /opt/tripwire/sbin/tripwire --check
9. Umístění souborů konfigurace a zásad Tripwire
Pro zobrazení aktuálních souborů zásad tripwire použijte twadmin. Níže je zobrazen pouze částečný výstup.
#./twadmin --print-polfile @@section GLOBAL TWDOCS="/opt/tripwire/doc/tripwire"; TWBIN="/opt/tripwire/sbin"; TWPOL="/opt/tripwire/etc"; TWDB="/opt/tripwire/lib/tripwire"; TWSKEY="/opt/tripwire/etc"; TWLKEY="/opt/tripwire/etc"; TWREPORT="/opt/tripwire/lib/tripwire/report"; HOSTNAME=prod-db-srv;
Použijte twadmin k získání informací o všech konfiguračních souborech tripwire, jak je uvedeno níže.
# ./twadmin --print-cfgfile ROOT =/opt/tripwire/sbin POLFILE =/opt/tripwire/etc/tw.pol DBFILE =/opt/tripwire/lib/tripwire/$(HOSTNAME).twd REPORTFILE =/opt/tripwire/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/opt/tripwire/etc/site.key LOCALKEYFILE =/opt/tripwire/etc/prod-db-srv-local.key EDITOR =/bin/vi LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 MAILMETHOD =SENDMAIL SYSLOGREPORTING =false MAILPROGRAM =/usr/sbin/sendmail -oi -t
Pokud se vám tento článek líbil, přidejte si jej do záložek na delicious, Digg and Stumble it .