Çeviri sözlüğü yayında

Özgür yazılım çevirileri arasında arama gerçekleştirmenizi sağlayan Çeviri Sözlüğü yayında.

Proje fikri nereden çıktı?

Sitenin hakkında kısmında da değindiğim gibi, Yakın Doğu Üniversitesi İnovasyon ve Bilişim Teknolojileri'nde stajımı gerçekleştirirken özgür yazılım çevirilerine katkı sağlamıştık. Çeviriler yaparken en çok ihtiyaç duyduğum şey, birden fazla yaygın anlamı olan kelimenin daha önce hangi Türkçe karşılığı kullanıldığı oluyordu. Bence bu konu, çevirinin bütünlüğü açısından da önemli. Aynı projede hatta aynı programda kelimelerin ortak bir karşılığı kullanılması, kullanıcıların da isteyeceği bir şeydir diye tahmin ediyorum.

Burada öğrendiğim yöntem ile, çevireceğim kelimenin daha önceki çevirisini görmek için ilgili projenin tüm çeviri dosyalarını bir dizine indirip, komut satırından "grep" komutu ile bulmak istediğim kelimenin çevirilerini ekrana getirebiliyorum.

Zaman içerisinde bu işlemi web uygulaması ve veritabanı ile yapma fikri kafamda oluştu ve sitenin şuan ki hali meydana geldi.

Teknik olarak neler var?

Tüm çeviri dosyaları bir dizin altında bulunuyor. Ayıklama (parse) işlevi gören Java kodu, po uzantılı çeviri dosyalarını işleyerek İngilizcesini, Türkçe çevirisini ve dosya isimini veritabanına atıyor.

Linux Tomcat üzerinde çalışan Jsp de sorgu çekmenizi sağlayıp, sonuçları ekrana getiriyor.

Neden Java?

İşin kodlama kısmında Java teknolojilerini tercih ettim. .po dosyalarını ayıklama işlemi Python'da polib kitaplığı ile hali hazırda gayet pratik bir şekilde yapılabiliyor. Lakin Java'yı seçerek iş yerinde kullandığım ve öğrendiğim teknolojiler yardımı ile hali hazırdaki bilgi birikimi mi kullanabilecek, aynı zamanda bu proje ile yeni öğrendiğim şeyler iş yerinde bana faydası dokunabilecekti. Aynı şekilde veritabanında da Postgresql tercih etmemin sebebi hem özgür olması hem de iş yerinde kullandığımız bir sistem olmasıdır.

Yazdığım kodda doğrudan polib'den  yararlanmasamda, polib'in kaynak kodunu inceleyerek, ayıklama işi yapan Java kodu için fazlası ile ilham aldım.

Lictionary.in

Projeyi heyecanla ilerletirken bir yandan daha önce böyle bir çalışma olmuş ya da mevzu bahsi geçmiş mi diye araştırırken, lictionary.in sayfası ile karşılaştım. 2011 yılında gerçekleştirilen bu proje ile daha önce nasıl karşılaşmadım bilmiyorum.

Çevirileri tablolama açısından benim yapmak istediğim site ile tamamen aynı fikir üzerine kurulu. Daha önce yapılmış olanı yapmak bir süre hevesimi kırsa da, projenin eğitici yönünden dolayı yaptığım işi yarıda bırakmak istemedim.

Ne öğrendim?

.po dosyalarını ayıklama işlemlerini gerçekleştirirken temel Java bilgilerimi ilerlettim.
Postgresql bilgilerimi ilerlettim.
Jsp ile tanıştım.
Jsp'den gelen talepleri işlemek ve tekrar Jsp'ye göndermek için Servlet kullandım.

Bu proje bahanesi ile DigitalOcean'dan çok cüzi miktara Linux sunucu sahibi oldum. İnsanın elinin altında bandı geniş, alanı geniş bir VPS'i olması çok güzel :) Sitenin yayında olmasını sağlayan işlerin çok büyük çoğunluğunu kendim gerçekleştirdim. Daha önce LKD'nin eğitimine katıldığım ve LFS ile uğraştığım için işin en kolay kısmı Linux sistem yönetimi alanında oldu :)

DigitalOcean'dan kiraladığım sunucuya svn kurdum ve projeyi orada sakladım. svn co, svn up komutlarından öteye giderek svn yönetimi ile ilgili işleri öğrendim.

