Bu makalemizde “Linux İşletim Sistemlerinde SSH (Secure Shell) Yapılandırması” konusunu inceleyeceğiz. SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. Ssh ile ağa bağlı olan iki bilgisayar arasında veri aktarımı güvenlik kanalı üzerinden güvensiz bir ağda yapılır. Bu durumda ağda Ssh ile haberleşen makinelerden biri ssh sunucusu diğeri ssh istemcisi olur. Bu protokol şartları SSH-1 ve SSH-2 olmak üzere iki önemli sürüm üzerinden birbirinden ayrılır. SSH kabuk hesabına erişim için Unix ve benzeri işletim sistemlerinde protokolün en iyi uygulaması olarak bilinir, ama aynı zamanda Windows üzerindeki hesaplara erişim için de kullanılabilir. SSH Telnet ve diğer uzaktan kabuğa erişim yapan güvensiz protokollerin (Berkeley rsh ve rexec protokolü gibi) yerine güvenli veri iletimini sağlaması için tasarlanmıştır. SSH uzaktaki makineye bağlanıp kimlik kanıtlaması yapmak için açık anahtarlı şifrelemeyi kullanır ve bu sayede kullanıcıya sistemi kullanmasına izin vermiş olur. SSH kullanmanın bir çok farklı yolu vardır. Birincisi otomatik olarak açık-gizli anahtar çifti üretme ve parolayı kullanarak yetki sahibi olmak. Diğeri ise kimlik kanıtlaması için açık ve gizli anahtar çiftini manuel olarak üretmek, bu durum kullanıcılara ya da programlara özel bir parola kullanmadan sistemde kimlik kanıtlaması yapmayı sağlar. Bu durumda açık ve gizli anahtarı üreten kişi birbiriyle eşleşen bir anahtar çifti (gizli ve açık ) üretmiş olur ve ürettiği gizli anahtarı kendinde muhafaza eder. Kimlik kanıtlaması yapılması gizli anahtara göredir. SSH sadece makine üzerinde aynı kişiye ait gizli anahtara karşılık gelen açık anahtar olup olmadığını kontrol eder. SSH’ın tüm sürümlerinde açık anahtar geçerli sayılmanda önce bilinmeyen açık anahtarın doğrulanması önemlidir. Açık anahtar sahibinin bilgisiyle ilişkilendirilmiştir.
Sistemimizde SSH paketi genelde kurulu gelir. Eğer kurulu değilse aşağıdaki komutu kullanarak kurabiliriz.
# yum -y install openssh*
1. SSH kullanımında “root” kullanıcısının kısıtlanması (kapatılması) için aşağıdaki komutları kullanabiliriz.
-- SSH yapılandırma dosyamızı açarak değişkenlerimizi düzenliyoruz. # vim /etc/ssh/sshd_config #PermitRootLogin yes satırındaki "#" işaretini kaldırarak aşağıdaki gibi düzenliyoruz. PermitRootLogin no gerekli düzenlemeyi yaptıktan sonra kaydedip çıkıyoruz. -- Ayarların geçerli olabilmesi için SSH servisimizi yeniden başlatıyoruz. # service sshd restart -- Bu şekilde ayarladığımızda sistemimize "root" kullanıcısı ile bağlanamayız ancak başka bir kullanıcı ile bağlanabiliriz. Örneğin sistemimize "oracle" kullanıcısı ile bağlanıp daha sonra "su" komutu ile "root" kullanıcısına geçebiliriz.
2. Sistemimize SSH ile bağlanmasını istediğimiz veya engellemek istediğimiz kullanıcıları aşağıdaki değişkenlerle belirleyebiliriz.
-- Sistemimize "root" dışında bir kullanıcının bağlanmasını engellemek için # vim /etc/ssh/sshd_config dosyasına aşağıdaki değişkeni eklemeliyiz. AllowUsers root -- Sistemimize belli bir kullanıcının bağlanmasını engellemek için DenyUsers oracle değişkenini eklememiz yeterlidir. -- Ayarların geçerli olabilmesi için SSH servisimizi yeniden başlatıyoruz. # service sshd restart
3. SSH programının kullandığı portu değiştirerek ekstra güvenlik sağlayabiliriz. Bu şekilde port numarasını bilmeyen bir kullanıcı sisteme bağlanamayacaktır. Dikkat etmemiz gerekense atayacağımız portun başka bir program tarafından kullanılmamasıdır.
-- Sistemimize "root" dışında bir kullanıcının bağlanmasını engellemek için # vim /etc/ssh/sshd_config dosyasına aşağıdaki port değişkenini değiştirmeliyiz. #Port 22 satırındaki "#" işaretini kaldırarak aşağıdaki gibi düzenliyoruz. Port 2210 -- Ayarların geçerli olabilmesi için SSH servisimizi yeniden başlatıyoruz. # service sshd restart -- Artık sistemimize bağlanacak kullanıcı port numarasını "22" yerine "2210" olarak yazmalıdır. # ssh -W hostname:portnumber veya # ssh hostname -p 2210
4. Linux işletim sistemlerinde “ssh” yazılımı bütünleşik olarak gelmektedir. Ancak Microsoft Windows İşletim Sistemlerinde “ssh” bağlantısı yapabilmek için entegre bir araç bulunmamaktadır. Aşağıdaki gibi benzer bir “ssh” yazılımının sisteme kurulu olması gerekmektedir.
-- puTTY aracını aşağıdaki sisteden indirebiliriz. Bu araç ücretsiz ve kullanımı basittir. Putty -- VanDyke SecureCRT aracını aşağıdaki siteden indirebiliriz. Bu araç ücretli ve gelişmiş bir araçtır. VanDyke SecureCRT
5. Oracle Real Application Cluster Veritabanlarında üyeler birbirleri arasında parolasız olarak güvenli bir şekilde konuşabilirler. Bunun için “ssh” yapılandırmasını kurulum sihirbazı ile yapabiliriz. Ancak bazı durumlarda bu yapılandırmayı elle yapmamız gerekirse aşağıdaki adımları uygulamalıyız.
-- SSH aracı genellikle sistemimizde kurulu halde gelmektedir. Ancak kurulu değilse kurmak için # yum install openssh-server -- SSH aracımızı başlatmak ve sunucumuz başladığında otomatik başlaması için # service sshd start # chkconfig sshd on -- SSH yapılandırmamızı elle yapmak için aşağıdaki adımları tüm üye sunucularda yapıyoruz. -- oracle kullanıcısına geçiyoruz. # su - oracle -- SSH anahtarımızın depolanması için dizinimizi yaratıyoruz. $ mkdir ~/.ssh -- Gerekli çalışma izinlerini veriyoruz. $ chmod 700 ~/.ssh -- SSH anahtarımızı üretiyoruz. Aşağıdaki 3 soruyu "enter" tuşuna basarak varsayılan ayarlarla geçiyoruz. $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is: a4:df:a2:e6:46:f9:b7:4e:20:0a:ab:e7:f3:01:17:f7 oracle@kryrac1.localdomain The key's randomart image is: +--[ RSA 2048]----+ | | | | | . . . | | o + | | o . o.E | | = .oo o | | . o. .o o | | .o .o..o. | |.o.o.+o oo. | +-----------------+ -- Her iki üyede "authorized_keys" dosyasını oluşturuyoruz. $ cd ~/.ssh $ cat id_rsa.pub >> authorized_keys -- Birinci üyede ikinci üyeye ikinci üyeden de birinci üyeye "authorized_keys" dosyasını kopyalıyoruz. -- Birinci üyede aşağıdaki komutu çalıştırıyoruz. $ scp authorized_keys kryrac2.localdomain:/home/oracle/.ssh/ -- İkinci üyede aşağıdaki komutu çalıştırıyoruz. $ scp authorized_keys kryrac1.localdomain:/home/oracle/.ssh/ -- SSH ayarlarımızı test edip gerekli ayarları yapıyoruz. -- Birinci üyede aşağıdaki komutu çalıştırıyoruz. $ ssh kryrac2 date -- İkinci üyede aşağıdaki komutu çalıştırıyoruz. $ ssh kryrac1 date -- Birinci üyede aşağıdaki komutu çalıştırıyoruz. $ ssh kryrac2.localdomain date -- İkinci üyede aşağıdaki komutu çalıştırıyoruz. $ ssh kryrac1.localdomain date -- Her iki üyede aşağıdaki komutlaru çalıştıyoruz. $ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add -- Her iki üyede "root" kullanıcıyla "ssh" servisini yeniden başlatıyoruz. # service sshd restart -- Bu işlemlerden sonra sunucularımız "ssh" üzerinden parolasız konuşacaktır.
6. Oracle Real Application Cluster Veritabanlarında üyeler birbirleri arasında parolasız olarak güvenli bir şekilde konuşabilmesini “grid” kurulumundaki “sshUserSetup.sh” scriptinide kullanarak yapılandırabiliriz.
-- Oracle kullanıcısına geçiyoruz. # su - oracle -- Grid kurulum dosyalarımızın olduğu dizindeki "/media/sshsetup" dizinine geçiyoruz. $ cd /u01/orainstall/grid/media/sshsetup -- SSH yapılandırma scriptimizi aşağıdaki parametreleri kendi sistemimize göre ayarlayıp çalıştırıyoruz. $ ./sshUserSetup.sh -user oracle -hosts "kryrac1 kryrac2" -noPromptPassphrase -- Yapılandırmamız başarılı olduktan sonra her iki üyede "root" kullanıcıyla "ssh" servisini yeniden başlatıyoruz. # service sshd restart
Bu makalemizde “Linux İşletim Sistemlerinde SSH (Secure Shell) Yapılandırması” konusunu inceledik. Ayrıca Oracle RAC veritabanları için SSH bağlantı yapılandırmasını gördük. Oracle Real Application Cluster kurulumu için “Oracle Enterprise Linux İşletim Sisteminde Oracle Real Application Cluster (Rac) Veritabanı Kurulumu” makalemizi inceleyebilirsiniz.
Başka bir makalede görüşmek üzere…
kaynak: http://www.koraykey.com/?p=3828
Yorumlar
Yorum Gönder