Linux Server Schutz. Wat fir d'éischt ze maachen

Linux Server Schutz. Wat fir d'éischt ze maachen
Habib M'henni / Wikimedia Commons, CC BY-SA

Hautdesdaags ass e Server op engem Hosting opzestellen eng Saach vun e puer Minutten an e puer Mausklicken. Awer direkt nom Start fënnt hien sech an engem feindlecht Ëmfeld, well hien op fir de ganzen Internet wéi en onschëlleg Meedchen an enger Rocker Disco ass. Scanner fannen et séier an entdecken Dausende vun automatesch scripted Bots, déi d'Netzwierk op der Sich no Schwachstelle a falschen Konfiguratiounen sichen. Et ginn e puer Saachen déi Dir direkt nom Start maache sollt fir de Basisschutz ze garantéieren.

Inhalt

Net-root Benotzer

Dat éischt wat Dir maache musst ass en net-root Benotzer erstellen. De Punkt ass, datt de Benotzer root absolute Privilegien am System, a wann Dir him Fernverwaltung erlaabt, da maacht Dir d'Halschent vun der Aarbecht fir den Hacker, léisst e gültege Benotzernumm fir hien.

Dofir musst Dir en anere Benotzer erstellen an d'Fernverwaltung iwwer SSH fir Root auszeschalten.

En neie Benotzer gëtt mam Kommando erstallt useradd:

useradd [options] <username>

Da gëtt e Passwuert dofir mat dem Kommando bäigefüügt passwd:

passwd <username>

Schlussendlech muss dëse Benotzer an e Grupp bäigefüügt ginn, deen d'Recht huet Kommandoe mat erhiewte Privilegien auszeféieren sudo. Ofhängeg vun der Linux Verdeelung, kënnen dës verschidde Gruppen sinn. Zum Beispill, an CentOS a Red Hat gëtt e Benotzer an eng Grupp bäigefüügt wheel:

usermod -aG wheel <username>

Op Ubuntu gëtt et an d'Grupp bäigefüügt sudo:

usermod -aG sudo <username>

Schlësselen amplaz SSH Passwierder

Brute Force oder Passwuert Leckage ass e Standard Attackvektor, sou datt et besser ass d'Passwuert Authentifikatioun an SSH (Secure Shell) auszeschalten an amplaz Schlëssel Authentifikatioun ze benotzen.

Et gi verschidde Programmer fir den SSH Protokoll ëmzesetzen, wéi z lsch и Dropbier, awer déi populärste ass OpenSSH. Installéiere vum OpenSSH Client op Ubuntu:

sudo apt install openssh-client

Serverinstallatioun:

sudo apt install openssh-server

Den SSH Daemon (sshd) op engem Ubuntu Server starten:

sudo systemctl start sshd

Start den Daemon automatesch op all Boot:

sudo systemctl enable sshd

Et sollt bemierkt datt den OpenSSH Server Deel de Client Deel enthält. Dat heescht duerch openssh-server Dir kënnt mat anere Serveren konnektéieren. Ausserdeem, vun Ärer Clientsmaschinn kënnt Dir en SSH-Tunnel vun engem Fernserver op en Drëtt-Partei-Host starten, an dann betruecht den Drëtt-Partei-Host den Fernserver als Quell vun Ufroen. Eng ganz praktesch Funktioun fir Äre System ze maskéieren. Fir méi Detailer, kuckt den Artikel. "Praktesch Tipps, Beispiller an SSH Tunnel".

Et ass normalerweis kee Sënn fir e vollwäertege Server op der Clientmaschinn z'installéieren fir d'Méiglechkeet vun enger Fernverbindung mam Computer ze vermeiden (aus Sécherheetsgrënn).

Also, fir Ären neie Benotzer, musst Dir als éischt SSH Schlësselen op de Computer generéieren, vun deem Dir op de Server zougitt:

ssh-keygen -t rsa

Den ëffentleche Schlëssel gëtt an enger Datei gespäichert .pub a gesäit wéi eng String vun zoufälleg Zeechen datt mat fänkt ssh-rsa.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

Dann, als Root, erstellt en SSH Verzeechnes um Server am Heemverzeechnes vum Benotzer a füügt den SSH ëffentleche Schlëssel un d'Datei bäi. authorized_keysmat engem Texteditor wéi Vim:

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

