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