23 CentOS Server Hardening Sécherheetstips - Deel 2


Fortsetzung vum viregten Tutorial iwwer Wéi een CentOS Server sécheren an härden, an dësem Artikel diskutéiere mir aner Sécherheetstips déi op der ënnendrënner Checklëscht presentéiert ginn.

  1. 20 CentOS Server Hardening Sécherheetstips - Deel 1

21. Desaktivéiere nëtzlos SUID an SGID Kommandoen

Wann d'Setuid- a Setgid-Bits op binäre Programmer gesat ginn, kënnen dës Kommandoen Aufgaben mat anere Benotzer- oder Grupprechter ausféieren, sou wéi Root-Privilegien, déi sérieux Sécherheetsprobleemer ausstelle kënnen.

Dacks kënne Puffer iwwerrannt Attacke sou ausführbar Binären ausnotzen fir onerlaabte Code mat de Rechter vun engem Root Power Benotzer auszeféieren.

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

Fir de Setuid Bit ze deaktivéieren, fuert de Kommando ënnen aus:

# chmod u-s /path/to/binary_file

Fir de Setgid Bit ze deaktivéieren, fuert de Kommando ënnen:

# chmod g-s /path/to/binary_file

22. Iwwerpréift fir Unowned Dateien a Verzeichnungen

Dateien oder Verzeichnisser, déi net vun engem gëltege Kont gehéieren, musse geläscht oder zougewisen ginn mat Permissiounen vun engem Benotzer a Grupp.

Gitt de Kommando hei ënnen eraus fir Dateien oder Verzeichnisser ze lëschten ouni Benotzer a Grupp.

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

23. Lëscht World-Writeable Fichieren

Eng weltwäit schreiwen Datei um System ze halen kann geféierlech sinn wéinst der Tatsaach datt jiddereen se änneren kann. Fëllt de Kommando ënnen aus fir Wuert-schreiwenbare Dateien ze weisen, ausser Symlinks, déi ëmmer weltwäit schreiwenbar sinn.

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

24. Schafen staark Passwierder

Erstellt e Passwuert vun op d'mannst aacht Zeechen. D'Passwuert muss Zifferen, speziell Zeechen, an grouss Buschtawen enthalen. Benotzt pwmake fir e Passwuert vun 128 Bits aus /dev/urandom Datei ze generéieren.

# pwmake 128

25. Gëlle Strong Passwuert Politik

Kraaft de System fir staark Passwierder ze benotzen andeems Dir déi ënnescht Linn an der /etc/pam.d/passwd Datei bäidréit.

password required pam_pwquality.so retry=3

Wann Dir déi uewe genannte Linn bäidréit, kann d'Passwuert aginn net méi wéi 3 Zeechen an enger monotoner Sequenz enthalen, wéi abcd, a méi wéi 3 identesch konsekutiv Zeechen, wéi 1111.

Fir d'Benotzer ze zwéngen e Passwuert mat enger Mindestlängt vun 8 Zeechen ze benotzen, inklusiv all Klassen vun Zeechen, Stäerktkontrolle fir Zeechensequenzen a konsekutiv Zeeche fügen déi folgend Zeilen un d'Datei /etc/security/pwquality.conf.

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

26. Benotzt Passwuert Alterung

De Chage Kommando ka fir Benotzerpasswuertalterung benotzt ginn. Fir e Benotzerpasswuert ze setzen fir a 45 Deeg oflafen, benotzt de folgende Kommando:

# chage -M 45 username

Fir d'Verfallszäit vum Passwuert auszeschalten, benotzt de Kommando:

# chage -M -1 username

