Přemýšleli jste někdy o tom, jak bezpečný je váš počítač se systémem Linux? Existuje mnoho linuxových distribucí, z nichž každá má svá vlastní výchozí nastavení, na kterých spouštíte desítky softwarových balíčků s různými čísly verzí a na pozadí běží četné služby, které téměř neznáme a ani je nezajímáme.
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Chcete-li zjistit stav zabezpečení – celkový stav zabezpečení softwaru, sítě a služeb spuštěných na vašem počítači se systémem Linux – můžete spustit několik příkazů a získat kousky relevantních informací, ale množství dat, které potřebujete analyzovat, je obrovské. .
Bylo by mnohem lepší, kdybyste mohli spustit nástroj, který generuje zprávu o bezpečnostní pozici stroje. A naštěstí je tu jedna:Lynis. Je to extrémně populární open source nástroj pro bezpečnostní audit, který pomáhá s posilováním systémů založených na Linuxu a Unixu. Podle projektu:
"Provádí hloubkovou bezpečnostní kontrolu a běží na samotném systému. Primárním cílem je otestovat bezpečnostní obranu a poskytnout tipy pro další posílení systému. Prohledá také obecné systémové informace, zranitelné softwarové balíčky a možné problémy s konfigurací." Lynis [je] běžně používán systémovými administrátory a auditory k posouzení bezpečnostní ochrany jejich systémů."
Instalovat Lynis
Lynis může být k dispozici ve vašem úložišti softwaru pro Linux. Pokud ano, můžete jej nainstalovat pomocí:
dnf install lynis
nebo
apt install lynis
Pokud však verze ve vašem repozitáři není nejnovější, je lepší ji nainstalovat z GitHubu. (Používám systém Red Hat Linux, ale můžete jej spustit na jakékoli distribuci Linuxu.) Jako u všech nástrojů má smysl nejprve vyzkoušet na virtuálním počítači. Chcete-li jej nainstalovat z GitHubu:
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server verze 7.8 (Maipo)
$
$ uname -r
3.10.0-1127.el7. x86_64
$
$ klon git https://github.com/CISOfy/lynis.git
Klonování do 'lynis'...
vzdálené:Výčet objektů:30, hotovo .
dálkové ovládání:Počítání objektů:100 % (30/30), hotovo.
dálkové ovládání:Komprese objektů:100 % (30/30), hotovo.
dálkové ovládání:Celkem 12566 (delta 15 ), reused 8 (delta 0), pack-reused 12536
Příjem objektů:100 % (12566/12566), 6,36 MiB | 911,00 kiB/s, hotovo.
Rozlišení rozdílů:100 % (9264/9264), hotovo.
$
Jakmile úložiště naklonujete, přejděte do něj a podívejte se, co je k dispozici. Hlavní nástroj je v souboru s názvem lynis . Je to vlastně skript shellu, takže jej můžete otevřít a přečíst si, co dělá. Ve skutečnosti je Lynis implementován hlavně pomocí shellových skriptů:
$ cd lynis/
$ ls
CHANGELOG.md CONTRIBUTING.md db developer.prf FAQ zahrnout LICENCE lynis. d. d. CONTRICTOR m. DU CONTRICTOR m. d. d. CONTRICTOR lynis.8 README . doplňky HAPPY_USERS.md INSTALOVAT lynis pluginy README.md
$
$ soubor lynis
lynis:skript shellu POSIX, spustitelný text ASCII, s velmi dlouhými řádky
$
Spustit Lynis
Zatočte Lynis tak, že mu dáte -h možnost zobrazení části nápovědy:
$ ./lynis -h
Uvidíte krátkou informační obrazovku následovanou všemi příkazy, které Lynis podporuje.
Dále vyzkoušejte několik testovacích příkazů, abyste získali cit pro věci a získali pohodlí. Chcete-li zjistit, se kterou verzí Lynis pracujete, spusťte:
$ ./lynis zobrazit verzi
3.0.0
$
Chcete-li zobrazit všechny příkazy dostupné v Lynis:
$ ./lynis show příkazy
Příkazy:
lynis audit
lynis configure
lynis generovat
lynis show
lynis update
lynis upload-only
$
Audit systému Linux
Chcete-li zkontrolovat stav zabezpečení vašeho systému, spusťte následující příkaz:
$ ./lynis audit system
To běží rychle a vrací podrobnou zprávu – výstup se může na první pohled zdát děsivý, ale níže vás jím provedu. Výstup příkazu se také uloží do souboru protokolu, takže se můžete kdykoli vrátit a zkontrolovat vše, co by vás mohlo zajímat.
Lynis uloží protokoly zde:
Soubory:
– Testovací a ladící informace :/var/log/lynis.log
– Hlášení dat :/var/log/lynis-report.dat
Můžete ověřit, zda byly soubory protokolu vytvořeny a skutečně byly:
$ ls -l /var/log/lynis.log
-rw-r-----. 1 kořenový kořenový adresář 341489 30. dubna 05:52 /var/log/lynis.log
$
$ ls -l /var/log/lynis-report.dat
-rw-r-- ---. 1 kořenový kořenový adresář 638 30. dubna 05:55 /var/log/lynis-report.dat
$
Prozkoumejte přehledy
Lynis poskytuje poměrně komplexní zprávy, takže se budu věnovat některým důležitým sekcím. Úplně první věc, kterou Lynis v rámci inicializace udělá, je zjištění kompletních informací o operačním systému běžícím na stroji. Poté následuje kontrola, zda jsou nainstalovány systémové nástroje a pluginy:
[+] Inicializační program
------------------------------------
- Detekce OS... [ HOTOVO ]
- Kontrola profilů... [ HOTOVO ]
- Kontrola profilů... --- - ---- ---------------------------------
Verze programu: 3.0.0
Operační systém:Linux
Název operačního systému: Red Hat Enterprise Linux Server 7.8 (Maipo)
Verze operačního systému: 7.8
Verze jádra: 3.10.0
Hardwarová platforma: x86_64
: příklad
--------------------------------------------- -------
<>
[+] Systémové nástroje
----------------- -------------------
- Skenování dostupných nástrojů...
- Kontrola binárních souborů systému...
[ +] Pluginy (fáze 1)
-------------------------------------
Poznámka:Pluginy mají rozsáhlejší testy a jejich dokončení může trvat několik minut
- Plugin:pam
[..]
- Plugin:systemd
[................]
Dále je přehled rozdělen do různých částí a každá část začíná znakem [+] symbol. Některé sekce jsou k vidění níže. (Páni, existuje tolik oblastí k auditu a Lynis je ten správný nástroj pro tuto práci!)
[+] Boot a služby
[+] Jádro
[+] Paměť a procesy
[+] Uživatelé, skupiny a ověřování
[+] Shelly
[+] Systémy souborů
[+] Zařízení USB
[+] Úložiště
[+] NFS
[+] Služby jmen
[+] Porty a balíčky
[+] Síť
[+] Tiskárny a spooly
[+] Software:e-mail a zprávy
[+] Software:brány firewall
[+] Software :webový server
[+] Podpora SSH
[+] Podpora SNMP
[+] Databáze
[+] Služby LDAP
[+] PHP
[ +] Podpora Squid
[+] Protokolování a soubory
[+] Nezabezpečené služby
[+] Bannery a identifikace
[+] Naplánované úkoly
[+] Účetnictví
[+] Čas a synchronizace
[+] Kryptografie
[+] Virtualizace
[+] Kontejnery
[+] Rámce zabezpečení
[+] Software:integrita souborů
[+] Software:Systémové nástroje
[+] Software:Malware
[+] Oprávnění k souborům
[+] Domovské adresáře
[+] Kernel Hardening
[+] Hardening
[+] Vlastní testy
Lynis používá barevné kódování, aby se přehled snáze analyzoval:
- Zelená:Vše v pořádku
- Žlutá:Přeskočeno, nenalezeno nebo může obsahovat návrh
- Červená:Možná se na to budete muset podívat blíže
V mém případě byla většina červených značek nalezena v sekci Kernel Hardening. Jádro má různá laditelná nastavení, která definují, jak jádro funguje, a některé z těchto laditelných nastavení mohou mít bezpečnostní kontext. Distribuce je možná z různých důvodů nenastavuje ve výchozím nastavení, ale měli byste je prozkoumat a zjistit, zda nepotřebujete změnit jejich hodnotu na základě vašeho bezpečnostního postoje:
[+] Kernel Hardening
-------------------------------------
- Porovnání párů klíčů sysctl s profilem skenování
- fs.protected_hardlinks (exp:1) [ OK ]
- fs.protected_symlinks (fs.protected_symlinks (exp:1) d symlinks (exp:1) d s (Exp:0) [OK]
- jerd.core_des_pid (exp:1) [OK]
- Jernel.ctrl-Alt-del (EXP:0) [OK]
- jádro .dmesg_Restrict (exp:1) [rozdíl]
- jerd.kptr_Restrect (exp:2) [liší]
- jerd.randomize_va_space (exp:2) [OK]
- jerd.sysrq (Exp:0) [Jiný]
- jerd.yama.ptrace_scope (exp:1 2 3) [rozdíl]
- net.ipv4.conf.all.Accept_redirects (exp:0) [odlišný]
– net.ipv4.conf.all. accept_source_route (exp:0) [ OK ]
- net.ipv4.conf.all.bootp_relay (exp:0) [ OK ]
- net.ipv4.conf. [ OK ]
– net.ipv4.conf.all.log_martians (exp:1) [ JINÉ ]
- net.ipv4.conf.all.mc_forwarding (exp:0) br / [ OK]> - net.ipv4.conf.all.proxy_arp (exp:0) [ OK ]
- net.ipv4.conf.all.rp_filter (exp:1) ] < 4 . . . OK / . conf.all.send_redirects (exp:0) [ RŮZNÉ ]
- net.ipv4.conf.default.accept_redirects (exp:0) [ ODLIŠNÉ ]
_rou conf.ipv.4 exp:0) [ OK ]
- net.ipv4.conf.default.log_martians (exp:1) [ RŮZNÉ ]
- net.ipv4.icmp_echo_ignore_1 [ ] br: OK> - net.ipv4.icmp_ignore_bogus_error_responses (exp:1) [ OK ]
- net.ipv4.tcp_syncookies (exp :1) [ OK ]
- net.ipv4.tcp_timestamps (exp:0 1) [ OK ]6. –> - net.ipv6.conf.all.accept_source_route (exp:0) [ OK ]
- net.ipv6.conf.default.accept_redirects (exp:0) [ DIFFERENT ]
. v 6 conf.default.accept_source_route (exp:0) [ OK ]
Podívejte se na příklad SSH, protože je to klíčová oblast a musí být zabezpečena. Není zde nic červeného, ale Lynis má spoustu návrhů na posílení služby SSH v mém nastavení:
[+] Podpora SSH
------------------------------------
- Kontrola běžícího démona SSH [nalezeno]
- Vyhledávání SSH Configuration [nalezeno]
- OpenSSH volba:AllowtCpforwarding [návrh]
- OpenSSH možnost:ClientALiveCountMax [návrh]
- OpenSSH možnost:ClientALiveInterval [OK]
- OpenSSH volba:komprese [návrh]
- OpenSSH volba:Fingerprinthash [OK]
- OpenSSH možnost:GatewayPorts [OK]
- OpenSH možnost :IgnorerHosts [OK]
- OpenSSH volba:LogingRacetime [OK]
- OpenSSH volba:Loglevel [návrh]
- OpenSSH volba:Maxauttries [návrh]
- OpenSSH možnost:MaxSessions [návrh]
- OpenSSH možnost:Permitrootlogin [návrh]
- OpenSSH volba:Permituserenvironment [OK]
- OpenSSH možnost:Permittunnel [OK]
- OPENSHSSH Možnost:port [návrh]
- OpenSSH volba:PrintLastlog [OK]
- OpenSSH Možnost:StrictModes [OK]
- OpenSSH možnost:TCPKEKEKSALIVE [Návrh]
- OpenSSH Možnost:Použité [Návrh]
- OpenSSH volba:X11Forwarding [návrh]
- OpenSSH volba:ElementagentForwarding [návrh]
- OpenSSH volba:OutderPivileGeSeparation [OK]
- OpenSH možnost:AllowUsers [ NOT FOUND ]
- Možnost OpenSSH:AllowGroups [ NOT FOUND ]
V mém systému neběží virtuální počítače ani kontejnery, takže zobrazují prázdné výsledky:
[+] Virtualizace
------------------------------------
[+] Kontejnery
------------------------------------Lynis kontroluje oprávnění k některým souborům, které jsou důležité z bezpečnostního hlediska:
[+] Oprávnění k souboru
------------------------------------
- Zkontrolujte oprávnění spuštění souboru
Soubor:/boot/grub2/grub.cfg [návrh]
Soubor:/etc/cron.deny [OK]
Soubor:/ atd. / Crontab [ Návrh]
Soubor:/ atd. / Skupina [OK]
Soubor:/ atd. / Skupina- [OK]
Soubor:/etc/hosts.allow [OK]
Soubor:\ t /etc/hosts.deny [OK]
Soubor:/ atd. / Problém [OK]
Soubor:/etc/issue.net [OK]
Soubor:/ atd. / MOTD [OK]
Soubor:/etc/passwd [OK ]
Soubor:/etc/passwd- [OK]
Soubor:/ etc / ssh / sshd_config [ok]
adresář:/root/.ssh [návrh]
adresář:/etc/cron.d [návrh]
Directory:/etc/cron.Daily.Daily [návrh]
Directory:/etc/cron.Hourly [návrh]
adresář:/etc/cron.weekly [návrh]
adresář:/ atd /cron.monthly [ NÁVRH ]Ke konci zprávy nabízí Lynis návrhy založené na zjištěních zprávy. Za každým návrhem následuje TEST-ID (nechte si to po ruce pro další část):
Návrhy (47):
----------------------------
* Pokud není vyžadováno, zvažte explicitní zakázání výpisu jádra v souboru /etc/security/limits.conf [KRNL-5820]
https://cisofy.com/lynis/controls/KRNL-5820/
* Zkontrolujte Konfigurace PAM, případně přidání kol a vypršení platnosti hesel pro šifrování s novými hodnotami [AUTH-9229]
https://cisofy.com/lynis/controls/AUTH-9229/Lynis nabízí možnost najít další informace o každém návrhu, ke kterému máte přístup pomocí zobrazit podrobnosti příkaz následovaný testovacím ID číslem:
./lynis show details TEST-ID
Zobrazí se další informace o tomto testu. Zkontroloval jsem například podrobnosti o SSH-7408:
$ ./lynis zobrazit podrobnosti SSH-7408
2020-04-30 05:52:23 Probíhá test ID SSH-7408 (Zkontrolujte definované možnosti specifické pro SSH)
2020-04-30 05:52:23 Test:Kontrola specifických definovaných možností v /tmp/lynis.k8JwazmKc6
2020-04-30 05:52:23 Výsledek:přidány další možnosti pro OpenSSH <7.5
2020-04-30 05:52:23 Test:Kontrola AllowTcpForwarding v /tmp/lynis.k8JwazmKc6
2020-04-30 05:52:23 Výsledek:Option AllowTcpForwarding nalezen
2020-04-30 05:52:23 Výsledek Hodnota AllowTcpForwarding je ANO
2020-04-30 05:52:23 Výsledek:Možnost OpenSSH AllowTcpForwarding je ve slabém stavu konfigurace a měla by být opravena
2020-04-30 05:52:23 Návrh:Zvažte konfigurace SSH kalení [test:SSH-7408] [podrobnosti:AllowTcpForwarding (nastavte ANO na NE)] [řešení:-]Vyzkoušejte to
Pokud se chcete dozvědět více o zabezpečení vašeho Linuxového počítače, podívejte se na Lynis. A pokud se chcete dozvědět, jak Lynis funguje, projděte si jeho skripty shellu, abyste viděli, jak shromažďuje všechny tyto informace.
Sériová komunikace na moderním Linuxu Začněte používat systemd jako nástroj pro odstraňování problémůLinux