OPENVPN Ipv4 & Ipv6 Tunnel Broker Router

Feb 19th, 2008

Aşağıdaki şekilde basit bir openvpn ipv4&ipv6 client-server tunnel broker görülmektedir. Bu şekilde openvpn-server router makinasının 194.27.158.0/24 ipv4 ağı ile 2001:a98:c040:a2::/64 ipv6 ağını ipv4&ipv6 tuneli üzerinden openvpn client routera route ettiği varsayılmıştır.

Openvpn Serverin tunnel bacağına 10.11.1.1 ve 2001:a98:c040:a2::100/112 ipleri, Openvpn Client’in tunnel bacağına 10.11.1.6 ve 2001:a98:c040:a2::101/112 ipleri tanımlanmıştır. openvpn client ve server udp 5000 nolu porttan çalışacak şekilde ayarlanmıştır. Openvpn için öntanımlı bir port yoktur ve istediğiniz portu kullanabilirsiniz.

Burada openvpn broker temel düzeyde ele alınmıştır. Bu yapıyı genişletmeniz ve failover, yük dengeleme entegrasyonlarını yapmak artık sizin pratikliğinize ve hayal gücünüze kalmış bişeydir.

Mobil network dünyanın neresine kurulursa kurulsun, network donanımı ve altyapı ne olursa olsun client ile openvpn sunucunun vpn portunun erişime açık olması yeterlidir.

Böylece ipv4 ve ipv6 ağınızı dünyanın herhangibir noktasına güvenli olarak taşıyabilirsiniz.

Şimdi bunu aşama aşama debian linuxta gerçekleştirelim.

SERVER AYAĞI

OPENVPN KURULUMU

1. apt-get install openvpn2. cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

