Vyhledávání na webu

23 Tipy na zabezpečení serveru CentOS – část 2


V návaznosti na předchozí návod Jak zabezpečit a Harden CentOS server v tomto článku probereme další bezpečnostní tipy, které budou uvedeny v níže uvedeném kontrolním seznamu.

Požadavky

  1. 20 Bezpečnostních tipů CentOS Server Hardening – Část 1

21. Zakažte nepotřebné příkazy SUID a SGID

Pokud jsou bity setuid a setgid nastaveny na binárních programech, mohou tyto příkazy spouštět úlohy s jinými právy uživatele nebo skupiny, jako jsou oprávnění root, která může odhalit vážné bezpečnostní problémy.

Útoky s přetečením vyrovnávací paměti mohou často zneužít takové spustitelné binární soubory ke spuštění neoprávněného kódu s právy uživatele root.

find /  -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

Chcete-li zrušit nastavení bitu setuid, proveďte následující příkaz:

chmod u-s /path/to/binary_file

Chcete-li zrušit nastavení bitu setgid, spusťte níže uvedený příkaz:

chmod g-s /path/to/binary_file

22. Zkontrolujte, zda nemáte Nevlastněné soubory a adresáře

Soubory nebo adresáře, které nevlastní platný účet, musí být odstraněny nebo jim musí být přiřazena oprávnění od uživatele a skupiny.

Vydáním níže uvedeného příkazu find zobrazíte soubory nebo adresáře bez uživatele a skupiny.

find / -nouser -o -nogroup -exec ls -l {} \;

23. Vypište soubory World-Writeable

Ponechat v systému soubor, do kterého lze zapisovat, může být nebezpečné, protože je může kdokoli upravovat. Chcete-li zobrazit soubory zapisovatelné slovem, spusťte níže uvedený příkaz, kromě symlinků, do kterých lze vždy zapisovat do celého světa.

find / -path /proc -prune -o -perm -2 ! -type l –ls

24. Vytvořte silná hesla

Vytvořte heslo o minimální délce osmi znaků. Heslo musí obsahovat číslice, speciální znaky a velká písmena. Pomocí pwmake vygenerujte 128bitové heslo ze souboru /dev/urandom.

pwmake 128

25. Použijte zásady silného hesla

Přinutíte systém používat silná hesla přidáním níže uvedeného řádku do souboru /etc/pam.d/passwd.

password required pam_pwquality.so retry=3

Přidáním výše uvedeného řádku nesmí zadané heslo obsahovat více než 3 znaky v monotónní sekvenci, například abcd, a více než 3 stejné po sobě jdoucí znaky, například 1111.

Chcete-li přinutit uživatele, aby používali heslo s minimální délkou 8 znaků, včetně všech tříd znaků, zkontrolujte sílu sekvencí znaků a po sobě jdoucích znaků, přidejte následující řádky do /etc/security /pwquality.conf.

minlen = 8
minclass = 4
maxsequence = 3
maxrepeat = 3

26. Použijte stárnutí hesel

Příkaz chage lze použít pro stárnutí hesla uživatele. Chcete-li nastavit, aby platnost hesla uživatele vypršela za 45 dní, použijte následující příkaz:

chage -M 45 username

Chcete-li zakázat dobu platnosti hesla, použijte příkaz:

chage -M -1 username

Vynutit okamžité vypršení platnosti hesla (uživatel si musí heslo změnit při příštím přihlášení) spuštěním následujícího příkazu:

chage -d 0 username

27. Uzamčení účtů

Uživatelské účty lze uzamknout spuštěním příkazu passwd nebo usermod:

passwd -l username
usermod -L username

K odemknutí účtů použijte volbu -u pro příkaz passwd a volbu -U pro usermod.

28. Zabraňte přístupu do prostředí účtů

Chcete-li zabránit systémovému účtu (běžnému účtu nebo servisnímu účtu) získat přístup k shellu bash, změňte kořenový shell na /usr/sbin/nologin nebo /bin/false v soubor /etc/passwd zadáním příkazu níže:

usermod -s /bin/false username

Chcete-li změnit shell při vytváření nového uživatele, zadejte následující příkaz:

