Firewall Engelini Aşıp Evden Çalışmak İsteyenler İçin: revinetd

0
FZ
Uzunca bir zamandır heterojen ağ ortamlarında, firewall idi, sistem yöneticisinin kaygıları idi, evden ofisteki ağa bağlanma idi, filanca yazılım falanca iş için uygun ama her şey için değil... vs. gibi dertlerle boğuşurken eMBA yazılım ekibimizden Ercümend Oyuktaş'ın keşfettiği minik bir yazılım ile dertlerimize son verdik.

Okuyacağınız kılavuzun işinize yaramasını ümit ederiz. Yazının orjinaline buradan erişebilirsiniz.

Firewall Engelini Aşıp Evden Çalışmak İsteyenler İçin: revinetd

İşyerinizdeki güvenlik duvarı (firewall) yüzünden evden işyerindeki makinanıza bağlanamıyorsanız, heterojen bir bilgisayar ağınız var ise (GNU/Linux, MS Windows, vs.) ve sistem yöneticinizle gereksiz tartışmalara girmek istemiyorsanız bu yazıyı okuyun.

Uzunca bir süreden beri evden işyerindeki makinama bağlanmak istiyor ancak bir türlü bunun için yeterli ve sağlam bir yol bulamıyordum. Tak revinetd ile karşılaşana kadar. Revinetd - reverse port redirector (http://revinetd.sourceforge.net) sistemine rastladıktan sonra bu iş çözüm bekleyen bir problem olmaktan çıktı.

Revinetd: Nasıl Çalışıyor?

Revinetd iki farklı modda çalışıyor, listen-listen ve connect-connect. Evinizdeki Bilgisayar A'da listen-listen d urumunda çalışıyor. İşyerinizdeki Bilgisayar B'de ise connect-connect durumunda çalışıyor. Bilgisayar C ise işyerinde bağlanmak istediğiniz hedef bilgisayar. Bilgisayar C, işyerinizde Bilgisayar B'nin ulaşabildiği herhangi bilgisayar (ya da doğrudan kendisi B=C) olabilir.

Şimdi yukarıdaki plana göre sıra ile bilgisayarlar üzerinde çalıştırmamız gereken komutlara bakalım:

Bilgisayar A - Hizmet Sunucu:

revinetd -s -l 3389 -L 100

şu anda revinetd hizmet sunucu (server) durumunda çalışıyor. 3389 portundan yerel bir istemci (client) programının bağlanmasını, 100 portunda Ajan bilgisayarın bağlanmasını bekliyor.

Bilgisayar B - Ajan

revinetd -r -c [Bilgisayar A IP adresi]:100 -t [Bilgisayar C IP adresi]:3389

bu bilgisayarda ise revinetd ajan durumunda çalışıyor. Bilgisayar A'nın 100 numaralı portuna bağlantı kuruyor. Bu bağlantı, Sunucunun İstemci / Hedef ikili bağlantısı kurmak için yeni veri bağlantısı isteyeceği iletişim kanalı olarak kullanılıyor. Sunucu 100 numaralı porta gelen ilk bağlatının iletişim kanalı ve ondan sonraki tüm bağlantıların veri bağlantısı olduğunu biliyor. Güvenlik duvarından (firewall) ilave port açılması ihtiacını en aza indirmek için böyle yapılmış.

Şema 1


Bilgisayar A'da istemci programı 127.0.0.1:3389 portuna bağlanıyor. Hizmet sunucusu bağlantıyı algılıyor ve iletişim kanalı üzerinden ajan bilgisayardan yeni veri bağlantısı talebinde bulunuyor.

Şema 2


Ajan Bilgisayar B mesajı alıyor ve Hizmet Sunucu Bilgisayar A'ya bağlanıyor. Bilgisayar A bağlantı sağlandığında Hedef Bilgisayar C'ye bağlantı kurarak proxy-port ikilisi veri rölesini başlatıyor.

Şema 3


Böylece Bilgisayar A'da çalışan istemci programınız 127.0.0.1:3389 portuna bağlı olmasına karşın Bilgisayar-C:3389 bağlıymış gibi çalışacak.

Revinetd İçin Hazırlık

  • 1. Adım revinetd edinmek. http://revinetd.sourceforge.net adresinden revinetd yazılımını indirebilirsiniz.
  • 2. Adım derleme.
  • ./configure
    make
    make install


    Not: MS Windows kullancıları Cygwin ile derleyebilirler. (Ben Emre "FZ" Sevinç'in bilgisayarındaki Cygwin'i kullanarak makinasında derledigi revinetd.exe ile sorunsuz çalışıyorum. Emre'ye teşekkürler :)

  • 3. Adım (ADSL modem) kullanıyorsanız


  • Evdeki makinanızda revinetd uygulamasının dinleyeceği portu ayarlamak. Dilediğiniz bir boş porttan dinleyebilirsiniz, tabii işyerinden çıkabildiginiz portları da göz önünde bulundurun. Örnegin işyerinizdeki güvenlik uygulamaları nedeniyle 1024 ve üzeri portlara çıkışınız yoksa tabii ki evdeki makinenizin de 1024 altında kalan bir porttan dinliyor olması uygun olacaktır. Biz, örnegimizde revinetd'yi 100 numaları porttan dinlemek üzere ayarlayacagiz. ADSL modeminizin konfigürasyon menüsünden VIRTUAL SERVER başlığı altında revinetd uygulamasının dinleyeceği port için bir kayıt yaratmalısınız.

    public port start : 100
    public port end : 100
    private port : 100
    private ip : makinenizin local IP adresi

    Konfigürasyon işlemini tamamladığınızda ayarlarınızı kaydetmeyi ve modeminizi yeniden başlatmayı unutmayın. Modeminizinin konfigürasyon menüsüne nasıl gireceğinizi bilmiyor veya konfigürasyon menüsünde VIRTUAL SERVER başlığına rastlayamadıysanız bu işlemler ile ilgili ilk önce modeminizin kullanım kitapçığına bakmanız gerek. Boylece revinetd nin kullanimi icin artık hazırız.
Yukarıdaki hazırlıkları yaptıysanız bu kılavuzun ilk bölümündeki komutları kullanarak önce ofisinizdeki bilgisayarı ayarlayabilir ve sonra evinize gittiğinizde gerekli, işlemlere devam edebilirsiniz.

Buradaki örnek olabildiğince genel (generic) tutulmuştur, ofisinizdeki bir web server, "remote desktop", vs. gibi bir uygulamanın hizmet verdiği portu belirledikten sonra evinizdeki bilgisayarınızdan ulaşmanız mümkün olabilecektir. Programın derlenmiş halini ve MS Windows üzerinde çalışması için gerekli olan cygwin.dll dosyasını buradan edinebilirsiniz.

Ercümend Oyuktaş
2004-01-11
e-posta: mathware at yahoo nokta com

Görüşler

0
conan
Ercu rules hehe ;)
0
ercumend
Il y a deux manières de construire une conception de logiciel ; l'un doit la rendre si simple qu'il n'y a évidemment aucune insuffisance, et l'autre manière est de la faire ainsi compliquée qu'il n'y a aucune insuffisance évidente. La première méthode est plus difficile bien.
0
ttk
emeği geçenlerin eline sağlık, gayet faydalı bir döküman ve uygulama.
0
FZ
Pratik olarak işinize yararsa ne mutlu yazana ve yayınlayana ;-)
0
ttk
Firewall'ı aşabilmeyi sağlaması faydasının yanında, standart belli portlardan çıkış verilmek zorunda kalınan hizmetlerin ilk anda bu portları tarayıp geçenler tarafından bulunmasını da engelleyebilme gibi bir faydası da var programın.
Sistemimizin verdiği hizmetlerin açık portlar yoluyla kolayca teşhis edilip saldırıya hedef olma ihtimalini azaltması çok faydalı.
Terminal servisin portunu nasıl gizlesem diye düşünüyordum, epey işime yarayacak bu bilgiler.
Teşekkür ederim :)
0
Doggie
süper haber, hele amaç çalışmayıp şirkette birşeyleri karıştırmak ise. İleri yoldaş !
0
FZ
Bence de süper bir haber/yazı ancak amaç evden ofise bağlanıp herhangi bir durum olduğunda uzaktan müdahale edebilmek ve teknik problemleri çözebilmek. İstanbul şehri, İstanbul trafiği, yollar, yolda kaybedilen vakit vs. düşünelecek olursa, uzaktan ofiste bilgisayar ağına bağlanıp geliştirme yapmanın ya da teknik bir programlama problemini çözmenin değeri daha iyi anlaşılır. Dediğim gibi, tamamen teknik bir mesele.
0
Doggie
süper haber, hele amaç çalışmayıp şirkette birşeyleri karıştırmak ise. İleri yoldaş !
0
ttk
Yazılarınıza baktım da, nikinize gayet uygun düşüyor yazılarınız.
0
FZ
Bu yazıyı sistem yöneticinize okutmayın! ;-)

