25 Sikkerhetstips for herding for Linux-servere


Alle sier at Linux er sikkert som standard og godtatt til en viss grad (det er diskutable emner). Imidlertid har Linux en innebygd sikkerhetsmodell på plass som standard. Trenger å justere det og tilpasse etter ditt behov, noe som kan bidra til å gjøre systemet sikrere. Linux er vanskeligere å administrere, men tilbyr mer fleksibilitet og konfigurasjonsalternativer.

Å sikre et system i en produksjon fra hendene til hackere og crackere er en utfordrende oppgave for en systemadministrator. Dette er vår første artikkel relatert til "Hvordan sikre Linux-boks" eller "Hardening a Linux Box". I dette innlegget vil vi forklare 25 nyttige tips og triks for å sikre Linux-systemet ditt. Håper tips og triks nedenfor vil hjelpe deg litt for å sikre systemet ditt.

1. Fysisk systemsikkerhet

Konfigurer BIOS for å deaktivere oppstart fra CD/DVD, Eksterne enheter, diskettstasjon i BIOS<. Deretter aktiverer du BIOS-passord og beskytter også GRUB med passord for å begrense fysisk tilgang til systemet ditt.

  1. Sett GRUB-passord for å beskytte Linux-servere

2. Diskpartisjoner

Det er viktig å ha forskjellige partisjoner for å oppnå høyere datasikkerhet i tilfelle en katastrofe skulle skje. Ved å lage forskjellige partisjoner kan data separeres og grupperes. Når en uventet ulykke inntreffer, vil bare data fra den partisjonen bli skadet, mens dataene på andre partisjoner overlevde. Sørg for at du må ha følgende separate partisjoner og sørg for at tredjepartsapplikasjoner skal installeres på separate filsystemer under /opt.

/
/boot
/usr
/var
/home
/tmp
/opt

3. Minimer pakker for å minimere sårbarhet

Vil du virkelig ha alle slags tjenester installert?. Det anbefales å unngå å installere ubrukelige pakker for å unngå sårbarheter i pakker. Dette kan minimere risikoen for at kompromittering av én tjeneste kan føre til kompromittering av andre tjenester. Finn og fjern eller deaktiver uønskede tjenester fra serveren for å minimere sårbarheten. Bruk 'chkconfig'-kommandoen for å finne ut tjenester som kjører på runlevel 3.

/sbin/chkconfig --list |grep '3:on'

Når du har funnet ut at noen uønskede tjenester kjører, deaktiverer du dem ved å bruke følgende kommando.

chkconfig serviceName off

Bruk RPM-pakkebehandlingen som «yum» eller «apt-get»-verktøy for å liste opp alle installerte pakker på et system og fjerne dem ved å bruke følgende kommando.

yum -y remove package-name
sudo apt-get remove package-name
  1. 5 chkconfig Kommandoeksempler
  2. 20 Praktiske eksempler på RPM-kommandoer
  3. 20 Linux YUM-kommandoer for Linux Package Management
  4. 25 APT-GET- og APT-CACHE-kommandoer for å administrere pakkehåndtering

4. Merk av for Lyttenettverksporter

Ved hjelp av «netstat» nettverkskommando kan du se alle åpne porter og tilhørende programmer. Som jeg sa ovenfor, bruk 'chkconfig'-kommandoen for å deaktivere alle uønskede nettverkstjenester fra systemet.

netstat -tulpn
  1. 20 Netstat-kommandoer for nettverksadministrasjon i Linux

5. Bruk Secure Shell (SSH)

Telnet og rlogin-protokollene bruker ren tekst, ikke kryptert format som er sikkerhetsbruddene. SSH er en sikker protokoll som bruker krypteringsteknologi under kommunikasjon med serveren.

Logg aldri på direkte som root med mindre det er nødvendig. Bruk «sudo» for å utføre kommandoer. sudo er spesifisert i /etc/sudoers-filen kan også redigeres med «visudo»-verktøyet som åpnes i VI-editoren.

Det anbefales også å endre standard SSH 22-portnummer med et annet portnummer på høyere nivå. Åpne hovedkonfigurasjonsfilen for SSH og lag noen følgende parametere for å begrense brukernes tilgang.

