Sanal Bilgi Anarşizminden Özgürlüğe Giden Yol ve WikiLeaks Devrimi

Önsöz

Son günlerde WikiLeaks ile daha çok tartışılır hale gelen sanal istihbarat, bilgi sızdırma ve illegalite nasıl oluyor da böyle büyük destek bulabiliyor? Türkiye’de bunun örnekleri var mıdır, yaşanmış mıdır? Bu tarzda bir oluşum için kullanılacak yasal dayanaklar ve etmenler nelerdir? Hangi firmalar bu anlamda size karşı sadakatini korur? Sınırlar nelerdir ve ne derece zorlayabilirsiniz? Bu yazımda biraz bu soruların cevabını vermek için çalışacağım.

Bilgi Anarşizmi

Anarşizm, (Yunanca an (-sız, olumsuzluk eki) archos (yönetici)’dan türetilmiştir, yönetcisiz anlamına gelir). toplumsal otoritenin, tahakkümün, erkin ve hiyerarşinin tüm biçimlerini bertaraf etmeyi savunan çeşitli politik felsefeleri ve toplumsal hareketleri tanımlayan sosyal bir terimdir. Anarşizm, her koşulda her türlü otoriteyi reddetmektir.

Wikipedia

İnternet üzerinde veya gerçek hayatta değerlendirecek olursak; bilgiye anarşizim açısından bakabilmek için sahipli ve sahipsiz olarak ayırabiliriz.

En basit düşünceyle, gizlilik değeri taşımayan, sahibinin üzerinde bencillik hissetmediği bilgi sahipsiz bilgidir ve sahibi tarafından paylaşılmasında sakınca görülmez. Gizlilik değeri taşıyan, çeşitli kişi-kurum-kuruluş tarafından sahiplenilmiş ve paylaşılması istenmeyen bilgi ise sahipli bilgidir.

Bilgi anarşistleri ise her türlü otoriteyi, tahakkümü ve hiyerarşiyi reddetme doğasından dolayı sahipli bilgiyi kabullenmez. Bilgi hiç kimsenin himayesi altında olmamalıdır, doğası gereği düşünce ürünü olduğundan dolayı özgür olmalıdır.

İnternet üzerinde paylaşılan sahipli bilgilerin bir kısmı bilgi anarşistleri, diğer bir kısmı ise istihbarat grupları tarafından paylaşılmaktadır.

Özetle;

Bilgi anarşisti, bilginin bir sahibi olmasına karşı çıkar ve düşünce ürünü olan bilgilerin doğası gereği özgürce paylaşılabilmesi için mücadele verir.

İstihbarat servisleri gibi kurumlar ise çeşitli çıkarlar ve hedefler uğruna, gizlilik dereceli veya sahipli diyebileceğimiz bilgileri paylaşır.

Wiki Leaks Devrimi – Anarşizm’den Özgürcülüğe

Julian Assange tarafından kurulan wikileaks, Pentagon’un, Amerikan ordusunun ve dünyanın çeşitli yerlerinden bir çok kurum-kişi-kuruluş’un belgelerini basın özgürlüğü adı altında özgürce paylaşıyor.

Amerika’nın aslında Afganistan savaşında başarısız olduğunu, binlerce sivili haksız yere katlettiğini içeren belgeleri paylaşması ile wiki leaks medyada daha çok yer almaya başladı.

Pentagon ve Amerikan ordusu bu durumdan oldukça rahatsız, ancak Julian’ı yakalamak sandıkları kadar kolay değil, iddialara göre Julian bir yerde ard arda iki gün kalmıyor, genellikle zamanının çoğunu havaalanlarında geçiriyor ve sürekli seyahat ediyor. Ayrıca sanıldığı gibi yanında dizüstü bilgisayar taşımıyor, valizinde bir masaüstü bilgisayar taşıdığı iddia ediliyor.

Son olarak Julian’in İsveç’te olduğu bildirildi. İsveç’in basın özgürlüğüne geniş haklar tanıması ve İsveç’te ki “Korsan Partisi”nin Julian’a destek olması sebebiyle Julian şimdilik güvende gibi görünüyor.

Korsan Partisini çokta küçümsememek lazım. Parti, Avrupa Parlamentosunun geçen yılki seçimlerinde %7.1 oy aldı.

1971 yılında Avustralya’nın kuzey doğusunda doğan, ancak kuruluşu 2006 yılına rastlayan Wikileaks, gizli, mahrem diye nitelendirilebilecek belgelerin ortaya çıkarılmasına odaklanıyor. WikiLeaks’ın dediğine göre :

“Bizim 3 amacımız var: basını özgürleştirmek, suiistimalleri ortaya çıkarmak ve tarihi yaratan belgeleri korumak!”