Ha unutmadan birde, sunucu sahibi olmadan önce projemi dışarısı ile paylaşmak için dizüstünde kurulu olan Ubuntu sistemi mi kullanıyordum. Bilgisayarımı barındırma olarak kullanabilmek için port yönlendirme, iptables vb konularda bilgi sahibi oldum. Bilgisayarımı barındırma olarak kullanmak gençlik hayalimdi :)

Sayfalama (pagination) işlemleri sırasında MVC ile tanıştım. Sürekli duyduğum birşeydi. Uygulamalı olarak tanımış oldum.

Temel HTML, CSS kodlarını öğrendim.

Proje ile uğraşırken karşılaştığım sorunlar ve çözümleri

Birileri sayfama giripte, "bunu nasıl yapmış acaba" diyebileceği ve aynı zamanda benim üzerinde bir süre takıldığım konularda yararlandığım kaynakları paylaşmak istiyorum.

tablonun css'i için hazır kodlar kullandım. Ufak tefek değişiklikler dışında olduğu gibi kaynaktan yararlandım

http://johnsardine.com/freebies/dl-html-css/simple-little-tab/

Sonuçları sayfalamak için aşağıdaki kaynağı takip ettim. Üzerine eklemeler yaptım. İlerleyen sürümlerde tablolamada jQuery'ye geçecek olsam da, MVC öğrenmeme vesile olması sebebiyle taglib (JSTL) kullandığıma pişman değilim.

http://theopentutorials.com/examples/java-ee/jsp/pagination-in-servlet-and-jsp/ 

Tomcat'te Türkçe karakter sorunu yaşadım. Konu Jsp ile alakalı zannederek Google'da bu konudaki bir çok sayfayı tekrar tekrar ziyaret ettim. Lakin bakış açımı değiştirince çözüm Tomcat'te olduğunu farkettim. Bunun ile ilgili

http://struts.apache.org/release/2.0.x/docs/how-to-support-utf-8-uriencoding-with-tomcat.html

Html etiketlerini düz metin olarak göstermek için

http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text


Sistem tarafında iş arkadaşım Gökhan Atmaca'dan, kodlama ve arayüz konusunda diğer çalışma arkadaşlarımdan epeyce fikir aldım. Onlara da teşekkürler.

Biterken

Veritabanı üzerinde çalışmak isteyenler için, yedeğini (dump) paylaşabilirim.

Henüz 5 aylık Java serüvenim var. Bulduğunuz hata veya absürtlükleri değerlendirirken bunu göz önünde bulundurarak değerlendirirseniz sevinirim. 

Böyle ufak bir proje için bu kadar dil dökmüş olmamı garipseyebilirsiniz, lakin yazmayı seviyorum :)

Gelecek sürümlerde görüşmek üzere.


29 Ocak 2014

Posted In: çeviri sözlüğü, Gezegen, java, linux, programlama

İnternet için Cumhurbaşkanına Çağrı

Sayın Cumhurbaşkanım,

Biz aşağıda isimleri bulunan Bilişim/Bilgi/İletişim Sivil Toplum Kuruluşları olarak 5651 sayılı yasa üzerinden yapılmak istenilen İnternet Düzenlemelerinin ülkemizin ekonomik gelişmesi, fikir ve kültür hayatı, siyasal yaşamı ve demokrasimiz için pek çok sakınca içerdiğini düşünüyor; endişelerimizi ve önerilerimizi iletmek için sizinle görüşmek istiyoruz.

İnternet bugün ülkelerin, toplumların, kurumların ve bireysel hayatın doğal bir parçası haline gelmiş, vazgeçilemez bir unsur olmuştur. Modern yaşam İnternetin etrafında yeniden şekillenmeye başlamış, iş şüreçleri ve örgütsel yapılar, iş yapma biçimleri, sosyal hayat internete göre yeniden biçimlenmeye başlamıştır.

İnternet bilgiye erişim ve ifade özgürlüğün en temel aracı haline gelmiştir. Bu Birleşmiş Milletler kararı ile pekiştirilmiştir. Bu nedenle internetin sansürden uzak olması ve özgürlüğü çok önemlidir.

