Rasanya kurang sempurna jika saya tidak membuat artikel cara install dan konfigurasi OpenVPN di Debian dan Ubuntu ini, karena sebelumnya saya sudah pernah share artikel tentang cara install dan konfigurasi OpenVPN di Centos. Pada prakteknya, cara install dan konfigurasi OpenVPN itu sama saja, hanya tinggal penyesuaiannya saja dengan masing-masing distro. Dan oleh karena tidak terdapatnya perbedaan antara Debian dan Ubuntu (karena masih satu keluarga), maka saya gabungkan saja di artikel yang satu ini.
Seperti biasa, sebelum anda melakukan instalasi dan konfigurasi OpenVPN, harap anda pastikan terlebih dahulu bahwa TUN/TAP server (VPS) anda sudah aktif (enable). Command berikut adalah untuk mengetahuinya :
cat /dev/net/tun
Pastikan outputnya adalah :
cat: /dev/net/tun: File descriptor in bad state
Jika tidak demikian berarti TUN/TAP belum aktif, silahkan aktifkan terlebih dahulu melalui panel VPS yang diberikan ISP atau hubungi seller untuk informasi lebih lanjut.
Install OpenVPN di Debian dan Ubuntu :
- Update terlebih dahulu melalui command :
apt-get update
- Install OpenVPN dengan command :
apt-get install openvpn
- Copy easy-rsa ke direktori /etc/openvpn :
cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
- Silahkan masuk ke direktori /etc/openvpn/easy-rsa/2.0
cd /etc/openvpn/easy-rsa/2.0
- Ganti permission ke 755 :
chmod 755 *
- Berikan perintah berikut secara berurutan untuk menghapus dan membuat certificate baru :
source ./vars ./vars ./clean-all ./build-ca
Seperti halnya pada centos, disini anda akan diminta untuk mengisi data-data. Anda bisa skip saja dengan enter atau boleh diisi sesuka hati anda. Pastikan anda isi “common name” dengan hostname VPS atau nama lainnya.
- Membuat key server :
./build-key-server server
Silahkan anda skip seperti biasa atau anda isi data-data yang diminta. Jangan lupa pada saat ditanyakan sign the certificate? dan 1 out of 1 certificate requests certified, commit? anda tekan y untuk menyetujuinya.
- Saatnya build Diffie Hellman :
./build-dh
Konfigurasi OpenVPN di Server Debian dan Ubuntu :
- Membuat konfigurasi server dengan :
nano /etc/openvpn/server.conf
Pastikan anda sudah install nano editor di VPS Debian atau Ubuntu anda. Jika anda tidak suka editor nano, silahkan sesuikan saja 🙂
Masukkan baris berikut ini kedalam file tersebut :local 192.249.60.206 #ganti dengan IP VPS atau domain anda port 995 #Sesuaikan dengan port yang anda inginkan proto tcp #bisa diganti dengan udp, sesuaikan saja dev tun ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/pam.d/login client-cert-not-required username-as-common-name server 10.9.8.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 5 30 comp-lzo persist-key persist-tun status server-tcp.log verb 3
- Coba jalankan OpenVPNnya dengan command :
service openvpn start
Jika error failed, silahkan periksa kembali baris konfigurasi server diatas.
- Enable IP forwarding :
nano /etc/sysctl.conf
Hilangkan tanda pagar sebelum net.ipv4.ip_forward = 1 seperti berikut ini :
Selanjutnya berikan command ini :sysctl -p /etc/sysctl.conf
- Setting IP tables :
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
Atau bisa secara spesifik dengan :
iptables -t nat -I POSTROUTING -s 10.9.8.0/24 -o venet0 -j MASQUERADE
Ganti venet0 dengan eth0 jika anda menggunakan VPS KVM. Lalu tambahkan perintah ini untuk menyimpan setting IP tables tersebut :
iptables-save
- Restart OpenVPN :
/etc/init.d/openvpn restart
- Build certificate untuk client :
./build-key dedeerik
Seperti biasa anda bisa skip atau isi datanya. Ganti dedeerik dengan nama certificate yang ingin anda buat.
- Proses konfigurasi OpenVPN di VPS sudah selesai. Selanjutnya tinggal buat saja konfig untuk client :
nano /etc/openvpn/easy-rsa/2.0/keys/dedeerik.ovpn
Masukkan baris-baris berikut ini ke dalam file tersebut :
client dev tun proto tcp #bisa ganti udp, samakan dengan server.conf remote 192.249.60.206 995 #ganti dgn IP VPS/domain, 995 samakan dengan server.conf route-method exe resolv-retry infinite nobind tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 persist-key persist-tun ca ca.crt cert dedeerik.crt key dedeerik.key auth-user-pass comp-lzo verb 3
Pastikan anda mengganti dedeerik.crt dan dedeerik.key sesuai dengan yang anda buat.
Anda bisa tambahkan http-proxy x.x.x.x dan http-proxy-retry, jika anda ingin menggunakan proxy. Anda juga bisa memasukan ca, cert dan key secara langsung dengan catatan “ca ca.crt”, “cert dedeerik.crt”, “key dedeerik.key” diatas anda hapus terlebih dahulu. Silahkan buka file tersebut dengan editor seperti nano. Contoh :
nano /etc/openvpn/easy-rsa/2.0/keys/ca.crt
Konfigurasi seperti ini biasanya digunakan untuk client OpenVPN di android (smartphone). Silahkan anda copy saja isi file ca.crt tersebut dan masukkan (paste) ke konfig client anda. Awali dengan <ca> dan akhiri dengan </ca>. Lihat contoh konfig client dengan memasukkan ca.crt berikut :
client dev tun proto tcp #bisa ganti udp, samakan dengan server.conf remote 192.249.60.206 995 #ganti dgn IP VPS/domain, 995 samakan dengan server.conf route-method exe resolv-retry infinite nobind tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 persist-key persist-tun auth-user-pass comp-lzo verb 3 <ca> -----BEGIN CERTIFICATE----- MIIDpTCCAw6gAwIBAgIJAI0Yg29c0yu7MA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD VQQGEwJJRDESMBAGA1UECBMJV2VzdCBKYXZhMQ8wDQYDVQQHEwZDaWFtaXMxDjAM BgNVBAoTBUlCRUtBMQwwCgYDVQQLEwNWUE4xDjAMBgNVBAMTBWliZWthMREwDwYD VQQpEwhjaGFuZ2VtZTEfMB0GCSqGSIb3DQEJARYQbWFpbEBob3N0LmRvbWFpbjAe Fw0xNTA1MTMyMzU1MzNaFw0yNTA1MTAyMzU1MzNaMIGUMQswCQYDVQQGEwJJRDES MBAGA1UECBMJV2VzdCBKYXZhMQ8wDQYDVQQHEwZDaWFtaXMxDjAMBgNVBAoTBUlC RUtBMQwwCgYDVQQLEwNWUE4xDjAMBgNVBAMTBWliZWthMREwDwYDVQQpEwhjaGFu Z2VtZTEfMB0GCSqGSIb3DQEJARYQbWFpbEBob3N0LmRvbWFpbjCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAsu9E87KF8iXFay97ESwCHbHC2j0oq8G1dmw9LTD4 dYfbUm5Ewa0IhyHhK1rCObZNz8LXYHBnyvo1i4ARtm+NIaqQPhtdrgVXSjmYH0jT FZak2qqHoJIMXz3saC43bORtKWtLcHrRbVJo7cTsUH1qR6l6JA9YpseSYxY+/iKI gpsCAwEAAaOB/DCB+TAdBgNVHQ4EFgQUPmcsv9f5J4y05VdMpJf92UBLOUYwgckG A1UdIwSBwTCBvoAUPmcsv9f5J4y05VdMpJf92UBLOUahgZqkgZcwgZQxCzAJBgNV BAYTAklEMRIwEAYDVQQIEwlXZXN0IEphdmExDzANBgNVBAcTBkNpYW1pczEOMAwG A1UEChMFSUJFS0ExDDAKBgNVBAsTA1ZQTjEOMAwGA1UEAxMFaWJla2ExETAPBgNV BCkTCGNoYW5nZW1lMR8wHQYJKoZIhvcNAQkBFhBtYWlsQGhvc3QuZG9tYWluggkA jRiDb1zTK7swDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQB3yJaTR706 /Qw3QI6ca3EKKhMm1ElQKP8za0+NhJj02Qr0qhoG1g8JCi4EiNmFrMAnso2XG1y1 VqSgb9WQ0Somf5Mtmybuymxq5tJUpP4znya5EJ9fL/+NU3I1sy+8XZvQEuCh05jc wNiktKpXiVkrmnCxPSMKG5H3dVSxXJUF8g== -----END CERTIFICATE----- </ca>
Lakukan hal yang sama, jika anda ingin membuka dan memasukkan crt dan key file kedalam konfig client ‘openVPN anda.
Config diatas dapat anda edit semau anda. Sesuaikan saja dengan trik dan keinginan anda.
Save konfig dengan CTRL+X, Y. - Untuk membuat user, silahkan berikan perintah :
useradd -s /bin/false username
Ganti username dengan nama user yang ingin anda buat. Untuk membuat password, silahkan berikan command :
passwd username
- Untuk mendownload config client, anda bisa gunakan bitvise atau gunakan saja zip serta webserver (nginx/apache). Karena sebelumya sudah saya share tentang cara download lewat bitvise di tutorial cara install dan konfigurasi OpenVPN di Centos, maka sekarang saya buat cara download config client lewat zip ditambah web server :
- Install terlebih dahulu web server nginx atau apache. (lihat tutor cara install LEMP di ubuntu dan cara install LAMP di ubuntu).
- Install zip melalui command :
apt-get install zip
- Masuk ke direktori keys :
cd /etc/openvpn/easy-rsa/2.0/keys
- Jalankan :
zip OVPN.zip *
- Copy file OVPN.zip ke direktori /var/www dengan command :
cp OVPN.zip /var/www/ovpn.zip
Jika anda menggunakan webserver nginx, maka commandnya :
cp OVPN.zip /usr/share/nginx/www/ovpn.zip
- Akses IP VPS atau domain anda dengan menambahkan /ovpn.zip, maka file tersebut akan terdownload secara otomatis. Contoh :
1dpaper.tk/ovpn.zip 192.249.60.206/ovpn.zip
- Extrack kemudian copy file ca.crt, dedeerik.crt, dedeerik.csr, dedeerik.key dan dedeerik.ovpn (sesuaikan kelima nama file tersebut dengan yang anda miliki) ke folder config OpenVPN GUI anda. Jika anda sudah memasukan certificate ca, crt dan / atau key langsung ke konfig client, maka anda tidak perlu mendownload file-file tersebut lagi. Cukup anda download konfig OpenVPN Client saja (dedeerik.ovpn).
- Selain dengan cara tersebut, anda juga bisa menggunakan ftp client filezilla atau ftp client lainnya.
Catatan :
Cara diatas adalah dokumentasi pribadi saya saat install OpenVPN di VPS Debian 7. Mungkin ada sedikit perbedaan jika anda menggunakan Ubuntu, tapi saya yakin tidak akan ada perbedaan yang cukup mencolok diantara kedua distro tersebut.