useradd -s /usr/sbin/nologin username

29. Uzamkněte virtuální uživatelskou konzoli pomocí vlock

vlock je program používaný k uzamčení jedné vícenásobné relace na konzole Linux. Nainstalujte program a začněte zamykat relaci terminálu spuštěním následujících příkazů:

yum install vlock
vlock

30. Ke správě účtů a ověřování používejte centralizovaný systém

Použití centralizovaného autentizačního systému může výrazně zjednodušit správu a kontrolu účtů. Služby, které mohou nabídnout tento typ správy účtů, jsou IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS nebo Winbind.

Některé z těchto služeb jsou ve výchozím nastavení vysoce zabezpečené pomocí kryptografických protokolů a kryptografie se symetrickým klíčem, jako je Kerberos.

31. Vynutit připojení USB média pouze pro čtení

Pomocí nástroje blockdev můžete vynutit připojení všech vyměnitelných médií jako pouze pro čtení. Vytvořte například nový konfigurační soubor udev s názvem 80-readonly-usb.rules v adresáři /etc/udev/rules.d/ s následujícím obsahem:

SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"

Poté aplikujte pravidlo pomocí níže uvedeného příkazu:

udevadm control -reload

32. Zakázání přístupu root přes TTY

Chcete-li zabránit účtu root v přihlášení do systému prostřednictvím všech konzolových zařízení (TTY), vymažte obsah souboru securetty zadáním následujícího příkazového terminálu jako root.

cp /etc/securetty /etc/securetty.bak
cat /dev/null > /etc/securetty

Pamatujte, že toto pravidlo se nevztahuje na přihlašovací relace SSH
Chcete-li zabránit přihlášení root přes SSH, upravte soubor /etc/ssh/sshd_config a přidejte následující řádek:

PermitRootLogin no

33. Použijte POSIX ACL k rozšíření systémových oprávnění

Přístupové seznamy mohou definovat přístupová práva pro více než jen jednoho uživatele nebo skupinu a mohou specifikovat práva pro programy, procesy, soubory a adresáře. Pokud nastavíte ACL na adresář, jeho potomci automaticky zdědí stejná práva.

Například,

setfacl -m u:user:rw file
getfacl file

34. Nastavte SELinux v režimu Enforce

Vylepšení SELinux linuxového jádra implementuje politiku povinného řízení přístupu (MAC), která uživatelům umožňuje definovat bezpečnostní politiku, která poskytuje podrobná oprávnění pro všechny uživatele, programy, procesy, soubory a zařízení.

Rozhodnutí jádra o řízení přístupu jsou založena na veškerém kontextu relevantním pro zabezpečení, nikoli na identitě ověřeného uživatele.

Chcete-li získat stav Selinux a vynutit zásady, spusťte níže uvedené příkazy:

getenforce
setenforce 1
sestatus

35. Nainstalujte další nástroje SELinux

Nainstalujte balíček policycoreutils-python, který poskytuje další nástroje Pythonu pro provoz SELinux: audit2allow, audit2why, chcat a správa.

Chcete-li zobrazit všechny booleovské hodnoty spolu s krátkým popisem, použijte následující příkaz:

semanage boolean -l

Chcete-li například zobrazit a nastavit hodnotu httpd_enable_ftp_server, spusťte níže uvedený příkaz:

getsebool httpd_enable_ftp_server

Chcete-li, aby hodnota boolean přetrvala i po restartu, zadejte volbu -P na setsebool, jak je znázorněno na následujícím příkladu:

setsebool -P httpd_enable_ftp_server on

36. Použijte centralizovaný server protokolů

Nakonfigurujte démona rsyslog tak, aby odesílal citlivé protokolové zprávy obslužných programů na centralizovaný protokolový server. Také sledujte soubory protokolu pomocí nástroje logwatch.

Odesílání zpráv protokolu na vzdálený server zajišťuje, že jakmile byl systém napaden, uživatelé se zlými úmysly nemohou zcela skrýt svou činnost a vždy zanechají stopy ve vzdálených souborech protokolu.

37. Povolte účtování procesů

