
PENDAHULUAN:
OpenVPN adalah perangkat lunak komersial open-source yang mengimplementasikan teknik Virtual Private Network (VPN) untuk membuat koneksi point-to-point atau site-to-site yang aman menggunakan konfigurasi routed atau bridged termasuk fasilitas remote access..
OpenVPN menggunakan protokol keamanan khusus yang menggunakan SSL / TLS untuk pertukaran kunci dan mampu melintasi Network Address Translator (NAT) Serta firewall. OpenVPN dibuat oleh James Yonan dan bebas di gunakan dengan lisensi GNU General Public License (GPL).
OpenVPN memungkinkan peers client untuk saling mengotentikasi menggunakan kunci rahasia, sertifikat atau nama pengguna / password yang telah dibuat dan dibagikan sebelumnya.
Ketika digunakan dalam konfigurasi multiclient-server, ini memungkinkan server untuk membuat sertifikat otentikasi untuk setiap user, menggunakan tanda tangan dan otoritas sertifikat. dengan cara menggunakan library enkripsi OpenSSL secara luas, serta protokol TLS, dan memiliki banyak fitur keamanan dan kontrol.
OpenVPN telah porting dan disematkan ke beberapa sistem seperti Mikrotik, DD-WRT dan lain sebagainya.
Berikut langkah-langkah yang diperlukan untuk menginstall openvpn server:
- Cari dan tentukan ip publik server.
- Instalasi openvpn melalui paket manager distro masing-masing.
- Pembuatan CA, Server dan Client sertifikat.
- Konfigurasi openvpn server secara umum.
- Koneksi openvpn client menggunakan OS Linux, Windows, Android atau IOS.
CHECK IP PUBLIK SERVER
Masuk ke terminal lalu ketika baris perintah seperti dibawah ini
$ curl https://ipecho.net/plain ; echo
atau
$ host myip.opendns.com resolver1.opendns.com
Catat hasil perintah diatas yang akan kita gunakan nanti sebagai contoh ip publiknya adalah 1.1.1.1 dengn network interface ip publik nya enp3s0.
INSTALASI OPENVPN
Ubuntu 18
$ sudo apt install openvpn
Centos 7
$ yum install openvpn
PEMBUATAN SERTIFIKAT VPN
Untuk memudahkan pembuatan sertifikat baik CA sertifikat, Server sertifikat, Client sertifikat silahkan merujuk ke tulisan saya sebelumnya di SINI.
Unduh terlebih dahulu skrip easy-rsa terbaru di SINI.
Lokasi hasil extract easy-rsa adalah /home/aghe/Portable/EasyRSA-v3.0.6
Sebelumnya sesuaikan variable sertifikat dengan cara mengedit vars.example seperti contoh dibawah:
set_var EASYRSA_REQ_COUNTRY "ID" set_var EASYRSA_REQ_PROVINCE "DKI JAKARTA" set_var EASYRSA_REQ_CITY "JAKARTA PUSAT" set_var EASYRSA_REQ_ORG "Milano Corporation" set_var EASYRSA_REQ_EMAIL "[email protected]" set_var EASYRSA_REQ_OU "IT Support"
Jalankan skrip sesuai link tulisan saya dan sebagai contoh pembuatan sertifikat gunakan Common Name sebagai berikut:
– CA sertifikat = ovpn-server-ca
– Server sertifikat = server
– Client sertifikat = client1
Untuk Server yang kita butuhkan adalah file
– ca.crt
– server.key
– server.crt
– dh.pem
– ta.key
Copykan ke 5 berkas tersebut ke dalam directory /etc/openvpn.
KONFIGURASI SERVER
Selanjutnya buat berkas konfigurasi untuk server dengan nama ovpnserver.conf seperti dibawah ini
# Masukan ip publik local 1.1.1.1 # protokol yang di pilih udp atau tcp di client harus disamakan proto udp # Listen port port 1194 # Gunakan device tun untuk dev tun # Lokasi sertifikat ca ca /etc/openvpn/ca.crt # Lokasi server sertifikat cert /etc/openvpn/server.crt # Path to the private key file key /etc/openvpn/server.key # Path to the file containing the Diffe-Hellman parameters dh /etc/openvpn/dh.pem # The server and each client must have # a copy of this key. # The second parameter should be '0' # on the server and '1' on the clients. tls-auth /etc/openvpn/ta.key 0 # Private address untuk vpn server dan client untuk server menjadi 10.0.1.1 server 10.0.1.0 255.255.255.0 # Tambah baris ini agar antar client bisa saling ping client-to-client # Uncomment to allow clients to dynamically change address (useful for # road-warriors) #float # Kirim keep alive paket agar koneksi tetap tersambung keepalive 10 120 # Gunakan paket kompresi tetapi untuk server spek rendah lebih baik disable comp-lzo # Downgrade privileges untuk meningkatkan keamanan server user nobody # Group untuk openvpn server daemons group nobody # Maintain a record of client <-> virtual IP address # associations in this file. If OpenVPN goes down or # is restarted, reconnecting clients can be assigned # the same virtual IP address from the pool that was # previously assigned. ifconfig-pool-persist /etc/openvpn/ipp.txt # Don't re-read key files upon receiving a SIGUSR1 signal persist-key # Don't close and reopen the tun(4) device upon receiving a SIGUSR1 signal persist-tun # Directory for client-specific configuration files #client-config-dir /usr/local/etc/openvpn/chroot/ccd client-config-dir ccd Uncomment to periodically write status information to the specified file # Uncomment to raise verbosity level for debugging #verb 11 # LOGGING log /var/log/openvpn-server.log status /var/log/openvpn-status.log # Management Interface CLI management 127.0.0.1 7505 # Pilihan auth untuk HMAC message digest algorithma auth SHA256 # Pilihan Cipher yang cukup strong cipher AES-256-CBC # Username and Password Auth ;verify-client-cert none ;plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
Aktifkan ip forwarding dengan menambahkan/mengedit baris ini di berkas /etc/sysctl.conf.
net.ipv4.ip_forward=1
Kemudian aktifkan ip forwarding dengan perintah
# sudo sysctl -p
AKTIFKAN OPENVPN SERVER
Persiapkan direktory dan file yang di perlukan
$ sudo touch /etc/openvpn/ipp.txt
$ sudo mkdir -p /etc/openvpn/ccd
Enable service
$ sudo systemctl enable [email protected]
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /lib/systemd/system/[email protected]
Start service.
$ sudo systemctl start [email protected]
Check apakah port 1194/udp sudah listen di server.
$ netstat -ntulp |grep 1194
udp 0 0 0.0.0.0:1194 0.0.0.0:* 10417/openvpn
Check status server melalui file log.
$ sudo cat /var/log/openvpn-server.log Sun Mar 17 11:41:39 2019 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep 5 2018 Sun Mar 17 11:41:39 2019 library versions: OpenSSL 1.1.0g 2 Nov 2017, LZO 2.08 Sun Mar 17 11:41:39 2019 TUN/TAP device tun0 opened Sun Mar 17 11:41:39 2019 do_ifconfig, tt->did_ifconfig_ipv6_setup=0 Sun Mar 17 11:41:39 2019 /sbin/ip link set dev tun0 up mtu 1500 Sun Mar 17 11:41:39 2019 /sbin/ip addr add dev tun0 local 10.0.1.1 peer 10.0.1.2 Sun Mar 17 11:41:39 2019 Could not determine IPv4/IPv6 protocol. Using AF_INET Sun Mar 17 11:41:39 2019 UDPv4 link local (bound): [AF_INET][undef]:1194 Sun Mar 17 11:41:39 2019 UDPv4 link remote: [AF_UNSPEC] Sun Mar 17 11:41:39 2019 GID set to nogroup Sun Mar 17 11:41:39 2019 UID set to nobody Sun Mar 17 11:41:39 2019 Initialization Sequence Completed
status interface tun
Sampai disini server sudah bisa dikoneksikan oleh client dan antar client sudah bisa saling berkomunikasi.
Konfigurasi tambahan
Routing traffic agar semua aktifitas client seperti browsing internet, chatting, download file maupun streaming video melewati vpn tunnel, Tambahkan/edit di ovpnserver.conf konfigurasi extra seperti ini
push “redirect-gateway def1 bypass-dhcp”
DNS juga dilewatkan melalui tunnel
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”
Mengalihkan traffic dari subnet 10.0.1.0/24 yang menuju 0.0.0.0/0 agar melewati interface ip publik.
/sbin/iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o enp3s0 -j MASQUERADE
Meminimalisir MIT attack
tls-auth /etc/openvpn/ta.key 0 #Untuk client masukan nilai 1
Sampai disini server OpenVPN sudah siap untuk di koneksikan oleh openvpn client.
Dikarenakan banyak nya client platfom yang di support oleh OpenVPN akan di jabarkan lebih lanjut di tulisan-tulisan saya berikutnya, harap bersabar yah..
Salam
ARTIKEL YANG BERHUBUNGAN :
https://agusprasetia.com/instalasi-openvpn-client-di-linux-desktop/
https://agusprasetia.com/instalasi-openvpn-client-di-windows-desktop/
https://agusprasetia.com/instalasi-openvpn-client-di-mikrotik/
https://agusprasetia.com/instalasi-openvpn-client-di-smartphone-android/
[…] Jika anda menggunakan linux desktop bukan linux versi server hampir dipastikan utility network-manager sudah terinstall secara default, hanya perlu sedikit konfigurasi tambahan untuk bisa melakukan koneksi ke vpn server.Sebelumnya untuk bisa menggunakan OpenVPN client anda harus memiliki OpenVPN server atau sewa Openvpn Host di provider yang menyediakan jasa tunneling atau anonymity jasa seperti ini banyak bertebaran di internet, atau jika anda ingin membuat server OpenVPN sendiri bisa merujuk ke tulisan saya sebelumnnya tentang cara2 menginstall dan mengkonfigurasikan OpenVPN server di linux silahkan klik link berikut OpenVPN SERVER. […]
Mohon petunjuknya untuk setting openvpn agar akses internet client tidak lewat VPN namun lewat gateway local saja. Sudah saya seting spt di bawah masih gagal ( client tidak bisa akses internet). Thanks.
Setting server.conf:
port 1194
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
Seting di client :
client
dev tun
proto tcp
sndbuf 0
rcvbuf 0
remote xxx.xxx.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
setenv opt block-outside-dns
key-direction 1
verb 3
Lakukan step2 di bawah ini
– Modifikasi client.conf Tambahkan baris ini:
# LOGGING
log /var/log/openvpn-client.log
– modifikasi client.conf Hapus Baris ini:
setenv opt block-outside-dns
key-direction 1
– Disable sementara firewall
systemctl stop firewalld.service
– Restart openvpn
– Ping ke server dan ke yahoo
ping -c 4 10.0.1.1
ping -c 4 yahoo.com
– Cek log LOG
cat /var/log/openvpn-client.log
– Cek routing
route -v4
contoh https://ibb.co/zN07m6p
[…] Windows tidak dapat dipungkiri masih menjadi system operasi yang paling banyak di gunakan, terutama di perkantoran, instansi pemerintah, maupun di instansi pendidikan dan perguruan tinggi.Untuk itu sangat lah tidak fair saya rasa jika tidak berbagi untuk rekan-rekan saya yang masih menggunakan windows sebagai system operasi utama di dektop personal komputer maupun laptop mereka.Sebelumnya Openvpn server harus sudah up and running silahkan di cek terlebih dahulu kondisi server masing-masing, Untuk Ip publik juga harus di pastikan sudah bisa di akses dari internet dan port 1194 sudah open.Kalau pembaca ada yg belum mengerti apa itu openvpn server silahkan di baca terlebih dahulu tulisan saya sebelum nya tentang OpenVPN Server. […]
[…] cocok dengan mikrotik.Standart server openvpn server di tulisan ini berdasarkan tulisan saya di OpenVPN Server, Untuk itu pastikan openvpn server teman-teman sudah sesuai dengan tulisan saya di artikel […]
error ini mas
Process: 6364 ExecStart=/usr/sbin/openvpn –cd /etc/openvpn/ –config %i.conf (code=exited, status=203/EXEC)
Failed at step EXEC spawning /usr/sbin/openvpn: No such file or directory
Pastikan systemctl start [email protected]
dan config file nya harus ovpnserver.conf di /etc/openvpn/ovpnserver.conf.
Failed at step EXEC spawning /usr/sbin/openvpn: No such file or directory
coba jalankan which openvpn takutnya binari openvpn nya blm terinstall
sudah mas, tapi tetap seperti itu.
saya ada 2 pertanyaan setelah saya coba centos
setelah install yum install openvpn itu kan ada 2 folder client dan server di ./etc/openvpn/
apakah memang kosong?
soalnya ketika saya di ubuntu, setelah jalankan install openvpn itu di dalam 2 folder tersebut ada file kalo gasalah
yang di copy-kan 5 file itu yang dalam folder easyrsa-vxxxxx/keys/ kan ya?
bukan yang di dalam issued?
saya udah run which openvpn resultnya /usr/sbin/openvpn/
maklum saya baru di linux ehehe
Ya memang kosong
Iya betul tapi hanya 4 file untuk client ca.crt, client1.crt, client1.key, ta.key
Untuk server 5 file ca.crt, dh.pem, ta.key, server.crt, server.key
Pastekan status server isi file /var/log/openvpn-server.log saya mau lihat
kalau bisa sih jalankan openvpn di client di linux nya pakai terminal biar bisa cek log juga
untuk start [email protected] ny aja begini mas
[email protected] – OpenVPN Robust And Highly Flexible Tunneling Application On ovpn
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2019-04-12 14:17:38 WIB; 19s ago
Process: 5099 ExecStart=/usr/sbin/openvpn –cd /etc/openvpn/ –config %i.conf (code=exited, status=1/FAILURE)
Main PID: 5099 (code=exited, status=1/FAILURE)
Apr 12 14:17:38 exabytes-59026326 systemd[1]: Starting OpenVPN Robust And Highly Flexible Tunneling Application On ovpn…
Apr 12 14:17:38 exabytes-59026326 openvpn[5099]: Options error: In [CMD-LINE]:1: Error opening configuration file: ovpn.conf
Apr 12 14:17:38 exabytes-59026326 openvpn[5099]: Use –help for more information.
Apr 12 14:17:38 exabytes-59026326 systemd[1]: [email protected]: main process exited, code=exited, status=1/FAILURE
Apr 12 14:17:38 exabytes-59026326 systemd[1]: Failed to start OpenVPN Robust And Highly Flexible Tunneling Application On ovpn.
Apr 12 14:17:38 exabytes-59026326 systemd[1]: Unit [email protected] entered failed state.
Apr 12 14:17:38 exabytes-59026326 systemd[1]: [email protected] failed.
saya udah coba ganti yang ovpnserver.conf jadi ovpn.conf tetep gagal mas.
log filenya isinya belom ada cuman default.
Process: 5099 ExecStart=/usr/sbin/openvpn –cd /etc/openvpn/ –config %i.conf (code=exited, status=1/FAILURE)
konfigurasi harus di letakan di /etc/openvpn/ovpn.conf
Apr 12 14:17:38 exabytes-59026326 openvpn[5099]: Options error: In [CMD-LINE]:1: Error opening configuration file: ovpn.conf
aplikasi openvpn tidak bisa menemukan file /etc/openvpn/ovpn.conf , bisa karena lokasinya tidak sesuai tidak di /etc/openvpn/ atau salah penamaannya filenya.
Fri Apr 12 12:34:49 2019 WARNING: Using –management on a TCP port WITHOUT passwords is STRONGLY discouraged and considered insecure
Fri Apr 12 12:34:49 2019 OpenVPN 2.4.7 x86_64-redhat-linux-gnu [Fedora EPEL patched] [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Feb 20 2019
Fri Apr 12 12:34:49 2019 library versions: OpenSSL 1.0.2k-fips 26 Jan 2017, LZO 2.06
Fri Apr 12 12:34:49 2019 TUN/TAP device tun0 opened
Fri Apr 12 12:34:49 2019 /sbin/ip link set dev tun0 up mtu 1500
Fri Apr 12 12:34:49 2019 /sbin/ip addr add dev tun0 local 10.0.1.1 peer 10.0.1.2
Fri Apr 12 12:34:49 2019 Could not determine IPv4/IPv6 protocol. Using AF_INET
Fri Apr 12 12:34:49 2019 UDPv4 link local (bound): [AF_INET]212.24.101.86:1194
Fri Apr 12 12:34:49 2019 UDPv4 link remote: [AF_UNSPEC]
Fri Apr 12 12:34:49 2019 GID set to nobody
Fri Apr 12 12:34:49 2019 UID set to nobody
Fri Apr 12 12:34:49 2019 Initialization Sequence Completed
ini untuk lognya mas
Ok server sudah UP, tinggal koneksikan client nya
Jangan lupa tambahkan baris
log /var/log/openvpn-client.log
di client.conf supaya lebih mudah troubleshoot jika ada masalah
ta.key kok ga ada ya?
ta.key bisa dihasilkan dengan menjalankan command seperti dibawah ini:
openvpn –genkey –secret ta.key
Hi, yeah this post is genuinely nice and I have learned lot of things from it regarding blogging. thanks.|