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.
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.
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:
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:
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:
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:
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.
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).
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:
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 :)