vi /etc/ssh/sshd_config
Deaktiver root-pålogging
PermitRootLogin no
Tillat bare spesifikke brukere
AllowUsers username
Bruk SSH Protocol 2 versjon
Protocol 2
  1. 5 beste fremgangsmåter for å sikre og beskytte SSH-serveren

6. Hold systemet oppdatert

Hold alltid systemet oppdatert med siste utgivelsesoppdateringer, sikkerhetsrettinger og kjerne når det er tilgjengelig.

yum updates
yum check-update

7. Lockdown Cronjobs

Cron har sin egen innebygde funksjon, der den lar deg spesifisere hvem som kan, og hvem som kanskje ikke vil kjøre jobber. Dette kontrolleres av bruken av filer kalt /etc/cron.allow og /etc/cron.deny. For å låse en bruker som bruker cron, legg til brukernavn i cron.deny og for å la en bruker kjøre cron add i cron.allow-filen. Hvis du vil deaktivere alle brukere fra å bruke cron, legger du til «ALL»-linjen i cron.deny-filen.

echo ALL >>/etc/cron.deny
  1. 11 Cron-planleggingseksempler i Linux

8. Deaktiver USB-pinne for å oppdage

Mange ganger skjer det at vi ønsker å begrense brukere fra å bruke USB-pinne i systemer for å beskytte og sikre data fra å stjele. Opprett en fil «/etc/modprobe.d/no-usb» og å legge til under linjen vil ikke oppdage USB-lagring.

install usb-storage /bin/true

9. Slå på SELinux

Sikkerhetsforbedret Linux (SELinux) er en obligatorisk sikkerhetsmekanisme for tilgangskontroll gitt i kjernen. Å deaktivere SELinux betyr å fjerne sikkerhetsmekanismen fra systemet. Tenk deg nøye om to ganger før du fjerner, hvis systemet ditt er koblet til internett og tilgjengelig for publikum, så tenk litt mer på det.

SELinux gir tre grunnleggende driftsmoduser, og det er de.

  1. Håndheving: Dette er standardmodus som aktiverer og håndhever sikkerhetspolicyen SELinux på maskinen.
  2. Tillatende: I denne modusen vil ikke SELinux håndheve sikkerhetspolicyen på systemet, kun advare og logge handlinger. Denne modusen er veldig nyttig når det gjelder feilsøking av SELinux-relaterte problemer.
  3. Deaktivert: SELinux er slått av.

Du kan se gjeldende status for SELinux-modus fra kommandolinjen ved å bruke "system-config-selinux", "getenforce" eller " sestatus' kommandoer.

sestatus

Hvis den er deaktivert, aktiver SELinux ved å bruke følgende kommando.

setenforce enforcing

Den kan også administreres fra «/etc/selinux/config»-filen, hvor du kan aktivere eller deaktivere den.

10. Fjern KDE/GNOME-skrivebord

Det er ikke nødvendig å kjøre X Window skrivebord som KDE eller GNOME på din dedikerte LAMP-server. Du kan fjerne eller deaktivere dem for å øke serversikkerheten og ytelsen. For å deaktivere enkelt, åpne filen «/etc/inittab» og sett kjørenivået til 3. Hvis du ønsker å fjerne den helt fra systemet, bruk kommandoen nedenfor.

yum groupremove "X Window System"

11. Slå av IPv6

Hvis du ikke bruker en IPv6-protokoll, bør du deaktivere den fordi de fleste applikasjonene eller policyene ikke krever IPv6-protokollen og for øyeblikket ikke kreves på serveren . Gå til nettverkskonfigurasjonsfilen og legg til følgende linjer for å deaktivere den.

vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

12. Begrens brukere til å bruke gamle passord

Dette er veldig nyttig hvis du vil nekte brukere å bruke samme gamle passord. Den gamle passordfilen ligger på /etc/security/opasswd. Dette kan oppnås ved å bruke PAM-modulen.

Åpne '/etc/pam.d/system-auth'-filen under RHEL/CentOS/Fedora.

vi /etc/pam.d/system-auth

Åpne '/etc/pam.d/common-password'-filen under Ubuntu/Debian/Linux Mint.

vi /etc/pam.d/common-password