Demokratik ülkelerde İnternete erişimi temel insan hakkı olarak öne çıkmakta ve güvence altına alınması için de Anayasalara girmeye ve geniş bant erişimi evrensel hizmet kapsamında değerlendirilmeye başlamıştır. Bu bakımdan her yurttaşa, ucuz, güvenilir ve güvenli internet erişimi sağlanması önemlidir. Yine aynı şekilde, her yurttaşın, interneti tüm boyutlarıyla hiç bir kısıtlamaya uğramadan kullanabilmesi çok önemlidir.

İnternet bireylerin hayal edemediği yaratıcılıklarını ortaya çıkartmakta, milyonları buluşturmakta, paylaşım ve bilgi ekonomisini tetiklemektedir. Genel olarak İnternet ekosistemi tüm ekonomiye ivme kazandırmaktadır.

Söz konusu tasarı, yönetişim ilkeleri gözardı edilerek, biz STK’ların görüşleri alınmadan, adeta yangından mal kaçırırcasına gündeme geldi ve komisyondan geçti. Bu tasarının Temel Hukuk ilkelerine, Anayasamıza, Avrupa İnsan Hakları Sözleşmesine, bireysel haklara aykırı olduğunu; ifade özgürlüğünü kısıtlayıcı, kişisel mahremiyete aykırı, ülkemizin gelişmesine ve henüz yeşerme aşamasında olan İnternet sektörünün gelişmesine ciddi zarar vereceğini düşünüyoruz.

5651 sayılı yasayla ilgili bu değişiklik tasarısının dünya ile bütünleşmek, Avrupa Birliğinin parçası olmak isteyen ülkemizin bu amaçlarına ters bir uygulama olacağı, ülkemizin dünya üzerindeki algısına ciddi zarar vereceği endişesini taşıyoruz.

Bu görüşlerin ışığında İnternet, Bilgi, İletişim ve Bilişime gönül vermiş biz STK’ların endişelerini ve görüşlerimizi zatıalinize sunma isteğimizi bilgi ve müsadenize saygılarımızla arz ederiz.

İnternet Teknolojileri Derneği
TID-Tüm Internet Derneği
Alternatif Bilişim Derneği
LKD-Linux Kullanıcıları Derneği
PKD -Pardus Kullanıcıları Derneği
IYAD-İnternet Yayıncıları Derneği
EDER-E-Ticaret Altyapı Sağlayıcıları Derneği
TiEV -Tüm İnternet Eveleri Derneği
İstanbul Barosu Bilişim Hukuku Komisyonu
Ankara Barosu Bilişim Hukuku Kurulu
Korsan Parti Türkiye Hareketi
Türk Kütüphaneciler Derneği

29 Ocak 2014

Posted In: Bildirgeler

Milletvekillerine Çağrı; Sansür Yasasını Durdurun!

5651 sayılı “İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayın Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun” hakkında değişiklik önerilerini de içeren, kamuoyunda büyük tepki uyandıran torba yasa görüşmeleri dün Türkiye Büyük Millet Meclisi Genel Kurulu’nda başladı. Bilgisayar Mühendisleri Odası’nın da yaptığı basın açıklaması ve çalışmalarla tepki gösterdiği taslağın son hali, dün TBMM web sitesinden yayınlandı.

Bugün devam eden görüşmeler için bir araya gelen Bilgisayar Mühendisleri Odası, Alternatif Bilişim Derneği, Internet Teknolojileri Derneği, Korsan Parti Türkiye Hareketi, Linux Kullanıcıları Derneği, Pardus Kullanıcıları Derneği ve Tüm Internet Derneği milletvekillerine yönelik bir mektup yazarak, yasa tasarısının gündemden ve torba yasa kapsamından çıkarılması taleplerini dile getirdiler.

Değerli Milletvekilleri,
Mevcut haliyle konuyla ilgili uzmanların, demokratik kitle örgütlerinin yoğun eleştirilerini almış, aleyhinde AİHM kararı olan 5651 nolu yasa TBMM’de görüşülen Torba Yasa kapsamında değiştiriliyor.

Yeni değişiklikler, Internet sansürünü daha da derinleştirecek ve İnternetin denetimini kurumsallaştıracaktır. Yasa değişikliği kapsamında yargı kararı olmadan yürütmenin talimatıyla erişimin engellenmesi sansürü kolaylaştıracaktır. Bu uygulama, “kuvvetler ayrılığı” ilkesinin çiğnenerek, Internet üzerinde denetim ve kontrolün yürütme tarafından yapılması anlamına gelmektedir.

