23 CentOS Server Hardening Sikkerhetstips - Del 2


Fortsetter den forrige opplæringen om hvordan du sikrer og herder CentOS-serveren, i denne artikkelen vil vi diskutere andre sikkerhetstips som vil bli presentert på sjekklisten nedenfor.

Krav

  1. 20 CentOS Server Hardening Sikkerhetstips – Del 1

21. Deaktiver ubrukelige SUID- og SGID-kommandoer

Hvis setuid- og setgid-bitene er satt på binære programmer, kan disse kommandoene kjøre oppgaver med andre bruker- eller grupperettigheter, for eksempel root-privilegier som kan avdekke alvorlige sikkerhetsproblemer.

Ofte kan bufferoverløpsangrep utnytte slike kjørbare binære filer for å kjøre uautorisert kode med rettighetene til en root-power-bruker.

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

For å deaktivere setuid-biten, utfør kommandoen nedenfor:

chmod u-s /path/to/binary_file

For å deaktivere setgid-biten, kjør kommandoen nedenfor:

chmod g-s /path/to/binary_file

22. Se etter ueide filer og kataloger

Filer eller kataloger som ikke eies av en gyldig konto, må slettes eller tildeles med tillatelser fra en bruker og gruppe.

Utfør finn-kommandoen nedenfor for å liste filer eller kataloger uten bruker og gruppe.

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

23. Liste verdens-skrivbare filer

Å beholde en verdensskrivbar fil på systemet kan være farlig på grunn av det faktum at hvem som helst kan endre dem. Utfør kommandoen nedenfor for å vise filer som kan skrives i ord, bortsett fra Symlinks, som alltid er skrivbare i verden.

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

24. Lag sterke passord

Lag et passord på minimum åtte tegn. Passordet må inneholde sifre, spesialtegn og store bokstaver. Bruk pwmake for å generere et passord på 128 biter fra filen /dev/urandom.

pwmake 128

25. Bruk sterk passordpolicy

Tving systemet til å bruke sterke passord ved å legge til linjen under i filen /etc/pam.d/passwd.

password required pam_pwquality.so retry=3

Hvis du legger til linjen ovenfor, kan passordet som er angitt ikke inneholde mer enn 3 tegn i en monoton sekvens, for eksempel abcd, og mer enn 3 identiske påfølgende tegn, for eksempel 1111.

For å tvinge brukere til å bruke et passord med en minimumslengde på 8 tegn, inkludert alle klasser av tegn, styrkesjekk for tegnsekvenser og påfølgende tegn legg til følgende linjer i /etc/security /pwquality.conf-fil.

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

26. Bruk passordaldring

Chage-kommandoen kan brukes for aldring av brukerpassord. For å angi at en brukers passord skal utløpe om 45 dager, bruk følgende kommando:

chage -M 45 username

For å deaktivere passordets utløpstid, bruk kommandoen:

chage -M -1 username

Tving umiddelbar passordutløp (brukeren må endre passordet ved neste pålogging) ved å kjøre følgende kommando:

chage -d 0 username

27. Lås kontoer

Brukerkontoer kan låses ved å utføre kommandoen passwd eller usermod:

passwd -l username
usermod -L username

For å låse opp kontoer, bruk -u-alternativet for passwd-kommandoen og -U-alternativet for usermod.

28. Forhindre Shell-tilgang til kontoer

For å forhindre at en systemkonto (vanlig konto eller tjenestekonto) får tilgang til et bash-skall, endrer du rotskall til /usr/sbin/nologin eller /bin/false i /etc/passwd-filen ved å utstede kommandoen nedenfor:

usermod -s /bin/false username

For å endre skallet når du oppretter en ny bruker, utsted følgende kommando:

useradd -s /usr/sbin/nologin username

29. Lås virtuell brukerkonsoll med vlock

vlock er et program som brukes til å låse én flere økter på Linux-konsollen. Installer programmet og begynn å låse terminaløkten din ved å kjøre kommandoene nedenfor:

yum install vlock
vlock

30. Bruk et sentralisert system for å administrere kontoer og autentisering

Bruk av et sentralisert autentiseringssystem kan i stor grad forenkle kontoadministrasjon og kontroll. Tjenester som kan tilby denne typen kontoadministrasjon er IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS eller Winbind.

Noen av disse tjenestene er som standard svært sikret med kryptografiske protokoller og symmetrisk nøkkelkryptering, for eksempel Kerberos.

31. Tving skrivebeskyttet montering av USB-medier

Ved å bruke blockdev-verktøyet kan du tvinge alle flyttbare medier til å monteres som skrivebeskyttet. Lag for eksempel en ny udev konfigurasjonsfil kalt 80-readonly-usb.rules i katalogen /etc/udev/rules.d/ med følgende innhold:

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

Bruk deretter regelen med kommandoen nedenfor:

udevadm control -reload

32. Deaktivering av rottilgang via TTY

For å forhindre at root-kontoen utfører systempålogging via alle konsollenheter (TTY), slett innholdet i sikkerhetsfilen ved å skrive inn følgende ledetekst som root.

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

Husk at denne regelen ikke gjelder for SSH-påloggingsøkter
For å forhindre rotpålogging via SSH, rediger filen /etc/ssh/sshd_config og legg til linjen nedenfor:

PermitRootLogin no

33. Bruk POSIX ACLer for å utvide systemtillatelser

Tilgangskontrolllister kan definere tilgangsrettigheter for mer enn bare en enkelt bruker eller gruppe og kan spesifisere rettigheter for programmer, prosesser, filer og kataloger. Hvis du setter ACL på en katalog, vil dens etterkommere automatisk arve de samme rettighetene.

For eksempel,

setfacl -m u:user:rw file
getfacl file

34. Sett opp SELinux i Enforce Mode

