Openvpn başlangıç

0.0 İçindekiler

Önsöz
Giriş
    SZA nedir?
    Sanal ağ, nasıl yani?
    Openvpn nasıl çalışır?
Yükleme
Ayarlar
    TUN/TAP aygıtı
Güvenliksiz bir SZA başlatmak
Sorular
    Adsl/KabloNet modeminde ayar yapmak gerekir mi?
    Sabit IP şart mıdır?
    Neden VPN değil de SZA?
Belgeler
Yapılacaklar

sürüm 1.0 - Ekim 2005

1.0 Önsöz

Bu yazı Can Kavaklıoğlu tarafından yazılmıştır, sorularıyla bu yazıya sebep oluşturan "crespo hernan" a teşekkürü bir borç bilir kendisi.

Yazıdaki hataları, önerileri, soruları ve/veya yazının oluşturduğu tepkileri yukarıdaki bağlantıdan ulaşabileceğiniz eposta adresine yollarsanız pek de güzel olur.

2.0 Giriş

Debian Sarge sisteminde openvpn paketini kullanarak standart bir SZA (Sanal ÖZel Ağ) sunucusu ve istemcisi oluşturmak. Bu yazı benim gibi konuya yeni giriş yapanlar için yazılmıştır.

2.1 SZA nedir?

SZA (VPN, "Virtual Private Network") Internet üzerinde sanal bir yerel ağ (LAN) oluşturmayı sağlar. Internet' e girmek için Adsl yada KabloNet' ten bir IP adresi almamıza benzer olarak, SZA' da da seçilen bir sunucu, Internet üzerinde belirli güvenlik koşullarına göre, IP isteği yapan istemcilere IP dağıtır. Böylece fiziksel olarak farklı yerlerdeki bilgisayarlar sanal da olsa bir yerel ağ ile bağlanmış olur.

2.2 Sanal ağ, nasıl yani?

Internet sağlayıcınızla aranızda olan bağlantı gerçek bir ağ üzerinden olmaktadır. Diyelim Adsl' ye abone oluyorsunuz. Abonelik süreci içerisinde evinize bir takım insanlar geliyor ve telefon hattınız üzerinden bağlantı yapılabilmesi için yerel donanımınızla uğraşıyorlar. Temel olarak TurkTelekom ile eviniz arasında bir tel kuruluyor. TurkTelekom sunucuları da, sizin bilgisayarınız istediği zaman, bu kablo üzerinden bağlandığınız gerçek yerel ağdan bir IP verir, mesela 192.177.25.5 . Siz de bu bağlantı sayesinde Internete bağlanırsınız. TurkTelekomun sağladığı bu bağlantı, temelde sizin donanım ayarları yapmanızı gerektirdiği ve bütün Internet bağlantınız bu bağlantı üzerinden bağlandığı için gerçektir diyebiliriz.

Sanal ağ ise gerçek ağdan farklı olarak, herhangi bir donanım ayarı gerektirmeden, birazdan deyineceğimize benzer yazılımlar aracılığı ile gerçek ağlar üzerinde kurulan yerel bir ağı taklit ederek oluşturulur.

2.3 Openvpn nasıl çalışır?

Openvpn öntanımlanmış olarak noktadan-noktaya ("p2p, point-to-point") şekilde çalışır. Openvpn bu şekilde çalıştırıldığında iki bilgisayar arasında tünel adı verilen bir bağlantı kurar. Bu bağlantı pratik olarak her iki bilgisayarda da diğerini tanıtan bir IP tanımlar. Yeni tanımlanan IP her iki sistemdeki diğer bileşenler tarafından diğer bütün IP adresleri gibi kullanılabilir. Sonuçta iki bilgisayar openvpn' in sağladığı tünel sayesinde oluşan bağlantıyı kullanarak birbirleriyle iletişim kurabilirler. İlk bakışta openvpn' in sağladığı çok fazla birşey gibi gözükebilir (zaten iki bilgisayar birbiriyle iletişim kurabiliyordu). Ancak bilgisayarlar arası kurulan iletişimin özellikleri herhangi bir durum için önem teşkil ettiğinde, geniş tünel özelliklerini ayarlama desteği sayesinde, openvpn yeri doldurulamaz bir yazılım halini de alabilir.

