Skydd av Linux-server. Vad man ska göra först

Skydd av Linux-server. Vad man ska göra först
Habib M’henni / Wikimedia Commons, CC BY-SA

I vÄr tid tar det bara nÄgra minuter och nÄgra klick att sÀtta upp en server pÄ ett webbhotell. Men sÄ snart den Àr igÄng hamnar den i en fientlig miljö, eftersom den Àr öppen för hela internet som en oskyldig tjej pÄ en rockklubb. Den kommer snabbt att upptÀckas av skannrar och finna tusentals automatiserade skriptbottar som letar efter sÄrbarheter och felkonfigurationer. Det finns nÄgra saker som behöver göras direkt efter lansering för att sÀkerstÀlla grundlÀggande skydd.

InnehÄll

Icke-root-anvÀndare

Först och frÀmst bör du skapa en icke-root-anvÀndare. Det beror pÄ att anvÀndaren root har absoluta privilegier i systemet, och om du tillÄter honom distansadministration gör du hÀlften av jobbet för hackern, och lÀmnar honom ett giltigt anvÀndarnamn.

DÀrför bör du skapa en annan anvÀndare, och för root koppla bort distansadministration via SSH.

Den nya anvÀndaren skapas med kommandot useradd:

useradd [options]

Sedan lÀgger du till ett lösenord med kommandot passwd:

passwd

Slutligen mÄste du lÀgga till denna anvÀndare i en grupp som har rÀtt att utföra kommandon med förhöjda privilegier sudo. Beroende pÄ Linux-distributionen kan detta vara olika grupper. Till exempel, i CentOS och Red Hat lÀggs anvÀndaren till gruppen wheel:

usermod -aG wheel

I Ubuntu lÀggs han till gruppen sudo:

usermod -aG sudo

Nycklar istÀllet för SSH-lösenord

Brute force eller lösenordslekar Àr en standard angreppsvektor, sÄ autentisering via lösenord i SSH (Secure Shell) bör helst stÀngas av och istÀllet anvÀnda autentisering via nycklar.

Det finns olika program för att implementera SSH-protokollet, som lsh och Dropbear, men den mest populÀra Àr OpenSSH. Installation av OpenSSH-klienten pÄ Ubuntu:

sudo apt install openssh-client

Installation pÄ servern:

sudo apt install openssh-server

Starta SSH-demonen (sshd) pÄ servern under Ubuntu:

sudo systemctl start sshd

Automatisk start av demonen vid varje uppstart:

sudo systemctl enable sshd

Det Àr vÀrt att nÀmna att serverdelen av OpenSSH inkluderar klientdelen. Det vill sÀga genom openssh-server Du kan ansluta till andra servrar. Dessutom kan du frÄn din klientmaskin starta en SSH-tunnel frÄn en fjÀrrserver till en extern vÀrd, och den externa vÀrden kommer dÄ att betrakta den fjÀrrservern som kÀllan till förfrÄgningar. En mycket praktisk funktion för att maskera ditt system. Se mer i artikeln Praktiska tips, exempel och SSH-tunnlar.

Det finns vanligtvis ingen anledning att sÀtta upp en fullstÀndig server pÄ klientmaskinen för att undvika möjligheten till fjÀrranslutning till datorn (av sÀkerhetsskÀl).

SÄ för din nya anvÀndare behöver du först generera SSH-nycklar pÄ den dator du kommer att ansluta till servern frÄn:

ssh-keygen -t rsa

Den offentliga nyckeln lagras i en fil .*.pub och ser ut som en strÀng av slumpmÀssiga tecken som börjar med ssh-rsa.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP anvÀndarnamn@vÀrdnamn

Sedan, som root, skapa en katalog för SSH i anvÀndarens hemkatalog pÄ servern och lÀgg till den offentliga SSH-nyckeln i filen authorized_keys, med hjÀlp av en textredigerare som Vim:

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

vim /home/user_name/.ssh/authorized_keys