Yasa değişiklikliğinin zamanlaması da sorunludur. Tasarının, geleneksel medya araçlarının üzerindeki siyasal baskıyı açıkça gördüğümüz, öte yandan yurttaşlarımızın İnternet’i alternatif bir iletişim aracı olarak kullanıldığı Gezi direnişi ve 17 Aralık yolsuzluk operasyonlarından sonra gündeme getirilmesi manidardır.

Internet’te erişim engelleme veya içerik çıkarma konusunda evrensel çerçeve nefret suçları ve çocuk istismarıdır. Bu suçların haricinde Internet’e müdahale etmek, kontrol altına almaya çalışmak çözüm değil, daha büyük problemler getirmektedir. Değişikliğin öngördüğü şuç türleri çok geniştir ve bununla mücadele için seçilen URL temelli filtreleme toptan gözetim getirmektedir.

Çözüm İnternet kullanımı için başta aileler olmak üzere tüm yurttaşların bilincinin arttırılmasıdır. Devletin esas görevi yurttaşları güçlendirmektir.

Bu yasa tasarısının Genel Kurul gündeminden ve torba yasa kapsamından çıkartılmasını istiyoruz. Hak ve özgürlüklerin korunduğu, ilgili tüm tarafların katkısıyla pozitif bir düzenlemenin yeniden yapılması için tüm vekilleri harekete geçmeye davet ediyoruz.

Alternatif Bilişim Derneği
Bilgisayar Mühendisleri Odası
Internet Teknolojileri Derneği
Korsan Parti Türkiye Hareketi
Linux Kullanıcıları Derneği
Pardus Kullanıcıları Derneği
Tüm Internet Derneği

29 Ocak 2014

Posted In: Bildirgeler

Java split() metodunda kırpmanın önüne geçme

Java'da bir dizgeye split() metodunu uyguladığımız zaman, dizgenin son kısımlarında boş (yani "") dönmesi gereken alanlar kırpılıyor ("trim" uygulanıyor).

Örneğin aşağıdaki gibi bir dizgemiz olsun.
String degerler = "0|0|0|1|||0|1|0|||";
degerler dizgesini boruya (pipe, "|") göre split() ettiğimde karakter dizisi içerisinde geriye "0", "1" yada "" değerleri dönecek.
String[] karakterDizisi = degerler.split("\\|"); 
Yukarıdaki kodu uyguladıktan sonra split() metodu en sondaki "0" rakamından sonraki  "|||" kısmını kırpıyor ve boş değerleri listeye dahil etmiyor.  Bu durumda karakterDizisi'nin uzunluğu 9 dönüyor.

Bu durum String.split(String regex) bağlantısında açıkça belirtilmiş.

Kırpılan alanları da karakter dizisine eklemek istiyorsanız, sınırlama değeri girmelisiniz. Sınırlama değeri  split() metodunun dizgeye kaç defa uygulanacağını belirtir.  split() metodunun kaç defa uygulanacağına dair bir sınır girmek istemiyorsanız eksili bir sayı girmeniz yeterli.

Sınırlama değeri ile kullanmak için sözdizimi şu şekilde: String.split(String regex, int limit)

Örnek olarak;
String[] karakterDizisi = degerler.split("\\|", -1); 

Artık karakterDizisi uzunluğunda bir sınır yok ve boş alanlar da listeye dahil. Yukarıdaki kodu uyguladıktan sonra listenin uzunluk değeri 12 dönüyor.

Kaynak: http://stackoverflow.com/questions/14414582/java-split-string-to-array

18 Ocak 2014

Posted In: Gezegen, java, programlama, split metodu

Ubuntu – Mekanik HDD’leri uyutalım (spin-down)

hddİşletim sistemlerimizi SSD disklerde çalıştırmaya başlasak da, yüksek kapasite için mekanik HDD’ler bir şekilde sistemlerimizde halen bulunuyor. Mekanik disklerin kullanılmadıkları zamanlarda yaptığı gürültüyü kesmek için Linux sistemlerde HDPHARM aracı kullanılabilir. Taşınabilir bir sistemi kullanıyorsanız batarya süresinde de hatırı sayılır iyileşme sağlayacaktır.