Openvpn 2.0 sürümünden sonra sunucu/istemci mimarisini de desteklemektedir. Sunucu/istemci yöntemi, noktadan-noktaya yönteminden farklı olarak, daha ölçeklenebilir bir yapıya sahiptir ve daha katı güvenlik özellikleri vardır.

3.0 Yükleme

Debian Sarge sistemimizde openvpn programını (hem sunucu hem istemci) edinmek için, kök (root) kullanıcı olarak aşağıdaki komutu veriyoruz.

# aptitude install openvpn

Bu adımdan sonra çıkan soru, eğer yüklemeyi openvpn üzerinden yapıyorsak, yükleme sırasında openvpn yeniden başlatıldığı için bağlantıyı (hatta yüklemeyi) kaybetmemek için sorulan, openvpn yeniden yüklenirken yeniden başlatılsın mı sorusuna cevap olarak, varsayılan olarak "Hayır" denmiş olan cevabı kabul etsek uygun olacaktır. Bu seçimin tek önemli noktası, bundan sonraki openvpn (yeniden) yüklememizde  programı elle yeniden başlatmak olacaktır.

Bundan sonra herhangi bir hata mesajının çıkmaması openvpn' in doğru olarak yüklendiğine işaret eder.

4.0 Ayarlar

4.1 TUN/TAP aygıtı

Gerçek geniş bant bağlantılarda (ör. Adsl/Kablonet) genelde ethernet aygıtı kullanılır. Ancak bizim kurmak peşinde olduğumuz ağ sanal bir ağ olduğu için, yine sanal bir aygıta ihtiyacımız var, TUN/TAP aygıtı.

Eğer sisteminizde zaten yoksa (anlamak için /dev/net/tun isimli bir dosya olup olmadığını kontrol edebilirsiniz), 2.4 kernel veya üzerinde, TUN aygıtı uçbirimi yaratmak için

# mknod /dev/net/tun c 10 200

ve TUN modülünü yüklemek için

# modprobe tun

komutlarını kullanabilirsiniz.

5.0 Güvenliksiz bir SZA başlatmak

Güvenlik ayarlarını kullanmadan sadece çalıştığını görmek için yada güvenliğin önemli olmadığı durumlarda noktadan-noktaya sistemi şu şekilde iki bilgisayarı bağlamak için kullanılabilir.

birinci bilgisayarda:

# openvpn --remote ikincibilgisayarinIPsi --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9

ikinci bilgisayarda:

# openvpn --remote birincibilgisayarinIPsi --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9

Yukarıdaki iki komut oluşturulacak tünelin iki ucunu tanıtır ve oluşturur. Tünelin bir ucunun (birinci bilgisayar) ismi 10.4.0.1, diğer ucu (ikinci bilgisayar) 10.4.0.2 dir.  --verb parametresinin amacı çıktı miktarını belirtir, (az) 0 - 11 (çok) arası bir değer verilebilir, tünelin özellikleri için önemsizdir.

Böylece güvenliği olmasa da temel bir SZA oluşturmuş olduk. Mesajlarımız şifrelenmeden diğer bilgisayara yeni tanımladığımız IP ile ulaştırılabilir. Bunu denemek için de,

birinci bilgisayardan:

# ping 10.4.0.2

ikinci bilgisayardan

# ping 10.4.0.2

komutlarını kullanabiliriz. Eğer her iki bilgisayar birbirini bu yeni tanımladığımız IP lerden "ping" leyebiliyorsa SZA başarıyla kurulmuş demektir.