Wikileaks daha önce çeşitli kaynaklardan eline ulaşan ve şirketlerle hükümetlerin yolsuzluklarını ortaya koyduğunu ifade ettiği binlerce sayfa belgeyi internette yayımladı. Bunlar arasında 2007’de Irak’ta bir ABD  helikopterinin siviller üzerine düzenlediği saldırıyla aralarında iki Reuters muhabiri de olan 12 kişiyi öldürdüğü olayın videoları da var. Wikileaks bu filmi “Collateral Murder” (Ek Cinayet) olarak adlandırarak tavrını zaten ortaya koyuyor.

Belgeler arasında; Fransız birliklerin bir okul otobüsüne ateş açması, ABD’nin sivil bir otobüse ateş açıp “intihar bombacısı öldürdük” süsü vermesi, “dur” ihtarına uymayan sağır birinin vurulması ve Britanya birliklerinin Afkan bir generalin oğlunu öldürmesi gibi birçok belge bulunuyor.

Anasayfamda sağ kısımda görebileceğiniz üzere WikiLeaks hareketini destekliyorum.

Türkiye’den 30’un üzerinde leaks hareketine yazar olarak destek veren kişi olduğunu biliyorum, bu rakam daha fa fazla olabilir.

Eğer elinizde paylaşmak istediğiniz belgeler varsa ancak çeşitli çekinceler yüzünden bunları paylaşamıyorsanız WikiLeans’e bildirmeniz yeterli.

Dünyanın bir çok yerinden bu hareketin destekçileri mevcut. WikiLeaks bunu şöyle özetlemiş :

Wikileaks Çinli muhalif topluluklar ile ABD’den, Tayvan, Avrupa, Avusturalya ve Güney Afrika’dan gazeteciler, matematikçiler ve şirket teknikçileri tarafından kuruldu.

Oluşumu henüz tamamlanmakta olan genel Danışma Kurulumuz,cesur gazetecileri,mülteci topluluklarından temsilcileri,etik ve anti-bozulma kampanyacılarını (Transparency International’ın eski ulusal baskanı dahil),insan haklari kampanyacılarını,avukatları ve kriptografi uzmanlarını içeriyor.

Şu anda 1200+ kayıtlı gönüllümüz var,ama organizasyonal seviyede olmamız için daha çok insana ihtiyacımız var.

Peki Nasıl?

WikiLeaks tüm bunları yaparken nasıl oluyorda Pentagon ve Amerikan ordusu bu sayfanın erişimini iptal edemiyor? WikiLeaks’ın arkasında kimler var?

WikiLeaks ilk kurulduğunda alanında tek diyebileceğimiz bir hizmet sağlayıcısı ile çalışmaktaydı.

http://www.prq.se/ adresinden ulaşabileceğiniz servis sağlayıcının fiyatları oldukça yüksek, ancak size çok özel fırsatlar sunmakta.

PRQ size her alanda gizlilik sağlayacağını iddia etmiyor, yalnızca İsveç yasalarının esnekliğinden faydalanarak dünyada bir çok kişinin ihtiyaç duyduğu sanal özgürlüğü sağlıyor.

If it is legal in Sweden, we will host it, and will keep it up regardless of any pressure to take it down

PRQ

We defend your integrity to the end. With our discreet customer relations policy we don’t even have to know who you are, and if we do . we will keep that knowledge strictly confidential.

PRQ

PRQ’nun sayfasından alıntıladığım ibarelerden anlayabileceğiniz üzere, İsveç yasalarına göre yaptığınız iş yasalsa, sayfanızın kapatılması için yapılacak her türlü baskıya karşı sizin yanınızda olacaklarını temin ediyorlar.

Diğer alıntılamada ise kişisel bilgilerinizin güvenliğini koruyacaklarını, hizmet almak için kim olduğunuzu bile bilmeleri gerektiğini söylüyorlar.

PRQ’den domain hizmeti alırken bu işlemi anonym olarakta gerçekleştirebiliyorsunuz. Ancak anonym hizmet için iki kat bedel ödemeniz gerekiyor. Bu hizmeti aldığınızda sizden herhangi bir bilgi talep edilmiyor..

Daha detaylı olarak kendilerini böyle ifade ediyolar :

We are firm believers in freedom of speech, commerce, and the right to privacy and anonymity, and this is reflected both in our terms of service and in our actual actions. Unlike most providers, we will not disable your service under any circumstances unless it’s either not paid for, used for spamming, DoSing or other activities harming the network, is used for publishing very obviously illegal material like child porn, or if we’re ordered to by a Swedish court. We are not sensitive to pressure in the form of legal threats (we even have our own legal staff), bad press, campaigns, organized boycotts, angry mobs, etc. We host several very controversial websites, and have a spotless track record in regard to this.