Legg til følgende linje i «authort»-delen.

auth        sufficient    pam_unix.so likeauth nullok

Legg til følgende linje i «passord»-delen for å hindre en bruker i å gjenbruke siste 5 passord til hans eller hennes.

password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5

Bare siste 5 passord huskes av serveren. Hvis du prøvde å bruke noen av de siste 5 gamle passordene, vil du få en feilmelding som.

Password has been already used. Choose another.

13. Hvordan sjekke passordutløpet til brukeren

I Linux lagres brukerens passord i «/etc/shadow»-filen i kryptert format. For å sjekke passordutløpet til brukerens, må du bruke «chage»-kommandoen. Den viser informasjon om passordets utløpsdato sammen med siste passordendringsdato. Disse opplysningene brukes av systemet for å bestemme når en bruker må endre passordet sitt.

For å se en eksisterende brukers aldringsinformasjon som utløpsdato og tid, bruk følgende kommando.

#chage -l username

For å endre passordaldring for en bruker, bruk følgende kommando.

#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
Parametere
  1. -M Angi maksimalt antall dager
  2. -m Angi minimum antall dager
  3. -W Angi antall dager med advarsel

14. Lås og lås opp konto manuelt

Låse- og låsefunksjonene er veldig nyttige, i stedet for å fjerne en konto fra systemet, kan du låse den i en uke eller en måned. For å låse en bestemt bruker kan du bruke følg-kommandoen.

passwd -l accountName

Merk : Den låste brukeren er fortsatt bare tilgjengelig for root-brukere. Låsingen utføres ved å erstatte kryptert passord med en (!) streng. Hvis noen prøver å få tilgang til systemet ved hjelp av denne kontoen, vil han få en feilmelding som ligner på nedenfor.

su - accountName
This account is currently not available.

For å låse opp eller aktivere tilgang til en låst konto, bruk kommandoen som. Dette vil fjerne (!) streng med kryptert passord.

passwd -u accountName

15. Håndheve sterkere passord

En rekke brukere bruker myke eller svake passord, og passordet deres kan bli hacket med ordbokbasert eller brute-force-angrep. «pam_cracklib»-modulen er tilgjengelig i PAM (Plugbare autentiseringsmoduler) modulstabel som vil tvinge brukeren til å angi sterke passord. Åpne følgende fil med en editor.

Les også:

vi /etc/pam.d/system-auth

Og legg til linje ved å bruke kredittparametere som henholdsvis (lcredit, ucredit, dcredit og/eller ocredit små bokstaver) , store bokstaver, siffer og annet)

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16. Aktiver Iptables (brannmur)

Det anbefales sterkt å aktivere Linux-brannmur for å sikre uautorisert tilgang til serverne dine. Bruk regler i iptables på filtre for innkommende, utgående og videresending pakker. Vi kan spesifisere kilden og destinasjonsadressen for å tillate og nekte i spesifikt udp/tcp portnummer.

  1. Grunnleggende IPTables-veiledning og tips

17. Deaktiver Ctrl+Alt+Delete i Inittab

I de fleste Linux-distribusjoner vil et trykk på «CTRL-ALT-DELETE» ta systemet til omstart. Så det er ikke en god idé å ha dette alternativet aktivert i det minste på produksjonsservere, hvis noen ved en feiltakelse gjør dette.

Dette er definert i '/etc/inittab'-filen, hvis du ser nøye i den filen vil du se en linje som ligner på nedenfor. Linjen er som standard ikke kommentert ut. Vi må kommentere det. Denne spesielle nøkkelsekvenssignaleringen vil stenge et system.

Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18. Sjekke kontoer for tomme passord

Enhver konto som har et tomt passord betyr at det er åpnet for uautorisert tilgang til alle på nettet, og det er en del av sikkerheten på en Linux-server. Så du må sørge for at alle kontoer har sterke passord og at ingen har autorisert tilgang. Tomme passordkontoer er sikkerhetsrisikoer, og det kan enkelt hackes. For å sjekke om det var noen kontoer med tomt passord, bruk følgende kommando.

cat /etc/shadow | awk -F: '($2==""){print $1}'

19. Vis SSH-banner før pålogging