Povolte účtování procesů instalací nástroje psacct a použijte příkaz lastcomm k zobrazení informací o dříve provedených příkazech, jak jsou zaznamenány v systémovém účetním souboru, a sa ke shrnutí informací o dříve provedených příkazech, jak jsou zaznamenány. v systémovém účetním souboru.

38. Kalení /etc/sysctl.conf

K ochraně systému použijte následující pravidla parametrů jádra:

Zakázání směrování zdroje

net.ipv4.conf.all.accept_source_route=0

Zakázat předávání IPv4

ipv4.conf.all.forwarding=0

Zakázat IPv6

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Zakažte přijímání a odesílání paketů přesměrovaných ICMP, pokud to není výslovně vyžadováno.

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0

Zakázat přesměrování zpětné cesty

net.ipv4.conf.all.rp_filter=2

Ignorovat všechny požadavky ICMP echo (nastavením na 1 povolit)

net.ipv4.icmp_echo_ignore_all = 0

39. Použijte služby VPN pro přístup k vašemu areálu přes nechráněné veřejné sítě

Vždy používejte služby VPN pro operátory ke vzdálenému přístupu do prostor LAN přes internet. Takové typy služeb lze konfigurovat pomocí bezplatného řešení s otevřeným zdrojovým kódem, jako je OpenVPN, nebo pomocí proprietárního řešení, jako je Cisco VPN (nainstalujte si nástroj příkazového řádku vpnc poskytovaný společností Epel Repositories).

40. Proveďte kontrolu externího systému

Vyhodnoťte zabezpečení vašeho systému z hlediska zranitelnosti skenováním systému ze vzdálených bodů přes vaši LAN pomocí specifických nástrojů, jako jsou:

  1. Nmap – síťový skener 29 Příklady příkazu Nmap
  2. Nessus – bezpečnostní skener
  3. OpenVAS – používá se pro vyhledávání zranitelností a pro komplexní správu zranitelností.
  4. Nikto – vynikající skener skriptů rozhraní CGI (Common Gateway Interface) Skenování zranitelnosti webu v Linuxu

41. Chraňte systém interně

Používejte interní ochranu systému proti virům, rootkitům, malwaru a osvědčeným postupem instalujte systémy detekce narušení, které dokážou detekovat neoprávněnou aktivitu (útoky DDOS, skenování portů), jako jsou:

  1. AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
  2. ClamAV – Antivirový skener https://www.clamav.net
  3. Rkhunter – Rootkit Scanner
  4. Lynis – Nástroj pro audit a kontrolu zabezpečení pro Linux
  5. Tripwire – Zabezpečení a integrita dat http://www.tripwire.com/
  6. Fail2Ban – Prevence narušení sítě
  7. OSSEC – (HIDS) Host-based Intrusion Detection System http://ossec.github.io/
  8. Mod_Security – Chraňte hrubou silou nebo útoky DDoS

42. Upravte proměnné uživatelského prostředí

Připojte formát datum a čas pro uložení provádění příkazů zadáním níže uvedeného příkazu:

echo 'HISTTIMEFORMAT="%d/%m/%y  %T  "' >> .bashrc'

Vynutit okamžitý záznam HISTFILE při každém zadání příkazu (místo odhlášení):

echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc

Omezte časový limit přihlášení. Automaticky strhnout skořepinu, když není během doby nečinnosti prováděna žádná aktivita. Velmi užitečné pro automatické odpojení relací SSH.

echo ‘TMOUT=120’ >> .bashrc

Aplikujte všechna pravidla provedením:

source .bashrc

43. Zálohování dat

Použijte zálohovací nástroje, jako jsou tar, cat, rsync, scp, snímky LVM atd., abyste si uložili kopii svého systému, nejlépe mimo pracoviště, pro případ selhání systému.

Pokud dojde ke kompromitaci systému, můžete provést obnovu dat z předchozích záloh.

A konečně, nezapomeňte, že bez ohledu na to, kolik bezpečnostních opatření a protiopatření podniknete, abyste udrželi svůj systém v bezpečí, nikdy nebudete 100% zcela v bezpečí, pokud bude váš stroj zapojen do zásuvky a zapnut.