Neredeyse her yeni VPS aynı şekilde başlar: root olarak girersiniz, birkaç şey kurarsınız ve bir ay sonra hâlâ root'sunuzdur. Bu, yapıştırdığınız bir betik yanlış dizini silene kadar işler. Sudo'lu normal bir kullanıcı kurmak beş dakika sürer ve sıra komutlardan daha önemlidir — yanlış yaparsanız kendinizi dışarıda bırakırsınız.
İşte Ubuntu 22.04/24.04 ve Debian 12 için güvenli sıra.
1. Kullanıcıyı oluşturun
Root olarak:
adduser deploy
usermod -aG sudo deploy
adduser bir şifre ve bazı isteğe bağlı bilgiler ister (bunları Enter ile geçin). Gerçek bir şifre seçin: sudo için onu yazacaksınız. Minimal bir Debian image'ında komut yoksa önce apt install -y sudo çalıştırın.
2. SSH anahtarınızı verin
En kolay yol, sahipliği doğru tutarak root'un yetkili anahtarlarını kopyalamaktır:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Elle yapmayı tercih ederseniz:
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
Yanlış izinler, anahtarla girişin sessizce başarısız olmasının klasik nedenidir. SSH, diğer kullanıcıların yazabildiği bir authorized_keys dosyasını yok sayar.
3. Bir şey değiştirmeden önce test edin
Root oturumunuzu açık tutun. Yeni bir terminalde:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Kendi IP'nizi ve portunuzu kullanın — NAT planında bu, paneldeki kişisel SSH portunuzdur. sudo whoami çıktısı root ise her şey yolunda. Giriş başarısız olursa düzeltmek için root penceresi hâlâ elinizde.
4. Root girişini kapatın
Şimdi kapıyı kapatın. Ana yapılandırmayı düzenlemek yerine küçük bir drop-in dosyası oluşturun:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t önce sözdizimini kontrol eder. Bozuk bir yapılandırma artı reload, insanların konsola muhtaç kalma şeklidir. PasswordAuthentication no ancak yeni kullanıcınız için anahtarla giriş çalıştığında anlamlıdır — ki az önce bunu test ettiniz.
Bir terminal daha açın ve root'un reddedildiğini, deploy'un ise hâlâ girebildiğini doğrulayın. Sonra eski root oturumunu kapatın.
5. İsteğe bağlı: otomasyon için şifresiz sudo
Bir deploy betiği sorusuz sudo'ya ihtiyaç duyuyorsa, ona tam olarak bunu verin, daha fazlasını değil:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Açıkçası NOPASSWD: ALL cazip ama bu, çalınan bir anahtarın root'a eşit olması demek. Bunu otomasyonun çalıştırdığı komutlarla sınırlayın.
Bir şeyler ters giderse
Paneldeki web konsolu SSH'ye de güvenlik duvarına da bağlı değildir. Oradan girin, /etc/ssh/sshd_config.d/ içindeki dosyayı düzeltin, reload edin, bitti. Tüm kurtarma sürecini kilitlenen bir VPS'e nasıl geri girilir yazısında anlattık.
Sırada ne var
- Gerçekten yalnızca anahtarla girişe geçin: SSH anahtarıyla kimlik doğrulama.
- Kaba kuvvet denemelerinin gürültüsünü azaltın: fail2ban.
- Temellerin geri kalanını yeni VPS güvenlik kontrol listesi ile tamamlayın.
Her planın erişim seçenekleri erişim belgelerinde. $3'lük bir Nano bile root olmayan bir kullanıcıyı hak eder — var olan en ucuz güvenlik yükseltmesi budur.
Yorumlar
Henüz yorum yok. İlk olun.