We do not require knowing your name, address, etc, although it can be advantageous to have them in certain situations (and they are handled very carefully, always stored encrypted, our personnel screened throughly for trustworthiness, and can only be accessed from two dedicated workstations who like the main server also have encrypted harddrives). Neither do we require a written contract. The only thing we need to know about you to set up the service is which e-mail address that should receive the invoices. Logging is only done to the minimal extent required for trouble-shooting in case of problems, and thus we do not have any logs whatsoever of data traffic.

TLD: .com, .net, .org, .biz, .info, .us, .name:

Period Normal registration anonymous registration
1 year 150 SEK / 16 EUR / 20 USD 300 SEK / 32 EUR / 40 USD
2 year 280 SEK / 29 EUR / 37 USD 560 SEK / 59 EUR / 75 USD
3 year 400 SEK / 42 EUR / 53 USD 800 SEK / 84 EUR / 107 USD
5 year 600 SEK / 63 EUR / 80 USD 1,200 SEK / 126 EUR / 160 USD
10 year 1,100 SEK / 116 EUR / 147 USD 2,200 SEK / 232 EUR / 293 USD
TLD: .se:

Period Normal registration
1 year 150 SEK / 16 EUR / 20 USD
TLD: .nu:

Period Normal registration anonymous registration
2 year 600 SEK / 63 EUR / 80 USD 1,200 SEK / 126 EUR / 160 USD
3 year 900 SEK / 95 EUR / 120 USD 1,800 SEK / 189 EUR / 240 USD
5 year 1,500 SEK / 158 EUR / 200 USD 3,000 SEK / 316 EUR / 400 USD
10 year 2,800 SEK / 295 EUR / 373 USD 5,600 SEK / 589 EUR / 747 USD

Domain fiyatlarının oldukça yüksek olduğunu görebiliyorsunuz. Hosting paketi ise aşağıda ki şekilde :

Web package:- 1 GB disc space- 30 GB transfer/month- Support for PHP, CGI, SSI and MySQL (databases are included in your total disc usage)- SSL-support (requires: SSL-certificate and dedicated IP address)- DNS hosting- Any number of domains can be used under the same account (with the same web root directory)Price: 75 SEK/month8 EUR/month10 USD/month

Peki PRQ’den nasıl sipariş verebilirsiniz?

Sayfayı incelerseniz herhangi bir sipariş formu veya online satın alma seçeneği olmadığını göreceksiniz. Ülkemizden yapılacak alışverişlerde Wiretransfer, PayPal, Bankgiro, Postgiro yöntemlerini kullanabilirsiniz. Ancak dediğim gibi herhangi bir sipariş formu veya online satın alma seçeneği yok.

info@prq.se adresine hangi servisi istediğinizi, hangi iletişim metodları ile sizle iletişim kurulmasını istediğinizi, hangi para birimi ile ödeme yapmak istediğinizi belirterek, bilgi alabilirsiniz.

Mail atmak güvenli mi?

Benim aklıma düşen bu soruyu PRQ’de düşünmüş ve Public PGP key‘i paylaşmış.

(Fingerprint 8E83 393D ABD1 FAC4 A4BE 2281 C51C 08A4 4B29 DE6D [expires: 2011-01-21]) (previous keys are revoked and should NOT be used)

PGP ile iletişim kurarak, tüm iletişiminizi son derece güvenli bir şekilde şifreleyebilirsiniz.

WikiLeaks ilk kurulduğundan beri ve uzunca bir süre PRQ firmasından hizmet aldı, ayrıca yaptığım araştırmalar sonucunda Dynadot güvenlik sistemini kullanarak bir dönem bilgilerini gizlediklerini gördüm.

Şuan WikiLeaks’ın yayın yaptığı sunucu The Pirate Party‘ye ait sunucular. Pirate Party wikileaks’ın her durumda arkasında olduğunu açıkladı.

İsveç yasalarına göre ise WikiLeaks’ın yaptığı iş “basın özgürlüğü” yani yasal..

Bu yüzden WikiLeaks’ın kapanması gibi bir durum şuan söz konusu değil.

FTP'den Silinmeyen ve Değiştirilemeyen Dosyalar, Chmod Değiştirme Sorunu

Sorun Neden Kaynaklanıyor ?

Bu sorunun sebebi apache sunucusunun bazı dosya ve klasörler üzerinde belirli derecelerde sahiplik iddia etmesidir. Apache içerisinde ki güvenlik modları, bazı teknik durumlarda klasörler veya dosyaları korumak amacı ile üzerlerinde sahiplik oluşturabilir. Daha önceden sunucu üzerinde ki kullanıcı adına tanımlanmış sahiplik yetkisi bu durumdan sonra “apache“ye geçmektedir.

Önsöz

En sık karşılaştığım teknik sorunlardan biri olan FTP yetkilerimizin dosyalar üzerinde değişiklik yapmak, silmek gibi haklarımızı kaybetmenin çözümünü anlatacağım bu makalede.

