GNU/Linux >> Znalost Linux >  >> Linux

3 rychlé způsoby, jak snížit plochu útoku v systému Linux

Linuxové systémy jsou složité věci. Každá distribuce ihned po vybalení obsahuje řadu služeb, které vám pomohou uvést věci do chodu. Některé distribuce standardně povolují méně služeb a některé více. Rozdíl je v pohodlí. Některé distribuce se vás snaží rychle zprovoznit, takže mají povolenou velkou sadu výchozích služeb, které vám usnadňují nastavení, přihlášení a konfiguraci. Jiní volí opačný přístup a ve výchozím nastavení neinstalují téměř nic.

Tento článek je začátkem krátké série, kde si povíme něco o zpevnění, trochu o segmentaci a nakonec o tom, jak skenovat naše sítě, abychom zjistili, zda jsme to udělali správně. Takže vydržte a dovolte mi, abych vám ukázal několik vrstev obrany.

Instalovat méně softwaru

Když instaluji nový systém, snažím se instalovat co nejméně. Začínám se základní sadou balíčků a opravdu neinstaluji nic jiného. Po instalaci je snadné přidat služby, tak proč komplikovat proces? Kromě toho, pokud to děláte hodně, pravděpodobně budete chtít nainstalovat ze systému Kickstart (nebo šablony). Takže byste to chtěli nastavit tak jednoduše a obecně, jak je to jen možné.

Pro tento článek jsem nainstaloval základní systém Red Hat Enterprise Linux (RHEL) 7.6, abych provedl skutečné testování. Během instalace jsem udělal naprosté minimum, vybral jsem base sada balíčků a nastavení mých hesel, uživatelských jmen a sítě. Povolil jsem také Network Time Protocol (NTP).

Identifikujte otevřené porty

Po instalaci se nám zobrazí seznam otevřených portů. Porty jsou způsobem, jakým služby běžící na vašem serveru umožňují ostatním systémům připojit se k nim. Webový server například naváže porty 80 a 443 na službu webového serveru. V tomto článku zjistíme, které služby mají otevřené porty ve vaší základní instalaci, a pak se podíváme na to, jak uvést služby a deaktivovat ty, které nechceme.

V systému Red Hat Enterprise Linux 7.6 používáme ss příkaz k zobrazení těchto informací. Na systémech, které se stále dodávají s netstat , použijete netstat příkaz.

Spuštění ss na našem testovacím systému ukazuje několik otevřených portů:

[root@rhel76test ~]# ss -tulnp --no-header | awk '{print($1, $5, $7)}'
udp  *:68            users:(("dhclient",pid=3316,fd=6))
udp  127.0.0.1:323   users:(("chronyd",pid=2974,fd=1))
udp  ::1:323         users:(("chronyd",pid=2974,fd=2))
tcp  *:22            users:(("sshd",pid=3523,fd=3))
tcp  127.0.0.1:25    users:(("master",pid=3771,fd=13))
tcp  :::22           users:(("sshd",pid=3523,fd=4))
tcp  ::1:25          users:(("master",pid=3771,fd=14))

Vypadá to, že základ RHEL 7.6 není špatný. Všimněte si ve druhém sloupci, některé z otevřených portů zobrazují IP a poté port a jiné mají * a pak přístav. Položky, které vypadají jako 127.0.0.1:25 znamená, že pouze poslouchají na localhost. Tento výsledek znamená, že nejsou vzdáleně přístupné. Služby, které vypadají jako *:22 znamená, že poslouchají na jakémkoli rozhraní. Podobně pro adresy IPv6 máme ::1:323 a :::22 . ::1 položky jsou localhost, ::: jsou široce otevřené.

To vše znamená, že tento systém má světu otevřené pouze dva porty IPv4 a jeden port IPv6. dhclient služba je pravděpodobně dobrým příkladem něčeho, co bychom mohli zakázat (což by zavřelo její port), ale pouze v případě, že váš server nepoužívá DHCP k získání své IP adresy. V případě mého testovacího serveru ano.

Zakázat služby

Výpis služeb a jejich zastavení/deaktivace je na Red Hat Enterprise Linux 7 poměrně snadné. Použijeme systemd vypíše všechny aktivní jednotky a pak mu řekne, aby zastavil a deaktivoval ty, které nechceme spouštět.

Chcete-li zobrazit seznam všech spuštěných služeb, můžete použít systemctl list-units --type=service --state=running . V mém testovacím systému výsledek ukazuje velmi skromných 19 služeb a většina z nich vypadá, že jsou nezbytné. Vybereme však jednu, kterou předvedeme:

[root@rhel76test ~]# systemctl list-units --type=service --state=running
UNIT                      LOAD   ACTIVE SUB DESCRIPTION
auditd.service            loaded active running Security Auditing Service
chronyd.service           loaded active running NTP client/server
crond.service             loaded active running Command Scheduler
dbus.service              loaded active running D-Bus System Message Bus
firewalld.service         loaded active running firewalld - dynamic firewall daemon
[email protected]        loaded active running Getty on tty1
lvm2-lvmetad.service      loaded active running LVM2 metadata daemon
NetworkManager.service    loaded active running Network Manager
polkit.service            loaded active running Authorization Manager
postfix.service           loaded active running Postfix Mail Transport Agent
qemu-guest-agent.service  loaded active running QEMU Guest Agent
rhnsd.service             loaded active running LSB: Starts the Spacewalk Daemon
rhsmcertd.service         loaded active running Enable periodic update of entitlement certificates.
rsyslog.service           loaded active running System Logging Service
sshd.service              loaded active running OpenSSH server daemon
systemd-journald.service  loaded active running Journal Service
systemd-logind.service    loaded active running Login Service
systemd-udevd.service     loaded active running udev Kernel Device Manager
tuned.service             loaded active running Dynamic System Tuning Daemon

Řekněme, že jsme nechtěli Postfix načítat při startu. Jednoduše bychom použili systemctl stop postfix a poté systemctl disable postfix , asi takhle:

[root@rhel76test ~]# systemctl stop postfix
[root@rhel76test ~]# systemctl disable postfix
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
[root@rhel76test ~]# systemctl list-units --type=service --state=running | grep postfix

Nyní pravděpodobně nebudete chtít deaktivovat Postfix, ale chápete to.

Zabalení

Tak, tady to máte. Dnes jsem se něco naučil:Po vybalení je Red Hat Enterprise Linux 7.6 pěkně úhledný a uklizený. Doufám, že jste se naučili vyhledávat a deaktivovat služby, abyste snížili plochu útoku.

Nalaďte se na další díl této série, kde budu hovořit o segmentaci sítě a firewallu

Děkujeme za přečtení!


Linux
  1. Jak zabezpečit své e-mailové služby Linux pomocí SSL/TLS

  2. Vydejte se na dobrodružství ve svém linuxovém terminálu

  3. 6 způsobů, jak zvýšit svůj výdělkový profil a potenciál správce systému Linux

  1. Používejte Linux ke své dani

  2. Zkontrolujte spuštěné služby v systému Linux

  3. 4 způsoby, jak zjistit, kdo je přihlášen ve vašem systému Linux

  1. 5 způsobů, jak rozdělit terminál Linux

  2. Nejúčinnější způsoby, jak snížit přehřívání notebooku v Linuxu

  3. Tři způsoby, jak snadno zašifrovat data v systému Linux