GNU/Linux >> Znalost Linux >  >> Linux

Monitorování zabezpečení v Linuxu pomocí Tripwire

Každý systémový správce jednou za čas ztratí spánek kvůli narušení systému. Nikdo nechce, aby byl kompromitován server, za který je zodpovědný. Problém je v tom, že i když můžete protokoly pravidelně kontrolovat, skutečně efektivní vniknutí do systému nezanechá žádné zjevné protokoly volně ležet. To ztěžuje definitivní zjištění, zda jsou vaše systémy bezpečné.

Kromě nastavení SELinux na Vynucování a provádění pravidelných pentestů, jeden z nejlepších způsobů, jak monitorovat váš systém z hlediska narušení bezpečnosti, je – inu, monitorovat váš systém z hlediska narušení bezpečnosti. Pokud se vám to zdá snadněji řečeno, než uděláte, pak musíte zkusit Tripwire. Tripwire je nástroj pro monitorování integrity souborů, který sleduje změny kritických souborů ve vašem systému. Tento článek ukazuje, jak nainstalovat, nastavit a používat Tripwire ve vaší síti.

Tripwire je jak společnost, tak základna open-source kódu. Monitorování si můžete zakoupit od Tripwire nebo můžete použít kód GPLv2, který zpřístupnili na GitHubu. Platí obvyklé kompromisy. Pokud za to zaplatíte, Tripwire udělá většinu těžké práce za vás a jediné, co musíte udělat, je věnovat pozornost zprávám. Pokud implementujete Tripwire sami, můžete si jej nastavit a nakonfigurovat sami.

Instalace

Chcete-li nainstalovat Tripwire na RHEL nebo CentOS, musíte přidat úložiště Extra Packages for Enterprise Linux (EPEL). Na RHEL 8 musíte povolit codeready-builder možnost v subscription-manager :

$ sudo repos --enable "codeready-builder-for-rhel-8-$(arch)-rpms"

Na CentOS byste měli povolit PowerTools :

$ sudo dnf config-manager --set-enabled PowerTools

Instalace:

$ sudo dnf install -y epel-release

Když je nyní EPEL přidán do vašeho seznamu úložišť, nainstalujte Tripwire :

$ sudo dnf install -y tripwire

Nastavení názvu hostitele

Před konfigurací Tripwire byste měli nastavit název hostitele pro váš server, pokud jej ještě nemá. Názvy hostitelů jsou častým místem zmatků, proto si přečtěte můj článek o nastavení názvů hostitelů, abyste se ujistili, že je vám jasné, co nastavujete. Na CentOS, RHEL a Fedora můžete nastavit název hostitele pomocí hostnamectl :

$ sudo hostnamectl set-hostname --pretty "Rockhopper tripwire demo machine"
$ sudo hostnamectl set-hostname --static rockhopper

Generování klíčů

Dále musíte vygenerovat šifrovací klíče pro Tripwire. Koneckonců, smyslem Tripwire je zabránit útočníkům zakrýt jejich stopy, takže data Tripwire musí být silně šifrována.

Nejprve vytvořte místní klíč pomocí twadmin nástroj:

$ sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.key

Dále vytvořte klíč webu:

$ sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.key

V obou případech musíte pro každý klíč zadat přístupovou frázi. Udržujte tyto přístupové fráze soukromé a bezpečné!

Tripwire používá k šifrování dva různé klíče:místní klíč, který je jedinečný pro každý server, a klíč webu, který můžete použít ve všech systémech ve vaší organizaci. Klíč webu je důležitou funkcí, protože umožňuje správci IT diktovat organizaci jedinou bezpečnostní politiku a lze jej centrálně aktualizovat, podepsat klíčem webu a poté distribuovat pomocí Ansible nebo scp pro použití na každém serveru. Každý administrátor serveru má však stále jedinečný místní klíč, takže i když soubor s bezpečnostními zásadami nelze změnit, má stále přístup k Tripwire pro aktualizace a zprávy.

Konfigurační soubor Tripwire