Slutligen, stÀll in korrekta rÀttigheter för filen:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

och Àndra Àgare till denna anvÀndare:

chown -R anvÀndarnamn:anvÀndarnamn /home/anvÀndarnamn/.ssh

PÄ klientsidan behöver du ange platsen för den hemliga nyckeln för autentisering:

ssh-add DIR_PATH/keylocation

Nu kan du logga in pÄ servern med anvÀndarnamnet via den hÀr nyckeln:

ssh [anvÀndarnamn]@vÀrdnamn

Efter autentisering kan du anvÀnda kommandot scp för att kopiera filer, verktyget sshfs för att montera fjÀrrfilsystemet eller kataloger.

Det Àr klokt att göra flera sÀkerhetskopior av den privata nyckeln, eftersom, om du stÀnger av autentisering med lösenord och tappar den, sÄ har du ingen möjlighet att komma Ät din egen server.

Som nÀmnts tidigare bör du inaktivera autentisering för root (av den anledning vi skapade en ny anvÀndare).

PÄ CentOS/Red Hat letar vi efter raden PermitRootLogin yes i konfigurationsfilen /etc/ssh/sshd_config och Àndrar den:

PermitRootLogin no

PÄ Ubuntu lÀgger vi till raden PermitRootLogin no i konfigurationsfilen 10-my-sshd-settings.conf:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Efter att ha verifierat att den nya anvÀndaren autentiserar med sin nyckel kan vi stÀnga av autentisering med lösenord för att utesluta risken för lÀckage eller bruteforce. Nu mÄste en angripare fÄ tag pÄ den privata nyckeln för att fÄ tillgÄng till servern.

PÄ CentOS/Red Hat letar vi efter raden PasswordAuthentication yes i konfigurationsfilen /etc/ssh/sshd_config och Àndrar den följande sÀtt:

PasswordAuthentication no

PÄ Ubuntu lÀgger vi till raden PasswordAuthentication no till filen 10-my-sshd-settings.conf:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Instruktioner för att stÀlla in tvÄfaktorsautentisering via SSH se. hÀr.

BrandvÀgg

BrandvÀggen sÀkerstÀller att endast den trafik som du direkt har tillÄtit gÄr till servern pÄ de portar du har angett. Det skyddar mot exploatering av portar som av misstag har aktiverats med andra tjÀnster, vilket kraftigt minskar angreppsytan.

Innan brandvÀggen installeras mÄste du se till att SSH Àr med pÄ undantagslistan och inte blockeras. Annars kan vi inte ansluta till servern efter att brandvÀggen har körts.

Med distributionspaketet Ubuntu kommer Uncomplicated Firewall (ufw), och med CentOS/Red Hat — firewalld.

TillÄtelse av SSH i brandvÀggen pÄ Ubuntu:

sudo ufw allow ssh

PÄ CentOS/Red Hat anvÀnder vi kommandot firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Efter denna procedur kan vi starta brandvÀggen.

PÄ CentOS/Red Hat startar vi systemd-tjÀnsten för firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

PÄ Ubuntu anvÀnder vi följande kommando:

sudo ufw enable

Fail2Ban

TjĂ€nsten Fail2Ban analyserar loggarna pĂ„ servern och rĂ€knar antalet Ă„tkomstförsök frĂ„n varje IP-adress. I instĂ€llningarna anges regler för hur mĂ„nga Ă„tkomstförsök som tillĂ„ts under en viss tidsperiod — efter detta blockeras den angivna IP-adressen under en given tid. Till exempel, tillĂ„ter vi 5 misslyckade autentiseringsförsök via SSH under en period pĂ„ 2 timmar, dĂ€refter blockeras denna IP-adress i 12 timmar.

Installation av Fail2Ban pÄ CentOS och Red Hat:

sudo yum install fail2ban

Installation pÄ Ubuntu och Debian:

sudo apt install fail2ban

Starta:

systemctl start fail2ban
systemctl enable fail2ban

Programmet har tvÄ konfigurationsfiler: /etc/fail2ban/fail2ban.conf och /etc/fail2ban/jail.conf. BegrÀnsningarna för blockering anges i den andra filen.

Jail för SSH Àr aktiverad som standard med standardinstÀllningarna (5 försök, intervall pÄ 10 minuter, blockering i 10 minuter).

[DEFAULT]
ignorecommand =
bantime = 10m
findtime = 10m
maxretry = 5

Förutom SSH kan Fail2Ban skydda Àven andra tjÀnster pÄ webbservern nginx eller Apache.

Automatiska sÀkerhetsuppdateringar

Som vi vet, upptÀcktes stÀndigt nya sÄrbarheter i alla program. Efter publiceringen av informationen lÀggs exploits till i populÀra exploit-paket som anvÀnds av hackers och ungdomar vid skanning av alla servrar i följd. DÀrför Àr det mycket viktigt att installera sÀkerhetsuppdateringar sÄ snart de blir tillgÀngliga.

PÄ Ubuntu-servern Àr automatiska sÀkerhetsuppdateringar aktiverade som standard, sÄ inga ytterligare ÄtgÀrder behövs.

PÄ CentOS/Red Hat mÄste du installera programmet dnf-automatic och aktivera timern:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

Kontrollera timern:

sudo systemctl status dnf-automatic.timer

Ändra standardportar

SSH utvecklades 1995 för att ersÀtta telnet (port 23) och ftp (port 21), sÄ programmets skapare Tatu Ylönen valde port 22 som standard, vilket godkÀndes av IANA.

Naturligtvis Ă€r alla angripare medvetna om vilken port SSH kör pĂ„ – och skannar den tillsammans med andra standardportar för att ta reda pĂ„ programvaruversionen, för att kontrollera standardroot-lösenord och sĂ„ vidare.

Att byta standardportar – obfuscation – minskar mĂ€ngden skrĂ€ptrafik, loggstorleken och serverbelastningen flera gĂ„nger, samt minskar attackytan. Men vissa kritisera denna metod som "skydd genom oklarhet" (security through obscurity). Anledningen Ă€r att denna teknik strider mot grundlĂ€ggande arkitektoniskt skydd.DĂ€rför anger till exempel den amerikanska nationella institutet för standarder och teknik i "Server Security Guideline" behovet av en öppen serverarkitektur: "Systemets sĂ€kerhet bör inte förlita sig pĂ„ dolda implementationer av dess komponenter", stĂ„r det i dokumentet.

Teoretiskt sett strider bytet av standardportar mot praxis för öppen arkitektur. Men i praktiken minskar mÀngden skadlig trafik verkligen, sÄ det Àr en enkel och effektiv ÄtgÀrd.

Portnumret kan stÀllas in genom att Àndra direktivet Port 22 i konfigurationsfilen. /etc/ssh/sshd_configDet anges ocksÄ med parametern -p pÄ sshd.SSH-klienten och programmen sftp stöder ocksÄ parametern -p.

Parameter -p som kan anvÀndas för att ange portnumret vid anslutning med kommandot ssh i Linux. I sftp och scp anvÀnds parametern -P (rubrik P). Kommando-raden overriding any value in configuration files.

Om det finns mÄnga servrar, kan nÀstan alla dessa ÄtgÀrder för att skydda Linux-servern automatiseras i ett skript. Men om det bara finns en server Àr det bÀttre att manuellt övervaka processen.

I reklamens namn

BestĂ€ll och börja arbeta direkt! Skapande av VDS i vilken konfiguration som helst och med vilket operativsystem som helst pĂ„ under en minut. Den maximala konfigurationen gör att du kan köra fullt ut — 128 kĂ€rnor CPU, 512 GB RAM, 4000 GB NVMe. Episk 🙂

Skydd av Linux-server. Vad man ska göra först

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster