10 askelta Linux-palvelimen suojaamiseen tuotantoympäristössä


Linux-palvelimen suojaaminen on olennaista, jotta voimme suojata tietojamme hakkereilta. Mutta palvelimen suojaaminen ei tarvitse olla monimutkainen .Meidän pitäisi ottaa käyttöön menetelmä, joka suojaa palvelimemme yleisimmiltä hyökkäyksiltä yhdessä tehokkaan hallinnoinnin kanssa .
Mutta älä ota asioita itsestäänselvyyksinä. Jopa kaikkein paatuneimmat palvelimet voidaan kaapata hyödyntämällä mitä tahansa haavoittuvaa komponenttia, joka on käynnissä kyseisellä palvelimella.
Asenna mitä tarvitset
Ensimmäinen sääntö on pitää palvelimesi laihana ja keskinkertaisena. Asenna vain ne paketit, joita todella tarvitset. Jos on ei-toivottuja paketteja; puhdista. Mitä vähemmän paketteja, sitä pienempi mahdollisuus on, että koodia ei ole korjattu.
Kytke SELinux päälle
Security-Enhanced Linux (SELinux) on ytimen tarjoama pääsynvalvonnan turvamekanismi.
SELinux tarjoaa 3 perustoimintatilaa :
- Enforcing:
- Permissive: Tässä tilassa SELinux ei pakota järjestelmän tietoturvakäytäntöä, vaan ainoastaan varoittaa ja kirjaa toimintoja.
- Disabled: SELinux on kytketty pois päältä.
Se voidaan hallita tiedostosta ’/etc/selinux/config’, jossa voit ottaa sen käyttöön tai poistaa sen käytöstä.
Secure Console Access
Konsolikäytön suojaaminen
Linux-palvelimien konsolikäytön suojaaminen on varmistettava kytkemällä pois päältä käynnistys ulkoisilta laitteilta, kuten DVD-levyiltä/CD-levyiltä/USB-kynältä, BIOS:n asennuksen jälkeen. Lisäksi ,Aseta BIOSin ja grub-käynnistyslataajan salasana näiden asetusten suojaamiseksi.
Rajoita vanhojen salasanojen käyttöä
Voidaan rajoittaa käyttäjien mahdollisuutta käyttää samoja vanhoja salasanoja. Vanha salasanatiedosto sijaitsee osoitteessa /etc/security/opasswd. Tämä voidaan tehdä käyttämällä PAM-moduulia.
Avaa tiedosto ’/etc/pam.d/system-auth’ RHEL / CentOS / Fedora -käyttöjärjestelmissä.
# vi /etc/pam.d/system-auth
Avaa tiedosto ’/etc/pam.d/common-password’ Ubuntu/Debian/Linux -käyttöjärjestelmissä.
# vi /etc/pam.d/common-password
Add the following line to ’auth’ section.
auth sufficient pam_unix.so likeauth nullok
Add the below line to ’password’ section to disallow a user from re-using last 3 passwords.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3
Last 3 passwords are remember by server. Jos yrität käyttää 3 viimeistä vanhaa salasanaa, saat virheilmoituksen.

Tarkista kuuntelevat portit
Käytä komentoa ’netstat’ nähdäksesi avoinna olevat portit ja niitä vastaavat palvelut .
netstat -tunlp
Poista ei-toivotut palvelut järjestelmästä komennolla ’chkconfig’ ja sulje portit joita ei tarvita.
chkconfig serviceName off
Poista Root-kirjautuminen
Ei ole suositeltavaa ssh:lla päästä palvelimelle superkäyttäjänä(root). Meidän pitäisi poistaa ssh root-käyttäjänä palvelimelta, mutta ennen sitä luodaan käyttäjä, jolla on sudo-valtuudet, jotta voit ssh:lla päästä palvelimelle ja suorittaa hallinnollisia tehtäviä. Kun olet kirjautunut palvelimelle, voit aina tarvittaessa vaihtaa käyttäjän root-käyttäjäksi.
Luo uusi käyttäjä :
useradd user1
Luo salasana lisätylle käyttäjälle :
passwd user1
Anna sudo-oikeudet juuri lisätylle käyttäjälle :
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers
SSH:lla palvelimelle uudella käyttäjällä ja varmista, että kirjautuminen toimii.
Poista nyt root-kirjautuminen käytöstä, eli kukaan ei voi ssh:lla tai kirjautua palvelimelle root-käyttäjänä. Tätä varten avataan sshd:n konfigurointitiedosto:
nano /etc/ssh/sshd_conf
Poista seuraavaksi kommentti riviltä, jossa lukee
PermitRootLogin no