hdparm -S 100 /dev/disk/by-uuid/3C1862H318626BB8

Yukarıdaki örnekte UUID si tanımlanmış disk okuma veya yazma yapmadığında, 100*5=500saniye (9dakika) sonra uyku moduna geçecek. Aşağıdaki satırı cron’a ekleyerek her açılışta çalışmasını sağlayabilirsiniz.

@reboot /sbin/hdparm -q -S 100 /dev/disk/by-uuid/3C1862H318626BB8

18 Ocak 2014

Posted In: hdd, hdparm, linux, lkd, spin down, teknik, tr, ubuntu

Ubuntu – Mekanik HDD’leri uyutalım (spin-down)

hddİşletim sistemlerimizi SSD disklerde çalıştırmaya başlasak da, yüksek kapasite için mekanik HDD’ler bir şekilde sistemlerimizde halen bulunuyor. Mekanik disklerin kullanılmadıkları zamanlarda yaptığı gürültüyü kesmek için Linux sistemlerde HDPHARM aracı kullanılabilir. Taşınabilir bir sistemi kullanıyorsanız batarya süresinde de hatırı sayılır iyileşme sağlayacaktır.

hdparm -S 100 /dev/disk/by-uuid/3C1862H318626BB8

Yukarıdaki örnekte UUID si tanımlanmış disk okuma veya yazma yapmadığında, 100*5=500saniye (9dakika) sonra uyku moduna geçecek. Aşağıdaki satırı cron’a ekleyerek her açılışta çalışmasını sağlayabilirsiniz.

@reboot /sbin/hdparm -q -S 100 /dev/disk/by-uuid/3C1862H318626BB8

18 Ocak 2014

Posted In: hdd, hdparm, linux, lkd, spin down, teknik, tr, ubuntu

5651 sayılı yasa ve Özgürlüklerin kısıtlanması

5651 sayılı yasanın yeniden yapılandırılması zaruri bir ihtiyaçtır. Fakat, mevcut hükümetin yasa yapma tekniğindeki kolaycılığı (birbiri ile alakasız onlarca maddenin torbaya doldurulup oldu bittiye getirilmesi tekniği) tekrarlanmakta ve Türkiye’de İnternet Özgürlüğü konusunda çok ciddi sıkıntılara neden olan 5651 sayılı yasa son derece yanlış amaçlar ile yangından mal kaçırırcasına yeniden yazılmak istenmektedir.

Bu yasanın sorunlu olan maddelerinin düzeltilmesi konusundaki toplumun beklentileri yine karşılanmamakta, uluslararası hukukun, anayasanın ve yasaların koruduğu özgürlükler tamamen rafa kaldırılmakta ve konunun uzmanı hukukçuların, bilişim uzmanlarının ve STK’ların görüş ve önerileri dinlenmeden ve yaptıkları uyarılar dikkate dahi alınmadan 5651 sayılı yasa torba teklif içinde yasalaştırılmaya çalışılmaktadır.

İnternet’in sansürlenmesini; katalog suçların bahane edilerek web sayfalarının ve sitelerinin toptan kapatılmasını; site kapatma ve erişim engellemelerinin denetime açık ve şeffaf olarak kamuoyu ile paylaşılma beklentisinin karşılanmamasını; Bakanlık ve TİB gibi siyasi kurumların hukukun da üstüne çıkarak İnternet’i yönetme ve kontrol etme yetkisini ellerine almasını; İnternet üzerinde servis, hizmet, yer sağlayıcılık vb. ticari faaliyetlerde bulunan özel şirketleri, Hükümetin kontrolündeki bir birliğin içine alarak otoriter ve despot bir yönetim tarzının getirilmesini; erişim engellemesini URL bazında yapmak için tüm Türkiye’nin İnternet trafiğinin denetlenmesini, gözetlenmesini ve hatta kayıt altına alınıp saklanmasını İSTEMİYORUZ.

İnternet üzerinden haberleşme, haber alma-verme ve iletişim özgürlüklerinin kontrol ve kayıt altına alınma çabasına karşı İnternet’in Özgür kalmasını İSTİYORUZ.

5651 sayılı yasada yapılmak istenen değişikliklerin derhal geri çekilmesini, bu yasanın konusuna giren başlıklarda Uluslararası hukuka uygun, bireylerin Anayasal haklarını koruyan ve İnternet’in özgür kalmasını sağlayacak düzenlemelerin konu hakkında uzmanlığı ve faaliyetleri olan tüm tarafların katılımı ile yeniden ele alınmasını talep ediyoruz.

