−25%

kwa Windows ya mwaka, hadi 31 Okt. Tazama mipango

EQVPS
Anza

Jinsi ya kuunda mtumiaji wa sudo kwenye VPS na kuacha kutumia root

Unda mtumiaji wa sudo asiye root kwenye Ubuntu au Debian, mpe ufunguo wako wa SSH, mjaribu, kisha zima kuingia kwa root — kwa mpangilio usiokufungia nje.

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

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.

Maswali

Kwa nini nisiendelee tu kutumia root?

Chochote unachoendesha kama root kinaweza kuharibu mfumo mzima, hata kosa la kuandika. Bot pia hujaribu jina 'root' kwanza, kwa hiyo kuzima kuingia kwa root kunaondoa lengo linalokisiwa zaidi. Mtumiaji mwenye jina pamoja na sudo anakupa kituo cha kufikiri kabla ya kila amri yenye mamlaka na kumbukumbu ya kilichoendeshwa.

Nikijifungia nje itakuwaje?

Tumia web console iliyo kwenye dashibodi yako. Inafanya kazi hata SSH ikiwa imeharibika au firewall inakuzuia, kwa hiyo unaweza kuingia na kurekebisha sshd_config. Ndiyo sababu pia unamjaribu mtumiaji mpya kabla ya kufunga session ya root.

Niruhusu sudo bila nenosiri?

Kwa akaunti ya mtu, acha ombi la nenosiri — ndiyo kinga ya mwisho ufunguo wako wa SSH ukivuja. Sudo bila nenosiri inafaa kwa mtumiaji maalum wa deploy anayetumiwa na automation, ikiwa imewekewa kikomo kwa amri anazohitaji kweli.

Amri ya sudo haipo kwenye seva yangu ya Debian. Kwa nini?

Image ndogo za Debian hazikuja nayo kila mara. Isakinishe kama root kwa 'apt install -y sudo', kisha ongeza mtumiaji wako kwenye kikundi cha sudo.

Nitumie port ipi ya SSH?

Ile inayoonyeshwa kwenye dashibodi yako. Mipango yenye IP maalum hutumia port 22 kwenye IP yako mwenyewe; mipango ya NAT hutumia port yako binafsi ya SSH.

Maoni

Bado hakuna maoni. Kuwa wa kwanza.

Acha maoni

Maoni yanakaguliwa kabla ya kuonekana.