Linux

Linux/Debian'da SSH portunu bulmak ve değiştirmek

Konu:

SSH protokolü özellikle Linux tabanlı sistemler için uzak sunularla haberleşme adına en yaygın kullanılan yollardan biri. Bu bakımdan güvenliği de ciddi olarak önem taşıyor. Adından da anlaşılacağı gibi SSH, "Secure" SHell, yani kendinden güvenli bir yapıya sahip. Fakat yine de SSH bağlantınızın güvenliğini küçük bir hamleyle bir miktar daha sıkılaştırmak mümkün. Bunun için bağlantı portunu değiştirebilirsiniz.

Varsayılan port 22 iken bunu kullanılmayan başka bir port olarak ayarlamanız SSH için yapılması muhtemel saldırıları için bir miktar daha güvenli bir ortam oluşturulabilir. En yaygın olarak kullanılan portları şu linkte bulabilirsiniz. İlgili sayfadaki portlar varsayılan olarak kullanıldığı için siz de bunlardan başka bir port seçmeniz uygun olacaktır. Yoksa başka bir uygulama ile çakışma yaşayabilirsiniz. Burada örnek olarak 32'yi kullanalım.

Önce sshd yapılandırma dosyasını sevdiğimiz bir metin düzenleyici ile açıyoruz. Örneğin vi:

vi /etc/ssh/sshd_config

root olarak erişim sağlamanız gerekiyorsa root olarak giriş yapmayı unutmayın.

Ardından dosya içindeki Ports satırını bulup değiştirelim:

# What ports, IPs and protocols we listen for
Port 32

Dosyayı kaydedip kapattıktan sonra SSH hizmetini yeniden başlatalım:

/etc/init.d/ssh restart

Bundan sonra bağlantıyı şu şekilde sağlayabiliriz:

ssh username@hostname.com -p 32

Kaynak: http://linuxlookup.com/howto/change_default_ssh_port

Linux'de Screen Aracının Basit Kullanımı

Konu:

Etiketler:

SSH ya da benzeri bir yol ile uzak bağlantı yaptığımız Linux terminallerinde bağlantı bitse ya da bitirilse bile çalışmasının durmasını istemediğimiz bazı komutlar olabilir. Bunun için screen aracını kullanabiliriz. Screen, makinamızda yüklü değilse yüklememiz gerekebilir (örn. Ubuntu için sudo apt-get install screen).

Henüz screen'i kullanarak herhangi bir processi bırakmamışsak (gerekıyorsa sudo ile birlikte) sadece screen komutu ile yeni bir terminal açabiliriz. Ardından terminali terketsek de devam etmesini istediğimiz komutu çalıştırıp Ctrl + A ve ardından Ctrl + D tuş kombinasyonu ile ilgili terminali deattach edebiliriz, yani ayırabiliriz. Ayırdığımız terminaldeki işlem devam edecektir. Fakat biz o terminali terketmiş oluruyoruz.

Terkettiğimiz bir terminalin hayatta olduğunu görmek için screen -list komutunu kullanabiliriz. Bıraktığımız tüm terminal ekranlarının listesini bize verecektir.

En son terkedilen terminale geri dönmek yani terminali attach etmek için screen -d -r komutunu kullanırız. Bu şekilde en son bıraktığımız terminale ulaşırız.

Eğer hayatta olan bir terminal ile işimiz bitti ve bu terminali sonlandırmak istiyorsak, ilgili terminale bağlıyken exit komutuyla bu terminalin hayatına son verebiliriz.

Yani kısaca;

  1. screen deriz ve yeni bir terminal açılır. Bu terminalde çalışmasını istediğimiz komutu yazarız, örneğin 'node app' komutunu çalıştıralım;
  2. node app deriz.
  3. Komutumuzu bitirmeden terminalde ayrılmak için Ctrl + A ve ardından Ctrl + D tuş kombinasyonlarını kullanırız.
  4. Önceki terminale geri döndük, devam eden terminale gitmek için screen -d -r komutunu çalıştırırız.
  5. Bu terminali durdurmak için exit deriz.
  6. Tüm terminalleri listelemek için: screen -list

Not: Screen komutları için root yetkisi gerekebilir. Dolayısıyla örneğin Ubuntu'da her bir screen komutundan önce sudo gerekebilir.

Sorun: screen komutunu çalıştırdığımda boş bir ekran ve No more PTYs. uyarısı ile karşılaşıyorum. Nasıl çözebilirim?

