Hatua za Kwanza za Usalama kwenye VPS Mpya
Linda VPS yako ndani ya dakika 10: sasisha mfumo, unda mtumiaji, weka funguo za SSH, zima root na uwashe firewall kabla ya kusakinisha huduma.
Dakika 10 za kwanza huamua usalama wa seva yako
VPS mpya kabisa si salama. Kuanzia inapopata IP ya umma, scanners huanza kujaribu kuingia, na image chaguo-msingi huwapa walengwa wengi: root mara nyingi hupatikana, passwords mara nyingi zinaruhusiwa, hakuna firewall, na hakuna kinachosasishwa kwa ratiba. Habari njema ni kwamba kufunga mianya hiyo yote huchukua takriban dakika kumi na amri chache. Hii ndiyo runbook ninayotumia kwenye kila seva mpya kabla sijaweka chochote juu yake.
Fuata hatua hizi kwa mpangilio, kwa sababu kila hatua inategemea zilizotangulia. Kila hatua ina mwongozo wake, ambao umeunganishwa unapoendelea; ukurasa huu ni njia ya haraka inayowaunganisha wote.
Dakika 1: Sasisha kila kitu
Ingia kama root ukitumia taarifa za kuingia ulizopewa na mtoa huduma wako, kisha sasisha mfumo kikamilifu kabla ya kufanya jambo lingine lolote:
apt update && apt upgrade -yMfumo ambao haujafanyiwa viraka ni shabaha rahisi zaidi. Kwa hiyo, hili ndilo jambo la kwanza. Usasishaji ukikamilika, sanidi security updates za kiotomatiki ili mfumo uendelee kuwa na viraka bila kulazimika kukumbuka kufanya hivyo.
Dakika 2: Unda mtumiaji wa kawaida mwenye sudo
Usiendelee kufanya kazi kama root. Jitengenezee mtumiaji na umpe sudo:
adduser matt
usermod -aG sudo mattKuanzia hapa, ingia kama mtumiaji huyu na utumie sudo kwa kazi za kiutawala. Kufanya kazi kama root wakati wote kunamaanisha kwamba kila kosa na kila uvamizi hufanyika ukiwa na mamlaka yasiyo na kikomo. Hili ndilo hasa kutumia mtumiaji asiye na mamlaka ya ziada kunakokusudiwa kuzuia.
Dakika ya 4: Sanidi funguo za SSH
Nenosiri zinaweza kukisiwa; funguo haziwezi. Kwenye laptop yako mwenyewe, ikiwa bado huna ufunguo, unda mmoja:
ssh-keygen -t ed25519Kisha nakili sehemu ya umma kwenye seva:
ssh-copy-id matt@YOUR_SERVERssh-copy-id inahitaji kuingia kwa kutumia nenosiri kuwashwa kwa mtumiaji mpya; ikiwa tayari imezimwa, nakili ~/.ssh/authorized_keys ya root kwenye /home/matt/.ssh/authorized_keys (inayomilikiwa na matt), au bandika ufunguo wako wa umma kwenye faili hiyo wewe mwenyewe.
Mfumo wa hatua hii, yaani ufunguo mmoja kwa kila kifaa, ruhusa zinazosababisha kuingia kwa kutumia ufunguo kushindikana, na kubatilisha ufunguo uliopotea, umeelezwa katika Misingi ya usimamizi wa funguo za SSH.
Toka kisha ingia tena kama matt ukitumia ufunguo, na uthibitishe kuwa inafanya kazi kabla ya kuendelea na hatua inayofuata. Kufunga SSH kabla hujathibitisha kuwa unaweza kuingia kwa kutumia ufunguo ndiko kunakowafanya watu wajifungie nje. Ikiwa uingiaji huo utarudi na Permission denied (publickey), tatua hilo sasa badala ya kurejea kwenye nenosiri, kwa sababu ujumbe huo mmoja unahusu hitilafu tano tofauti na matokeo ya ssh -v yanakuonyesha ni ipi hasa unayo.
Dakika 6: Zima kuingia kama root na matumizi ya nywila
Kwa kuwa key yako sasa inafanya kazi, funga njia mbili ambazo scanners hutegemea. Tumia faili ya drop-in ili masasisho ya package yasiibadilishe. Iite 00- ili ipangwe kabla ya 50-cloud-init.conf, ambayo Ubuntu cloud images huja nayo ikiwa na PasswordAuthentication yes; sshd hutumia thamani ya kwanza inayosoma, kwa hiyo faili inayopangwa baadaye itapuuzwa kimya kimya:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noKisha reload SSH:
sudo systemctl restart sshKisha kagua settings ambazo sshd hutumia kwa kweli, ili drop-in iliyopuuzwa isipotoshe ukaguzi wako:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Nywila zikiwa zimezimwa na kuingia kama root kumefungwa, network traffic ya brute-force inayoendelea dhidi ya seva yako haiwezi kufanikiwa. Maelezo kamili, pamoja na kubadilisha port kwa hiari, yako kwenye Kuimarisha usalama wa SSH kwenye VPS.
Dakika 8: Washa firewall
Kataa kwa chaguo-msingi kila muunganisho unaoingia, kisha ruhusu tu unachohitaji. Ruhusu SSH kabla ya kuiwasha, la sivyo utakata muunganisho wako mwenyewe:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableOngeza sheria za allow kwa kila huduma unayoendesha, kama vile 80/tcp na 443/tcp kwa tovuti. Ikiwa session mpya ya SSH itaacha kuunganishwa baada ya hatua hii, soma kosa kabla ya kugusa chochote, kwa sababu refusal ina maana sshd ilijibu na timeout kwa kawaida ina maana firewall ilizuia packet. Hakikisha IPv4 na IPv6 zote zimeshughulikiwa, kwa sababu firewall inayochuja IPv4 pekee huacha upande wa IPv6 ukiwa wazi kabisa. Mwongozo kamili unapatikana katika Misingi ya Firewalls kwenye VPS. Amri hizi za ufw zinadhania kuwa unatumia Ubuntu au Debian; kwenye seva ya Rocky au AlmaLinux, lengo la default-deny ni lilelile lakini zana ni firewalld, kwa hiyo fuata toleo la firewalld la hatua hii badala yake.
Dakika 10: Wapunguze wachunguzi kwa Fail2ban
Mwisho, ongeza Fail2ban ili kuondoa anwani zinazoshambulia ports zako mara kwa mara:
sudo apt install -y fail2banKwenye Ubuntu 24.04, usakinishaji wa kawaida hulinda SSH tangu boot ya kwanza. Kwa kuwa keys tayari zinahitajika, hii ni kinga ya ziada inayopunguza kelele kwenye logs na kuzuia wahalifu wanaorudia, badala ya kuwa ulinzi wako mkuu.
Orodha yako ya kukagua
Huo ndio runbook. Tumia generator iliyo hapa chini kuweka alama kwenye kila control na kutengeneza checklist iliyobinafsishwa unayoweza kuihifadhi pamoja na seva, ikijumuisha command halisi ya kila hatua:
Pitia orodha hiyo mara moja kwa kila seva mpya, na mchakato mzima utakuwa wa kawaida. Dakika kumi unazotumia sasa zinaweza kukuokoa kwenye madhara makubwa yatakayofuata seva ikivamiwa.
Baada ya kuweka mambo muhimu, updates za kiotomatiki za usalama kwenye Ubuntu huifanya seva ibaki ya kisasa bila wewe kuingia tena. Kila service unayoweka juu yake huhitaji ukaguzi wake, na sehemu dhaifu hubadilika: ukiwa na password vault ya self-hosted, seva haihifadhi plaintext, kwa hiyo hatari halisi za Vaultwarden ni admin token na backup file.
FAQ
Nifanye nini kwanza kwenye VPS mpya?
Sasisha mfumo kwa apt update && apt upgrade -y, kisha unda mtumiaji wa kawaida mwenye sudo na uache kufanya kazi kama root. Baada ya hapo, sanidi funguo za SSH, zima kuingia kama root na uthibitishaji kwa nenosiri, wezesha firewall ya default-deny, na usakinishe Fail2ban. Kuzifanya kwa mpangilio huo kunamaanisha kila hatua ni salama bila kukufungia nje ya seva.
Ninawezaje kuepuka kujifungia nje ninapoweka SSH salama?
Sanidi na ujaribu kuingia kwa kutumia ufunguo wako wa SSH kabla ya kuzima manenosiri au root. Toka kisha uingie tena kwa kutumia ufunguo ili kuthibitisha kuwa unafanya kazi, na ndipo uzime PasswordAuthentication na PermitRootLogin. Unapowezesha firewall, ruhusu port 22 kabla ya kuendesha ufw enable. Ukijifungia nje, console ya wavuti ya mtoa huduma wako itakuwezesha kuingia tena bila SSH.
Je, ninahitaji kweli vitu hivi vyote kwenye seva ndogo?
Ndiyo, kwa sababu scanners hazijali ukubwa wa seva yako. Hujaribu kila IP ya umma kwa njia ileile. Runbook yote huchukua takriban dakika kumi na huondoa njia rahisi za mashambulizi: hakuna kuingia kama root, hakuna kubashiri manenosiri, hakuna kitu kilichowekwa wazi ambacho hukukichagua, na bugs zinazojulikana hutiwa viraka kiotomatiki.
Ni hatua gani moja iliyo muhimu zaidi?
SSH inayotumia ufunguo pekee huku kuingia kama root kumezimwa. Mashambulizi mengi dhidi ya VPS mpya ni ubashiri wa kiotomatiki wa manenosiri ya root, na kuzima mambo hayo mawili hufanya kundi hilo lote la mashambulizi lisiwezekane. Firewall na Fail2ban kisha hupunguza kinachowekwa wazi na kupunguza kasi ya mashambulizi yaliyosalia.
Ninathibitishaje kuwa seva imefungwa ipasavyo?
Kabla ya kuiamini, kagua mambo matatu mwenyewe. Endesha sudo ss -tlnp na uthibitishe kuwa ni port ulizokusudia kufungua pekee ndizo zinazosikiliza kwenye anwani ya umma, bila huduma ya 0.0.0.0 au [::] ambayo ulikuwa umeisahau. Endesha sudo ufw status verbose na uthibitishe kuwa sera chaguo-msingi ya miunganisho inayoingia ni deny na kwamba sheria za plain na (v6) zipo. Pia fungua kikao cha pili cha SSH kila mara kabla ya kufunga cha kwanza, ili kosa katika usanidi wa SSH lisikufungie nje ya seva. Ikiwa yote matatu yanaonekana kuwa sahihi, misingi imewekwa.