original in en Georges Tarbouriech
en to tr Ergün Mıhcıoğlu
Georges uzun süreden beri Unix kullanmakta(ticari ve serbest). Güvenlik ile ilgileniyor ve bu alanda
yaptığı büyük işlerden dolayı ücretsiz yazılım topluluklarına teşekkür
ediyor.
SSH,güvenli kabuk (secure shell), çok iyi bir ticari ürün.
Fakat, Unix veya diğer işletim sistemleri için (ticari veya
serbest) çeşitli ücretsiz
ssh istemci veya sunucu uygulamaları mevcut.
Bunların en iyisi OpenSSH, bu linkten alabilirsiniz http://www.openssh.org. Bu yöreden Unix sistemlerine, windos'a, Mac'e...
alternatifler bulabilirsiniz. Windos gibi bazı ürünler için sadece
ücretsiz istemciler alabilirsiniz.
Bu makalede, harici uygulamalardan harici uygulamalara tünel açmak için
ssh'ı nasıl kullanacağımız
üzerine birkaç örnek sunacağız. VPN (Virtual Private Network(Sanal Özel
Ag)) ssh'a bağlıdır
, fakat farklı bir yoldan, bizim burada aldığımızdan çok daha ayrıntılı
bir yoldan. Başka bir
karmaşik çözüm, VTun'u kullanmaktır.
Bu yüzden, bu tünel açmayı, heterojen bir ağda verilerin başkaları
tarafından görülmesini engellemek
için verileri şifreleyen basit ve sade bir yöntem olarak
düşünelim. Açıkça, bu yerel ve uzak
ağların her ikisine de uygulanabilir. Fakat, hatırlarsanız, ssh sadece
verileri şifreler, ağı kendi özünde güvenli yapmaz...
Uyarıldınız !
SSH bir önceki makalede
bahsedilen telnet, rsh veya rlogin'in
yerine geçer. SSH'da bazı güvenlik problemleri bulunmuş olsa da, henüz
verileri şifrelemede iyi bir güvenlik aracı.
Bu arada, yukarıda bahsedilen güvenlik problemi şifrelerle ilgiliydi
Burası "passphrases" kullanımından şiddetle kaçınmayı öneriyor ve de elbette RSA açkılarını!
SSH'i kullanma sizin
, "tcpwraper" gibi, başka güvenlik araçları kullanmanızı engellemez.
Bir ağ üzerinde dolaşan verileri "tcpdump" ve "snoop" gibi araçları kullanarak
izinsiz olarak izlemek oldukça
kolaydır. Bunu, örneğin, telnet'i kullanarak veri değiştokuş eden iki
bilgisayar içeren bir ağda deneyim edebilirsiniz.
Örneğin Linux altında çalışan üçüncü bir makinadan, tcpdump'ı çalıştırın(
root olarak elbette ) ve ne olduğunu
görün. Tüm verileri okuyabilirsiniz !
Elbette ekrandaki görüntüler okunamayacak kadar hızlıdır, fakat hiçbir şey
sizin çıktıyı bir dosyaya yönlendirmenize
ve bunu bir fincan kahve içerken izlemenize engel olmaz. Eğer bu veriler
için doğruysa şifreler için de doğrudur:
yani kapılar kırıcılar için ağızına kadar açıktır. Onlara evinize
girmelerini sağlayacak açkıyı vermiş oldunuz.
Dolaşan verilerin gizli olduğunu hayal edin... Eğer siz bir sistem
yöneticiyseniz korkarım patronunuz sizden başka
bir iş bulmanızı isteyecektir.
Uzak komutlar, rsh, rcp, rlogin de oldukça tehlikelidir, bunlarda da
veriler şifrelenmez. Eğer ssh'ın rsh veya
rlogin'in yerini alması iyi ise, scp olarak rcp'nin yerini alması da
iyidir. Yani, eğer ssh'ı kullanıyorsanız
artık başka uzak komutlara veya telnet'e daha fazla gereksiniminiz yoktur,
en azından onları kullanmamalısınız.
SSH nasıl kurulur, özel ve genel açkılar nasıl oluşturulur... bunlar bu
makalenin alanı dahilinde değil.
Gereksiniminiz olan herşeyi indirdiğiniz ssh arşivinde veya the Linux Documentation
Project'daki bu konu hakkındaki dokümanları okuyarak bulabileceksiniz.
Bu günlerde bilgisayar kullanmak hemen hemen her zaman şöyle veya böyle
veri nakletmek ise, ssh zorunlu olmalı...
bu size kalmış. Fakat ssh telnet'in veya uzak komutların yerini almaktan
daha fazlasını yapabilir.
Harici uygulamalar arasında ve açıkça farklı işletim sistemleri arasında
nakledilen verileri şifrelemede kullanılabilir.
ayrıca bu verileri sıkıştırabilir de. Sıklıkla pop, ftp, http protokolleri
ile kullanılır... sıkıştırmak veya
şifrelemek için. Bu, örneğin, siz bir sistem yöneticisi iseniz ve evden işe
veya işden eve bağlanmak istiyorsanız
çok faydalı olur.
Bir istemci/sunucu uygulaması olmasından dolayı, ssh her ikisinde de
çalışmak zorundadır: ssh'ı sunucu olarak çalıştıran
bir makinaya ve istemci olarak çalıştıran bir diğer makinaya
gereksiniminiz var.
Bu açık gerçek üstünde niçin ısrar ediyorum ? Çünkü ücretsiz yazılımlar
hakkında konuştuğumuzdan, Unix dışında, birçok
işletim sistemi ücretsiz sunuculara sahip değildir. Yani, bazen açıkça
yapamayacaksınız, problemi çevirmeniz gerekecek:
Eğer VNC'yi bilmiyorsanız, tüm zamanların en iyi araçlarından birini
kaçırıyorsunuz demektir. VNC hakkında daha fazla
bilgi edinmek için buraya bir
bakın.
Eğer
http://www.uk.research.att.com/vnc/docs.html'daki VNC'nin
sanal yöresine giderseniz bizim şu anda konuştuğumuz şeyler hakkında
birçok doküman bulabilirsiniz.
Örneğin, bir Windos ssh istemcisinden bir Unix ssh sunucusuna, ssh
üzerinden VNC'yi nasıl kullanıcağınızı bulabilirsiniz.
Bundan dolayı, Frank Stajano'nun yaptığı müthiş işi burada tekrar
yazmayacağım, zaten onun yaptığı benim yapabileceğimden
çok daha iyi.
Şimdi, bunun nasıl çalıştığını görelim.
İlk önce, ücretsiz bir Windos istemcisi seçmek zorundasınız. Bu örnekte
biz Teraterm Pro'yu onun Ttssh uzantısı ile
kullanacağız. Onu şu adresten bulabilirsiniz http://hp.vector.co.jp/authors/VA002416/teraterm.html.
Gerçekleri söylemek gerekirse, bu Fransa'da izin verilen bir sürüm
olduğundan Ttssf olarak adlandırılır. (Bazı şeyler değişiyor
, fakat haberdar olun ki, birçok ülke henüz şifrelemeyi kabul etmiyor. Sizin
ülkenizdeki şifreleme durumunu kontrol etmek
için şu bağlantıyı kullanabilirsiniz:
http://www2.epic.org/reports/crypto2000/countries.html.)
Şimdi, ssh'ı bir Unix sunucusunda çalıştırdığınızı kabul edelim. Aynı
makinada bir
vnc sunucusu da çalıştırabileceğinizi var sayıyoruz. Bu iki sunucu çalıştıktan sonra,
bir NT makinasını, örneğin, bir Unix sunucusuna Ttssh'ı kullanarak bağlayın.
Bu sizin iki makina arasında şifrelenmiş bir bağlantıya sahip olduğunuzu gösterir.
Fakat bu sizin NT makinasından bir şifrelenmiş vnc izleyicisi protokolü (vncistemci)
çalıştırmanıza izin vermez. Bunu yapmak için ssh'a doğru portu ilerletmesini (burada biz
devreye giriyoruz.) söylemeniz lazim.
vnc sunucusu'nu çalıştıran Unix makinasina "bandit(haydut)" denir ve 5901
portunu kullanır, çünkü o görüntü numarası 1, tipik X görüntü numarası bu
makinada 0'dir. Normal kullanım "vncviewer bandit: 1" komutunu göndermektir.
Bu kuşkusuz çalışacaktır, fakat veriler şifrelenmeden. Bunun yerine, NT
kabuğunu (yani Dos arayüzü) kullanarak, "/ssh-L5902:bandit:5901" komutunu
boşluksuz gönderin. Böylece, 5902 yerel portunu oluşturmuş olursunuz. Şimdi
"vncviewer localhost:2" gibi bir komut, VNC protokolü ile sizin NT makinanız
arasında şifrelenmiş bir bağlantıyı çalıştıracaktır. Bu, Ttssh grafiksel bir
arayüze sahip olduğundan, komut satırını kullanmadan da yapılabilir. Ekleyelim
ki bu sözdizimi sadece Ttssh ile ilgilidir. Aynı komutu bir Unix makinasında
yazmak şunu söylemeli: "ssh -L 5902:bandit:5901 bandit".
Bu elbette çok temel bir örnek: siz çok daha karmaşık şeyler yapabilirsiniz. VNC sanal
yöresindeki uygun dökümanları kontrol edin, özellikle Frank Stajano'nunkisini.
MySQL belkide en çok kullanılan
DBMS(Veritabanı Yönetim Sistemi)dir, özellikle internet üzerinde. Yine,
MySQL'i güvenli yapmak bu makalenin alanının dışında Fakat, MySQL sunucusu ile
MySQL istemcisi arasındaki veri dolaşımını şifrelemek baglantıyı daha güvenli
yapar. SSH bunu yapmamıza izin verir, VNC ile yaptığımız gibi, portu
ilerleterek.
Intranet ile ilgili bir örnek alalım. MySQL sunucusu bir
Linux kutusudur ve çoğu istemci NT makinalarıdır. Bir kez daha, Windos
makinalarında Ttssh istemcilerini kullanıcağız.
Tipik MySQL portu 3306'dir. Biz aynı portu (3306) ilerleteceğiz.
Bir yerel ilerletme veya uzak ilerletme yapabilirsiniz.
Yerel bir ilerletme bir NT makinasında "/ssh-L3306:localhost:3306" gibi veya bir Unix
makinasında "ssh -L 3306:localhost:3306" gibi olacaktır. "localhost"'u kullanma size
verileri ev sahibi arayüzü yerine
Biz zaten
Bu örnekler ssh'ın çeşitli kullanımlarını gösterdi. Uygulamalar ve ssh ile çok daha fazla
şey yapabilirsiniz. Bu sizin ihtiyaçlarınıza bağlıdır. Fakat, felsefe herzaman aynıdır:
port ilerletme.
Yine de, daha karmaşık ilerletmeleri kullanırken dikkatli olun. Mesela, eğer üçüncü
bir makina üzerinden ilerletirseniz, bağlantının ortasındaki veri dolaşımı
şifrelenmeyecektir.
Windos Ttssh istemcileri kullananlar için başka bir sorun. İlerletilen portlara olan bağlantı
uzak komutlarda oldugu gibi IP adreslerine bağlıdır, böylece
Güvenlik herkesi ilgilendirmeli, fakat durum böyle değil ! ssh sizin hergün kullanabileceğiniz
güvenlik araçlarından sadece birisidir. Bu oldukça iyi bir tanesi, ne olduğunu düşündüğünüzde,
bir şifreleme veya sıkıştırma aracıdır.
Kendinde, ssh hemen hemen kullanışsızdır, makinanızda sahip olabileceğiniz
çeşitli deliklerin hiçbirini çözmez. Bir ev sahibini, bir ağı güvenli yapmak
çok büyük bir iştir ve araçlar, oldukça iyi olsalar da, herşeyi yapamazlar.
Olay güvenlik olduğunda temel görevler zorunludur. Kullanılmayan tüm servisleri kaldırmayı
unutmayın, SUID root programlarını kontrol edin, riskli programları kaldırın... Yapılacak
birçok şey var ve hiçbir zaman yeterli olmayacak. Tüm güvenlik araçlarını
kurabilirsiniz, fakat eğer arka kapılardan birini açık bırakırsanız bunların
hepsi faydasız olacaktır. Elbette, bu başka bir hikaye, fakat açık olanı
unutmayın.
SSH'a geri dönelim, onu doğru ve yapıldığı iş için kullanmaya başladığınızda, onsuz
ayrılamayacağınız bir araç oldugunu düşünelim. Yine, onu