screen komutunu root yetkisi ile çalıştırmadığımız takdirde böyle bir uyarı alırız. screen'i root yetkisiyle çalıştırdığımızda sorun olmayacaktır. Örneğin ubuntu için sudo screen demek yeterlidir.

Ubuntu VPS İçin Yapılacaklar Listesi

  1. Yeni kullanıcı oluştur
  2. Ubuntu VPS kurulumu sonucunda size bir root kullanıcısı verilecek. Ubuntu için root aslında siz istemediğiniz sürece verilmeyen bir kullanıcı. Ancak VPS için illa ki bir root kullanıcısı üretilir ve bu kullanıcının şifresi size verilir. Root kullanıcısını SSH bağlantısı için kullanmak bir güvenlik açığı oluşturacağı için root ile değil, sudo yetkilerine sahip başka bir kullanıcı ile bağlantı sağlamak uygun olacaktır. adduser komutu ile yeni kullanıcı oluşturulur.
    adduser yenikullanici

  3. Yeni kullanıcıyı sudo grubuna ekle
  4. Kullanıcıyı oluşturduktan sonra bu kullanıcıya sudo yetkileri vermek için sudo grubuna eklemek gerekiyor. Yine adduser komutu ile yeni kullanıcıyı sudo grubuna ekliyoruz.
    adduser yenikullanici sudo

  5. Yeni kullanıcı için sudo yetkileri kontrolü yap
  6. Yeni eklediğimiz kullanıcının sudo yetkilerine gerçekten sahip olduğunu kontrol etmek üzere root üzerinden yaptığımız SSH bağlantsını kapatıp yeni kullanıcı ile bağlanalım ve birkaç sudo gerektiren komut girelim. Böylece yetkileri kullanabildiğimizden emin olalım.

  7. root için SSH erişimini kapat
  8. Yeni kullanıcı sudo yetkilerine sahip olduğuna göre artık root kullanıcısının SSH bağlantısını kapatmak ve SSH sunucusunu yeniden başlatmak gerekiyor.
    Dikkat: Eğer yeni kullanıcı ile sudo yapılamıyorsa, root'u SSH'a kapattığınızda VPS'e SSH bağlantısını sudo yetkileri ile yapabileceğiniz başka bir kullanıcı olmayacağı için tüm sunucuyu kaybetme riskiniz var. (Tecrübe konuştu. Uyarıldınız.)
    SSH yapılandırma dosyası /etc/ssh/sshd_config . Bu dosyadaki şu satırı buluyoruz:
    PermitRootLogin yes
    Bu satırın anlamı root kullanıcısının SSH bağlantısı yapabilmesidir. Buradaki yes yerine no yazarak root'un SSH bağlantsı yapmasını engelliyoruz:
    PermitRootLogin no
    Artık root ile değil, diğer sudo yetkili kullanıcı ile SSH bağlantısı yapacağız.

Linux Dosya İzinleri (File permissions)

Linux'u geç öğrenmenin getirisi ya da götürüsü diyelim. Aşağıdaki görsel bana bir şeyler ifade ettiğinden kenarda dursun istedim.

ll komutunun ardından görünen drxw'ler şifre olmaktan çıksın istiyorum. O halde şunu hatırlayayım:

Kaynak: Ücretsiz olarak dağıtılan Ubuntu Pocket Guide and Reference kitabı. İndirme adresi: http://ubuntupocketguide.com/download_main.html

Linux Ubuntu'da RSA anahtarı oluşturmak

Komut satırında aşağıdaki komutları sırayla giriyoruz;

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Yani

  1. home klasöründe .ssh adlı bir klasör oluştur
  2. bu klasöre 700 izni ver
  3. ssh-keygen dosyasını çalıştır

Bu noktada bize RSA anahtar dosyasını nereye kaydedeceğimiz sorulacak.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hosaf.org/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hosaf.org/.ssh/id_rsa.
Your public key has been saved in /home/hosaf.org/.ssh/id_rsa.pub.

Bunu varsayılan olarak home klasörüne kaydetmek için Enter tuşuna basıp geçebiliriz. Ardından bir şifre (passphrase - geçiş ifadesi) istenecek. Bunu belirleyip iki kere yazıyoruz. Ardından işlem doğruysa bu anahtar belirttiğimiz yere yazılır.

Kaynak: https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Generating_RSA_Keys

Sayfalar

Subscribe to RSS - Linux