Tallenna ja sulje tämä tiedosto, ja käynnistä sitten palvelu uudestaan
service sshd restart
Tärkeää: Älä vielä kirjaudu ulos palvelimelta. Testaa ensin, pääsetkö onnistuneesti ssh:lla palvelimeen aiemmin luotua käyttäjää käyttäen. Avaa toinen instanssi terminaalista ja ssh-palvelimeen aiemmin luomallasi käyttäjällä. Jos kaikki toimii hyvin, voit turvallisesti kirjautua ulos palvelimelta rootina.
Vaihda portti
Voidaan vaihtaa oletusarvoinen SSH-portti lisätäksemme läpinäkymättömyyskerroksen pitämään palvelimesi turvallisena .
Avaa tiedosto /etc/ssh/sshd_config
korvaa oletusportti 22 eri porttinumerolla vaikkapa 1110
save & poistu tiedostosta
service sshd restart
Nyt sisäänkirjautumista varten määrittele portti nro.
ssh username@IP -p 1110
Poista Ctrl+Alt+Delete käytöstä Inittabissa
Ctrl+Alt+Deleten painaminen vie palvelimen uudelleenkäynnistykseen. Joten tämä on aina suositeltavaa poistaa käytöstä, koska joku voi vahingossa käynnistää järjestelmän uudelleen.
Ctrl+Alt+Del-toiminto on määritelty tiedostossa /etc/init/control-alt-delete.conf .Kommentoi alla oleva rivi

Salasanaton sisäänkirjautuminen
Voimme kirjautua palvelimellemme helposti SSH:n kautta ilman salasanaa generoimalla ssh-avaimet. Ole vain tarkkana, että voit kirjautua palvelimelle vain siltä koneelta, jolla olet luonut ssh-avaimet
SSH-avaimien generointi :
ssh-keygen - t rsa

Kopioi julkinen SSH-avain , lisää sitten sama palvelimeen
cat ~/.ssh/id_rsa.pub
Sh-avainten lisääminen palvelimeen
Esimerkiksi meillä on käyttäjä-käyttäjä1, joka antaa ssh-avaimella pääsyn palvelimeen
cd /home/user1
ls -ll
Luo .ssh-hakemisto ja luo sen sisälle tiedosto nimeltä authorized_keys ja lisää käyttäjän julkinen ssh-avain samaan
mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys
Lisää julkinen ssh-avain ja vaihda sen jälkeen omistajaksi tiedoston tiedoston
chown user1 authorized_keys
Poista ssh-kirjautuminen käytöstä
Muokkaa /etc/ssh/sshd_config
Passwordauthentication no
PermitRootLogin no

>
Nyt, vain valtuutettu käyttäjä voi kirjautua palvelimelle komennolla
ssh user-name@serverIP -p(port Number)

Fail2Ban SSH-kirjautumiselle
Fail2ban toimii muuttamalla palomuurisääntöjä dynaamisesti kieltääkseen osoitteet, jotka ovat yrittäneet epäonnistuneesti kirjautua sisään tietyn määrän kertoja.
Asenna Fail2ban :
sudo apt-get update
apt-get install fail2ban
Luo uusi tiedosto jail.local ja kopioi jail.config-tiedoston sisältö sinne ja tee muutokset vain jail.local-tiedostoon
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Muokkaa /etc/fail2ban/jail.local-tiedostoa
Tee halutut muutokset:
enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)
Sitten käynnistä fail2ban-palvelut uudelleen
service fail2ban restart
IP voidaan estää pysyvästi asettamalla bantime = -1.
Huomaa: FAIL2BAN estää globaalin IP:n .
Turvallisuus oli ennen joskus hankalaa, mutta nyt se on välttämätöntä koko ajan – Martina Navratilova
Kiitos lukemisesta . Jos löysit tämän artikkelin hyödylliseksi, muutamat taputukset merkitsisivät paljon!
Stay tuned 🙂