FTP’de ki dosyalar silinmiyor, ftp’ye dosya yükleyemiyor, ftp’de chmod ayarları değiştirilemiyor ise yazacağım satırları iyi takip edin.

Biz eğer sunucu yanımızdaysa fiziksel olarak sunucumuza giriş yaparak “var/www” altından yetkilendirmeleri kendiniz yapabilirsiniz.

Sunucu uzaktaysa ve fiziksel olarak erişemiyorsanız (örn:benim çalıştığım kurumun sunucu odasında ve benim oraya giriş yetkim yok) bize yine SSH yolları görünüyor (:

Bu makaleden önceki son 4 makalede SSH ve SFTP hakkında konuşmuştum. Bu makaleyi anlamak ta güçlük çekiyorsanız aşağıda ki makaleleri incelemenizi öneririm :

Çözüm

Öncelikle sunucu size mi ait yoksa herhangi bir firmadan hosting hizmeti alıyorsunuz? Eğer herhangi bir firmadan hizmet alıyorsanız, bu sorunu ancak onlar çözebilir.. Size SSH yetkilerini vermesini beklemeniz doğru olmaz, hiç bir firmanın bunu vereceğini sanmıyorum.

İlk durumda yapabilecekleriniz oldukça geniş. Sununun size ait olması veya SSH yetkisine sahip olmanız, her istediğinizi yapabileceğiniz anlamına gelir.

Her zaman ki gibi Putty’ye giriş yapıyoruz :

  • Kullanıcı adı şifremi yazdım
  • “ls” komutu ile hangi dizinde olduğumu denetledim.
  • “cd ..” ile bir üst dizine çıktım.
  • “ls” ile tekrar bulunduğum dizini denetledim.
  • “cd var” ile “var” klasörüne giriş yaptım.
  • “cd www” ile “www” klasörüne giriş yaptım.
  • “ls” ile “www” klasörünün dizinlerini listelettim.

Şimdi gelelim sahiplikleri düzenlemeye :

Ftp’ye root olarak bağlanmak istemediğinizi ve size normalde verilen ftp kullanıcı adının “pc” olduğunu varsayıyorum !

Root olarak bağlansanız bile bazı durumlarda değişiklik yapamayabilirsiniz. O zaman sahipliği root’a da atamanız gerekir !

“chown” komutunun kullanımı şu şekildedir :

“chown sahiplikverilecekkullaniciadi sahiplikverileceklasoradi”

Örnekte görebileceğiniz üzere, joomla kurulu bir dizine sahiplik atadım ve her klasör için teker teker yaptım (topluda yapılabilir) :

Örnek bir klasör işlemi : “chown pc media” yani ; pc isimli ftp kullanıcısına media klasöründe sahiplik verdim.

Şimdilik bu kadar, takipte kalın.

Putty ile SSH Bağlantısı

Önsöz

UYARI : Bu yazıda anlatılacak yöntemleri emin olmadığınız sürece uygulamayınız ! Aksi halde sunucunuzun çalışmasına ve stabilitesine zarar verebilirsiniz.

Daha önceden SSH hakkında üç makale yazmıştım. Bu yazıyı okumaya başlamadan önce onlara göz atmanızı tavsiye ederim, güzel bir temel olması açısından :

Putty Nedir?

Putty server yöneticilerinin, sunucularına bağlanmak için kullandıkları, kurulum gerektirmeyen, ufak boyutlu ve ücretsiz bir yazılımdır.

Putty sayesinde kolayca SSH bağlantısı yapabiliriz. Putty grafik UI’ye sahip olsada bu özellik bir yere kadar geçerli. Bir yerden sonra unix komutları ile devam etmek zorundasınız.

Şimdi putty’nin açılış sayfasını inceleyelim :

“Hostname or ip adress” kısmına bağlanmak istediğimiz sunucunun adresini veya ip adresini yazıyoruz. Örnek vermek gerekirse ;

a) baglanilacaksunucu.gov.tr

Önemli ! : Adresin başına “http://” yazmadığıma dikkat ediniz.

b) 192.168.1.1

Diğer ayarlar aynı kalsın. Eğer “session” yani “oturum”u kaydederseniz (save) bir daha bu işlemi yapmak zorunda kalmazsınız ve kolayca giriş yaparsınız.

Logging =>

Bu tab altından yaptığınız işlemlerin veya oturumların loglanmasına ilişkin ayarları yönetebilirsiniz.

Diğer sekmeleri detaylı anlatmayacağım. Eğer tam anlamıyla putty’yi öğrenmek istiyorsanız bu adresi ziyaret edebilirsiniz.

Şimdi sunucumuza bağlanalım ve bir kaç komut deneyelim :

Sunucumuz domainini yazdım ve open tuşuna bastım.

Karşıma “Login as” mesajı geldi, yani giriş yapacağım kullanıcı adını girmem gerekiyor. root giriyorum.