Linux Kullanıcıları Derneği
Yönetim Kurulu

11 Ocak 2014

Posted In: Bildirgeler

SSH tünel ile bağlantı güvenliği (SSH Tunnel)

SSH ile bağlantımızı tünelleyip istediğimiz noktalar arasında kriptolu geçirebiliriz. Bu yöntem hangi durumlar için kullanılabilir;

sshtunnel

• Güvensiz bir İnternet bağlantısı kullandığımız konumlarda bağlantı güvenliğimizi arttırmak
• Ağ filtrelerine takılmamak (ağ filtrelerini aşmak, varsa “kullanım politikası sözleşmenize” aykırı olabilir)
• NAT arkasından gerçek dünyaya soket açmak (NAT arkasından dışarıya servis vermek)
• İnternet çıkışını farklı ülkelere taşıyarak testler yapmak
• Sistemlere uzaktan erişim için bir zıplama noktası oluşturmak (VPN alternatifi)

SSH Tunnel in 3 farklı tipi bulunuyor, bunlar;

• Yerel port yönlendirme (Local port forwarding)
• Uzak port yönlendirme (Remote port forwarding | Reverse Tunnelling)
• Dinamik port yönlendirme (Dynamic port forwarding)

Yerel port yönlendirme (Local port forwarding):

ssh -L 9001:domain.com:80 sshServerIP

Bağlı bulunduğunuz ağdan domain.com adresine erişiminiz yoksa, bu adrese erişimi olan bir SSH sunucu üzerinden erişim sağlanabilir. Yukarıdaki örnekte sshServerIP sunucusuna kurduğum SSH bağlantısı üzerinden domain.com‘a 80. port üzerinden tünel açtık. Bu komutu çalıştırdıktan sonra tarayıcınıza http://localhost:9001 yazdığınızda domain.com yüklenecektir. https protokolü için de aynı yöntem uygulanabilir. (kötü haber facebook.com gibi dağıtık yapıdaki sistemler bu yöntemle çalışmıyor, onlara erişim için dinamik port yönlendirme kullanılmalı )

Uzak port yönlendirme (Remote port forwarding | Reverse Tunnelling):

ssh -R 9001:localhost:80 sshServerIP

NAT veya firewall arkasından dış dünyaya bulunduğunuz ağdaki veya kendi makinenizden hizmet sağlanabilir. Dış dünyadaki gerçek IP adresine (sunucu) istek gönderenler tünelin ucundaki makine ile konuşabilirler. Yukarıdaki örnekte güvenli ağ arkasındaki makineden sshServerIP sunucusunun 80. portuna ters tünel açtık. Kurulan bu bağlantı ile dış dünyada bulunan sunucumuza tarayıcı ile ulaşanlar, güvenlikli bölgedeki makinemizin üzerinde çalışan web sunucudan hizmet alabilecekler.

Yukarıdaki örneği biraz değiştirerek iş yerinizdeki intranet sayfalarına evden erişim sağlanabilir. VPN erişimi alınamadığı durumlarda zorlukları aşmada kuvvetli bir alternatif olacaktır.

Dinamik port yönlendirme (Dynamic port forwarding):

ssh -D 9001 sshServerIP

En çok işimize yarayacak bağlantı tipi dinamik port yönlendirmedir. Yerel makinede açılan bir soket uzak makine üzerinden tüm hedeflere ulaştırılır. Yerel soket üzerinden SOCKS proxy protokolü kullanılarak bağlantı karşı tarafa ulaştırılır. Özetle uzak makinenin İnternet erişimi kullanılabilir. Yerel makinede tarayıcıya SOCKS proxy ayarlarının girilmesi gerekir. Firefox kendi bağlantı ayarlarını içsel olarak kullandığından bu iş için kolaylık sağlar. Ayrıca tarayıcılar için proxy uzantıları kullanılabilir. Veya yerel makinenin tüm trafiğinin proxy üzerinden geçirilmesi tercih edilebilir.

