Membuat VPN mempergunakan Openswan
Openswan adalah implementasi protokol IPsec (IP Security) di linux yang mensupport kernel 2.0, 2.2, 2.4 dan 2.6. IPsec menyediakan layanan enkripsi dan otentikasi pada level IP, sehingga IPsec dapat memproteksi semua trafik yang dilewatkan melalui IP.
VPN (Virtual Private Network) mengijinkan 2 jaringan berkomunikasi secara aman melalui jaringan publik. Metode yang dipakai adalah dengan cara menempatkan security gateway di setiap jaringan yg akan berkomunikasi melalui jaringan publik. Gateway ini bertugas untuk mengenkrip paket yang keluar ke jaringan publik dan mendekrip paket yang masuk dari jaringan publik, sehingga menciptakan tunel yang aman.
Nah, sekarang kita coba membuat VPN dengan memanfaatkan openswan.
Berikut ini topologi jaringan yang akan kita buat :
172.19.3.0/24 —– 172.19.3.120 | 202.162.208.102 —– 202.162.208.103 | 172.20.3.120 —– 172.20.3.0/24
Jaringan 172.19.3.0/24 kita misalkan sbg jaringan private yang akan kita koneksikan ke jaringan private lainnya (172.20.3.0/24) melalui vpn yang akan kita bentuk antara 202.162.208.102 dan 202.162.208.103
Untuk mencoba konfigurasi ini, kita butuh 4 buah PC, yaitu 2 pc sebagai client dan 2 pc sebagai gateway.
Sekarang kita persiapkan dulu software2 yang dibutuhkan :
- kernel-module-openswan (ambil paket sesuai dengan versi kernel yang anda punya)
- openswan-utils
Instal kedua paket tersebut, kemudian edit file /etc/ipsec.conf
Isi file ipsec.conf di gateway #1
——
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | version 2.0 config setup interfaces="ipsec0=eth0" klipsdebug=none plutodebug=none conn tunnel left=202.162.208.102 leftsubnet=172.19.3.0/24 leftnexthop=%direct right=202.162.208.103 rightsubnet=172.20.3.0/24 rightnexthop=%direct keyingtries=0 auto=add include /etc/ipsec.d/examples/no_oe.conf |
——-
Isi file ipsec.conf di gateway #2
——-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | version 2.0 config setup interfaces="ipsec0=eth1" klipsdebug=none plutodebug=none conn tunnel left=202.162.208.103 leftsubnet=172.20.3.0/24 leftnexthop=%direct right=202.162.208.102 rightsubnet=172.19.3.0/24 rightnexthop=%direct keyingtries=0 auto=add include /etc/ipsec.d/examples/no_oe.conf |
——–
Pastikan dukungan ipforwarding di kernel telah dihidupkan:
1 2 | [root@vpn-gw root]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 |
Kalau masih bernilai ‘0′, aktifkan dg cara menjalankan ‘
1 | sysctl -w net.ipv4.ip_forward=1 |
‘
Dan matikan seluruh filtering :
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@vpn-gw root]# sysctl -a |grep filter net.ipv4.conf.ipsec0.arp_filter = 0 net.ipv4.conf.ipsec0.rp_filter = 0 net.ipv4.conf.eth1.arp_filter = 0 net.ipv4.conf.eth1.rp_filter = 0 net.ipv4.conf.eth0.arp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0 net.ipv4.conf.lo.arp_filter = 0 net.ipv4.conf.lo.rp_filter = 0 net.ipv4.conf.default.arp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.arp_filter = 0 net.ipv4.conf.all.rp_filter = 0 |
Kemudian kita buat kunci untuk enkripsi oportunis dengan cara menjalankan perintah :
# dijalankan di gateway #1
1 | ipsec mailkey --me dheche@brawijaya.ac.id --reverse 202.162.208.102 |
Hasilnya bisa dilihat di /root/OE_mail_202.162.208.102
# dijalankan di gateway #2
1 | ipsec mailkey --me dheche@brawijaya.ac.id --reverse 202.162.208.103 |
Hasilnya bisa dilihat di /root/OE_mail_202.162.208.103
Sesuaikan IN TXT yg ada di DNS Server dengan nilai yang ada di file tersebut.
Periksa dengan utilitas ‘dig‘
Buat secret key unt masing2 gateway:
1 | ipsec newhostkey --output /etc/ipsec.secrets --hostname vpg-gw.bits.or.id |
Kemudian jalankan ipsec:
/etc/init.d/ipsec start
Periksa dengan perintah:
ipsec verify
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@vpn-gw root]# ipsec verify Checking your system to see if IPsec got installed and started correctly: Version check and ipsec on-path [OK] Linux Openswan 2.1.5 (klips) Checking for IPsec support in kernel [OK] Checking for RSA private key (/etc/ipsec.secrets) [OK] Checking that pluto is running [OK] Two or more interfaces found, checking IP forwarding [OK] Checking NAT and MASQUERADEing [OK] Checking for 'ip' command [OK] Checking for 'iptables' command [OK] Opportunistic Encryption DNS checks: Looking for TXT in forward dns zone: vpn-gw.psb-online.or.id [OK] Does the machine have at least one non-private address? [OK] Looking for TXT in reverse dns zone: 102.208.162.202.in-addr.arpa. [OK] [root@vpn-gw root]# |
Periksa dg perintah ‘ipsec whack –status‘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@vpn-gw root]# ipsec whack --status 000 interface ipsec0/eth0 202.162.208.102 000 %myid = (none) 000 debug none 000 000 "tunnel": 172.19.3.0/24===202.162.208.102[S=C]...202.162.208.103[S=C]===172.20.3.0/24; erouted; eroute owner: #2 000 "tunnel": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0 000 "tunnel": policy: RSASIG+ENCRYPT+TUNNEL+PFS+lKOD+rKOD; prio: 24,24; interface: eth0; 000 "tunnel": newest ISAKMP SA: #3; newest IPsec SA: #2; 000 000 #3: "tunnel" STATE_MAIN_R3 (sent MR3, ISAKMP SA established); EVENT_SA_REPLACE in 2264s; newest ISAKMP 000 #2: "tunnel" STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 24419s; newest IPSEC; eroute owner 000 #2: "tunnel" used 2496s ago; esp.7f8c910e@202.162.208.103 esp.286ed02@202.162.208.102 tun.1002@202.162.208.103 tun.1001@202.162.208.102 000 |
Point yg penting adalah di bagian ini :
000 “tunnel”: 172.19.3.0/24===202.162.208.102[S=C]…202.162.208.103[S=C]===172.20.3.0/24; erouted; eroute owner: #2
Kalau masih terlihat ‘unrouted‘, jalankan ‘ipsec auto –up tunnel‘
Dan pastikan terlihat kalimat ‘ISAKMP SA established‘ dan ‘IPsec SA established‘.
Periksa di /var/log/messages dan /var/log/secure unt membantu proses debugging.
Kemudian kita cek koneksi vpn yg telah kita bentuk :
dijalankan dari gateway #1:
ping 172.20.3.121 -I eth1
[root@vpn-gw root]# ping 172.20.3.121 -I eth1
PING 172.20.3.121 (172.20.3.121) from 172.19.3.120 eth1: 56(84) bytes of data.
64 bytes from 172.20.3.121: icmp_seq=1 ttl=64 time=0.471 ms
64 bytes from 172.20.3.121: icmp_seq=2 ttl=64 time=0.139 ms
64 bytes from 172.20.3.121: icmp_seq=3 ttl=64 time=0.136 ms
SIPPPP ![]()
silahkan dicoba dari client #1 dan client #2, seharusnya sih bisa juga
PS.
jangan lupa, sesuaikan konfigurasi gateway di masing2 client.
9 Comments, Comment or Ping
#1 For Newbie From Newbie :: openvpn on freebsd :: August :: 2008 - from
Ireland
[...] http://dheche.songolimo.net/wp/index.php/2004/10/09/membuat-vpn-mempergunakan-openswan/ [...]
#2 andri - from
Indonesia
Bagaimana dengan clientnya ?? openswannya jalan di apa??
#3 dheche - from
Indonesia
clientnya pake apa aja gak masalah, fokus bahasannya kan masalah tunneling. openswannya jalan di linux.
#4 santenkelapa - from
Indonesia
mas bisa d jelaskan dengan gambar gak mas .. saya ga ngarti nih
#5 suma - from
Indonesia
mas…mw nanya ni…openswan kopetibel di ubuntu g…?makasih ya mas mhn pencerahan na…
#6 rain - from
Indonesia
mau nanya nih, maximal client utk 1 server brp yah?
#7 endo - from
Indonesia
mas kalo boleh tau ini sama aja kita punya 2 router yg kita joinkan yah mas,
#8 ardan - from
Indonesia
mas klo aku pke server openswan VPN nya cuma 1 pc aja….
jadinya client [10.10.10.0] | VPN server | [172.16.40.0]
gmn cara sett nya yah mas…
#9 rio - from
Indonesia
mas…..bisa di jelaskan pake gambar ga topologi jaringannya…..???
Reply to “Membuat VPN mempergunakan Openswan”