Dále musíte vytvořit základní konfigurační soubor pro Tripwire. Většina výchozích hodnot v konfiguraci je přijatelná a nic nepotřebuje změnit, pokud nevíte, že se váš systém nějakým významným způsobem liší od toho, co vidíte v příkladu konfiguračního souboru na /etc/tripwire/twcfg.txt . Ve výchozím nastavení Tripwire používá sendmail zasílat upozornění e-mailem. Pokud používáte postfix, není potřeba jej měnit, protože postfix poskytuje sendmail aliasy. V konfiguračním souboru jsou také definována umístění vašich šifrovacích klíčů a souboru zásad, takže ověřte, že jsou správné.

Pokud jste s možnostmi konfigurace spokojeni, použijte twadmin pro ověření konfiguračního textu a jeho zapsání do souboru s názvem /etc/tripwire/tw.cfg , který je podepsán klíčem webu. Podepsání konfiguračního souboru vyžaduje přístupovou frázi ke klíči vašeho webu.

$ sudo twadmin --create-cfgfile --site-keyfile=/etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg

Syntaxe souboru zásad

Soubor zásad je místo, kam vložíte většinu práce pro Tripwire. Vaše zásady Tripwire diktují, které soubory sledovat a které ignorovat a které leží někde mezi. Oba extrémy jsou stejně důležité. Pokud vaše denní zprávy Tripwire posílají falešně pozitivní výsledek pro každý jednotlivý uživatelský soubor, který se během pracovního dne změní, pak se rychle naučíte své zprávy Tripwire úplně ignorovat.

Vzorový soubor zásad přiložený k instalaci EPEL Tripwire je postaven na úplné instalaci pracovní stanice Fedora. Pokud nespouštíte plnou instalaci Fedora Workstation, musíte jej přizpůsobit pro váš systém, ale jeho přečtení vám pomůže získat představu o tom, co obsahuje standardní soubor zásad. Chcete-li dekódovat zápis Tripwire, přečtěte si twpolicy(4) manuálová stránka.

Soubory zásad mohou být složité a může vám pomoci, když si je představíte spíše jako Sass nebo Makefile než konfigurační soubor. Můžete vytvářet variables nebo použijte některá výchozí pravidla a rules a dokonce conditionals řídit, jak Tripwire zachází s jednotlivými adresáři a soubory.

Například ReadOnly proměnná definuje pravidlo pro soubory, které mají být pouze pro čtení. V tomto kontextu "pouze pro čtení" neznamená, že jeho oprávnění k souboru jsou nastavena na r-- (tj. 400 ), ale že se obecně neočekává žádná změna od okamžiku inicializace Tripwire do denního reportu nebo reportu na každodenní bázi.

Pravidlo je strukturováno jako řádek ukončený středníkem (; ) a oddělené šipkou (-> ). Tento blok kódu nastaví spustitelné soubory Tripwire na ReadOnly :

/sbin/siggen    ->   $(ReadOnly);
/sbin/tripwire  ->   $(ReadOnly);
/sbin/twadmin   ->   $(ReadOnly);
/sbin/twprint   ->   $(ReadOnly);

Ukázkový soubor z Fedory používá proměnné k definování většiny pravidel. Například:

SEC_BIN = $(ReadOnly) ;  # Binaries that should not change

Takže jeho položky pro monitorování binárních souborů Tripwire jsou:

/sbin/siggen    ->   $(SEC_BIN);
/sbin/tripwire  ->   $(SEC_BIN);
/sbin/twadmin   ->   $(SEC_BIN);
/sbin/twprint   ->   $(SEC_BIN);

Tyto dva příklady slouží přesně ke stejnému účelu a implementace je pouze odlišná.

Použijte ukázkový soubor zásad jako výchozí bod a vytvořte zásady pro monitorování vašeho systému.

Generování souboru zásad

Výhradně pro účely testování přidejte tento řádek do Datových souborů Tripwire sekce:

/etc/tripwire/secrets -> $(SEC_CRIT); # proof of concept