Det er alltid en bedre idé å ha et lovlig banner eller sikkerhetsbannere med noen sikkerhetsadvarsler før SSH-autentisering. For å sette slike bannere, les følgende artikkel.

  1. Vis SSH-advarselsmelding til brukere

20. Overvåk brukeraktiviteter

Hvis du har å gjøre med mange brukere, er det viktig å samle inn informasjonen om hver brukeraktivitet og prosess som forbrukes av dem og analysere dem på et senere tidspunkt eller i tilfelle noen form for ytelse, sikkerhetsproblemer. Men hvordan vi kan overvåke og samle informasjon om brukeraktiviteter.

Det er to nyttige verktøy kalt 'psacct' og 'acct' brukes til å overvåke brukeraktiviteter og prosesser på et system. Disse verktøyene kjører i systembakgrunn og sporer kontinuerlig hver brukeraktivitet på et system og ressurser som forbrukes av tjenester som Apache, MySQL, SSH, FTP osv. For mer informasjon om installasjon, konfigurasjon og bruk, besøk URL-en nedenfor.

  1. Overvåk brukeraktivitet med psacct- eller acct-kommandoer

21. Gjennomgå logger regelmessig

Flytt logger i dedikert loggserver, dette kan hindre inntrengere i å enkelt endre lokale logger. Nedenfor er det vanlige Linux-standardloggfilnavnet og bruken av dem:

  1. /var/log/message – Hvor hele systemlogger eller gjeldende aktivitetslogger er tilgjengelige.
  2. /var/log/auth.log – Autentiseringslogger.
  3. /var/log/kern.log – Kjernelogger.
  4. /var/log/cron.log – Crond-logger (cron-jobb).
  5. /var/log/maillog – E-postserverlogger.
  6. /var/log/boot.log – Systemoppstartslogg.
  7. /var/log/mysqld.log – MySQL-databaseserverloggfil.
  8. /var/log/secure – Autentiseringslogg.
  9. /var/log/utmp eller /var/log/wtmp : Fil påloggingsposter.
  10. /var/log/yum.log: Yum-loggfiler.

22. Viktig sikkerhetskopi av filen

I et produksjonssystem er det nødvendig å ta sikkerhetskopi av viktige filer og oppbevare dem i sikkerhetshvelvet, eksternt sted eller utenfor stedet for gjenoppretting av katastrofer.

23. NIC Bonding

Det er to typer modus i NIC-binding, må nevnes i bindingsgrensesnitt.

  1. mode=0 – Round Robin
  2. modus=1 – Aktiv og sikkerhetskopi

NIC Bonding hjelper oss å unngå enkeltpunkt for feil. I NIC-binding binder vi to eller flere Nettverks-Ethernet-kort sammen og lager ett enkelt virtuelt grensesnitt der vi kan tilordne IP-adresser for å snakke med andre servere. Nettverket vårt vil være tilgjengelig i tilfelle ett NIC-kort er nede eller utilgjengelig av en eller annen grunn.

Les også: Lag NIC Channel Bonding i Linux

24. Behold /boot som skrivebeskyttet

Linux-kjernen og dens relaterte filer er i katalogen /boot, som som standard er lese-skrive. Å endre den til skrivebeskyttet reduserer risikoen for uautorisert endring av kritiske oppstartsfiler. For å gjøre dette, åpne «/etc/fstab»-filen.

vi /etc/fstab

Legg til følgende linje nederst, lagre og lukk den.

LABEL=/boot     /boot     ext2     defaults,ro     1 2

Vær oppmerksom på at du må tilbakestille endringen til lese-skrive hvis du trenger å oppgradere kjernen i fremtiden.

25. Ignorer ICMP- eller kringkastingsforespørsel

Legg til følgende linje i «/etc/sysctl.conf»-filen for å ignorere ping eller kringkasting-forespørsel.

Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1

Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1

Last inn nye innstillinger eller endringer ved å kjøre følgende kommando

#sysctl -p

Hvis du har gått glipp av et viktig sikkerhets- eller herdetips i listen ovenfor, eller du har andre tips som må inkluderes i listen. Vennligst slipp dine kommentarer i kommentarfeltet vårt. TecMint er alltid interessert i å motta kommentarer, forslag samt diskusjoner for forbedring.