Linux hardening: 15-vaiheinen tarkistuslista turvalliselle Linux-palvelimelle

Gus Khawaja

useimmat ihmiset olettavat Linux on turvallinen, ja se on väärä oletus. Kuvittele, että kannettava tietokone on varastettu ilman, että se on ensin kovettunut. Varas luultavasti olettaa Käyttäjätunnuksesi on ” root ”ja salasanasi on” toor ” koska se on oletussalasana Kali ja useimmat ihmiset käyttävät sitä edelleen. Tiedätkö sinä? Toivottavasti ei.

Kali Linux-isännän kovettamisen kielteiset uravaikutukset ovat vakavia, joten Jaan tarvittavat toimenpiteet Linux-isännän suojaamiseksi, mukaan lukien miten käytän penetraatiotestausta ja Kali Linuxia työn tekemiseksi. On tärkeää huomata, että vaikka ne ovat monia Linuxin jakeluja (eli distroja) ja jokainen niistä eroaa komentorivin näkökulmasta, logiikka on sama. Käytä seuraavia vinkkejä kovettaa Oman Linux box.

1-dokumentoi isäntätiedot

joka kerta, kun työskentelet uudessa Linux-kovettumistyössä, sinun täytyy luoda uusi asiakirja, jossa on kaikki tässä viestissä luetellut tarkistuslistat, ja sinun täytyy tarkistaa kaikki hakemasi kohdat. Lisäksi, yläosassa asiakirjan, sinun täytyy sisällyttää Linux-isäntä tiedot:

  • koneen nimi
  • IP-osoite
  • Mac-osoite
  • karenssia suorittavan henkilön nimi (todennäköisimmin Sinä)
  • päivämäärä
  • Omaisuusluku (jos työskentelet yritykselle, sinun on sisällytettävä siihen varallisuusnumero, jota yrityksesi käyttää isäntien merkitsemiseen.)

2-BIOS protection

sinun on suojattava palvelimen BIOS salasanalla, jotta loppukäyttäjä ei voi muuttaa ja ohittaa BIOSin suojausasetuksia; on tärkeää pitää tämä alue suojattuna muutoksilta. Jokaisella tietokoneen valmistajalla on eri näppäinsarja BIOS-tilaan pääsemiseksi, sitten on löydettävä kokoonpano, johon asetat hallinnollisen salasanan.

Seuraava, sinun täytyy poistaa käynnistys ulkoisista medialaitteista (USB / CD / DVD). Jos et muuta tätä asetusta, kuka tahansa voi käyttää USB-tikkua, joka sisältää käynnistettävän käyttöjärjestelmän ja pääsee käsiksi käyttöjärjestelmän tietoihin.

+ Haluatko tietää lisää Linuxista? Lue lisää Pluralsight-teknologiaoppimisalustalla. Opi Linux nyt. +

uusimmissa palvelinten emolevyissä on sisäinen WWW-palvelin, josta niitä voi käyttää etänä. Varmista, että vaihdat järjestelmänvalvojan sivun oletussalasanan tai poistat sen käytöstä, jos se on mahdollista.

3-kiintolevyn salaus (luottamuksellisuus)

useimmat Linux-jakelut mahdollistavat levyjen salaamisen ennen asennusta. Levyn salaus on tärkeää varkaustapauksissa, koska tietokoneesi varastanut henkilö ei pysty lukemaan tietojasi, jos hän liittää kiintolevyn koneeseensa.

valitse alla olevassa kuvassa kolmas vaihtoehto luettelosta: ohjattu-käytä koko levyä ja määritä salattu LVM (LVM tarkoittaa loogista volume manager.)

jos Linux-jakelu ei tue salausta, voit käyttää TrueCryptin kaltaista ohjelmistoa.

4-Levysuojaus (saatavuus)

varmuuskopioilla on niin monia etuja, jos järjestelmä on vaurioitunut, bugeja KÄYTTÖJÄRJESTELMÄPÄIVITYKSESSÄ. Tärkeillä palvelimilla varmuuskopiot on siirrettävä pois päältä katastrofin sattuessa. Myös varmuuskopiointi on hoidettava. Esimerkiksi, kuinka kauan säilytät vanhoja varmuuskopioita? Milloin sinun täytyy varmuuskopioida järjestelmä (joka päivä, joka viikko…)?

kriittiset järjestelmät tulee jakaa eri osioihin:

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

siirrettävät levyt antavat sinulle mahdollisuuden suorituskykyyn ja turvallisuuteen järjestelmävirheen sattuessa. Alla olevassa kuvassa näet mahdollisuuden erottaa osiot Kali Linuxissa asennuksen aikana.