Biraz bekledikten sonra şifre soracak. Şifreyi yazarken ekranda hiçbir değişiklik görmeyeceksiniz ! Merak etmeyin o yine şifreyi yazıyor.

Şuan gördüğünüz ekranda giriş yapmış bulunuyorum. Root olarak girişimi yaptım. Daha önceden yazımın başında bahsettiğim 1 numaralı makalede SSH komutlarının bir kısmını yazmıştık, şimdi bunların bir kısmını deneyeceğiz :

  • ls komutu ile dizinleri listelettim, ls -a komutu ile gizli dosyalar dahil tüm klasörleri listelettim, ls-l komutu ile gizli olmayan dosyaları ayrıntılı bilgileri ile listelettim.

Şimdi burada yaptığım işlem oldukça basit. Önce “mkdir deneme” komutu ile “deneme” isimli bir klasör oluşturdum. Daha sonra “ls” komutu ile dizini listelettim. Burada “deneme” isimli klasörümüzün oluşmuş olduğunu görüyoruz. Daha sonra “rmdir deneme” komutu ile “deneme” isimli klasörü sildim. Tekrar “ls” komutu verdim ve klasörleri listelettim ve gördüm ki artık “deneme” isimli klasör yok.

“cd dizinismi” komutu ile bulunduğunuz dizinin alt dizinlerine geçebilirsiniz.

“cd ..” komutu ile bulunduğunuz dizinin üst dizinlerini görebilirsiniz.

Dikkat ! Dos üzerinden alışık olduğunuz gibi “cd” ile “..” birleşik değil, burada ayrık yazılır.

Şimdi en üst dizine çıkalım. Bunun için “cd ~” komutunu kullanıyoruz. ~ işareti klavyenizde “Ü” harfinin eş karakteridir. Putty’de ise “Page Down” tuşu ile bu karakteri basabilirsiniz.

Web sayfamın dosyalarının olduğu klasöre nasıl geldiğimi şimdi dikkatlice inceleyin :

“Top” komutu ile sunucunun işlemci harcamalarını saniye saniye takip edebilirsiniz. Açılan komuttan kurtulmak için ise “q” komutu vermeniz yeterlidir.

Çok önemli bir diğer komut ise “help” komutudur. Help komutunu yalnız başına kullandığınızda size o an kullanabileceğiniz komutları sıralar. “komut adı –help” şeklinde kullanıldığında ise ilgili komutun parametrelerini size söyler.

Gelelim Putty ile FTP’ye bağlanmaya..

Not : ftp’ye girdikten sonra çıkmak için “q” değil “quit” komutu girmeniz gereklidir.

Yaptığım adımları inceleyin :

Öncelikle “ftp” komutunu girdim ve ftp işlemini başlattım. Daha sonra “o sunucunuz.edu.tr” şeklinde ftp bağlantısını açtım. Kullanıcı adı ve şifremi girdim. Ve artık ftp’deyim..

Geri kalan tüm işlemler SSH komutlarını kullanabilme beceriz ile ilerleyecektir.

Putty’yi bu adresten indirebilirsiniz.

Görüşmek üzere..

SSH ve FileZilla ile SFTP Bağlantısı

Önsöz

Bu yazıyı okumaya başlamadan önce, temel bilgi olması açısından daha önce yazdığım iki yazıyı incelemenizi öneririm :

http://www.serhatdundar.com/ssh-nedir-ssh-komutlari-nelerdir/

SFTP Bağlantısı – SSH ile FTP Bağlantısı

Eğer SSH’ı yalnızca FTP işlemleri için kullanacaksanız FileZilla sizin için biçilmiş kaftandaır.

Grafik UI desteği olan, kullanımı kolay, SFTP destekleyen en güçlü FTP yazılımı bana göre FileZilla.

  • FileZilla’yı açın.
  • Üst tab’da “Dosya”‘dan “Site Yöneticisi”ne girin.
  • Gösterdiğim altı adet adımı uygulayın.

Önemli Not ! : SSH kullanıcı adınız her zaman root olacak diye bir kaide yoktur ! Genellikle root’tur ancak farklıda olabilir.

Başarılı bir bağlanma sonucu, durum çubuğunda başarılı giriş mesajı almalısınız :

Şuan sunucumuzun “/root” dizinindeyiz. Bir üst dizine de çıkabiliriz, sonuç olarak biz root yetkilerine sahibiz.

Şuan ben bir üst dizine çıktım. Sistem üzerinde tam yetkilere sahibim, istediğim dosya üzerinde değişiklik yapabilir, istediğim yere erişebilirim.

Sunucumuzda bulunan web sayfaları “/var” dizini altında “/www” klasörü içerisinde bulunur. Eğer onlara erişmemiz gerekiyorsa bu yolu kullanmalıyız.

