Karibu kila VPS mpya huanza kwa njia ileile: unaingia kama root, unasakinisha vitu vichache, na mwezi mmoja baadaye bado wewe ni root. Inafanya kazi hadi siku script uliyobandika inafuta folda isiyo sahihi. Kuandaa mtumiaji wa kawaida mwenye sudo huchukua dakika tano, na mpangilio ni muhimu kuliko amri — ukikosea, unajifungia nje.
Huu ndio mpangilio salama kwa Ubuntu 22.04/24.04 na Debian 12.
1. Unda mtumiaji
Kama root:
adduser deploy
usermod -aG sudo deploy
adduser inauliza nenosiri na maelezo kadhaa ya hiari (bonyeza tu Enter kuyapita). Chagua nenosiri halisi: utaliandika kwa sudo. Kwenye image ndogo ya Debian, endesha apt install -y sudo kwanza kama amri haipo.
2. Mpe ufunguo wako wa SSH
Njia rahisi zaidi ni kunakili funguo zilizoidhinishwa za root huku ukihifadhi umiliki sahihi:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Ukipendelea kufanya kwa mkono:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Ruhusa zisizo sahihi ndizo sababu ya kawaida ya kuingia kwa ufunguo kushindwa kimyakimya. SSH hupuuza authorized_keys ambayo watumiaji wengine wanaweza kuiandikia.
3. Jaribu kabla ya kubadilisha chochote
Acha session ya root wazi. Kwenye terminal mpya:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Tumia IP na port yako — kwenye mpango wa NAT hiyo ni port binafsi ya SSH kutoka dashibodi. Kama sudo whoami inachapisha root, uko sawa. Kuingia kukishindwa, bado una dirisha la root la kurekebisha.
4. Zima kuingia kwa root
Sasa funga mlango. Unda faili dogo la drop-in badala ya kuhariri mipangilio mikuu:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t hukagua sintaksia kwanza. Mipangilio iliyoharibika pamoja na reload ndivyo watu huishia kuhitaji console. PasswordAuthentication no ina maana tu pale kuingia kwa ufunguo kunapofanya kazi kwa mtumiaji mpya — jambo ambalo umelijaribu sasa hivi.
Fungua terminal nyingine na uhakikishe root inakataliwa na deploy bado inaingia. Kisha funga session ya zamani ya root.
5. Hiari: sudo bila nenosiri kwa automation
Kama script ya deploy inahitaji sudo bila kuulizwa, mpe hicho hasa na si zaidi:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Kusema kweli, NOPASSWD: ALL inavutia, lakini inamaanisha ufunguo ulioibiwa ni sawa na root. Iwekee kikomo kwa amri ambazo automation inaendesha.
Kitu kikienda vibaya
Web console kwenye dashibodi haitegemei SSH wala firewall. Ingia kupitia hapo, rekebisha faili ndani ya /etc/ssh/sshd_config.d/, fanya reload, basi. Tumeandika mchakato mzima wa urejeshaji katika jinsi ya kurudi kwenye VPS uliyofungiwa nje.
Nini kifuate
- Hamia kikamilifu kwenye kuingia kwa ufunguo pekee: uthibitishaji kwa ufunguo wa SSH.
- Punguza kelele za majaribio ya brute force: fail2ban.
- Kamilisha misingi iliyobaki kwa orodha ya usalama wa VPS mpya.
Chaguo za ufikiaji za kila mpango ziko kwenye nyaraka za ufikiaji. Hata Nano ya $3 inastahili mtumiaji asiye root — ndio uboreshaji wa usalama wa bei nafuu kuliko wote.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.