Firefox ağ ayarlarından SOCKS proxy tanımlandığında DNS sorguları bu proxy üzerinden geçirilmez. DNS sorgularının da tünelden geçmesi için adres satırına “about:config” yazıp, “network.proxy.socks_remote_dns” true olarak ayarlanmalıdır.

Bağlantısını kullanacağımız uzak makine için bir VPS yeterli olacaktır. Avrupa konumlu DigitalOcean planlarını incelemenizi tavsiye ederim.

Linux istemcilerde doğrudan komut satırından SSH komutu (OpenSSH) ile tünelleme kolayca yapılabilir. Windows istemcilerde Putty yukarıda bahsettiğim tüm bağlantı tiplerini kurabilecek yeteneğe sahip.

RDP yazılımlarından içsel olarak SSH tünel özelliğine sahip olanlara örnek; RemminaMobaXterm .

SSH’ın standart portu 22 dir. Bu port ile geçiş yapamıyorsanız, OpenSSH ayar dosyasında küçük bir değişiklikle 80 veya 443 kullanmanız pek çok engeli aşmanıza yardımcı olacaktır. Sıkı firewall cihazlarına karşı (deep packet inspection),  SSH tüneli HTTP tünelinden geçirilebilir.

Bağlantınızı istediğiniz yerden istediğiniz gizlilikte geçirebilme özgürlüğünü muhakkak yaşamalısınız.

10 Ocak 2014

Posted In: dinamik port yönlendirme, dynamic port forwarding, lkd, socks proxy, ssh, ssh tünel, ssh tunnel, teknik, tr, tünel, tunnel, vpn

SSH tünel ile bağlantı güvenliği (SSH Tunnel)

SSH ile bağlantımızı tünelleyip istediğimiz noktalar arasında kriptolu geçirebiliriz. Bu yöntem hangi durumlar için kullanılabilir;

sshtunnel

• Güvensiz bir İnternet bağlantısı kullandığımız konumlarda bağlantı güvenliğimizi arttırmak
• Ağ filtrelerine takılmamak (ağ filtrelerini aşmak, varsa “kullanım politikası sözleşmenize” aykırı olabilir)
• NAT arkasından gerçek dünyaya soket açmak (NAT arkasından dışarıya servis vermek)
• İnternet çıkışını farklı ülkelere taşıyarak testler yapmak
• Sistemlere uzaktan erişim için bir zıplama noktası oluşturmak (VPN alternatifi)

SSH Tunnel in 3 farklı tipi bulunuyor, bunlar;

• Yerel port yönlendirme (Local port forwarding)
• Uzak port yönlendirme (Remote port forwarding | Reverse Tunnelling)
• Dinamik port yönlendirme (Dynamic port forwarding)

Yerel port yönlendirme (Local port forwarding):

ssh -L 9001:domain.com:80 sshServerIP

Bağlı bulunduğunuz ağdan domain.com adresine erişiminiz yoksa, bu adrese erişimi olan bir SSH sunucu üzerinden erişim sağlanabilir. Yukarıdaki örnekte sshServerIP sunucusuna kurduğum SSH bağlantısı üzerinden domain.com‘a 80. port üzerinden tünel açtık. Bu komutu çalıştırdıktan sonra tarayıcınıza http://localhost:9001 yazdığınızda domain.com yüklenecektir. https protokolü için de aynı yöntem uygulanabilir. (kötü haber facebook.com gibi dağıtık yapıdaki sistemler bu yöntemle çalışmıyor, onlara erişim için dinamik port yönlendirme kullanılmalı )

Uzak port yönlendirme (Remote port forwarding | Reverse Tunnelling):

ssh -R 9001:localhost:80 sshServerIP

NAT veya firewall arkasından dış dünyaya bulunduğunuz ağdaki veya kendi makinenizden hizmet sağlanabilir. Dış dünyadaki gerçek IP adresine (sunucu) istek gönderenler tünelin ucundaki makine ile konuşabilirler. Yukarıdaki örnekte güvenli ağ arkasındaki makineden sshServerIP sunucusunun 80. portuna ters tünel açtık. Kurulan bu bağlantı ile dış dünyada bulunan sunucumuza tarayıcı ile ulaşanlar, güvenlikli bölgedeki makinemizin üzerinde çalışan web sunucudan hizmet alabilecekler.

Yukarıdaki örneği biraz değiştirerek iş yerinizdeki intranet sayfalarına evden erişim sağlanabilir. VPN erişimi alınamadığı durumlarda zorlukları aşmada kuvvetli bir alternatif olacaktır.

