Bu yazım LPI-102 sınavı için hazırlandığımız konulardan SSH yapılandırması hakkında bir yazı olacak.
SSH'a direk dalmadan önce Telnet'ten bahsetmek gerekir tabi. Telnet, Unix ve Linux sistemlerde uzaktan oturum açmak için kullanılan bir protokol. Dezavantajı: Tüm akan veri ağ üzerinden şifresiz aktarılıyor. Bu da ağ trafiğinin izlenebileceği, hassas verilere ulaşılabileceği anlamına geliyor.
Burada SSH devreye giriyor(Secure Shell/Güvenli Kabuk). Ağ bağlantısının tüm parçaları için güçlü şifreleme teknikleri ile güvenlik açığını kapatıp kullanıcılara daha güvenli bir protokol olmuş. Ayrıca SSH ile dosya transferi de yapılabilir.
Sistemde SSH Seçeneklerini Ayarlamak için;
SSH çoğunlukla kurulu olarak gelir. Değişiklik yapmak istersek, erişimi sınırlamak ya da dosya düzenleme vs. /etc/ssh/sshd_config dosyasına bakmamız gerekir.
Temel SSH Özelliklerinin Yapılandırılması:
/etc/ssh/sshd_config dosyası seçenek satırlarından oluşur.Kitapta bahsedilen birkaç seçeneği ben de yazayım.
protokol : Bu seçenekte protokol seviyeleri belirtiliyor(1 ya da 2 değerini alabiliyor) her iki seviyeyi destekleyecek şekilde de yapılandırabilirsiniz.(1,2 a da 2,1 eşdeğerdir)
PermitRootLogin no/yes : root ile uzaktan bilgisayara erişime zin olup olmadığını belirtir.İlave güvenlik için varsayılan no'dur.
X11Forwarding : Bu seçenek OpenSSH'ın tünel özelliklerinin olup olmaığını belirtir.
Ek seçenekler hakkında daha fazla bilgi için: .sshd_config man sayfasına bakın.
Değişiklik yaparsanız SysV başlangıç komut dosyası ile yeniden başlatmanız gerekir.
SSH Anahtarları:
Her kullanıcının ve her sunucunun, sistemini tanımlamak amacıyla benzersiz bir numarası ve ya anahtarı vardır.
Bir genel bir de özel anahtardan oluşur.Bu iki anahtar matematiksel belirli bir ortak anahtarla şifrelenir. Veriler sadece eşlenen özel anahtarlar ile deşifre olabilir.
Bir bağlantı kurulurken her iki tarafın da genel anahtarları gönderilir.Sonra her ik tarafın ortak anahtarı ile karşıya gidecek veriler şifrelenir.Sadece alıcı özel şifresi ile veriyi deşifre edebilir.
OpenSSH sunucusu, SysV başlatma komutu ile saklanan ortak ve özel anahtarları arar ve yoksa üretir.
Toplamda 4-6 anahtara ihtyaç vardır: 2 ya da 3 tanesi şifreleme aracı SSH için genel ve özel anahtarları destekler.Bu anahtarlar genellikler /etc/ssh 'da saklanır. ".pub" uzantılı dosyalar genel anahtarları içerir.
Ssh-keygen aşagıdaki komutlarla
anahtar luşturur:
# ssh-keygen -q -t rsa1 -f
/etc/ssh/ssh_host_key -C ‘’ -N ‘’
# ssh-keygen -q -t rsa -f
/etc/ssh/ssh_host_rsa_key -C ‘’ -N ‘’
# ssh-keygen -q -t dsa -f
/etc/ssh/ssh_host_dsa_key -C ‘’ -N ‘’
-t anahtar tipini belirtmek için.
-C yorum
-N yeni parola
Özel anahtar dosyalarının uygun
korumada olduklarından emin olun(dosya izinleri 600 olmalı:
-rw------)
Genel anahtarlar herkes tarafından
okunabilir olmalı.
SSH Erişim Kontrolü:
Ssh erişimi en temel olarak parola
kimlik doğrulaması üzerinden gerçekleşir.Telnet'in de yaptığı
gibi bir kullanıcı adı ve bir parola verilir.Parola doğrulamanın
ötesinde, SSH bazı sınırlamaları destekler:
TCP Wrappers: Eğer bir
sunucuda SSH çalıştırdıysanız ya da TCP Wrappers desteği ile
sunucu derlendiğinde IP adreslerine göre erişimi sınırlamak için
/etc/host.allow ve /etc/host.deny dosyalarını kullanabilirsiniz.Bu
destek mevcut olabilir/olmayabilir.
Firewalls: Tüm
sunucularda olduğu gibi, bir güvenlik duvarı kullanarak erişim
kısıtlanabilir.SSH, TCP kullanır port 22.
SSH Yoluyla Dosya Kopyalama:
SSH'da dosya
kopyalama komutu :scp. Bu komut yerel dosyaları kopyalamak için cp
komutu gibi çalışır.Ancak hedef dosya adı önce, isteğe bağlı
olarak kullanıcı adı ve zorunlu hedef bilgisayar belirtilmelidir.
Örnek:
ayse.gmail.com
üzerinde ali hesabına deneme.c için :
$ scp deneme.c ali@ayse.gmail.com:
(:) yı
unutursak scp, cp gibi çalışır. Dosyanın adını değiştirmek
istersek : 'dan sonrayeni dosya adını yazmalıyız.
Parola Olmadan Girişleri
Yapılandırma:
Eğer SSH'ı ya
da otomatik araçları sıklıkla kullanıyorsanız ve sürekli parola yazmak istemiyorsanız bunun yolu:
Anahtar
kullanarak Ssh istemcisi kurmak ve sunucu bilgisayar için ortak bir anahtar vermek.Bu yapılandırma ile parola yazmanıza gerek kalmaz.
İstemci bilgisayar bunu sizin için kendisi belirler.
Not:
SSH' ı parola
kullanmadan çalıştırmak için yapılandırma uygundur ancak
güvenlik riski artar. Eğer birisi SSH istemci sisteminde hesabınıza
erişirse, SSH sunucusuna da girişi mümkün olacaktır. Bu nedenle çok iyi
korunan bir istemciden şifresiz giriş oluşturmalısınız.Bu
şekilde yapılandırma root erişimi nedeniyle risklidir.
Parola
gerektirmeyen yapılandırma için şu adımları izleyin :
1. Uzaktan
erişimi yapacak kullanıcı olarak SSH istemci sistemine giriş.
2.sürüm 2 SSH
anahtarı oluşturmak için aşağıdaki komutu yazın:
$ ssh-keygen -q
-t rsa -f ~/.ssh/id_rsa -C ‘’ -N ‘’
3.adım2 de iki
dosya oluşur: Id_rsa ve Id_rsa.pub . Kullanışlı herhangibir
şekilde bu iki dosyayı SSH snucu bilgisayarına transfer edin--
disk üzerinden, scp ile ya da herhangibir başka yol--
4.Sunucu
sistemine giriş yapın.SSH kullanıyorsanız parolanızı yazmanız
gerekir.
5.Sadece
~/.ssh/autorized_keys dosyasını transfer ettik.İçeriği
ekleyin.(Bu dosyaları kontrol etmelisiniz.Bazen ismi
~/.ssh/autorized_keys2 olabiliyor.)Eğer Orijinal dosya ~/temp.rsa
olarak depolandıysa cat ile ~/temp.rsa >>
~/.ssh/authorized_keys bu işi yaparız.
İki bilgisayar
otomatik olarak kimlik doğrular. Parola gerekmez.
SSH Agent Kullanımı:
Başka bir SSH
kimlik doğrulama programıdır.Bu program bağlantıları başlatmak
için bir parola gerektirir. Bu yüzden daha güvenli.Kullanmak için
adımlar:
1.Parolasız
giriş yapılandırmasının aynısı.1 şey farklı: -N
parametresini yoksayın. Parola istenecek.Bu parola ssh-agent ile
yönetilen tüm ssh giriş için anahtar olacak.
2.ssh istemci
sistemi, türü ssh-agent /bin/bash . Ssh-agent başladığında
/bin/bash de çalışmaya başladı.Sonraki ssh grişi için bu bash
oturumunu kullanacağız.
3.yeni çekirdek,
türü ssh_add ~/.ssh/id_rsa. Bu, ssh-agent tarafından yönetilen
ayarlar için RSA anahtarı ekler.SSH şimdik parola yazmanızı
işter.
Bu noktadan
itibaren SSH size uzak bir sisteme bağlanmak için genel anahtar
verdi.Parolaya ihtiyaç yok.Oturumdan çıkıldığında 2 ve 3. adım
tekrarlanmak zorunda.
SSH Port Tünelleri Ayarlama:
SSH tünelinin
temel fikri: Sunucu bilgisayar 2 sunucu program ile çalışır:
tünel protokolü için bir sunucu (ınternet mail access protokol,
İmap) ve ssh sunucusu.Tünel protokolü için SSH istemci de
bağlantıları dinler.
Ssh istemcisi,
tünel protokol istemcisinden bir bağlantı aldığında , tünel
protokolü bağlantısı ssh kullanarak şifrelenmiş olur.Böylece
veri şifrelenmiş biçimde, ağ üzerinden hedef protokol
şifrelemeyi desteklemiyor olsa bile hedef sunucuya
yönlendirilebilir.
Tabi tüm bunlar
özel yapılandırma gerektirir.Sunucuda varsayılan yapılandırma
tünel özelliğini sağlar.Ama emin olmak için,
/etc/ssh/sshd_config dosyasını kontrol etmek gerekir.:
AllowTcpForwarding
no ise yes olarak
değiştirin.Eğer mevcut değil ya da zaten evet olarak ayarlıysa
değiştirmek gerekmez.
İstemci
tarafında, sunucu bilgisayara özel bir ssh bağlantısı kurmak gerekir. Normal ssh istemci programı ile bunu yapabiliriz. Ama birkaç
parametre gerekir.
Örneğin:
#ssh -N -f -L
142:mail.ali.edu:143 ayse@mail.ali.edu
-N ve -f uzak
bir komut çalıştırmak için değil.(n şifre sorar, f arka planda
çalışması için)
Bu seçenekler
tünel için gereklidir. -L herhangibir yerel bağlantı noktasını
dinlemek için. (hangi uzak bilgisayar olacağı ve uzak bilgisayar
noktasına bağlanmak için)
Örnekte, yerel
bağlantı noktası 142, dinler ve mail.ali.edu üzerinde 143
bağlantı noktası bağlanır.
Her iki uçta da
aynı bağlantı noktası kullanılabilir. Son parametre ayse@mail.ali.edu : Bir uzak
kullanıcı adı ve bilgisayarın hangi tünele gireceğini belirtmek
için.
Kolay gelsin..
Hiç yorum yok:
Yorum Gönder