11 Kasım 2008 Salı

Intrepid Kurduktan Sonra Ses Sorunu

Not: Aslında başlık "Intrepid Kurduktan Sonra yaşadıklarım ve bir yaşanmışlık olarak Ses Sorunu" olmalıydı. Ama bir başlık için fazla uzun bence.

Bugün artık yeni Ubuntu sürümüne geçmeye karar verdim. Hardy içinde oldukça fazla özelleştirme yaptığım için yeniden kurmak yerine yükseltmeyi daha uygun buldum. Aslına bakarsanız, ne derlerse desinler yeniden kurmak çoğu zaman daha iyi sonuç veriyor. En azından geride çöp paketler kalmıyor. Hardy'yi kurarken taşınabilir bilgisayarım üzerindeki tüm sistemi değiştirmiştim.


Her ihtimale karşı sakladığım MS Windows©'u diskin sonuna atıp ubuntu'nun disk performansını yükseltmeye çalışmıştım. Bir de müzik ve video gibi verileri GNU/Linux üzerinde tutmaya karar verdiğim için ubuntu'nun yerini arttırmıştım. Tertemiz bir kurulum olmuştu. Hem MS Windows© hem Ubuntu yenilenmişti.


Sistemi yeni kuruyorsanız benim yaptığım ve tavsiye edildiği gibi /home dizininizi ayrı bir disk bölümüne bağlamanızı şiddetle öneririm. Böylece yükseltmeyip yeni kurulum bile yapsanız, neredeyse tüm ayarlarınız korunacaktır.

Oldukça uzun bir süre sonra yeni Ubuntu kuruldu, daha doğrusu güncellendi. Biraz karıştırdım. Geçip geçmemek konusunda kararsız kaldığımdan dolayı zaten baya bir incelemiştim. Orca evrensel denetim programını gördüm. Bir ekran büyüteci ve okuyucusu. Yani doğru ayarlandığında ekrandaki bütün yazıları okumak için yazılmış bir program. Benim için gereksiz olduğunu düşündüm.


Temizlik

Daha önce de kaldırdığım ama çalışma aralığını genişletebilmek için Ubuntu'nun kurduğu bazı paketleri kaldırmaya karar verdim. Bunlar arasında Orca erişilebilirlik programı gereksiz ekran kartı sürücüler ve bir iki, benim için gereksiz özel fare sürücüleri, palmOs paketleri vardı.

Synaptic'i açtım, yeni arama modunu gerçekten takdir ettim. Aramaya "orca" tuşladım "gnome-orca" çıktı. Kaldır dedim. "braille" (nam-ı diğer kör alfabesi) tuşladım bir iki kurulmuş paket geldi, kaldır dedim. "xorg-video" tuşladım, ekran sürücüleri geldi. vesa, intel, fbdev ve v4l dışındaki paketlerin hepsini kaldır dedim. Bu arada belirteyim bunları yaparken, synaptic sizi tehdit edebilir; "Bak xserver-xorg-video-all paketini (yani hepsini) kaldırıcam haa" diyebilir, korkmayın. Acemiliğimde bir paketi kaldırırken synaptic "ubuntu-desktop'ı da kaldırıcam haa" demişti. Korkup iptal iptal diyip çıkmıştım. Bu tür paketler birden fazla paketi barındıran üst paketlerdir. Bağımlı olduğu paketlerden biri eksilirse kendileri de sistemde kalmazlar. Ne yaptığımızı biliyor ve kaldırdığımız paketleri istemiyorsak üst paketleri de tutmaya gerek yoktur. Tabi istisnalar da var. O konuya geliyorum.