3. . vars (Dikkat edin . ile vars'ın arasında boşluk olacak.)

SERVER SERTIFIKASI OLUŞTURMA

4. cd /etc/openvpn/easy-rsa

5. ./clean-all

6. ./build-ca

7. ./build-key-server yvzserver

8. ./build-dh

Yukarıdaki aşamaları tamamladığımızda /etc/openvpn/easy-rsa/keys dizini altında sunucumuzun çalışması için gerekli olan ca.crt yvzserver.crt yvzserver.key dh1024.pem dosyalarının oluştuğunu görmeliyiz.

SERVER CONFIGRASYONU OLUŞTURMA

9. touch /etc/openvpn/sunucu.conf10. mkdir /etc/openvpn/sunucu-keys

11. cp /etc/openvpn/easy-rsa/keys/yvzserver.* /etc/openvpn/sunucu-keys

12. cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/sunucu-keys

13. cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/sunucu-keys

14. Herhangi bir editorle /etc/openvpn/sunucu.conf dosyasına aşağıdaki satırları kaydedin.

daemon ipv6-openvpn-server

dev tun

tun-ipv6

up /etc/openvpn/ip-config

tls-server

log-append server.log

dh sunucu-keys/dh1024.pem

ca sunucu-keys/ca.crt

cert sunucu-keys/yvzserver.crt

key sunucu-keys/yvzserver.key

port 5000

persist-tun

keepalive 10 30

persist-key

ip-config Betiği

OPENVPN Başladıktan sonra çalışacak ip route betiklerini yazalım.15. touch /etc/openvpn/ip-config

16. Herhangibir editorle /etc/openvpn/ip-config dosyasına aşağıdaki ağ ayarlarımızı girelim.

Not : Betik dosyasında interface ve route ayarları iproute komutları kullanılarak yapılmıştır.

Eğer siz isterseniz ifconfig ve route komutlarını kullanabilirsiniz.

#!/bin/bash

INTERFACE=$1; shift;

TUN_MTU=$1; shift;

UDP_MTU=$1; shift;

LOCAL_IP=$1; shift;

REMOTE_IP=$1; shift;

MODUS=$1; shift;

ip link set ${INTERFACE} up

ip link set mtu ${TUN_MTU} dev ${INTERFACE}

#ipv6 ayarları

ip -6 addr add 2001:a98:c040:a2::100/112 dev ${INTERFACE}

ip -6 route add 2001:a98:c040:a2::/64 dev ${INTERFACE}

echo 1 >/proc/sys/net/ipv6/conf/all/forwarding

#ipv4 ayarları

ip addr add 10.11.1.1 peer 10.11.1.2 dev ${INTERFACE}

ip route add 10.11.1.0/24 dev ${INTERFACE}

ip route add 194.27.158.0/24 dev ${INTERFACE}

echo 1 > /proc/sys/net/ipv4/ip_forward

exit 0

Yukarıdaki betikte tun0 arabirimine 2001:a98:c040:a2::100 ipv6 adresi ve 10.11.1.1 ipv4 adresi atanır.

2001:a98:c040:a2::/64 ipv6 ağı ve 194.27.158.0/24 ipv4 ağı tunele yonlendirilir.ARTIK SUNUCUMUZU ÇALIŞTIRABİLİRİZ !

/etc/init.d/openvpn start

Şimdi herşey düzgün gitmişmi kontrol edelim.

ifconfig tun0

Aşağıdaki interface ve değerler doğruysa sunucu çalışıyor demektir.Bundan sonra client ayarlarına geçebilirsiniz.

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

          inet addr:10.11.1.1  P-t-P:10.11.1.2  Mask:255.255.255.255

          inet6 addr: 2001:a98:c040:a2::100/112 Scope:Global

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:289027 errors:0 dropped:0 overruns:0 frame:0

          TX packets:310436 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:100

          RX bytes:36040639 (34.3 MiB)  TX bytes:157312809 (150.0 MiB)

CLIENT AYAĞI

CLIENT SERTİFİKASI OLUŞTURMA

1. cd /etc/openvpn/easy-rsa2. . vars     (Dikkat edin . ile vars'ın arasında boşluk olacak.)

3. ./pkitool client-debian

4. şimdi oluşturduğumuz keyleri debian-client makinasında yvzserver diye bir dizin açıp scp ile gonderelim.

ssh root@client-debian.bayar.edu.tr mkdir /etc/openvpn/yvzserver

scp keys/client-debian.* root@client-debian.bayar.edu.tr:/etc/openvpn/yvzserver

scp keys/ca.crt root@client-debian.bayar.edu.tr:/etc/openvpn/yvzserver

Artık sunucu tarafında işimiz kalmadı.

Şimdi client tarafına geçelim.

5. touch /etc/client-yvzserver.conf

6. /etc/client-yvzserver.conf dosyasını editleyerek içine aşağıdaki satırları girelim.

daemon client-ipv6

dev tun

client

tun-ipv6

remote yvzserver.bayar.edu.tr

up /etc/openvpn/ip-config

log-append client.log

tls-client

ca yvzserver/ca.crt

cert yvzserver/client-debian.crt

key yvzserver/client-debian.key

port 5000

persist-tun

keepalive 10 30

persist-key

verb 3

float

ip-config Betiği

OPENVPN Başladıktan sonra çalışacak ip route betiklerini yazalım.

1. touch /etc/openvpn/ip-config2. Herhangibir editorle /etc/openvpn/ip-config dosyasına aşağıdaki ağ ayarlarımızı girelim.

INTERFACE=$1; shift;

TUN_MTU=$1;   shift;

UDP_MTU=$1;   shift;

LOCAL_IP=$1;  shift;

REMOTE_IP=$1; shift;

MODUS=$1;      shift;

 

ip link set ${INTERFACE} up

ip link set mtu ${TUN_MTU} dev ${INTERFACE}

#ipv6 ayarları

ip -6 addr add 2001:a98:c040:a2::101/112 dev ${INTERFACE}

ip -6 route add default dev ${INTERFACE} metric 1

ip -6 addr show dev eth0 | grep 2001:a98:c040:a2::1/64 \

        >/dev/null 2>&1 ||  ip -6 addr \

        add 2001:a98:c040:a2::1/64 dev eth0

sysctl -w  net.ipv6.conf.all.forwarding=1

#ipv4 ayarları

ip addr add 10.11.1.6 dev tun0

ip route add  10.11.1.0/24 dev tun0

ip addr add 194.27.158.1 dev eth0

sysctl -w net.ipv4.conf.all.forwarding=1

exit 0

Yukarıdaki betikte tun0 arabirimine 2001:a98:c040:a2::101 ipv6 adresi ve 10.11.1.6 ipv4 adresi atanır.

2001:a98:c040:a2::1/64 ve 194.27.158.1/24 ipv4 adresi client'ın eth0 arabirimine atanır.

ARTIK CLIENTI ÇALIŞTIRABİLİRİZ !

/etc/init.d/openvpn start

Şimdi herşey düzgün gitmişmi kontrol edelim.

ping 10.11.1.1

PING 10.11.1.1 (10.11.1.1) 56(84) bytes of data.64 bytes from 10.11.1.1: icmp_seq=1 ttl=64 time=0.058 ms

64 bytes from 10.11.1.1: icmp_seq=2 ttl=64 time=0.017 ms

64 bytes from 10.11.1.1: icmp_seq=3 ttl=64 time=0.011 ms

ping6 2001:a98:c040:a2::100

PING 2001:a98:c040:a2::100(2001:a98:c040:a2::100) 56 data bytes64 bytes from 2001:a98:c040:a2::100: icmp_seq=1 ttl=64 time=0.025 ms

64 bytes from 2001:a98:c040:a2::100: icmp_seq=2 ttl=64 time=0.014 ms

64 bytes from 2001:a98:c040:a2::100: icmp_seq=3 ttl=64 time=0.015 ms

Bundan sonra neler yapabiliriz ?

Openvpn client sunucumuza radvd kurup “2001:a98:c040:a2::/64″ prefixinden local ağımıza ipv6 dağıtabiliriz.

Dhcp Sunucusu kurup 194.27.158.0/24 subnetinden local ağımıza ipv4 dağıtabiliriz.

Hazırlayan : Yavuz ALNIAK
Tarih : Ocak 2008
Bu belgenin orjinali http://yvz.ath.cx/programs/openvpn/ipv6-ipv4-tunnel-broker/ linkindedir.
Tags:
No comments yet.