vim /home/user_name/.ssh/authorized_keys

Endlech, setze déi richteg Permissiounen fir d'Datei:

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

a ännert d'Besëtzer vun dësem Benotzer:

chown -R username:username /home/username/.ssh

Op der Client Säit musst Dir de Standuert vum geheime Schlëssel fir d'Authentifikatioun spezifizéieren:

ssh-add DIR_PATH/keylocation

Elo kënnt Dir op de Server ënner dem Benotzernumm aloggen mat dësem Schlëssel:

ssh [username]@hostname

No der Autorisatioun kënnt Dir de scp Kommando benotze fir Dateien ze kopéieren, d'Utility sshfs fir e Dateiesystem oder Verzeichnisser op afstand ze montéieren.

Et ass unzeroden e puer Backupkopien vum private Schlëssel ze maachen, well wann Dir d'Passwuertauthentifikatioun deaktivéiert an et verléiert, hutt Dir guer kee Wee fir op Ären eegene Server ze aloggen.

Wéi uewen ernimmt, an SSH musst Dir d'Authentifikatioun fir Root auszeschalten (aus dësem Grond hu mir en neie Benotzer erstallt).

Op CentOS / Red Hat fanne mir d'Linn PermitRootLogin yes an der Konfiguratiounsdatei /etc/ssh/sshd_config an änneren et:

PermitRootLogin no

Op Ubuntu füügt d'Linn derbäi PermitRootLogin no an d'Konfiguratiounsdatei 10-my-sshd-settings.conf:

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

Nodeems Dir verifizéiert hutt datt den neie Benotzer mat hirem Schlëssel authentifizéiert ass, kënnt Dir d'Passwuertauthentifikatioun auszeschalten fir de Risiko vu Passwuertleckage oder brute Kraaft ze eliminéieren. Elo, fir Zougang zum Server ze kréien, muss den Ugräifer de private Schlëssel kréien.

Op CentOS / Red Hat fanne mir d'Linn PasswordAuthentication yes an der Konfiguratiounsdatei /etc/ssh/sshd_config an änneren et wéi follegt:

PasswordAuthentication no

Op Ubuntu füügt d'Linn derbäi PasswordAuthentication no ze Fichier 10-my-sshd-settings.conf:

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

Fir Instruktioune wéi Dir Zwee-Faktor Authentifikatioun iwwer SSH aktivéiert, kuckt hei.

Firewall

D'Firewall garantéiert datt nëmmen de Verkéier op den Häfen, déi Dir direkt erlaabt, op de Server geet. Dëst schützt géint Ausbeutung vun Häfen, déi zoufälleg vun anere Servicer aktivéiert sinn, wat d'Attackfläch staark reduzéiert.

Ier Dir eng Firewall installéiert, musst Dir sécher sinn datt SSH an der Ausgrenzungslëscht abegraff ass an net blockéiert gëtt. Soss, nom Start vun der Firewall, kënne mir net mat dem Server verbannen.

D'Ubuntu Verdeelung kënnt mat onkomplizéierter Firewall (Wow), a mat CentOS/Red Hat - firewalld.

Erlaabt SSH an der Firewall op Ubuntu:

sudo ufw allow ssh

Op CentOS / Red Hat benotze mir de Kommando firewall-cmd:

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

No dëser Prozedur kënnt Dir d'Firewall starten.

Op CentOS / Red Hat lancéiere mir de systemd Service fir Firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Op Ubuntu benotze mir de folgende Kommando:

sudo ufw enable

Fail2Ban

Service Fail2Ban analyséiert Serverprotokoller a zielt d'Zuel vun den Zougangsversuche vun all IP Adress. D'Astellunge spezifizéieren d'Regele fir wéi vill Zougangsversich an engem gewëssen Intervall erlaabt sinn - duerno ass dës IP Adress fir eng spezifizéierter Zäit gespaart. Zum Beispill erlaben mir 5 Mëssgléckt Authentifikatiounsversuch iwwer SSH bannent enger Period vun 2 Stonnen, duerno blockéiere mir dës IP Adress fir 12 Stonnen.

Fail2Ban op CentOS a Red Hat installéieren:

sudo yum install fail2ban

Installatioun op Ubuntu an Debian:

sudo apt install fail2ban

Start:

systemctl start fail2ban
systemctl enable fail2ban

De Programm huet zwee Konfiguratiounsdateien: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Verbuet Restriktiounen sinn an der zweeter Fichier uginn.

De Prisong fir SSH ass als Standard mat Standardastellungen aktivéiert (5 Versuche, Intervall 10 Minutten, Verbuet fir 10 Minutten).

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

Zousätzlech zu SSH kann Fail2Ban aner Servicer um nginx oder Apache Webserver schützen.

Automatesch Sécherheetsupdates

Wéi Dir wësst, ginn nei Schwachstelle permanent an all Programmer fonnt. Nodeems d'Informatioun verëffentlecht ass, ginn Exploiten zu populäre Exploit Packs bäigefüügt, déi wäit vun Hacker a Jugendlecher benotzt gi wann se all Server an enger Zeil scannen. Dofir ass et ganz wichteg Sécherheetsupdates z'installéieren soubal se verfügbar sinn.

Ubuntu Serveren hunn automatesch Sécherheetsupdates als Standard aktivéiert, sou datt keng zousätzlech Schrëtt erfuerderlech sinn.

Op CentOS / Red Hat musst Dir d'Applikatioun installéieren dnf-automatesch a schalt den Timer un:

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

Timer kontrolléieren:

sudo systemctl status dnf-automatic.timer

Änneren Default Häfen

SSH gouf 1995 entwéckelt fir Telnet (Port 23) a ftp (Port 21) ze ersetzen, sou datt den Auteur vum Programm Tatu Iltonen ass gewielt port 22 Par défaut, an et gouf vun IANA guttgeheescht.

Natierlech wëssen all Ugräifer op wéi engem Port SSH leeft - a scannt et zesumme mat anere Standard Ports fir d'Software Versioun erauszefannen, Standard Root Passwierder ze kontrolléieren, asw.

Standard Ports änneren - Obfuscatioun - reduzéiert de Volume vum Junkverkéier, d'Gréisst vun de Logbicher an d'Laascht op de Server e puer Mol, a reduzéiert och d'Attackfläch. Obwuel e puer kritiséiert dës Method vun "Verteidegung duerch Obscuritéit" (Sécherheet duerch Obscuritéit). De Grond ass datt dës Technik géint d'fundamental ass architektonescht Schutz. Dofir, zum Beispill, den US National Institute of Standards and Technology "Server Sécherheetsguide" weist de Besoin fir eng oppe Serverarchitektur un: "D'Sécherheet vun engem System sollt net op d'Geheimnis vun der Ëmsetzung vu senge Komponenten vertrauen", seet d'Dokument.

An Theorie ass d'Ännerung vun de Standard Ports am Géigesaz zu oppenen Architekturpraktiken. Awer an der Praxis fällt de Volume vum béiswëllegen Traffic tatsächlech erof, sou datt dëst eng einfach an effektiv Moossnam ass.

D'Portnummer kann konfiguréiert ginn andeems d'Direktiv geännert gëtt Port 22 an der Konfiguratiounsdatei / etc / ssh / sshd_config. Et gëtt och duerch de Parameter uginn -p <port> в sshd. SSH Client a Programmer sftp ënnerstëtzt och de Parameter -p <port>.

Parameter -p <port> kann benotzt ginn fir d'Portnummer ze spezifizéieren wann Dir mam Kommando verbënnt ssh am Linux. IN sftp и scp Parameter benotzt gëtt -P <port> (Haaptstad P). Spezifizéieren et vun der Kommandozeil iwwerschreift all Wäert an de Konfiguratiounsdateien.

Wann et vill Server ass, kënne bal all dës Aktiounen fir e Linux Server ze schützen an engem Skript automatiséiert ginn. Awer wann et nëmmen ee Server ass, ass et besser de Prozess manuell ze kontrolléieren.

Iwwer d'Rechter vu Reklammen

Bestellt a fänkt direkt un ze schaffen! Kreatioun vun VDS all Configuratioun a mat all Betribssystem bannent enger Minutt. Déi maximal Konfiguratioun erlaabt Iech en Héichiewe ze hunn - 128 CPU-Kären, 512 GB RAM, 4000 GB NVMe. Ganz epesch :)

Linux Server Schutz. Wat fir d'éischt ze maachen

Source: will.com