Soru 1? Normal FTP varken neden SSH ile bağlanayım?

En çok karşılaşılan sorunlardan biri sunucularda apache’nin çeşitli dosyaları sahiplenmesi ve root harici hiçbir değişikliğe imkan vermeyecek şekilde ayırmasıdır.

Bu sorun yüzünden ftp üzerinden chmod değerlerini değiştirmekte, dosya eklemek-silmek-değiştirmekte sorunlar yaşayabiliriz.

Bu illet sorun oldukça sık karşılaşılan bir durumdur ve kullanıcıları oldukça yorar. Bu sorunu çözmek için sizin yapabileceğiniz birşey yok, hosting firmanızı arayıp derdinizi anlatmanız gerekir.  Hosting firmanız benim şuan yaptığım işlemleri yapacak, root olarak sftp’ye bağlanacak ve gereken düzenlemeleri yapacaktır, ama olurda ssh kullanıcı adı ve şifresini size bildirirlerse sorunu sizde çözebilirsiniz, veya kendi sunucunuz varsa (benim gibi :p)

Örneğin benim apache server’ım sunucuda bütün dosyalarımı sahiplendi, hiç birinde değişiklik yapamıyorum, doğal olarak SFTP yani SSH ile root olarak bağlanmam gerekiyor.

Bir türlü değiştiremediğim chmod değerleri şuan sorunsuz değişiyor :

Soru 2? Root olarak SSH ile Bağlandım Hala Hiçbir Değişiklik yapamıyorum?

Bu konuyu bir daha ki yazımda detaylı olarak anlatacağım..

Şimdilik bu kadar.

Windows'ta SFTP Sunucu Kurulumu

SFTP Nedir?

SFTP, ftp benzeri, ancak veri transferi için ssh’yi kullanan bir dosya transferi programıdır. SSH ‘in güvenlik ile ilgili tüm özelliklerini desteklemektedir. İki bilgisayar arasında dosya alışverişinin yapılabilmesi için öncelikle ssh tarafından yapılan kimlik denetiminin geçilmesi gerekir. FTP’nin RSA şifreleme algoritması ile güçlendirilmiş halidir diyebiliriz.

Yazının büyük bir kısmı ceviz.net kaynaklıdır. Kendilerine saygı açısından lütfen ceviz.net’i ziyaret edin.

Windows’ta SFTP Sunucu Kurulumu

Unix tabanlı işletim sistemlerinde genellikle SSH kurulu olur. Ancak, Windows sistemlerini SFTP server olarak kullanabilmek için sonradan kurulum yapmamız gerekmektedir. Bunun için “Open SSH for Windows” isimli özgür yazılımdan yararlanılabilir.

OpenSSH, bir Windows Service olarak çalışır. SFTP işlemini gerçekleştirecek kullanıcı hesapları için Windows’un yerel yada etki alanı kullanıcılarına ihtiyaç duyar. Bunun anlamı, standart FTP Server programlarında olduğu gibi bir FTP hesabı açmak yerine önce Windows’ta bir kullanıcı hesabı oluşturulur ve bu hesap OpenSSH ile ilişkilendirilir.

Open SSH Konfigirasyonu

OpenSSH’ın web sitesinden son versiyonu indirip kurun. [2]

Önemli : OpenSSH’ın doğru çalışabilmesi için kurulumdan sonra grup ve parola dosyalarının oluşturulması gerekmektedir. Bunun için gerekli komut dosyalarının varsayılan yolu : “c:\program files\openssh\bin”.

  • Önce bir grup dosyası oluşturulması gerekir. Bunun için;  Command Prompt’u açıp aşağıdaki komut çalıştırılır.

C:\program files\openssh\bin \mkgroup.exe -l >> ..\etc\group
Bu, İşletim sistemindeki kullanıcı gruplarıyla ilişkili bir dosya oluşturur.

  • İkinci işlemimiz bir parola dosyası oluşturmak. Bunun içinde aşağıdaki komutu çalıştırmalıyız.

C:\program files\openssh\bin \mkpasswd -l -u username >> ..\etc\passwd
Bu komutta username yerine SFTP Server için kullanacağımız bir yerel kullanıcı hesabının adı yazılması gerekmektedir.

  • Windows Services’tan OpenSSH isimli Windows servisi başlattığımızda Windows işletim sistemimiz bir SFTP hizmeti vermeye hazır halde olacaktır.

İnce Ayarlar

Yukarıdaki yönergeleri uyguladığımızda Bir SFTP istemci programı ile SFTP protokolünü kullanarak dosya alış verişi yapabiliriz.  Ancak, SFTP işleminde kullanılan hesap bir Windows yerel kullanıcı hesabı olduğu için, varsayılan ayarlar ile oluşturulan bir kullanıcı hesabı önemli güvenlik açıkları oluşturacaktır.

