−25%

yıllık Windows ödemesinde, 31 Ekim'e kadar. Paketlere git

EQVPS

VPS'te sudo kullanıcısı oluşturup root kullanmayı bırakmak

Ubuntu veya Debian'da root olmayan bir sudo kullanıcısı oluşturun, SSH anahtarınızı verin, test edin ve ardından root girişini kapatın — sizi dışarıda bırakmayacak bir sırayla.

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

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.

SSS

Neden root kullanmaya devam etmeyeyim?

Root olarak çalıştırdığınız her şey, bir yazım hatası dahil, bütün sistemi bozabilir. Botlar da önce 'root' kullanıcı adını dener; root girişini kapatmak en çok tahmin edilen hedefi ortadan kaldırır. Adı olan bir kullanıcı ve sudo, her yetkili komuttan önce size bir duraklama ve neyin çalıştırıldığına dair bir kayıt verir.

Kendimi dışarıda bırakırsam ne olur?

Panelinizdeki web konsolunu kullanın. SSH bozuk olsa ya da güvenlik duvarı sizi engellese bile çalışır, böylece giriş yapıp sshd_config'i düzeltebilirsiniz. Root oturumunu kapatmadan önce yeni kullanıcıyı test etmenizin nedeni de budur.

Şifresiz sudo'ya izin vermeli miyim?

Kişisel bir hesap için şifre sorusunu koruyun — SSH anahtarınız sızarsa son savunma hattı odur. Şifresiz sudo, otomasyonun kullandığı ayrı bir deploy kullanıcısı için, gerçekten ihtiyaç duyduğu komutlarla sınırlı olmak kaydıyla makuldür.

Debian sunucumda sudo komutu yok. Neden?

Minimal Debian image'ları onu her zaman içermez. Root olarak 'apt install -y sudo' ile kurun, sonra kullanıcınızı sudo grubuna ekleyin.

Hangi SSH portunu kullanmalıyım?

Panelinizde gösterileni. Özel IP'li planlar kendi IP'nizde 22 numaralı portu kullanır; NAT planları kişisel SSH portunuzu kullanır.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.