Force direkt Passwuert Oflaf (de Benotzer muss d'Passwuert beim nächste Login änneren) andeems Dir de folgende Kommando ausféiert:

# chage -d 0 username

27. Spär Konte

Benotzerkonten kënne gespaart ginn andeems Dir de passwd oder usermod Kommando ausféiert:

# passwd -l username
# usermod -L username

Fir Konten opzemaachen, benotzt d'Optioun -u fir Passwd Kommando an -U Optioun fir Usermod.

28. Verhënneren Konte Shell Zougang

Fir e Systemkonto (gewéinleche Kont oder Servicekonto) ze verhënneren fir Zougang zu enger Bash-Shell ze kréien, ännert d'Root-Shell op /usr/sbin/nologin oder /bin/false an der /etc/passwd Datei andeems Dir de Kommando hei ënnen ausgitt:

# usermod -s /bin/false username

Fir d'Schuel z'änneren wann Dir en neie Benotzer erstellt, gëtt de folgende Kommando aus:

# useradd -s /usr/sbin/nologin username

29. Spär Virtuell Benotzer Konsol mat vlock

vlock ass e Programm dee benotzt gëtt fir eng Multiple Sessioun op Linux Konsole ze spären. Installéiert de Programm a fänkt un Är Terminal Sessioun ze spären andeems Dir déi folgend Kommandoen ausféiert:

# yum install vlock
# vlock

30. Benotzt e zentraliséierte System fir Konten an Authentifikatioun ze managen

Mat engem zentraliséierten Authentifikatiounssystem kann d'Kontmanagement a Kontroll immens vereinfachen. Servicer déi dës Zort vu Kontverwaltung ubidden sinn IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS oder Winbind.

E puer vun dëse Servicer sinn par défaut héich geséchert mat kryptographesche Protokoller a symmetresche Schlësselkryptographie, sou wéi Kerberos.

31. Force Read-Nëmmen Opriichte vun USB Media

Mat dem Blockdev Utility kënnt Dir all eraushuelbare Medien forcéieren fir als Lies-nëmmen montéiert ze ginn. Zum Beispill, erstellt eng nei udev Konfiguratiounsdatei mam Numm 80-readonly-usb.rules am /etc/udev/rules.d/ Verzeichnis mat dem folgenden Inhalt:

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

Dann applizéiert d'Regel mat dem folgenden Kommando:

# udevadm control -reload

32. Root Zougang iwwer TTY auszeschalten

Fir ze verhënneren, datt de Root-Kont System Login iwwer all Konsolgeräter (TTY) ausféiert, läscht den Inhalt vun der Sécherheetsdatei andeems Dir déi folgend Kommandoterminalprompt als Root tippt.

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

Denkt drun datt dës Regel net fir SSH Login Sessiounen gëlt
Fir Root Login iwwer SSH ze verhënneren, ännert d'Datei /etc/ssh/sshd_config a füügt d'Linn hei drënner:

PermitRootLogin no

33. Benotzen POSIX ACLs System Permissiounen expandéiert

Zougangskontrolllëschte kënnen Zougangsrechter fir méi wéi nëmmen en eenzege Benotzer oder Grupp definéieren a kënne Rechter fir Programmer, Prozesser, Dateien an Verzeichnisser spezifizéieren. Wann Dir ACL op engem Verzeechnes setzt, ierwen seng Nokommen déi selwecht Rechter automatesch.

Zum Beispill,

# setfacl -m u:user:rw file
# getfacl file

34. Setup SELinux am Enforce Modus

D'SELinux Verbesserung vum Linux Kernel implementéiert d'Mundatory Access Control (MAC) Politik, wat d'Benotzer erlaabt eng Sécherheetspolitik ze definéieren déi granulär Permissiounen fir all Benotzer, Programmer, Prozesser, Dateien an Apparater ubitt.

Dem Kernel seng Zougangskontrollentscheedungen baséieren op all Sécherheetsrelevante Kontext an net op der authentifizéierter Benotzeridentitéit.

Fir de Selinux Status ze kréien an d'Politik ëmzesetzen, lafen déi folgend Kommandoen:

# getenforce
# setenforce 1
# sestatus

35. Installéiert SELinux Zousätzlech Utilities

Installéiert policycoreutils-python Package deen zousätzlech Python Utilities fir SELinux operéiert bitt: audit2allow, audit2why, chcat, a semanage.

Fir all boolesch Wäerter zesumme mat enger kuerzer Beschreiwung ze weisen, benotzt de folgende Kommando:

# semanage boolean -l

Zum Beispill, fir de Wäert vun httpd_enable_ftp_server ze weisen an ze setzen, fuert de Kommando ënnen:

# getsebool httpd_enable_ftp_server

Fir de Wäert vun engem boolesche Bestanddeel iwwer Neistarten ze maachen, spezifizéiert d'Optioun -P op setsebool, wéi am folgende Beispill illustréiert:

# setsebool -P httpd_enable_ftp_server on

36. Benotzt zentraliséiert Log Server

Konfiguréieren rsyslog Daemon fir sensibel Utilities Log Messagen op eng zentraliséiert Log Server ze schécken. Och iwwerwaacht Logdateien mat der Hëllef vum Logwatch Utility.

Schécken vun Log Messagen un e Remote Server garantéiert datt wann de System kompromittéiert ass, kënnen déi béiswëlleg Benotzer hir Aktivitéit net komplett verstoppen, ëmmer Spuren op Remote Log Dateien hannerloossen.

37. Aktivéiert Prozess Comptablesmethod

Aktivéiert Prozess Comptablesmethod vun Installatioun psacct Utility a benotzen lastcomm Kommando Informatiounen iwwert virdrun ausgefouert Kommandoen ze weisen wéi an der System Comptablesmethod Fichier opgeholl an sa fir Informatiounen iwwert virdrun ausgefouert Kommandoen ze resuméieren wéi an der System Comptablesmethod Fichier opgeholl.

38. Hardening /etc/sysctl.conf

Benotzt déi folgend Kernelparameterregele fir de System ze schützen:

net.ipv4.conf.all.accept_source_route=0
ipv4.conf.all.forwarding=0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Deaktivéiert d'Akzeptanz an d'Verschécken vun ICMP ëmgeleet Päckchen, ausser speziell erfuerderlech.

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

Ignoréieren all ICMP Echo Ufroen (op 1 gesat fir z'aktivéieren)

net.ipv4.icmp_echo_ignore_all = 0

39. Benotzt VPN Servicer fir Zougang zu Äre Raimlechkeeten iwwer ongeschützt ëffentlech Netzwierker

Benotzt ëmmer VPN Servicer fir Carrièren fir Remote Zougang zu LAN Raimlechkeeten iwwer den Internet. Esou Zorte vu Servicer kënne mat enger gratis Open Source Léisung konfiguréiert ginn, wéi Epel Repositories).

40. Extern System Scan ausféieren

Evaluéiert Är Systemsécherheet fir Schwachstelle andeems Dir de System vu Remote Punkten iwwer Ärem LAN scannt mat spezifesche Tools wéi:

  1. Nmap - Netzscanner 29 Beispiller vum Nmap Kommando
  2. Nessus - Sécherheetsscanner
  3. OpenVAS - benotzt fir Schwachstelle ze scannen a fir eng ëmfaassend Schwachstellemanagement.
  4. Nikto - en exzellente gemeinsame Gateway Interface (CGI) Skriptscanner Scan Web Vulnerabilitéit a Linux

41. Schützen System intern

Benotzt intern System Schutz géint Viren, Rootkits, Malware, an, als gutt Praxis, installéiert Intrusiounserkennungssystemer déi onerlaabt Aktivitéit entdecken kënnen (DDOS Attacken, Port Scans), wéi:

  1. AIDE - Advanced Intrusion Detection Environment - http://aide.sourceforge.net/
  2. ClamAV - Antivirus Scanner https://www.clamav.net
  3. Rkhunter - Rootkit Scanner
  4. Lynis - Sécherheetsaudit a Scannen Tool fir Linux
  5. Tripwire - Sécherheet an Dateintegritéit http://www.tripwire.com/
  6. Fail2Ban – Intrusion Network Prevention
  7. OSSEC - (HIDS) Host-baséiert Intrusion Detection System http://ossec.github.io/
  8. Mod_Security - Schützt Brute Force oder DDoS Attacken

42. Änneren Benotzer Ëmfeld Variablen

Fügt den Datum an d'Zäitformat un fir d'Ausféierung vun Kommandoen ze späicheren andeems Dir de folgende Kommando ausgitt:

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

Kraaft fir direkt HISTFILE opzehuelen all Kéier wann e Kommando getippt gëtt (amplaz ausloggen):

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

Limitéiert d'Timeout Login Sessioun. Automatesch d'Schuel ofschneiden wann keng Aktivitéit während enger Idle Zäitperiod ausgefouert gëtt. Ganz nëtzlech fir automatesch SSH Sessiounen ze trennen.

# echo ‘TMOUT=120’ >> .bashrc

Fëllt all d'Regele un andeems Dir ausféiert:

# source .bashrc

43. Backupsatellit Donnéeën

Benotzt LVM Snapshots, etc fir eng Kopie vun Ärem System ze späicheren, am léifsten offsite, am Fall vun engem Systemausfall.

Wann de System kompromittéiert gëtt, kënnt Dir Daten aus fréiere Backups restauréieren.

Schlussendlech, vergiesst net datt egal wéi vill Sécherheetsmoossnamen a Kontramoossnamen Dir maacht fir Äre System sécher ze halen, Dir wäert ni 100% komplett sécher sinn soulaang Är Maschinn ugeschloss an ugedriwwen ass.