Vytvořte kritické testovací soubor s názvem secrets :

$ sudo touch /etc/tripwire/secrets

Vygenerujte soubor zásad pomocí twadmin :

$ sudo twadmin --create-polfile \
--site-keyfile=/etc/tripwire/site.key \
/etc/tripwire/twpol.txt

Po zobrazení výzvy zadejte přístupové heslo klíče webu.

Výsledkem je podepsaný a zašifrovaný soubor /etc/tripwire/tw.pol .

Inicializace Tripwire

S vygenerovanými klíči, konfigurační sadou a souborem zásad můžete nyní inicializovat Tripwire:

$ sudo tripwire --init

Zadejte své místní klíčové heslo, když budete vyzváni.

Pokud uvidíte varování, pečlivě si je přečtěte a opravte chybné položky v souboru zásad. Není neobvyklé, že váš první pokus o soubor zásad, zvláště když je založen na již existujícím, odkazujete na soubory, které ve vašem systému ve skutečnosti neexistují. Můžete to vyřešit instalací chybějících souborů nebo odstraněním odkazů na ně z /etc/tripwire/twpol.txt hlavní soubor.

Pokud jste museli provést změny, aktualizujte soubor zásad jeho přegenerováním a poté znovu inicializujte databázi:

$ sudo twadmin --create-polfile \
--site-keyfile=/etc/tripwire/site.key \
/etc/tripwire/twpol.txt
$ sudo tripwire --init

Měli byste to dělat, dokud nedosáhnete dobrého výchozího místa. Jakmile budete mít rozumnou počáteční databázi, neměli byste ji znovu inicializovat, ale místo toho použít tripwire příkaz ke kontrole integrity vašeho systému a volitelně k přepsání přijatelných rozdílů pomocí --interactive možnost:

$ sudo tripwire --check --interactive

Zobrazení přehledů

Instalace EPEL Tripwire vytvoří cron úlohy spouštět zprávy Tripwire a odesílat zprávy e-mailem do root . Můžete také spustit ruční přehled:

$ sudo tripwire --check

Tento příkaz uloží soubor sestavy do /var/lib/tripwire/reports (nebo jakékoli umístění, které nastavíte v konfiguračním souboru). K zobrazení tohoto souboru použijte twprint příkaz:

$ sudo twprint --print-report --report-level 1 \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-163425.twr

Chcete-li zobrazit zprávu s chybou, změňte secrets testovací soubor a spusťte sestavu:

$ sudo echo 1 > /etc/tripwire/secrets
$ sudo tripwire --check

Poté si zobrazte zprávu:

$ sudo twprint --print-report --report-level 1 \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-164413.twr
Added: "/var/lib/tripwire/rockhopper.twd.bak
Modified: "/etc/tripwire/secrets"

Za předpokladu, že jste spokojeni s úpravou vašeho testovacího souboru, můžete aktualizovat databázi Tripwire:

$ sudo tripwire --update \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-164413.twr

Chraňte své systémy

Tripwire je vysoce přesný a extrémně pedantský bezpečnostní monitor. Přestaňte se snažit analyzovat protokoly pro známky vetřelců a nechte Tripwire pracovat za vás. S Tripwire, když se něco v systému změní, budete o tom vědět a můžete se s tím podle toho vypořádat.

[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ]


Linux
  1. Přežití bezpečnostního auditu s podnikovým Linuxem

  2. Zabezpečení Linuxu:Chraňte své systémy pomocí fail2ban

  3. Vyvažování bezpečnosti Linuxu a použitelnosti

  1. 5 tipů, jak začít se zabezpečením serveru Linux

  2. Zabezpečení Linuxu:Manipulace se zásadami SELinux pomocí Booleans

  3. Začínáme s SSH v Linuxu

  1. Šifrujte a dešifrujte soubory pomocí přístupové fráze v systému Linux

  2. Prohledejte své zabezpečení Linuxu pomocí Lynis

  3. Jak monitorovat zabezpečení serveru Linux pomocí Osquery