Görüş belirtmek için giriş yapın...

İlgili Yazılar

Debian ile Mantıksal Hacim Yönetimi (LVM)

FZ

Türk Debian kullanıcıları camiasının çalışkan ve üretken bireylerinden Serdar Aytekin Debian GNU/Linux kullanarak mantıksal hacim yönetimi (LVM - Logical Volume Management) gerçekleştirmeye dair güzel bir yazı hazırlamış.

İçerik ve seviye olarak orta ve üst düzey sistem yöneticilerine hitap eden bu yazı, "7-8 adet 200 GB'lik SCSI diski bilgisayarıma bağlayıp bunları tek bir disk gibi görmek ya da 3'e bölüp 3 üç farklı disk gibi görmek, sonra istersem kolayca yeni disk takıp hacmi ve dosya sistemini büyütmek istiyorum" gibi cümleler kuran kişilerin işine yarayacak türden.

Bu tür cümlelerin çok değil 4-5 yıl öncesine dek ancak onbinlerce, yüzbinlerce dolarlık makinalar ve ticari UNIX türevi işletim sistemleri barındıran bilgi işlem merkezlerinde kurulduğu ve özel, pahalı yazılımlar gerektirdiği düşünülecek olursa bilgisayarla profesyonel olarak uğraşan bilgi işlemciler için GNU/Linux'un, Debian'ın kıymeti bir kez daha anlaşılır diye düşünüyorum. Bu kadar laftan sonra hadi artık makale adresini versene diyenler için, buyrun: Debian ile Mantıksal Hacim Yönetimi (LVM).