Arama kutucuğuna "palm" tuşladığım zaman gnome-pilot ve bir kaç kütüphanenin (lib'le) başlayanlar kurulu olduğunu gördüm. PalmOS cihazım yok. Hiç işim de olmadı şimdiye kadar. Kaldırayım dedim. Teker teker kaldır diye işaretlerken, kütüphanelerden bazılarının evolution için bağımlılık olduğunu gördüm. Neden bağımlı olduklarını tam anlamasam da evolution'ı kullanıdığım için kaldırma dedim, geçtim. Her zaman kaldır dememek gerekiyor yani.

Ekran Kartı Sürücüsü Seçimi

Neyse efendim kaldırdım programları. Bu işlemleri yaparken hareket ettirdiğim pencelerde ve genel olarak hareketlerde bir yavaşlık sezdim. Daha önceden de başıma geldiği için biliyorum, bu ubuntu'nun ekran kartı için yanlış sürücüyü kullanmasından kaynaklanıyordu. Eskiden kullanılacak ekran kartı sürücüsünün seçilmesine izin verilirdi. Şimdilerde "dur söyleme ben otomatik bulucam" diyor ubuntu ama sonrasında da değiştirilmesin diye menüyü saklıyor. Aslına bakarsanız iyi de iş görüyor. Fakat benim intel mobile 945GM ekran kartım için ikidir gidip i810 sürücüsünü seçiyor. Bu sürücü eski intellerde daha iyi çalışsa da benim bilgisayarda düşük performanslı çalışıyor. intel sürücüsünü kullanmam gerekiyor. Eskiden sürücünün seçilmesine izin verilen program aslında hala Ubuntu'nun içinde. Ama saklı. Programın çalıştırılabilir ismini sık sık unuttuğum için her seferinde menüden açmam gerekiyor. Bunu yapmak için de;

Sistem -> Tercihler -> Ana Menü 'yü açıyoruz.



Diğer Menüsünde bulunan Screens and Graphics Programını seçip görünür hale getiriyoruz. Şimdi yukardan Uygulamar menüsüne girerseniz Diğer'in altında bu programı bulabilirsiniz. Programı açtım.



Graphics Card Menüsünden intel'i seçtim. Burda seçtikten sonra bir iki yere tıklamak gerekiyor. Yani bir iki işlem daha yapar gibi görünüp programı dürtüklemek gerekiyor ki arkadaş seçimimizi hatırlasın. Zaten sorunlu bir program olduğu için ortalıktan kaldırmışlar. Neyse efendim, ekranımızı ve çözünürlüğümüzü de seçip onaylıyoruz. Geçmiş olsun. Aynı şeyi bazen nvidia ekran kartları için de yapmak gerekebiliyor aklınızda olsun.


İşimiz bittikten sonra Sistem -> Tercihler -> Ana Menü 'ye yeniden uğrayıp programı görünmez hale getiriyoruz.

Ses Sorunu

Yukarıda bahsettiğim (ses ile alakasız görünen) işlemleri yaptıktan, (yine, ses ile alakasız görünen) programları kaldırdıktan sonra bilgisayarı açıp kapadım. Açılırken sesi çıkmadı. Bir iki mp3 çalmayı denedim. Hoparlörlerden cızırtı gibi bir ses geldi. Başka şeyler denedim. Sistem -> Tercihler -> Ses 'i açarak ses kaynaklarını değiştirmeye çalıştım, kar etmedi. Daha önce de benzer bir sorun ile karşılaştığımı hatırladım. Fakat nasıl çözdüğümü hatırlamıyordum. Biraz googlingden sonra bir forumda rastladım ki, ana ses ayarları açık olmasına rağmen PCM sesi tamamen kapalı imiş. Ses kontrolünden PCM'in sesini açtım ve sorunumm çözüldü. Çok aptalca bir soruna benziyor ama insanın aklına gelmiyor işte.


LG notebook için

Anladığım kadarı ile LG notebookların (en azından T1 ve S1 serisi için) intel ses kartları standart değil. Ön hoparlörden ses çıkışında sorun olmamasına rağmen, içindeki mikrofon ve kulaklığı düzgün kullanabilmek için bazı ayarlamalar yapmak gerekiyor. Bu ayarları çok uzun süre bulamadım. Sonra allah razı olsun biri bi yere yazmış da öylece çözdüm. Teknik olarak yaptığımız şey snd_hda_intel çekirdek modülüne model=lg parametresini göndermek. Bunun her açılışta gerçekleşmesi için de bir dosyaya yazmamız gerekiyor. Ubuntu içinde çekirdek modüller modprobe ile yükleniyor. Bu yüzden; /etc/modprobe.d/options dosyası içerisine gerekli satırları eklememiz gerekiyor. Bunun için Uçbirimden şu komutları veriyoruz.

$ echo "# kulaklıkları ayarlıyoruz"| sudo tee -a /etc/modprobe.d/options
$ echo "options snd_hda_intel model=lg"| sudo tee -a /etc/modprobe.d/options


ya da Alt+F2'ye
gksudo gedit /etc/modprobe.d/options


komutunu verip aşağıdaki satırları dosyanın sonuna ekleyebiliriz:

# kulaklıkları ayarlıyoruz
options snd_hda_intel model=lg

Bu arada bakmadan geçmeyin efendim: http://boycottnovell.com/2008/11/08/lg-ms-memorandum-of-understanding/

Bugünlük bu kadar. Esenlikler dilerim efendim.

---
intrepid, hardy'ye göre biraz yavaş mı ne? kullandıkça görücez bakalım.

4 Eylül 2008 Perşembe

OpenVPN Kurulumu

VPN nedir?

İnternet üzerinden her hangi bir yere bağlandığımızda (web sayfası, dosya alış-verişi, sohbet vb.) aradaki veri akışı paketler halinde olur. Bu paketler ağ şeklinde düzenlenmiş İnternet alt yapısı üzerinde bir çok nokta üzerinden atlayarak gideceği yere varır. Bu noktaların her birinde paket içeriği görüntülenebilir ve hatta içeriği değiştirilebilir.

Bankacılık gibi parola girilmesi gereken 'hassas' sayfalarda bilgi güvenliğinin sağlanması amacı ile SSL (Secure Socket Layer - Güvenli Bağlantı Katmanı) adı verilen bir sistem kullanılır. Web tarayıcının adres çubuğunda kilit resminin göründüğü sayfalarda bu sistem uygulanıyor ve bilgi güvenliğiniz sağlanıyordur. SSL sistemi gidip gelen verilerin sadece gönderenin veya alanın açabileceği şekilde şifrelenmesini ve böylece ara noktalarda verinin erişilememesi ilkesine dayalı çalışır.

Yerel ağ birbirine yakın mesafedeki bilgisayarlar için kullanılan bir kavramdır. Daha doğru bir tanımla cihazlar arasında verilerin geçtiği bütün noktaların tüm erişim haklarının tek bir kişi/kurum tarafından yönetildiği ağlara yerel ağ diyebiliriz. Yani aynı yerel ağda bulunan iki cihaz arasında yapılan bilgi alış verişi (ağda bir sorun olmadığı sürece) yabancı kişiler tarafından görülemez. Burada şu açıklamayı yapmam gerekiyor: Aynı yerel ağda bulunan cihazlar İnternet üzerinden erişilebilecek sunucular üzerinden bağlantı kurabilirler. Örneğin bir çok sohbet programı bu mantık ile çalışır. Bu durumda bilgi ağ dışına çıktığı için görülebilir olmaktadır.

VPN kavramı Virtual Private Network yani Sanal Özel Ağ, kısaca İnternet üzerinden istediğiniz yerel ağa, şifreli ve güvenli olarak bağlanabilme kavramının adıdır. Yani VPN kullanıldığında İnternet'e bağlı her hangi bir noktadan, ayarları daha önce yapılmış olan, her hangi bir yerel ağa güvenli bir biçimde bağlanılabilir. Böylece veri güvenliği kaygıları yaşamadan yerel ağın kaynaklarına (Ağ yazıcısı, kurum içi web/dosya sunucusu, VoIP telefon sistemi v.b.) İnternet üzerinde her hangi bir yerden erişilebilir.

VPN ile bir noktaya şifreli olarak bağlandıktan sonra bütün İnternet bağlantılarınızı bağlandığınız cihaz üzerinden yapabilirsiniz. Özellikle açık kablosuz bağlantı noktalarında güvenliğinizin sağlanması için bu yöntemi seçebilirsiniz. Bu yöntemi kullandığınızda sizin bilgisayarınız ile bağlandığınız cihaz arasında bir tünel oluşturulacak ve İnternet'e sanki bu tünelin ucundan ulaşıyormuşsunuz gibi olacaktır. Yani bağlandığınız noktaya kadar bütün veriler şifreli gidecek, eğer bağlanılan sunucu, açılan sayfa şifreleme istemiyorsa, VPN ile bağlandığınız noktadan sonra şifresiz olacaktır.

VPN kurmak için kullanılan yöntemlerden sık kullanılan ikisi:

• IPSec (Internet Protokol Güvenliği)

• SSL/TLS

İkisi arasındaki temel fark şifrelemenin gerçekleştirildiği taşıma seviyesidir. Daha detaylı bilgi için [2] 'ye bakabilirsiniz. Şu anda söyleyebileceğim nadir de olsa IPSec paketlerinin bazı yönlendiriciler üzerinden geçerken sorun çıkarabildiğidir.

VPN teknolojileri neredeyse bütün işletim sistemleri için kullanılabilir durumdadır. Ubuntu için de bir çok alternatif vardır. Bu alternatiflerden biri olan openVPN'i biraz inceleyelim. openVPN Ubuntu'nun yanında neredeyse bütün işletim sistemlerinde çalışmaktadır.


Kurulum

openVPN Ubuntu'nun universe (katkı) depolarında bulunmaktadır. Bu depoyu kullanıyorsak uçbirimden;

$ apt-get install openvpn


komutunu vererek ya da apt://openvpn bağlantısına tıklayarak openvpn'i kurabiliriz.


openVPN Nasıl Çalışır?

Çok fazla kuramsal bilgiye girmeden kısaca açıklamaya çalışayım: openVPN'i kurduğunuz ve çalıştırdığınız zaman sisteminize tun0 adında bir ağ ara birimi daha eklendiğini görürsünüz. Bu sanal bir ağ ara birimidir. Bu ara birim üzerinden gönderilen paketler şifrelenerek kullanımda olan gerçek ağ ara birimlerine aktarılırlar.

OpenVPN iki farklı veri katmanında çalışır: Katman 2 ve katman 3. Biraz ileri düzeyde bilgi gerektiren bu kavramları kısaca açıklamaya çalışayım. Katman 2 bir birine 1. dereceden (anahtar ya da hub kullanarak) bağlı bilgisayarların bağlanma şeklidir. IP adresleri olmasına karşın iletişim cihazlarının MAC yani fiziksel adresleri kullanılarak yapılır. Katman 3 ise (bu uygulama özelinde) IP adreslerinin birbirine yönlendirilmesi ile kurulan bir iletişim biçimidir. Örneğin yönlendiriciler birbirleri ile bu katmanda haberleşirler. openVPN paketleri 2. ya da 3. katmandayken alıp şifreleyebilir. Ne yaptığınızı bilmiyorsanız 3. katmanı kullanmanız tavsiye edilir.

openVPN kurulumu sunucu - istemci ve noktadan noktaya (p2p) olmak üzere iki şekilde yapılabilir. noktadan noktaya yalnızca iki cihaz arasında güvenli bağlantı kurulmak isteniyorsa tercih edilebilir. TLS sertifikaları oluşturulmadan, yalnızca bir parola ayarlanıp, bağlantının iki ucuna da girilerek bağlantı kurulabilir. Sertifika kullanımından daha güvensizdir. Sunucu - istemci modeli ise adından da anlaşılabileceği üzere bir sunucu ve birden fazla istemciden oluşabilir. Böylece ikiden fazla cihazın birbirine güvenli yoldan bağlanabilmesi sağlanır. İstemci olan bütün cihazlar sunucuya bağlanırlar ve eğer izin verilirse aralarındaki iletişim sunucu üzerinden yapılır. Her istemci ve sunucu arasında bağlantı yapılırken sertifika kontrolü yapılır.


openVPN ayarları

openVPN ayarları bir dosyaya düz metin halinde kaydedilir ve program çalıştırılırken ayarları bu dosyadan alması söylenir. MS Windows üzerinde ayarlar .ovpn soyadlı dosyalara kaydedilir.

Parola Korumalı

İlk olarak daha kolay olan noktadan noktaya - p2p tünel oluşturmak için gerekli kısa ayarlara bakalım.

Öncelikle iki cihazın birbirini tanımasını sağlayacak parolayı (anahtarı) üretmemiz gerekiyor. Bunun için:

$ openvpn --genkey --secret parola.key

komutunu veriyoruz. Bağlantı için gerekli olan parola parola.key dosyası içerisinde oluşturuldu. parola.key dosyasını diğer bilgisayara güvenli bir şekilde ulaştırmamız gerekiyor. Eğer bu dosya başka birinin eline geçerse güvenli ağımıza dahil olabilecektir. Şimdi birbirine bağlanacak cihazlardan birini sunucu, diğerini ise istemci olarak atamamız gerekiyor. Aşağıdaki ayarları birer metin dosyasına yazıp, ilgili cihazlara ait parola.key dosyası ile aynı dizin içerisine koymamız gerekiyor.

Sunucu olacak cihaz için ayar dosyası (sunucu.conf):

dev tun

ifconfig 10.8.0.1 10.8.0.2

secret parola.key


istemci olacak cihaz için ayar dosyası (istemci.conf):


remote sunucu.adresi

dev tun

ifconfig 10.8.0.2 10.8.0.1

secret parola.key


sunucu.adresi 'ni sunucunun IP veya alan adı adresi ile değiştirmeniz gerekir. İstemci, sunucuya UDP 1194 portundan erişmeye çalışacaktır. Eğer sunucu bir NAT, firewall ya da ADSL modem arkasındaysa bu portun sunucuya yönlendirilmesi gerekmektedir. Her bir ayar dosyasındaki ifconfig satırlarının ilki cihazın ip adresi, ikincisi de karşıdaki cihazın ip adresi olarak atanacaktır. Sunucu üzerinde

$ openvpn sunucu.conf


komutunu, daha sonra istemci üzerinde

$ openvpn istemci.conf


komutunu verdiğiniz zaman iki cihazın birbirine bağlanması gerekir. İstemci üzerinden

$ ping 10.8.0.1


komutunu vererek bağlantıyı test edebilirsiniz. (Eğer ping isteklerine yanıt gelirse, bağlantı çalışıyor demektir.)

Daha fazla bilgi için: http://openvpn.net/index.php/documentation/miscellaneous/static-key-mini-howto.html adresine bakmanızda fayda var.

Sertifikalı Bağlantı

Birden fazla bilgisayarın birbirine bağlanabilmesini sağlamak ve güvenliği artırmak için sertifikalı bağlantıların seçilmesi daha uygun olacaktır.

Sertifikalı bağlantılar çalışma biçimleri özetle şöyle açıklanabilir: Her bir cihazın sertifikası tek bir sertifika otoritesi (certificate authority - CA) tarafından imzalanır. Bağlantı kuracak taraflar birbirlerine sertifikalarını gönderirler. Sertifikayı alan taraf sertifika otoritesine bakarak sertifikanın gerçek olup olmadığını anlar. Eğer sertifika gerçekse, bundan sonra gönderilen veriler bu sertifika (kamu anahtarı) kullanılarak şifrelenir. Ve şifrelenmiş bu veriyi, yalnızca sertifika sahibi yani özel anahtarı bulunduran kişi açabilir.

Sertifika otoritesi olan kuruluşlar vardır. Özellikle e-ticaret, bankacılık gibi uygulamalarda güvenliğin arttırılması için sertifikalar bu tür kuruluşlara onaylatılmalıdır. Fakat bizim kuracağımız sistem kontrolümüz altında olacağı için sertifika otoritesinin de biz olmamızda bir sorun yoktur.

Yapacağımız işlemler:

• Sertifikalar için parametreleri belirlemek
• Sertifika Otoritesi (CA) dosyasını oluşturmak.
• Sunucu için sertifika oluşturma.
• İstemci için sertifika oluşturma.
• Ayar dosyalarının düzenlenmesi.

openVPN içerisinde sertifikaların daha kolay oluşturulabilmesi için hazırlanmış bazı kodlar vardır. Bu kodlar Ubuntu içinde /usr/share/doc/openvpn/examples/easy-rsa/ dizininde bulunurlar. 2.0 sürümünü aşağıdaki komut ile kendi dizininize kopyalayıp gerekli anahtarları oluşturmaya başlayabilirsiniz.

(not: Dosyaların bütünlüğünün korunabilmesi açısından bundan sonraki işlemlerin sunucuda gerçeklenmesi önerilir. Fakat şart değildir.)

$ cp /usr/share/doc/openvpn/examples/easy-rsa/2.0 ~/easy-rsa
$ cd ~/easy-rsa


(not: bu noktadan sonra yapacaklarımızı dizinin içindeki README dosyasından da takip edebilirsiniz)

Dosyalar kopyalandıktan sonra easy-rsa dizinine giriyoruz. vars dosyasını bir metin düzenleyici ile açarak gerekli değişiklikleri yapıyoruz. Bir çok ayarı değiştirmeniz gerekmez. Dosyayı gözden geçirin, eğer özel bir durumunuz yoksa yalnızca dosyanın sonundaki ön tanımlı değerleri değiştirmeniz yeterli olacaktır. Bu değerler her bir sertifikanın içine gömülecek verilerin daha hızlı girilebilmesine yardımcı olurlar. Her bir sertifika için farklı bilgiler girebilirsiniz. Değişiklikleri yaptıktan sonra kaydedin ve çıkın.

$ . vars
$ ./clean-all


komutlarını vererek, değişkenleri işler hale getiriyoruz ve anahtar dizinimizi oluşturuyoruz. Anahtar dizini, eğer vars dosyasını değiştirmediyseniz, ~/easy-rsa/keys dizini olacaktır. Bundan sonra üreteceğimiz bütün dosyaları (anahtarlar ve sertifikalar) bu dizinde bulacağız. Şunu aklımızda tutmakta fayda var: Bu dizin içinde oluşturulacak .key soyadlı dosyalar gizli ve hususi dosyalardır, özel anahtarları ihtiva ederler. .crt soyadlı dosyalar ise dağıtılabilirler.

Sırası ile aşağıdaki komutları veriyoruz.

$ ./build-dh
$ ./pkitool --initca
$ ./pkitool --server iyiSunucu
$ ./pkitool istemci1


Verdiğimiz komutları açıklayayım:

  1. Sertifikaları ve anahtarları oluşturmadan önce karşılıklı şifrelemenin gerçekleşebilmesi için bazı parametrelerin belirlenmesi gerekmektedir. Bu değişim parametreleri Diffie Hellman adı verilen teknik ile sağlanmaktadır.
  2. CA sertifikasını ve anahtarını oluşturur.
  3. Sunucu için gerekli sertifika/anahtar çiftini oluşturur. Sunucumuzun adı bundan sonra iyiSunucu olarak anılır.
  4. istemci1 istemcisi için gerekli sertifika/anahtar çiftini oluşturur.

Böylece, CA, sunucu ve istemci için sertifika/anahtarı oluşturmuş olduk. Bundan sonra her hangi bir istemci için sertifika/anahtar üretmek için:

$ . vars
$ ./pkitool istemciAdı


komutlarını vermek yeterli olacaktır. Dikkat edilmesi gereken oluşturma işlemi sırasında keys dizini altında ca.key ve ca.crt dosyalarının bulunmasıdır. Bütünlüğü bozmamak ve dosyaların taşınarak güvenliklerinin tehlikeye atılmaması için bütün oluşturma işlemlerinin tek bir bilgisayar üzerinde yapılması tavsiye edilir.


Ayar Dosyaları

Sertifikalar oluşturulduktan sonra bu sertifika ve anahtarları kullanacak ayar dosyalarının da yaratılması gerekmektedir. Örnek ayar dosyalarının birer kopyasını /usr/share/doc/openvpn/examples/sample-config-files/ dizininde bulabilirsiniz. client.conf ve server.conf.gz dosyalarını uygun bir dizine kopyalayıp, gz'yi açtıktan sonra server.conf dosyasını sunucu.conf ve client.conf dosyasını istemci1.conf olarak kopyalayalım ve sunucu.conf dosyasını ayarlamakla işe başlayalım.

$ mkdir ~/openvpn
$ cd ~/openvpn
$ cp /usr/share/doc/openvpn/examples/sample-config-files/{client.conf,server.conf.gz} .
$ gunzip server.conf.gz
$ cp {server,sunucu}.conf
$ cp {client,istemci1}.conf


Aşağıda sunucu.conf dosyası içerisinde mutlaka bulunması gereken satırları yazıyorum. Bunun dışındaki satırlar için dosya içinde bulunan yorumlara ve açıklamalara başvurabilirsiniz.

sunucu.conf:

port 1194
proto udp

dev tun

ca ca.crt
cert iyiSunucu.crt
key iyiSunucu.key

dh dh1024.pem

server 10.8.0.0 255.255.255.0

openVPN'e şöyle dedik:

  • UDP protokolünün 1194 nolu portundan gelen bağlantıları kabul et.
  • Katman 3 bir tünel oluştur (dev tun).
  • CA sertifikası ca.crt, sunucu sertifikan iyiSunucu.crt ve sunucu anahtarın iyiSunucu.key dosyasındadır.
  • Diffie-Hellman için dh1024.pem dosyasını kullan.
  • Ağdaki IP adreslerini 10.8.0.0 - 10.8.0.254 arasında dağıt kendine de 10.8.0.1 adresini al.

Ek olarak şu ayarları yapabilirsiniz:

Sunucuya bağlanan bilgisayarların IP adreslerini korunması ve her seferinde aynı kalması için aşağıdaki komutu verebilirsiniz.

ifconfig-pool-persist ipp.txt

Bağlanan istemcilerin birbirini görebilmesi için:

client-to-client

bağlantılarda sıkıştırma kullanılması için:

comp-lzo

Sürekli kendini terkarlayan mesajların susturulması için:

mute 20

Ayar dosyası ile çalıştırmak için aşağıdaki bölüme bakabilirsiniz. Şimdi istemci cihazın da ayar dosyasını yapalım.

istemci.conf:

client

dev tun

proto udp

remote sunucu.adresi 1194

ca ca.crt
cert istemci1.crt
key istemci1.key


yani şöyle dedik;

  • sen istemcisin. Bağlanmaya çalış ve ayarların bir kısmını bağlandıktan sonra al.
  • sunucu.adresi adresindeki sunucunun 1194 numaralı portuna UDP protokolü ile bağlan.
  • Katman 3 bir tünel oluştur (dev tun).
  • CA sertifikası ca.crt, sertifikan istemci1.crt ve anahtarın istemci1.key dosyasındadır.


ek olarak;

eğer sunucuda sıkıştırma açıldı ise;

comp-lzo

Sürekli kendini terkarlayan mesajların susturulması için:

mute 20

komutları kullanılabilir.


Programın Çalıştırılması


Ubuntu'nun paket deposundan yüklediğinizde program daemon olarak çalışmaya başlar. Ve kendini her açılışta çalıştırmak üzere ayarlar. Otomatik olarak başlarken okuması gereken ayar dosyalarını /etc/openvpn/ dizini altına koyabilirsiniz. Böylece her açılışta doğru ayarlar ile başlayacaktır. Şu anda cihazı açıp kapatma gibi bir lüksümüz olmadığı için öncelikle deamon'ı sonlandıralım.

$ sudo /etc/init.d/openvpn stop


Şimdi deneme amaçlı başlatacağımız ve belki çıkacak sorunları çözmemiz gerekeceği için programı;

$ sudo openvpn ayarDosyasi.conf


komutunu vererek başlatalım. Böylece programın üreteceği çıktılar direk olarak ekrana yazılacak, böylece log dosyalarını takip etmemiz gerekmeyecektir. Öncelikle sunucuyu etkin hale getirmemiz gerekiyor.

$ sudo openvpn sunucu.conf


komutunu verdiğimizde sunucu ayarlamalarını yapacak, gerekli dosyaları okuyacak ve UDP 1194 potunu dinlemeye başlayacaktır. Kalabalık çıktıları okumaya çalışın. Eğer en sonda

Initialization Sequence Completed


yazısını görürseniz sorun yok demektir. Eğer bu satırı göremediyseniz, dosyalarınızın yerlerini ve ayar dosyalarınızı tekrar kontrol edin. Kalabalık yazılar arasında sorunun nedeni yazacaktır.

Şimdi de istemci tarafına geçip buradaki dosyayı çalıştıralım:

$ sudo openvpn istemci1.conf


Yine kalabalık olan çıktılar arasında aşağıdaki satırları görürseniz işlem tamamlanmış demektir.

Peer Connection Initiated with sunucu.adresi:1194
...
Initialization Sequence Completed


Bu sırada sunucu tarafındaki ekranı da takip ederseniz bağlantı detaylarının ekrana yazıldığını görebilirsiniz. İstemci tarafında yeni bir uçbirim açıp;

$ ifconfig


komutunu verirseniz tun0 arabirimi için atanmış bir inet adresi görmeniz gerekir. Yukarıdaki ayarları aynen uyguladı iseniz bu adres büyük olasılıkla 10.8.0.6 olacaktır. İstemciden sunucu'ya yani 10.8.0.5 adresine (*) ping atarak;

$ ping 10.8.0.5


bağlantıyı test edebilirsiniz. Aklınızda bulunsun, testin çalışabilmesi için sunucunun ping isteklerine cevap vermesi gereklidir.

(*) openVPN Ubuntu üzerinde çalışırken adresleri teker teker dağıtmamakta her bir istemci için bir alt-ağ oluşturabilmektedir. Bu yüzden bağlanan her bir istemcinin adresinin 1 eksiği sunucunun adresi olacaktır. Detaylar için yönlendirme tablosuna (route komutu ile) bakabilirsiniz.

Son ayarlar ve toparlama

Eğer aradaki bağlantıyı sorunsuz olarak kurabildiyseniz, çalıştığı ekranlarda Ctrl - C ile openVPN uygulamalarını kapatabilirsiniz. İsterseniz her bağlanma için komutları yukarıda tarif edilen şekilde verebilirsiniz. Fakat sunucu için bu pek uygun olmayacaktır. Sunucu tarafında bulunan sunucu.conf dosyasını /etc/openvpn/ dizininin altına kopyalayalım. ca.crt, sunucu.key, sunucu.crt ve dh1024.pem dosyalarını da /root/openvpn dizinine kopyalayalım. İlgili dizin için de görünürlüğü kısıtlayalım. Yeri değişen dosyalar için conf dosyamızı ayarlayalım. openVPN'in yetkilerini düşürelim. Böylece güvenliğimizi artıralım. Sonra da sunucumuzu yeniden başlatalım.

Sunucu üzerinde;

sunucu.conf dosyasının son hali:

port 1194
proto udp

dev tun

ca /root/openvpn/ca.crt
cert /root/openvpn/iyiSunucu.crt
key /root/openvpn/iyiSunucu.key

dh /root/openvpn/dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

comp-lzo

user nobody
group nogroup

persist-key
persist-tun


$ sudo cp sunucu.conf /etc/openvpn/
$ sudo mkdir /root/openvpn
$ sudo chmod 600 /root/openvpn
$ sudo mv ca.crt iyiSunucu.crt iyiSunucu.key dh1024.pem /root/openvpn
$ sudo /etc/init.d/openvpn restart


Hayırlı olsun.


Notlar

  • Eğer her bir sertifika içine farklı bilgiler gömmek isterseniz pkitool komutlarını --interact parametresi ile çalıştırabilirsiniz.
  • İstemcilerin bütün İnternet trafiklerinin sunucu üzerinden olmasını istiyorsanız, sunucu ayarları içine
    push “redirect-gateway”
    komutunu koymanız gerekir. Bu durumda sunucu üzerinden İnternet'e çıkış ayarlarını da ayrıca yapmanız gerekir.
  • "redirect-gateway" komutu bütün trafiği yönlendirdiği için DHCP adresi alamama gibi sorunlara da yol açabilmektedir.
  • VPN'in IP adresleri ile yerel ağ bağlantılarının adreslerinin çakışmamasına (aynı alt ağda olmamasına) dikkat ediniz.
  • IPv4 ve yönelnedirmeler hakkında biraz bilgi edinmeniz işinizi kolaylaştıracaktır.


kaynaklar:
[1] http://www.olympos.org/howto-nasil/openvpn/openvpn-ile-vpn-uygulamalari-20220.html
[2] http://penguence.linux.org.tr/?~p=dergi&action=show&which=77
[3] http://openvpn.net/index.php/documentation/howto.html

12 Ağustos 2008 Salı

GNU/Linux Kilitlenince - Son Çare

Zaman zaman çalışan programlardan dolayı GNU/Linux kilitlenebiliyor. Eğer herşeyi denediğiniz halde bilgisayarınızı geri alamadıysanız bilgisayarı kapatmaktan başka çare kalmıyor.

MS-DOS® işletim sistemi ortadan kalktığından beri bilgisayarı çat diye kapatmak önerilmiyor. Özellikle GNU/Linux'un dosya sistemi yapısından dolayı bilgisayarın gücünü birden bire kesmek sıkıntı yaratabiliyor. Öyle ki kaydettiğinizi düşündüğünüz dosyaları bile geri döndüğünüzde bulamayabiliyorsunuz. Ext2 dosya sisteminde çok daha vahim sonuçlanan güç kesintisi Ext3 ve ReiserFS dosya sistemi kullanan yeni dağıtımlarda daha az sıkıntı yaratıyor.

Gücü birden kesilen, doğru şekilde kapatılmamış yeni GNU/Linux dağıtımlarında dosyalarda sorun çıkma olasılığı çok daha az olsa da bilgisayarın kapatma düğmesine basılı tutarak kapatmak insanın içini acıtıyor. GNU/Linuxlar'da son çare olarak kullanılan bir yöntem var. Bu yöntem ile veri kaybınızı en aza indirebilir ve bilgisayarı daha az zarar verdiğinizi düşünerek kendinizi avutabilirsiniz. Bu metodun adı: Raising Skinny Elephant Is Utterly Boring. Metodumuz bu cümleyi oluşturan kelimelerin ilk harflerini akılda tutmamız ile çalışıyor. (Güzel bir Türkçe açılım bulamadım, önerilere açığım.)

GNU/Linux bizden gelen tepkliere karşılık vermediği ve yapacak başka bir şey kalmadığı anda aşğıdaki tuşlara sırayla basıyoruz:

  1. Alt + SysRq + R
  2. Alt + SysRq + S
  3. Alt + SysRq + E
  4. Alt + SysRq + I
  5. Alt + SysRq + U
  6. Alt + SysRq + B
Teknik Açıklama:
  • + işareti belirtilen tuşlara aynı anda basılacağı anlamına geliyor.
  • SysRq tuşu Print Screen ile aynı tuş. Genelde tuş takımının sağ üst tarafında yer alır.
  • Tuşların büyük, küçük harf olması önemli değildir. Fakat "I" tuşu İngilizce klavyede bulunan I/i tuşu olduğuna dikkat edin.
Peki bu tuşlar ne iş yapıyor?

R : Tuş takımını temel moda alıyor. Böylece sonraki girişlerin doğru algılanmasını sağlıyor. (Raw Mode)
S : Bellekteki bilgiler ile diskteki bilgileri senkronize ediyor.
E : Tüm işlemlere sonlanma çağrısı yapıyor.
I : Tüm işelmeri öldürüyor.
U : Tüm dosya sistemlerini salt-okunur olarak yeniden bağlıyor.
B : Bilgisayarı yeniden başlatıyor.

Anlayacağınız üzere ilk tuş bileşimini uyguladıktan sonra geriye dönüş yok. Bilgisayarı yeniden başlatana kadar tüm tuşları sırası ile uygulamanız gerekiyor.

Bilgisayarınız yeniden başladığında eğer diskleri gözden geçirmem gerekiyor derse, izin verin. Bu işlemi iptal etmeyin.

Son not: Bu tuş bileşimlerinin uygulanabilmesi için Linux Kernel'ında açık olması gerekiyor. Bir çok Ubuntu sürümü için açık olan bu özelliğin sizin bilgisayardaki durumunu öğrenmek için:
$ ls /proc/sys/kernel/sysrq

komutunu verebilirsiniz. Eğer dosya oradaysa bu özellik sizin bilgisayarınızda açık demektir.

Kaynak: http://www.brunolinux.com/01-First_Things_To_Know/Skinny_Elephants.html