Epeydir yazı yazamıyorum farkındayım. Ama yazmaya değer konu bulmak zordur bildiğiniz gibi. Bu yazımı da bilişim danışmanlık sektöründeki arkadaşlara armağan ediyorum.
Çeşitli firmalara danışmanlık yapanlar bilir ki bu firmaların yerel ağlarına uzaktan (off-site) erişim tam bir kabustur. Bu firmalar güvenliklerini korumak amacıyla akla hayale gelmedik önlemler alır. Bu alınan önlemlerden en basiti ise firmanın VPN’ine giren bilgisayarın yerel ağa erişiminin kesilmesidir. Kısacası bir firmanın işini yapacaksanız internete de o vpn üzerinden çıkmanız, veya hiç çıkmamanız beklenir. Bu da demektir ki bilişimci arkadaşlar, google denilen bilgi hazinesinden faydalanamazsınız. Tabii işletim sistemini, kullanılan yazılımı, bağlantı sorunlarını ve akla gelebilecek her türlü konuyu hatmetmiş arkadaşlar için bu bir sorun değilken (sahi kaç kişisiniz siz?) benim gibi sık sık referansa ihtiyaç duyan arkadaşlar için bu çekilmez bir çiledir. Hem sonra iş arkadaşınızla msn’den nasıl mesajlaşacaksınız değil mi? Sıkıcı debugging saatleri nasıl eğlenceli hale gelecek?
Bu yazımda size firmaların neden yerel ağa erişimi engellememeleri gerektiğini açıklamayacağım zira bu başlı başına tez konusu bile olur. Size bu erişim engelini nasıl aşacağınızı böylece daha verimli nasıl çalışacağınızı anlatacağım. Bu satırdan sonraki bilgileri nasıl kullanacağınız tamamen sizin sorumluluğunuzdadır. Oraya buraya worm bulaştırıp firmaya kaybettirmiş olabileceğiniz milyon dolarlar yüzünden beni suçlamayın sonra. (gerçi bilgisayarınızda worm varsa yerel ağa erişmeseniz ne farkeder, değil mi?)
Sevgili Linux’çu arkadaşlar. Linux serisi işletim sistemlerini ben de severim. Zaten sizin vpnc diye bir nimetiniz olduğundan hiç size bir şey anlatmaya ihtiyaç duymuyorum. Siz zaten taklalar attırırsınız bilgisayarınıza vpnc ile. Ben bilişim dünyasının dışladığı windows sever arkadaşlara hitap edeceğim. Bu uzun girizgahtan sonra sadede gelelim.
Piyasadaki en agresif windows vpn client’ı sanıyorum ki Cisco’nunkidir. Diğer bazı vpn clientlarında vpn bağlantısı sağlandıktan ve “network topology”si alındıktan sonra “route” komutunu kullanarak routing tablonuzu eskisine benzer hale getirmeniz ve hem yerel ağa hem de vpn’e erişmeniz mümkündür. Böylece internette surf’e devam edebilirsiniz. Oysa Cisco vpn client’ında böyle bir seçenek sunulmuyor. Cisco bir şekilde paketiniz daha OSI katmanlarındaki alt seviyelere inmeden yakalıyor ve geçmesinin uygun olup olmadığına karar veriyor. Bu sebeple isterseniz tüm routing tablonuzu yeniden yazın, dilerseniz yeni bir “virtual interface” tanımlayın yine de internete çıkamıyorsunuz. (En azından ben beceremedim). Bu durumda karşınızda iki olasılık kalıyor: VMWare üzerine sevdiğiniz Linux dağıtımını kurup oradan vpnc ile bağlanmak ve işleri oradan yapmak. Tabii bu sizin favori geliştirme ideniz arka plandayken (hele ki o çok değerli hafızanızın megabaytlarını emiveren java tabanlı bir şeyler kullanıyorsanız) verimli bir çözüm olmayabilir.
Akılcı olan ve daha verimli çözüm ise Cisco marka VPN gatewaylerine bağlanabilen daha az agresif başka bir client bulmak. İlk akla gelen tabii ki “ulan bu vpnc nam poroğram acep Windows’ta da çalışır mı oluyor. Cygwin üzerinde de çalıştığı söylenen vpnc’yi ben ne yaptıysam çalıştıramadım. Fedora developerlarından bir arkadaştan da yardım istedim ama böyle bile beceremedim. Zaten bu yöntem düzgün çalışsa dahi temiz bir çözüm değil. Benim gibi windows’u seven arkadaşlara “pure windows” bir çözüm lazım ki hem hafif hem lezzetli olsun. Ve geliyorum nihayet bir ecnebi forumunda denk geldiğim müthiş çözüme:
VPN dünyasına altın harflerle kazınmış bu müthiş yazılım ne mi yapıyor? Cisco, Juniper, Fortigate, Zywall marka gatewaylerin tekmiline birden vpn bağlantısı yapabiliyor. Üstüne üstlük bedava. Alın size hafif mi hafif, tadından yenmez bir çözüm. Her firma için ayrı vpn client kurmaktan zaten usanmışsınızdır değil mi? Ben sadece en çok canımı sıkan ve piyasada en çok bulunan ürünler Cisco olduğu için bu programı Cisco üzerinde denedim. Sonuçlar oldukça tatmin ediciydi. Sitede nereye nasıl bağlanılacağı adım adım anlatılıyor. Ama ben yine de benim gibi tembel arkadaşlara en temel ayarları bir kez daha anlatayım. Böylece danışmanlık sektöründe de hem vpn hem internet devri başlamış olsun.
1- Yazılımı indirip kurun.
Ben bu yazıyı yazdığım sırada “Shrew Soft VPN Client 2.1.0″ sürümü mevcuttu. Burada dikkat edeceğiniz nokta, kurulumu mutlaka local administrator yetkisine sahip bir kullanıcıyla giriş yaparak (login) yapmanız. Ben ilk kurulum denememi normal bir kullanıcı ve “Runas –> administrator” seçeneğiyle yaptım ve orta yerde durdurmak durumunda kaldım. İkinci dikkat edeceğiniz husus ise işlemin biraz yavaş olduğu ve sabır istediği. Özellikle sanal adaptörü tanımlama işlemi çok yavaş. Bir de kurulum sırasında birçok kereler “Microsoft bu sürücüyü imzalamadı” diyor. Peki biz ne diyoruz? Hep dediğimizi, yani: “Neeeext”.
2- Kurulum bitince “Access Manager”ı açıp yeni bir bağlantı tanımlıyoruz. Bağlantı tanımlarken yapılacak ayarlar çok sade:1
. General sekmesinde: “Hostname” kısmını dolduruyoruz. “Auto Configuration” kısmına ise “ike config pull” diyoruz. Ben bir de yazılım sayfasında yazana ek olarak MTU‘yu 1300 olarak ayarladım. Cisco’cu amcalar doğrusunun bu olduğunu yazmış web sitelerinde zira.2
. Phase 1 sekmesinde: “Exchange Type“ı “aggressive” olarak ve “DH Exchange“i “group 2” olarak ayarlıyoruz.
. Authentication sekmesinde: “Authentication Method“, “Mutual PSK + XAuth” olacak. Daha sonra sırasıyla şu ayarları yapıyoruz:
“Local Identity”
“Identification Type“: “Fully Qualified Domain Name”
“FQDN String“: “vpn grubunun kullanıcı adı”
“Remote Identity”
“Identification Type“: “IP Address”
“Use a discovered remote host address” seçeneği seçili (“tick”li)
“Credentials”
“Pre Shared Key“: “vpn grubunun şifresi”
Bu aşamada “Save” tuşuna basıp bağlantı ayarlarını kaydediyoruz. Bir de afili isim veriyoruz bu bağlantıya. İşte şimdi işin eğlenceli kısmı başlıyor.
Kaydettiğimiz bağlantıya sağ tıklayıp “Connect” seçeneğini seçiyoruz. Bu sırada da bir adet komut istemcisi penceresi açıyoruz (bildiğiniz cmd yani). VPN Kullanıcı adınızı ve şifrenizi girip “Connect” tuşuna basmadan hemen önce komut satırına aşağıdaki komutu veriyoruz:
> route print
r />Bu aşamada geri dönüp “Connect” tuşuna basıyoruz ve bağlantı kurulmasını bekliyoruz. O da ne, bağlantı sağlandı. Sevinç naraları atmaya başlamadan önce şöyle bir durup vpn erişimimizi test ediyoruz. Artık ssh mı denersiniz ne yaparsınız o size kalmış. Vpn’e bağlandığımızdan emin olduktan sonra farkedeceksiniz ki internete giremiyorsunuz. Aaa oldu mu şimdi demeyin hemen. Dinleyin. Adımlar bitmedi.
Komut satırına dönüp aşağıdaki komutu ekliyoruz:
> ipconfig
Burada vpn’deki ip adresinizi ve alt ağ maskenizi göreceksiniz. Diyelim ki şöyle:
IP Adres. . . . . . . . . . . . . : 10.253.2.133
Alt Ağ Maskesi. . . . . . . . . . : 255.255.255.240
Bir de aşağıdaki komutu ekliyoruz:
> route print
Şimdi bu komutun çıktısını bir öncekiyle de kıyaslayarak 10.253.2.133′e denk gelen routing girdilerini buluyoruz. Diyelim ki şöyle:
10.253.2.128 255.255.255.240 10.253.2.133 10.253.2.133 1
10.253.2.133 255.255.255.255 127.0.0.1 127.0.0.1 30
Burada göreceğiniz gibi 10.253.2.128/28 subnet’ine erişim vpn’den (yani sizin vpn ip’niz üzerinden) yapılmalı. Bu şu sebeple önemli; birazdan network topology’sini vpn gateway’den almak yerine biz kendimiz belirteceğiz. Böylece internete çıkışımız da yerli yerinde duracak.
Şimdi bu bilgilerle bağlantımızı kesiyoruz. Ve hemen az önce kaydettiğimiz bağlantı ayarına sağ tıklayıp “Properties” seçeneğine basıyoruz. Buradan “Policy” sekmesine geliyoruz ve şunları yapıyoruz:
. “Obtain Topology Automatically or Tunnel All” seçeneğindeki işareti kaldırıyoruz (“untick”). Artık vpn’den geçmesi gereken trafiği elle yönlendirmemiz gerek. Bu sebeple az evel bulduğumuz subnet’i buraya ekliyoruz.
. “Add”
“Type: “Include”
“Address: “10.253.2.128″
“Netmask“: “255.255.255.240″
“Ok” tuşuna basıp kaydediyoruz. Peki bitti mi? Yine Bitmedi. Şu anda sadece vpn’e bağlantı sağlayabilmek için asgari ayarları yaptık. VPN üzerinden erişmeyi düşündüğünüz tüm subnetleri buraya yukarıdaki gibi eklemeniz gerekiyor. Örneğin:
. “Add”
“Type: “Include”
“Address: “10.12.0.0″
“Netmask“: “255.255.0.0″
Bağlantı ayarlarını bu şekilde kaydedip tekrar bağlanıyoruz. Hem internete hem de vpn’e bağlanabildiğimizi görüp mutluluktan uçuyoruz ve bu yazıyı yazan arkadaşa kahveler, donutlar alıyoruz.
Dünya durdukça başımızda durası Shrew Soft geliştiricilerine de teşekkürlerimizi sunuyoruz.
Bu arada iki ufak ekleme yapayım. Elbette bu yazılım Cisco’nun kendi vpn client’ı kadar temiz (kesintisiz) bir bağlantı sunmuyor. Ayarları ile oynayarak daha iyileştirmek mümkün olabilir. İlk bağlandığında hemen kopma sorunu olabiliyor. Ama bir kez düzgün bir bağlantı sağlandıktan sonra uzuun bir süre bağlı kalabiliyor. İkincisi, yukarıda “Include” yöntemi yerine “Exclude” yöntemini de kullanabilirdik elbet. Ama bence subnetlerin hangisini dahil edeceğinize karar vermek hangisini dahil etmeyeceğinize karar vermekten daha kolay. Hem de kısıtlayıcılığı en az olan yöntem bu olduğundan tercih edilmeli.
Mutlu vpn’ler..
Kaynaklar:
1. Shrew.Net: HowtoCiscoPix
2. Cisco Systems: PIX/ASA 7.x and IOS: VPN Fragmentation
RSS
Twitter
FriendFeed
Pingback: Buy Facebook Fans