Dinamik port yönlendirme (Dynamic port forwarding):

ssh -D 9001 sshServerIP

En çok işimize yarayacak bağlantı tipi dinamik port yönlendirmedir. Yerel makinede açılan bir soket uzak makine üzerinden tüm hedeflere ulaştırılır. Yerel soket üzerinden SOCKS proxy protokolü kullanılarak bağlantı karşı tarafa ulaştırılır. Özetle uzak makinenin İnternet erişimi kullanılabilir. Yerel makinede tarayıcıya SOCKS proxy ayarlarının girilmesi gerekir. Firefox kendi bağlantı ayarlarını içsel olarak kullandığından bu iş için kolaylık sağlar. Ayrıca tarayıcılar için proxy uzantıları kullanılabilir. Veya yerel makinenin tüm trafiğinin proxy üzerinden geçirilmesi tercih edilebilir.

Firefox ağ ayarlarından SOCKS proxy tanımlandığında DNS sorguları bu proxy üzerinden geçirilmez. DNS sorgularının da tünelden geçmesi için adres satırına “about:config” yazıp, “network.proxy.socks_remote_dns” true olarak ayarlanmalıdır.

Bağlantısını kullanacağımız uzak makine için bir VPS yeterli olacaktır. Avrupa konumlu DigitalOcean planlarını incelemenizi tavsiye ederim.

Linux istemcilerde doğrudan komut satırından SSH komutu (OpenSSH) ile tünelleme kolayca yapılabilir. Windows istemcilerde Putty yukarıda bahsettiğim tüm bağlantı tiplerini kurabilecek yeteneğe sahip.

RDP yazılımlarından içsel olarak SSH tünel özelliğine sahip olanlara örnek; RemminaMobaXterm .

SSH’ın standart portu 22 dir. Bu port ile geçiş yapamıyorsanız, OpenSSH ayar dosyasında küçük bir değişiklikle 80 veya 443 kullanmanız pek çok engeli aşmanıza yardımcı olacaktır. Sıkı firewall cihazlarına karşı (deep packet inspection),  SSH tüneli HTTP tünelinden geçirilebilir.

Bağlantınızı istediğiniz yerden istediğiniz gizlilikte geçirebilme özgürlüğünü muhakkak yaşamalısınız.

10 Ocak 2014

Posted In: dinamik port yönlendirme, dynamic port forwarding, lkd, socks proxy, ssh, ssh tünel, ssh tunnel, teknik, tr, tünel, tunnel, vpn

5651’de Değişiklik Kapıda



Toz duman arasında mecliste bir çorba kanun teklifi var ve 5651 sayılı kanun için değişiklikler içeriyor. Tam metnine http://www2.tbmm.gov.tr/d24/2/2-1928.pdf adresinden ulaşabilirsiniz, ben hızlıca göz attığımda şunları gördüm;


  • Erişim Sağlayıcıları Birliği kuruluyor ve üye olmayan erişim sağlama hizmeti veremeyecek. Tabii ki birliğin masraflarını üyeler karşılayacak.
  • Önceki erişime engelleme tabiri "alan adının", "IP adresinin" ve "içerik adresinin" engellenmesi olarak detaylandırılmış. 
  • Yer sağlayıcı trafik bilgilerini 2 yıla kadar saklamakla yükümlü olacak.
  • Ticari amaçla olmasa bile toplu internet kullanım sağlayıcılar trafik bilgilerini kaydedecek.
  • Erişimin engellenmesi belli bir süre için yapılabilecek.
  • Hakim duruşma yapmadan 24 saat içinde karar verecek.
  • Hakim zorunlu olmadıkça tüm siteye erişimi engellemeyecek, sadece ilgili içeriğin URL'si engellenecek. Yine de hakim bunu yeterli görmezse gerekçe göstererek siteyi engelleyebilecek.
  • Hakim kararını birliğe gönderecek.
  • İçerik kaldırılırsa hakimin kararı hükümsüz kalacak.
  • Kurum Başkanı ve Bakan(!) hakim gibi engelleme kararı verebilecek. 

7 Ocak 2014

Posted In: internet, lkd_gezegen, Özgürlük için

Twitter Auto Publish Powered By : XYZScripts.com