Bir Windows yerel kullanıcı hesabı oluşturduğunuzda , kullanıcının ait olduğu varsayılan grup “User” grubudur, varsayılan dosya yolu ise C:\Documents and Settings\username şeklindedir. SFTP istemci programı ile bağlandığınızda da varsayılan dizin bu dizin olacaktır. Ve kullanıcı User gurubuna dahil olduğundan dizinler ve hatta sürücüler arasında gezebilecek, her işlemi gerçekleştirebilecektir.

Bunu önlemek için önce kullanıcıyı User gurubundan çıkarmalı, daha sonra kullanıcının varsayılan dosya yolunun değiştirmeliyiz. Kullanıcı bir dizine hapsetmek için ise NTFS dosya izinlerinden yararlanacağız.

Windows yerel kullanıcısı dizine hapsetmek için ise şu adımlar uygulanmalırıdır.

  • Yerel kullanıcıyı User gurundan çıkarın : Bilgisayarım’a sağ tıklayın, Yönet komutunu verin.  Bilgisayar Yönetimi penceresinde bulunan ağaç menüden Yerel kullanıcı ve gruplar’ı açık. Kullacılar’a tıklayın. Yerel kullanıcının üzerine sağ tıklayın. Özelliklere girin. Gruplar sekmesinden User gurubunu kaldırın ve Tamam tuşuna basın.
  • Yerel Windows kullanıcısının varsayılan dosya yolunu değiştirin : Komut satırında aşağıdaki komutu çalıştırın.

C:\> net user username /HOMEDIR:D:\test4sftp

  • Kullanıcıyı dizine hapsedin :

a. Tüm sürücülerde uygulanmak üzere, sürücü’ye sağ tıklayın ve özellikler’e girin. Güvenlik sekmesinde Grup yada kullanıcı adları penceresine ilgili kullanıcıyı ekleyin. İzinler kısmında Tüm haklar için Deny’i işaretleyin.

b. SFTP işlemleri için ayrılan dizine sağ tıklayın ve özellikler’e girin. Güvenlik sekmesinde Grup yada kullanıcı adları penceresine ilgili kullanıcıyı ekleyin. İzinler kısmında Tüm haklar için Allow’u işaretleyin.

Dikkat : Bu işlemleri yaptıktan sonra, İnce Ayarlar isimli bölümdeki bahsi geçen mkgroup ve mkpasswd komutları yeniden çalıştırılmalı ve OpenSSH isimli Windows Service’i yeniden başlatılmalıdır.

Bir SFTP istemci programı ile SFTP hizmeti veren sunucumuza bağlanıp testlerinizi gerçekleştirebilirsiniz.  Bunun için FileZilla yada WinSCP gibi özgür yazılımlar kullanabilirsiniz. 22  nolu portu kullanacağınızı unutmayın !

Kod tabanlı SFTP istemci işlemleri

Geliştirdiğiniz bir uygulamada SFTP işlemlerini yapmanız gerekiyorsa piyasada bunu yapan ücretli bileşenler bulmanız mümkün. Ancak bunu özgür yazılımlar yardımı ile de yapabilirsiniz. Doğal olarak ücretli bileşenler kadar basit ve pratik olmasada en azından temel dosya aktarım işlemlerini gerçekleştirebilirsiniz.

Bunun için PuTTY isimli bir özgür yazılım kullanacağız. PuTTY, Windows için bir telnet ve SSH istemcisidir. Bu yazılım SFTP işlemlerini komut satırından verilen argümanlar ile gerçekleştirmektedir. Bu dökümanda geliştirdiğimiz çözüm için PSCP ve PSFTP isimli iki exe dosyasını kullanacağız. Bu dosyaları indirebileceğiniz adresleri dökümanın sonunda bulunan bağlantılar kısmında bulabilirsiniz.

PSCP.exe  : Dizin listeleme, dosya yükleme ve indirme işlemleri,

PSFTP.exe : Dosya silme işlemi, için kullanıyor olacağız.

Komut Desenleri

  • Dizin Listeleme :
    pscp.exe -l username -pw password -ls username@sftp.address.com:/
  • Dosya indirme :
    pscp.exe -l username -pw password username@sftp.address.com:/remoteFilePath localFilePath
  • Dosya yükleme :
    pscp.exe -l username -pw password localFilePath username@sftp.address.com:/remoteFilePath
  • Dosya silme :
    psftp.exe username@sftp.address.com -pw password -b batchfile.txt
    bactfile.txt content : del remoteFilePath,

Dikkat : Şimdiye kadar kullanılan komutlarda –l parametresi yerel kullanıcılar için kullanılmıştır. Domain kullanıcıları için –d parametresi kullanılması gerekmektedir.

SSH Nedir? SSH Komutları Nelerdir?

SSH Nedir?

SSH bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu bağlantı çeşitleri içerisinde güvenli iletişimi sağlayan bir protokoldür.

