OpenVPN

Bu dökümanda Debian üzerinde OPENVPN ‘i nasıl yapılandıracağınızı anlatmaya çalışacağım. Bu “nasıl dökümanı” sonunda IOS(iphone,ipad,ipod), Android, Windows, Linux üstünde vpn bağlantısı yapabileceksiniz.

NOT: Eksik haliyle paylaşıyorum, zaten uzun zamandır beklemedeydi. En kısa zamanda inşallah tamamlayacağım.

OpenVPN ‘nin 3 cesit kimlik dogrulama yontemi vardir.

1.Sertifika ile kimlik doğrulama

2.Kullanıcı bazlı kimlik doğrulama

3.SmartCard ile kimlik doğrulama

Şeklinde olup biz sadece 1 numaralı kimlik doğrulama yöntemini yapılandıracağız.

Güncel paketler için debian depoları yerine openvpn depolarını kullanmayı tercih etmekte fayda var. Aşağıdaki gibi ekleme işlemini yapabilirsiniz.

wget -O – https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add –
echo “deb http://swupdate.openvpn.net/apt wheezy main” >> /etc/apt/sources.list

Openvpn ‘i aşağıdaki gibi kuralım.

apt-get update && apt-get install openvpn easy-rsa

Pam desteği için aşağıdaki paket kurulur

apt-get install libpam0g-dev

Sertifika işlemleri için aşağıdaki yönergerleri takip ediniz.

CA aracını root dizini altına kopyalayalım.

root@vpn:~# cp -p -R /usr/share/easy-rsa/ /root/

cd /root/easy-rsa/

vim vars

Aşağıdaki değerleri kendinize göre değiştirebilirsiniz veya default olarak bırakabilirsiniz.

export KEY_SIZE=1024 # 2048 yapabilirsiniz fakat performans düşüklüğü olacaktır.
export CA_EXPIRE=3650 # CA sertifikanızın ne zaman sona ereceği. (10 Yıl)
export KEY_EXPIRE=3650 # Key sertifikanızın ne zaman sona ereceği. (10 Yıl)

export KEY_COUNTRY=”TR”
export KEY_PROVINCE=”TR”
export KEY_CITY=”ANKARA”
export KEY_ORG=”MURAT.WS”
export KEY_EMAIL=”me@murat.ws”
export KEY_EMAIL=mail@murat.ws
export KEY_CN=FREE-INTERNET
export KEY_NAME=FREE-INTERNET
export KEY_OU=””
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

Değişkenleri export edelim

root@vpn:~/easy-rsa# source ./vars

Daha önceden oluşturulmuş keyleri temizleyelim.

root@vpn:~/easy-rsa# ./clean-all

CA sertifikasını üretelim.

root@vpn:~/easy-rsa# ./build-ca

Screenshot-Terminal-1

 

Sekilde de görüldüğü gibi düzenlediğimiz değişkenler sertifika değişkenleridir.

Server key üretelim.

root@vpn:~/easy-rsa# ./build-key-server vpn

Screenshot-Terminal-6

 

2048 bitlik bir şifre ürettiğimiz için performansa bağlı olarak uzun sürebilir.

root@vpn:~/easy-rsa# ./build-dh

Screenshot-Terminal-7

http://tr.wikipedia.org/wiki/Diffie-Hellman_anahtar_de%C4%9Fi%C5%9Fimi

Client key üretelim

Her bir istemci için ayrı key üretmeniz gerekmektedir.

root@vpn:~/easy-rsa# ./build-key murat

root@vpn:~/easy-rsa# ./build-key ugur

Screenshot-Terminal-9

HMAC key üretimi

openvpn –genkey –secret /root/easy-rsa/keys/ta.key

Key işlemleri bitti. Üretilen keylerin hepsi /root/easy-rsa/keys/ dizini altındadır.

Sunucu ve istemciler : ca.crt
Sunucu : ca.key
Sunucu : vpn.crt,dh2048.pem,vpn.key,ta.key
istemciler : murat.crt,murat.key, ta.key

Keyleri /etc/openvpn/ dizinine kopyalayalım

cp -p -R /root/easy-rsa/keys /etc/openvpn/

Şimdi openvpn ayarlarına geçebiliriz.

vim /etc/openvpn/vpn.conf

port 1194
proto udp
dev tun0

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpn.crt
key /etc/openvpn/keys/vpn.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/ta.key 0

server 10.0.1.0 255.255.255.0
push “redirect-gateway def1 bypass-dhcp”
push “dhcp-option DNS 127.0.0.1”

client-to-client
keepalive 1800 4000

cipher DES-EDE3-CBC # Triple-DES
comp-lzo

max-clients 10