SELinux-forbedringen til Linux-kjernen implementerer policyen for Mandatory Access Control (MAC), som lar brukere definere en sikkerhetspolicy som gir granulære tillatelser for alle brukere, programmer, prosesser, filer og enheter.

Kjernens tilgangskontrollbeslutninger er basert på all sikkerhetsrelevant kontekst og ikke på den autentiserte brukeridentiteten.

For å få Selinux-status og håndheve policy, kjør kommandoene nedenfor:

getenforce
setenforce 1
sestatus

35. Installer SELinux tilleggsverktøy

Installer pakken policycoreutils-python som gir ytterligere Python-verktøy for drift av SELinux: audit2allow, audit2why, chcat og semanage.

For å vise alle boolske verdier sammen med en kort beskrivelse, bruk følgende kommando:

semanage boolean -l

For for eksempel å vise og angi verdien til httpd_enable_ftp_server, kjør kommandoen nedenfor:

getsebool httpd_enable_ftp_server

For å få verdien til en boolsk verdi ved omstart, spesifiser -P-alternativet til setsebool, som illustrert i følgende eksempel:

setsebool -P httpd_enable_ftp_server on

36. Bruk sentralisert loggserver

Konfigurer rsyslog-demonen til å sende sensitive verktøyloggmeldinger til en sentralisert loggserver. Overvåk også loggfiler ved hjelp av logwatch-verktøyet.

Å sende loggmeldinger til en ekstern server sikrer at når systemet først har blitt kompromittert, kan de ondsinnede brukerne ikke skjule aktiviteten sin fullstendig, og etterlater alltid spor på eksterne loggfiler.

37. Aktiver prosessregnskap

Aktiver prosessregnskap ved å installere psacct-verktøyet og bruk kommandoen lastcomm for å vise informasjon om tidligere utførte kommandoer som er registrert i systemregnskapsfilen og sa for å oppsummere informasjon om tidligere utførte kommandoer som registrert i systemregnskapsfilen.

38. Herding /etc/sysctl.conf

Bruk følgende kjerneparameterregler for å beskytte systemet:

Deaktiverer kilderuting

net.ipv4.conf.all.accept_source_route=0

Deaktiver IPv4-videresending

ipv4.conf.all.forwarding=0

Deaktiver IPv6

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

Deaktiver aksept og sending av ICMP-omdirigerte pakker med mindre det er spesifikt nødvendig.

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

Deaktiver Reverse Path Forwarding

net.ipv4.conf.all.rp_filter=2

Ignorer alle ICMP-ekkoforespørsler (sett til 1 for å aktivere)

net.ipv4.icmp_echo_ignore_all = 0

39. Bruk VPN-tjenester for å få tilgang til lokalene dine over ubeskyttede offentlige nettverk

Bruk alltid VPN-tjenester for operatører for ekstern tilgang til LAN-lokaler over Internett. Slike typer tjenester kan konfigureres ved hjelp av en gratis åpen kildekode-løsning, for eksempel OpenVPN, eller ved å bruke en proprietær løsning, for eksempel Cisco VPN (installer vpnc kommandolinjeverktøy levert av Epel Repositories).

40. Utfør ekstern systemskanning

Evaluer systemsikkerheten for sårbarheter ved å skanne systemet fra eksterne punkter over LANet ditt ved å bruke spesifikke verktøy som:

  1. Nmap – nettverksskanner 29 Eksempler på Nmap Command
  2. Nessus – sikkerhetsskanner
  3. OpenVAS – brukes til å skanne etter sårbarheter og for omfattende sårbarhetsadministrasjon.
  4. Nikto – en utmerket felles gateway interface (CGI) skriptskanner Scan Web Vulnerability i Linux

41. Beskytt systemet internt

Bruk intern systembeskyttelse mot virus, rootkits, skadelig programvare, og installer, som en god praksis, inntrengningsdeteksjonssystemer som kan oppdage uautorisert aktivitet (DDOS-angrep, portskanning), for eksempel:

  1. AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
  2. ClamAV – Antivirusskanner https://www.clamav.net
  3. Rkhunter – Rootkit-skanner
  4. Lynis – Verktøy for sikkerhetsrevisjon og skanning for Linux
  5. Tripwire – Sikkerhet og dataintegritet http://www.tripwire.com/
  6. Fail2Ban – Intrusion Network Prevention
  7. OSSEC – (HIDS) vertsbasert inntrengningsdeteksjonssystem http://ossec.github.io/
  8. Mod_Security – Beskytt Brute Force- eller DDoS-angrep

42. Endre brukermiljøvariabler

Legg til formatet dato og klokkeslett for å lagre kjøring av kommandoer ved å gi kommandoen nedenfor:

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

Tving til umiddelbart å registrere HISTFILE hver gang en kommando skrives (i stedet for å logge ut):

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

Begrens påloggingsøkten for tidsavbrudd. Riv ned skallet automatisk når ingen aktivitet utføres i en inaktiv tidsperiode. Veldig nyttig for automatisk å koble fra SSH-økter.

echo ‘TMOUT=120’ >> .bashrc

Bruk alle reglene ved å utføre:

source .bashrc

43. Sikkerhetskopier data

Bruk sikkerhetskopieringsverktøy, som tar, cat, rsync, scp, LVM-øyeblikksbilder, osv. for å lagre en kopi av systemet ditt, fortrinnsvis utenfor stedet, i tilfelle systemfeil.

Hvis systemet blir kompromittert, kan du utføre datagjenoppretting fra tidligere sikkerhetskopier.

Til slutt, ikke glem at uansett hvor mange sikkerhetstiltak og kontratiltak du tar for å holde systemet ditt trygt, vil du aldri være 100 % helt sikker så lenge maskinen er koblet til og slått på.