5-Lukitse käynnistyskansio

käynnistyskansio sisältää tärkeitä Linux-ytimeen liittyviä tiedostoja, joten sinun on varmistettava, että tämä kansio on lukittu vain luku-oikeuksiin seuraavia yksinkertaisia ohjeita noudattamalla. Avaa ensin” fstab ” – tiedosto.

sitten, lisää viimeinen rivi korostettu alareunassa.

kun olet muokannut tiedostoa, sinun täytyy asettaa omistaja suorittamalla seuraava komento:

#chown root:root /etc/fstab

Seuraava, asetan muutamia käyttöoikeuksia turvata boot asetukset:

  • Aseta /etc/raivaajan omistaja ja ryhmä.conf pääkäyttäjälle:

#chown root:root /etc/grub.conf

  • Aseta lupa/etc / grubille.conf tiedosto lukea ja kirjoittaa vain root:

#chmod og-rwx /etc/grub.conf

  • vaadi tunnistautuminen yhden käyttäjän tilassa:

#sed -i "/SINGLE/s/sushell/sulogin/" /etc/sysconfig/init

#sed -i "/PROMPT/s/yes/no/" /etc/sysconfig/init

6-Poista USB käyttö

riippuen siitä, kuinka kriittinen järjestelmä on, joskus on tarpeen poistaa USB-tikkujen käyttö Linux-isännässä. On olemassa useita tapoja kieltää USB-tallennustilan käyttö; tässä on suosittu yksi:

avaa ” musta lista.conf ” tiedosto käyttäen suosikki tekstieditoriasi:

#nano /etc/modprobe.d/blacklist.conf

kun tiedosto avautuu, lisää seuraava rivi tiedoston loppuun (Tallenna ja sulje):

blacklist usb_storage

tämän jälkeen avaa rc.paikallinen tiedosto:

#nano /etc/rc.local

lisää lopuksi seuraavat kaksi riviä:

modprobe -r usb_storage

exit 0

7-järjestelmän päivitys

ensimmäinen asia ensimmäisen käynnistyksen jälkeen on päivittää järjestelmä; Tämän pitäisi olla helppo vaihe. Yleensä avaat pääteikkunan ja suoritat tarvittavat komennot. Kali Linuxissa saavutat tämän suorittamalla komennot alla olevassa kuvassa:

8-Tarkista asennetut paketit

luetteloi kaikki Linux-käyttöjärjestelmääsi asennetut paketit ja poista tarpeettomat. Sinun täytyy olla hyvin tiukka, jos isäntä yrität kovettua on palvelin, koska palvelimet tarvitsevat vähiten sovelluksia ja palveluja asennettu niihin. Tässä on esimerkki siitä, miten listataan Kali Linuxiin asennetut paketit:

muista, että tarpeettomien palveluiden poistaminen käytöstä vähentää hyökkäyspintaa, joten on tärkeää poistaa seuraavat Vanhat palvelut, Jos löysit ne asennettuna Linux-palvelimelle:

  • Telnet-palvelin
  • RSH-palvelin
  • NIS-palvelin
  • TFTP-palvelin
  • TALK-palvelin

9-avointen porttien tarkistaminen

avointen Internet-yhteyksien tunnistaminen on kriittinen tehtävä. Kali Linuxissa käytän seuraavaa komentoa havaitakseni kaikki piilotetut avoimet portit:

10-Secure SSH

Kyllä, todellakin SSH on turvallinen, mutta sinun täytyy kovettaa myös tämä palvelu. Ensinnäkin, jos voit poistaa SSH, se on ongelma ratkaistu. Kuitenkin, jos haluat käyttää sitä, sinun täytyy muuttaa oletusasetukset SSH. Voit tehdä sen, Selaa /etc/ssh ja avaa ”sshd_config” tiedosto käyttämällä suosikki tekstieditori.

  • Vaihda oletusportti numero 22 johonkin muuhun esim.99: ään.
  • varmista, että root ei voi kirjautua etänä SSH: n kautta:

PermitRootLogin no

  • salli tietyt käyttäjät:

AllowUsers

lista voi jatkua loputtomiin, mutta näiden pitäisi riittää alkuun. Jotkut yritykset esimerkiksi lisäävät banderolleja estääkseen hyökkääjiä jatkamasta eteenpäin. Kehotan teitä tarkistaa käsikirja SSH ymmärtää kaikki kokoonpanot tässä tiedostossa, tai voit vierailla tällä sivustolla lisätietoja.