user nobody
group nogroup

persist-key
persist-tun

log /var/log/openvpn.log
status /var/log/openvpn-status.log
verb 5
mute 20

Dosyayı kaydektikten sonra openvpn yeniden başlatılır.

root@vpn:/etc/openvpn# /etc/init.d/openvpn start
[ ok ] Starting virtual private network daemon: vpn.
root@vpn:/etc/openvpn#

Herhangi bir hatayla karşılaşırsanız ilk olarak bakacağınız yer root@vpn:/etc/openvpn# tail -f /var/log/openvpn.log dosyasıdır.

ifconfig çıktısı:

Screenshot-Terminal-10

 

İstemci yapılandırması

Debian,Ubuntu,Mint

Network-Manager için openvpn plugin ‘i yükleyelim

apt-get install network-manager-openvpn network-manager-openvpn-gnome

keysleri istemci makinaya kopyalayalım

cd /etc/openvpn/

murat openvpn # scp -r root@192.168.1.225:/etc/openvpn/keys/\{murat*,ca.crt,ta.key\} .

İstemci için konfigürasyon dosyasını oluşturalım.

vim murat.conf

 

client
remote 192.168.1.225
ca /etc/openvpn/ca.crt
cert /etc/openvpn/murat.crt
key /etc/openvpn/murat.key
cipher DES-EDE3-CBC
comp-lzo yes
dev tun
proto udp
tls-auth /etc/openvpn/ta.key 1
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nobody
group nogroup

kaydedip çıkalım.

Şimdi aşağıda gösterilen ekran görüntülerine göre konfigürasyon dosyasını import edelim.

1. linux1

2. linux2

3. linux3

 

4.
linux4
5. 
linux5
6. 
linux6
7. 
linux7

Iphone ustunde Openvpn yapilandirilmasi


Asagidaki istemci konfigurasyonunu Linux/Windows ‘larda icindi.Simdi ufak bir degisiklikle iphone/ipad yani kisaca IOS cihazlara uygulayacagiz.


cat /etc/openvpn/murat.conf


client
remote 192.168.1.225
ca /etc/openvpn/ca.crt
cert /etc/openvpn/murat.crt
key /etc/openvpn/murat.key
cipher DES-EDE3-CBC
comp-lzo yes
dev tun
proto udp
tls-auth /etc/openvpn/ta.key 1
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nobody
group nogroup


IOS ‘lar icin ayar dosyasi icin yapmaniz gerekenler sertifika icerigini conf dosyasinin icine
<ca></ca> taglarini ekliyoruz ve bu taglar arasina ca.crt icerigini yapistiriyoruz. Ayni islemi diger keyler icinde yapiyoruz.


client
remote vpn_sunucu port
key-direction 1
<ca>
—–BEGIN CERTIFICATE—–
ca.crt icerigi
—–END CERTIFICATE—–
</ca>
<key>
—–BEGIN PRIVATE KEY—–
murat.key icerigi
—–END PRIVATE KEY—–
</key>
<tls-auth>
—–BEGIN OpenVPN Static key V1—–
ta.key icerigi
—–END OpenVPN Static key V1—–
</tls-auth>
<cert>
—–BEGIN CERTIFICATE—–
murat.crt icerigi
—–END CERTIFICATE—–
</cert>
cipher DES-EDE3-CBC
comp-lzo yes
dev tun
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nobody
group nogroup


dosyayi uzantisi ovpn (murat.ovpn) olarak kaydedip kendinize mail atiyorsunuz.Yukaridaki islemleri
itunes ile de yapabilirsiniz fakat bu yontem daha kolay geldi.


Not : key-direction 1 parametresini eklemeniz lazim yoksa “Authenticate/Decrypt packet error: packet HMAC authentication failed” hatalarini alirsiniz.


1. murat.ovpn dosyasini kendinize eposta atiyorsunuz.(apple cihaz ustunde tanimli olan eposta adresine)
2. Epostayi acip sekildeki gibi aciyoruz.

1.

iphone1

 

2. 
iphone2
3. 
iphone3
4. iphone4
5. iphone5
Hatalar
 Fri Jan 07 14:26:09 2011 ROUTE: route addition failed using CreateIpForwardEntry: Access is denied
[status=5 if_index=11]  Fri Jan 07 14:26:09 2011 ERROR: Windows route add command failed [adaptive]:  returned error code 1
Fri Jan 07 14:26:09 2011 ROUTE: route addition failed using CreateIpForwardEntry: Access is denied. [status=5 if_index=21]

route-method exe
 route-delay 2  ## eklenmeli veya admin haklariyla calistirilmali


RELATED POST

Your email address will not be published. Required fields are marked *