Sunucunuza SSH ile bağlanmak için gereken yetkilere (kullanıcı adı ve şifre) sahip olmanız gerekir. SSH’ın gelen olarak yetkili kullanıcısı root’tur.

Hosting firmanız size SSH bağlantısı imkanı büyük ihtimalle tanımayacaktır, SSH kullanabilmeniz için sunucunuz size ait olması büyük avantajdır.

SSL ile SSH’ı karıştırmamak gerekir. SSH’ın açılımı “Secure Shell” yani “Güvenli Kabuk”‘tur. SSL ise “Secure Sockets Layer”‘ın kısaltılmışıdır.

SSH’ın temel unsurları şunlardır :

• authentication / Kimlik denetimi
• encryption / Şifreleme
• integrity / Bütünlük

Bu temel bilgilerin dışında, detaylı bilgi almak için Huzeyfe Önal‘ın yazdığı bu makaleyi ve cmsturk’te ki bu makaleyi incelebilirsiniz.

Özetle şunu söyleyebilirim ki SSH üzerinde yeterli bir kontrol oluşturmak istiyorsanız unix komutlarına hakim olmanız gereklidir. Nitekim SSH komutları olarak anılan komutlar aslında unix komutlarıdır.

Bir benzetme ile açıklamak gerekirse SSH’ı telnet’e benzetebiliriz. Bir çoğunuz mutlaka telnet kullanmıştır veya en azından adını duymuştur. Telnet güvensiz bir ortamdır ! Hatta güvenlik açısından, eğer kullanılmıyor ise kapatılması, yani hizmetin durdurulması tavsiye edilir. Peki telnet neden güvensizdir? Tahmin edebileceğiniz üzere iletişimi şifresiz olarak yaptığı için.. Telnet ve SSH iletişim için kullanılan iki ayrı protokol olmasına rağmen biri iletişimi plain text, yani çıplak metin, yani şifresiz olarak gerçekleştirirken, diğer protokol yani SSH bir çok şifreleme algoritması kullanır. Bir diğer fark ise, eski telnet sürümlerinde sunucunun kritik konfigürasyon ayarları değiştirilebiliyordu ve bu durum bilgisiz bir kullanıcı tarafından gerçekleştirildiği takdirde güvenlik zaaflarına yol açıyordu, SSH bu sorunu aşmış bir protokoldür.

SSH Nasıl Çalışır?

1. İstemci sunucuya asıllama isteğinde bulunur.

2. Sunucu İstemci’ ye 1024 bitlik açık makine anahtarını (host key) ve 768 bitlik açık RSA sunucu anahtarını (server key) gönderir.
Host key : Doğru sunucuya (istenilen) bağlanmak için kullanılır.

Server key : Host key ele geçse bile mesajın açılmasını önlemek amacıyla kullanılır.

3. Eğer istemci makine anahtarını kabul ederse oturum anahtarı olarak kullanılmak üzere 256 bitlik rastgele bir sayı üretir ve bu sayıyı açık makine ve sunucu anahtarlarıyla 2 defa şifreleyerek sunucuya gönderir.

4. Sunucu bu mesajı açar ve oturum anahtarını elde eder. Sunucu istemciye şifreli olarak bir onay mesajı gönderir.

Bu onay mesajının alınması istemciye sunucunun oturum anahtarını elde ettiği bilgisini verir.

Bazı durumlarda istemcinin de asıllanması gerekebilir. Bunun için iki yöntem vardır :

Şifre Asıllaması : Kullanıcı şifresi SSH ile şifrelenmiş olarak sunucuya gönderilir.

RSA Asıllaması : Sunucu rastgele ürettiği bir sayıyı kullanıcının açık anahtarı ile şifreleyerek istemciye gönderir. İstemci sadece kullanıcının gizli anahtarını biliyorsa bu sayıyı açabilir. Kullanıcı açtığı bu sayının MD5 ile özünü alır ve sunucuya gönderir.

Her iki durumda da sunucu bir asıllama başarılı / başarısız mesajı gönderir. Eğer kullanıcı başarıyla asıllandıysa oturum başlar, aksi durumda kullanıcının oturum isteği reddedilir.

SSH ile neler yapabiliriz?

– Uzak kullanıcı üzerinden kabuğa bağlanmak mümkündür.

– Uzak kullanıcıda tek bir komut çalıştırılabilir.

– Lokal bilgisayardan uzak bilgisayara dosya kopyalanabilir.

– SSH dosya gönderim protokolüyle FTP ile dosya transferine güvenli bir alternatif olabilir.

– Port yönlendirme için kullanılabilir.

– OpenSSH server ve client kullanılarak şifrelenmiş bir VPN oluşturulabilir.

– Otomatik olarak uzaktan server kontrolü ve yönetimi sağlanabilir.

Şimdilik bu kadar.