The Art of UNIX Programming (Back To Basics)

FZ

Meşhur "The Cathedral and the Bazaar"ı yazan, "Halloween Belgeleri" ile Microsoft'un ipliğini pazara çıkaran ve açık kodlu yazılım geliştirmenin avukatlığını yapmış olan üstad programcı Eric S. Raymond gerçekleştirdiği son röportajlarından birinde son projelerinden ve UNIX geliştiricilerinin IDE ortamlarına karşı niye alerjik olduklarından bahsediyor ;-)

Aşık Olacağınız Paylaşım Şekli: shfs

pismikrop

shfs için böyle bir başlık koydum çünkü ben aşık oldum. Artık elimdeki tüm sunucuları güvenli bir şekilde klasörlerimin içine bağlayıp eş-zamanlı iş yapabilirim. Ve iptables'ta tek izinli port ile.

Uzaktaki sunucuda ortak çalışma için öncelikle nfs'i denedik. NFS yerel ağda bir harikaydı. Ama uzaktan erişimi oldukça yavaş ve güvensizdi. Daha güvenli bir paylaşım için shfs biçilmiş bir kaftan. portmap, rpc gibi ek hizmetler gerektirmeyen harika bir paylaşım ortamı.

shfs için sunucu tarafındaki malzemelerimizi sayıyorum: bir adet ssh sunucusu :) istemci tarafındaki malzemelerimiz ise güncel çekirdek sürümünüze ait kernel başlıkları, shfs utils, shfs-source, gcc, module-assistant

Şimdi Debian GNU/Linux ile (ki ben Ubuntu kullanıyorum :) kuruluma sıra geldi...

Linux Açılış Disketi NASIL

yalcink01

Hep hayalini kurduğum şey, kendi başıma imal ettiğim bir işletim sistemi idi. Baktım ki bu iş oldukça uzun bir zamana mal olacak, ben de hayalimi güncelledim ve kendi birleştirdiğim bir işletim sistemi yapmaya karar verdim. Hani legolar var ya onun gibi bir şey işte. Eh, Linux çekirdeği artı GNU araçları ve bilumum özgür yazılım etrafta cirit atıyor:) Al parçaları birleştirmeye başla dedim ama işte orada tıkandım kaldım. Parçaları bulmak kolay ama bir GNU/Linux İşletim Sistemi nasıl çalışır, temel parçalar nelerdir, kim kimi tetikliyor, kimin eli kimin cebinde konuları biraz karışık. Demokraside çare tükenmez deyip kendi yol planımı yaptım ve işe başladım: Öncelikle "bu sistem nasıl açılır, temel parçalar ve ana hatlar nelerdir?" sorununun yanıtını bulabilmek amacı ile The Linux Bootdisk HOWTO kılavuzunu hatim eyledik. Sırada Çekirdek Çitleme Kılavuzu (tldp tarafından şu an güncelleniyor) ve The Pocket Linux kılavuzu var.

Linux Açılış Disketi NASIL kılavuzu; bir açılış disketi yapımını anlatmakla birlikte -ki bu işin çok daha kolay bir yöntemi de mevcuttur:mkbootdisk- sistemin ilk ateşlemesini ve bu sistemin çalışması için gereken temel araçları açıklaması yönünden bence oldukça önemli bir başlangıç noktasını oluşturmakta. İyi bir başlangıç olmakla birlikte, sistem temellerini anlayabilmek için tek başına yeterli olmasını beklemeyin. Zaten kılavuzun ana hedefi de bu değil. Adı üstünde: açılış disketi nasıl yapılır, onu anlatıyor :)

Her halükarda okunması gereken ve Linux öğrenmeye çalışan benim gibiler için, uygulanması gereken bir kılavuz. Init'in ne olduğunu anlamadan önce, init'in herşeyin atası olduğunu anlamak gerekir, öyle değil mi?

http://www.geocities.com/yalcink01/bootdisk-howto/index.html adresinden belgeye ulaşabilirsiniz. Her zaman olduğu gibi: her türlü geribeslemeye kapımız açıktır

E-bergi Şubat 2009 Sayısı Okuyucularını Selamlar

ilke444

Yeni yıla çok güzel bir başlangıç yapan aylık bilgisayar bilimi ve özgür yazılım derginiz e-bergi, Şubat 2009 sayısıyla da yine çok konuşulacak.