tässä on muutamia lisävaihtoehtoja, jotka sinun täytyy varmistaa olevan ”sshd_config” – tiedostossa:

  • Protocol2
  • IgnoreRhosts to yes
  • HostbasedAuthentication no
  • PermitEmptyPasswords no
  • X11Forwarding no
  • MaxAuthTries 5
  • Ciphers aes128-ctr,Aes192-Ctr,AES256-Ctr
  • clientaliveinterval 900
  • clientalivecountmax 0
  • usepam Kyllä

Aseta lopuksi sshd_config-tiedoston käyttöoikeudet niin, että vain pääkäyttäjät voivat muuttaa sen sisältöä:

#chown root:root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11- ota SELinux

Security Enhanced Linux on ytimen suojausmekanismi, joka tukee kulunvalvonnan suojauskäytäntöä. Selinuxissa on kolme konfiguraatiotilaa:

  • poistettu käytöstä: pois päältä
  • salliva: Tulostusvaroitukset
  • valvotaan: käytäntö pannaan täytäntöön

tekstieditorin avulla avaa asetustiedosto:

#nano /etc/selinux/config

ja varmista, että politiikkaa noudatetaan:

SELINUX=enforcing

12- verkon parametrit

Linux-isäntäverkon toimintojen turvaaminen on olennainen tehtävä. Älä aina oleta, että palomuuri hoitaa kaiken. Tässä muutamia tärkeitä ominaisuuksia, joita kannattaa harkita isäntäverkkosi turvaamiseksi:

– Poista IP-Huolinta käytöstä asettamalla verkko.ipv4.ip_forward parametri 0 in ” / etc / sysctl.conf”

– Ota käyttöön huono virheilmoituksen suojaus asettamalla verkko.ipv4.icmp_ignore_bogus_error_responses parametri 1 in ” / etc / sysctl.conf ”

suosittelen Linuxin palomuurin käyttöä soveltamalla iptable-sääntöjä ja suodattamalla kaikki saapuvat, lähtevät ja edelleenlähetetyt paketit. Iptables-sääntöjen määrittäminen vie jonkin aikaa, mutta se on vaivan arvoista.

13- salasanakäytännöt

ihmiset käyttävät salasanojaan usein uudelleen, mikä on huono tietoturvakäytäntö. Vanhat salasanat tallennetaan tiedostoon ”/ etc/security / opasswd”. Aiomme käyttää Pam-moduulia Linux-isännän suojauskäytäntöjen hallintaan. Avaa debian-distrossa tiedosto ” / etc / pam.d / common-password” tekstieditorilla ja lisää seuraavat kaksi riviä:

auth sufficient pam_unix.so likeauth nullok

password sufficient pam_unix.so remember=4 (käyttäjät eivät voi käyttää uudelleen neljää viimeistä salasanaa.)

toinen pakotettava salasanakäytäntö on vahvat salasanat. Pam-moduuli tarjoaa pam_cracklib, joka suojaa palvelinta sanakirja ja brute-force hyökkäyksiä. Voit suorittaa tämän tehtävän, avaa tiedosto / etc / pam.d / system-auth millä tahansa tekstieditorilla ja lisää seuraava rivi:

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

Linux hash salasana välttää tallentamasta sitä cleartext niin, sinun täytyy varmistaa määritellä turvallinen salasana hashing algoritmi SHA512.

toinen mielenkiintoinen toiminto on lukita tili viiden epäonnistuneen yrityksen jälkeen. Jotta tämä tapahtuu, sinun täytyy avata tiedosto ” / etc / pam.d / password-auth” ja lisää seuraavat rivit:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

Emme ole vielä valmiita, tarvitaan yksi lisäaskel. Avaa tiedosto ” / etc / pam.d / system-auth” ja varmista, että olet lisännyt seuraavat rivit:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

viiden epäonnistuneen yrityksen jälkeen vain järjestelmänvalvoja voi avata tilin käyttämällä seuraavaa komentoa:

#/usr / sbin/faillock — user <userlocked> — reset

myös, toinen hyvä käytäntö on asettaa salasana vanhenemaan 90 päivän kuluttua, jotta voit suorittaa tämän tehtävän:

  • Aseta PASS_MAX_DAYS-parametriksi 90 kohdassa ” / etc / login.defs ”
  • muuta aktiivista käyttäjää suorittamalla seuraava komento :

#chage --maxdays 90 <user>