Bu noktada dikkat edilmesi gereken bir nokta iki bilgisayar arasında olabilecek bir güvenlik duvarı. Eğer böyle bir durum söz konusu ise güvenlik duvarında UDP protokolünün 1194 numaralı kapısının ("port") her iki yönde de açılması gereklidir.

6.0 Sorular

6.1 Adsl/KabloNet modeminde ayar yapmak gerekir mi?

Buradaki önemli nokta, Internet' e bağlanırken arada neler kullandığınız. Eğer sadece modem kullanıyorsanız bir sorun
olmaz; çünkü modemler trafik düzenlemesi yapmazlar.

Ama aynı zamanda yönlendirici ("router") olan ve güvenlik duvarına ("firewall") sahip bir modem kullanıyorsanız, o zaman bir ayar yapmanız gerekecektir; çünkü kullandığınız bu (genel olarak yönlendirici diyelim) yönlendirici sadece bir modem olmanın ötesinde, istenmeyen ağ trafiğini uzakta tutmak için haberi olmayan bağlantıları kabul etmeyecektir. O
yüzden Internet ile aranızda bir yönlendirici varsa ,  dışardan gelen SZA bağlantılarını kabul edebilmek için,  yönlendiricinin
normal olarak üzerinden iletişime izin vermediği, SZA da kullanılan kapının ("port") açık olması gereklidir.

6.2 Sabit IP şart mıdır?

Şart değil ama olsa fena olmaz denebilir. SZA sisteminin çalışması için sabit ip ye gerek yok. SZA sistemi herhangi türlü bir IP ile çalışabilir. Ama sabit olmayan IP nin sorunu değişmesi. Yani diyelim siz istemcilerinizde bir ayar dosyası oluşturdunuz ve oraya sunucunun IP adresini yazdınız. Herşey çalışıyor. Ama IP sabit olmadığı için birinci yada ikinci bilgisayarın IP si değiştiğinde, ayar dosyanızı yeni IP yi kullanarak yenilemediğiniz sürece bağlantı kuramazsınız.

Bu duruma bir çözüm DDNS diye bir sistem var. www.noip.com adresi bu sistemi sağlıyan sitelerden birtanesi. Bu sistemde bilgisayarınızın IP si her değiştiğinde, bunu farkeden bir program, yeni IP adresini noip şirketinin veritabanına kaydediyor. Bundan sonra noip den (bedavaya) aldığınız bir ismi kullanarak, mesela

sunucumuz.noip.com

diye girdiğimizde, sunucuya ulaşmamız garanti oluyor. Böylece IP adresi yerine, bu ismi, istemcilerinizin ayar dosyasında kullandığınız sürece sunucuya ulaşabiliyorsunuz. Yani IP niz sabit olmasa da, bu isim ("domain") sürekli sunucuza işaret ettiği için, SZA sistemini rahatça kullanabilirsiniz.

Ama bu ek bir sistem olduğu için, bir vakitte sorun çıkaracağına kesin gözüyle bakılabilir. O yüzden kaliteli servisin (şirket ortamı gibi, hata kabul edilmeyecek durumlarda) gerekli olduğu durumlarda, sabit IP olması daha iyi olacaktır.

6.3 Neden VPN değil de SZA?

VPN biraz da isminin yabancı olarak kullandığımızdan dolayı olduğundan farklı anlaşılıyor. Biz bundan sonra VPN yerine Sanal Özel Ağ (SZA) diyelim, daha güzel anlaşırız diye düşündüm, bu konuda (diğer konularda olduğu gibi) fikirlerinizi bekliyorum.

7.0 Belgeler

openvpn kılavuz dosyası ("man openvpn" komutu ile)
/etc/openvpn/
/usr/share/doc/openvpn/

8.0 Yapılacaklar

Güvenlik özelliklerini ve sunucu/istemci sistemini kullanan bir SZA kurulumu eklenecek.
Yazı için lisans ayarlanacak.


Eylül 2005