Debian 8 kurarak linux tabanlı bir sunucu hazırlarken ilk yapılması gereken temel birkaç ayar bulunuyor. Uzun süreli kullanacağım bir sunucu da olsa, kısa süreli geliştirme ya da sınama amaçlı bir sunucu da olsa genelde bunları hep yaparım. Hem kendim için not almak hem de işine yarayacak olanlarla paylaşmak için buraya yazıyorum. (Buradaki adımlar muhtemelen Debian türevi dağıtımların (Ubuntu, Pardus…) çoğuyla uyumludur.)
Root Girişi
Öncelikle sunucuya en üst düzey yönetici (root) olarak giriş yapıyoruz. Eğer makinemize fiziksel erişimimiz varsa giriş ekranında root kullanıcı adı ve bu kullanıcı için belirlediğimiz parolayla giriş yapabiliriz. Makinemiz uzaktaysa ssh ile bağlanmamız gerekiyor. Uzak makineye Linux uçbirimde (terminal) şu komutu yazarak bağlanıyoruz:
ssh root@SUNUCU_IP_ADRESI
Bu komutu verdikten sonra parolamızı girerek oturum açma işlemini tamamlıyoruz. Eğer sunucuya ilk kez bağlanıyorsak “The authenticity of host ‘SUNUCU_IP_ADRESI’ can’t be established.” gibi bir uyarı alabilirsiniz. Bu uyarıyı ‘yes’ cevabıyla geçtiğinizde uzak sunucunun ip adresi ve parmak izi yerel makinenize kaydedilecek ve bir dahaki girişte sorulmayacaktır.
Yeni Kullanıcı Oluşturma
Sunucu güvenliğini tehlikeye atmamak için root parolanızın yeterince uzun ve karmaşık olduğundan emin olun ve tercihen uzaktan (ssh yoluyla) root erişimini engelleyin; çünkü sunucunuza sızmaya çalışan saldırganların ilk deneyeceği kullanıcı adı root olacaktır ve başarılı olmaları durumunda sunucunuzda en üst düzey yetkiye sahip olurlar. Bunun için öncelikle yeni bir kullanıcı oluşturmalısınız; böylece root erişimini engellediğinizde sunucuya ulaşabileceksiniz. Uzak makinede şu komut ile yeni bir kullanıcı oluşturun (yeni kullanıcı adımız ‘deneme’ olsun):
adduser deneme
Bu komutu verdiğinizde parola, isim, vb. bilgiler sorulacaktır. Bunlardan sadece parola bilgisini girip geri kalanları enter ile geçebilirsiniz. Parolanızın uzunluğu ve karmaşıklığı arttıkça sunucunuzun güvenliği de artacaktır.
SSH Yapılandırma
Şimdi de sunucumuzun güvenliğini artırmak için ssh bağlantı noktasını (port) değiştirip root erişimini kapatalım. Öncelikle uzak makinede şu komutu vererek ssh yapılandırma dosyasını açın:
nano /etc/ssh/sshd_config
Açılan dosyada öncelikle
Port 22
değerini bulun ve buradaki port numarasını tercihen büyük ve başka bir uygulama tarafından kullanılmayan bir sayı ile değiştirin. Ben burada 2593 değerini kullanacağım. Yani bu satırın son hali şöyle olacak:
Port 2593
Şimdi de root erişimini engellemek için şu satırın bulun:
PermitRootLogin yes
ve şu şekilde değiştirin:
PermitRootLogin no
Dosyadaki değişiklikleri yaptıktan sonra kaydedip kapatın (CTRL-X
, ardından Y
, sonra da ENTER
). Yaptığımız değişikliklerin etkinleşmesi için sshd hizmetini yeniden başlatmamız gerekiyor. Bunun için uzak sunucuda şu komutu veriyoruz:
systemctl restart ssh
Şimdi de yeni bir uçbirim penceresi açıp şu komutu kullanarak uzak sunucuya yeni kullanıcı adımızla bağlanarak her şeyin yolunda olduğundan emin olalım:
ssh deneme@SUNUCU_IP_ADRESI -p 2593
Eğer başarıyla giriş yaptıysak yeni kullanıcımıza yönetici hakları (sudo) verip sonra da basit bir güvenlik duvarı (firewall) ayarlayabiliriz. Şimdilik her iki uçbirim penceresi de (root ve yeni kullanıcı) açık kalsın.
Sudo
Yeni kullanıcımızı sudo listesine eklemek için öncelikle root olarak uzak makinede şu komutları vererek sudo paketini kuralım:
apt-get update
apt-get install sudo
Paket kurulumu bittikten sonra yine root olarak uzak makinede şu komutu vererek yeni kullanıcımızı sudoers listesine ekliyoruz (‘deneme’ yerine kendi kullanıcı adınızı yazın):
usermod -a -G sudo deneme
Artık root kullanıcısına ait uçbirimden şu komutlarla çıkış yapıp pencereyi kapatabiliriz:
logout
exit
Bundan sonra yeni kullanıcınızla komutların başına ‘sudo’ ekleyerek yönetici haklarıyla çalıştırabilirsiniz.
Güvenlik Duvarı (Firewall)
Sadece ihtiyaç duyduğumuz bağlantı noktalarından erişime izin verip geri kalanları engellemek de sunucumuzun güvenliğini artıracaktır. Şimdilik sunucuda sadece ssh bağlantı noktasına ihtiyaç duyduğumuz için SSH Yapılandırma adımında belirlediğimiz port numarasından erişime izin vereceğiz. Diğer tüm bağlantı noktaları engellenecek. Bunun için öncelikle uzak makinede yeni kullanıcımızla şu komutu vererek Uncomplicated Firewall (ufw) uygulamasını kuruyoruz:
sudo apt-get install ufw
Kurulum bittikten sonra şu komutla ssh bağlantı noktasından erişime izin veriyoruz (2593 yerine SSH Yapılandırma adımında kendi belirlediğiniz bağlantı noktası numarasını girin):
sudo ufw allow 2593/tcp
Şimdi de girdiğimiz yeni engelleme/izin verme kurallarını etkinleştirmek için uzak makinede şu komutu verelim:
sudo ufw enable
Bu komutu verdiğinizde, ssh bağlantınızın kopabileceğini belirten bir uyarı alırsınız. Eğer yeni belirlediğiniz bağlantı noktasından giriş yapmadıysanız ya da ufw komutuna yanlış port numarası girdiyseniz makineye bir daha erişemeyebilirsiniz; o yüzden bu bilgileri doğru girdiğinizden emin olun!
Bu noktaya kadar, yeni Debian Linux sunucunuzun kurulumu için sağlam bir temel atmış oldunuz. Artık ihtiyacınız olan diğer yazılımları kurarak sunucunuzu yapılandırmaya devam edebilirsiniz. Özgür kalın! 😉
Kaynakça
Sorumluluk Reddi (Yasal Uyarı)
Bu web sitesinde ve/veya makalede verilen bilgilerin doğruluğunu teyit etmek okuyucunun sorumluluğundadır. Buradaki bilgiler sadece yardımcı olmak amacıyla ve iyi niyetle paylaşılmaktadır; fakat bu bilgilere dayanarak hareket etmek ya da etmemek tamamen okuyucunun sorumluluğundadır ve doğabilecek sonuçlar ve/veya oluşabilecek zararlar nedeniyle yazara maddi veya manevi hiçbir sorumluluk yüklenemez.