seuraava vinkki salasanojen tehostamiseen on rajoittaa pääsyä su-komentoon asettamalla pam_wheel.so parametrit kohdassa ” / etc / pam.d / su”:

auth vaaditaan pam_wheel.so use_uid

salasanakäytännön viimeinen vinkki on poistaa järjestelmätilit Ei-root-käyttäjiltä käyttämällä seuraavaa bash-skriptiä:

#!/bin/bash

for user in `awk -F: '( < 500) {print }' /etc/passwd`; do

if

then

/usr/sbin/usermod -L $user

if && &&

then /usr/sbin/usermod -s /sbin/nologin $user

fi

fi

done

14-luvat ja varmennukset

valmistaudu henkisesti, sillä tästä tulee pitkä lista. Mutta, käyttöoikeudet on yksi tärkeimmistä ja kriittisistä tehtävistä tietoturvatavoitteen saavuttamiseksi Linux-isännällä.

#chown root:root /etc/anacrontab

#chmod og-rwx /etc/anacrontab

#chown root:root /etc/crontab

#chmod og-rwx /etc/crontab

#chown root:root /etc/cron.hourly

#chmod og-rwx /etc/cron.hourly

#chown root:root /etc/cron.daily

#chmod og-rwx /etc/cron.daily

#chown root:root /etc/cron.weekly

#chmod og-rwx /etc/cron.weekly

#chown root:root /etc/cron.monthly

#chmod og-rwx /etc/cron.monthly

#chown root:root /etc/cron.d

#chmod og-rwx /etc/cron.d

Aseta oikeus ja oikeudet ”/ var/spool/cron”: lle ”root crontab”

#chown root:root <crontabfile>

#chmod og-rwx <crontabfile>

Aseta käyttäjän / ryhmän omistaja ja lupa ”passwd” – tiedostoon

#chmod 644 /etc/passwd

#chown root:root /etc/passwd

Aseta käyttäjän / ryhmän omistaja ja käyttöoikeudet ”ryhmä” – tiedostossa

#chmod 644 /etc/group

#chown root:root /etc/group

Aseta käyttäjän / ryhmän omistaja ja oikeudet ”shadow” – tiedostoon

#chmod 600 /etc/shadow

#chown root:root /etc/shadow

Aseta käyttäjän / ryhmän omistaja ja oikeudet ”gshadow” – tiedostoon

#chmod 600 /etc/gshadow

#chown root:root /etc/gshadow

15- Lisäprosessikarkaisu

tähän listan viimeiseen kohtaan olen sisällyttänyt joitakin lisävinkkejä, jotka tulisi ottaa huomioon Linux-isännän kovettamisessa.

Rajoita ensin ydinjätteet:

  • hard core 0: n lisääminen ”/etc/security/limitsiin.conf ” tiedosto
  • lisäämällä fs.suid_dumpable = 0 to the ” / etc / sysctl.conf ” – tiedosto

toiseksi, määritä Exec Shield:

  • lisätään ydintä.exec-shield = 1: lle ”/etc/sysctl.conf ” tiedosto

kolmas, mahdollistaa satunnaistetun virtuaalimuistin alueen sijoittamisen:

  • lisätään ydintä.randomize_va_space = 2 to the ” / etc / sysctl.conf ” – tiedosto

Loppusanat

tässä lyhyessä viestissä käsittelimme monia tärkeitä Linux-tietoturvan kokoonpanoja. Mutta, olemme juuri raapaissut pintaa Linux kovettuminen-on olemassa paljon monimutkaisia, nitty-hiekkainen kokoonpanoissa. Lisätietoja siitä, miten kovettaa Linux-palvelimet paremman turvallisuuden, tutustu minun kursseja Pluralsight.

Gus Khawaja on turvallisuuskonsultti ja kirjailija Pluralsightissa. Hän työskentelee tietoturva -, IT-ja Web-sovelluskehityksen parissa ja luo kursseja Moniarvoisuudelle. Gus on menestyksekkäästi toimittanut ja kehittänyt IT-ratkaisuja yrityksille ympäri Kanadaa. Monen vuoden tietojenkäsittelytieteen kokemuksen jälkeen hän on kääntänyt huomionsa kyberturvallisuuteen ja siihen, miten tärkeänä turvallisuus tuo tämän miinakentän. Hänen intohimonsa eettinen hakkerointi sekoittaa hänen tausta ohjelmointi ja se tekee hänestä viisas Sveitsin armeijan veitsi ammattilainen tietojenkäsittelytieteen alalla.

Vastaa

Sähköpostiosoitettasi ei julkaista.