Seperti yang sebelumnya saya katakan pada tulisan disini, bahwa anda dapat membuat sebuah jaringan terpadu yang bersifat private network dengan memanfaatkan internet. Anda bisa menggunakan protokol yang mendukung Virtual Private Network (VPN). Dengan VPN, komputer yang terhalang firewall ataupun mengalami masquerading tetap dapat saling terhubung.
Permasalahan muncul ketika sebuah perangkat yang terhubung dengan VPN server mempunyai subnet yang berada dibelakangnya. Maka perangkat yang berada pada subnet tersebut tidak dapat menjangkau VPN server dikarenakan VPN server tidak memiliki routing table yang mengarah kepada perangkat itu.
Untuk lebih jelasnya, silahkan perhatikan topologi berikut:
VPN client1 VPN server VPN client2
{router} {VPS} {router}
(10.10.10.2/24) ==== (10.10.10.1/24) ==== (10.10.10.3/24)
| |
| |
| |
| |
userA userB
{PC} {PC}
(192.168.1.1/24) (192.168.2.1/24)
VPN client1 dapat berkomunikasi dengan VPN server dan VPN client2 ataupun sebaliknya. Karena masing-masing perangkat mempunyai routing langsung (direct routing). Namun ketika userA hendak menjangkau VPN client2 dan userB, maka userA tidak akan pernah mendapatkan reply sampai waktu habis (timeout). Hal tersebut dikarenakan VPN client2 tidak memiliki routing table untuk jaringan 192.168.1.0/24
Solusinya adalah menambahkan semua subnet pada seluruh perangkat yang belum mengenalnya (tidak terdapat pada routing table mereka). Mungkin tidak menjadi masalah jika perangkat yang terintegrasi sedikit. Bagaimana jika ada banyak dan subnet yang diberikan seringkali berubah?
PREREQUISITE
- Konfigurasi dasar OpenVPN (dapat dilihat DISINI)
Anda dapat menggunakan OpenVPN dan mengaktifkan fitur push. Fitur push ini akan memaksa OpenVPN client untuk melakukan perintah dari OpenVPN server. Beberapa perintah yang kompatibel dengan push diantaranya:
- dhcp-option
|- DNS
|- WINS
- gateway
- route
- perintah lain yang serupa dengan push yaitu ifconfig-push berfungsi untuk memberikan ip pool yang sudah ditentukan.
Perintah yang sesuai dengan kebutuhan saat ini adalah push route. Push route ini akan memaksa OpenVPN client untuk melakukan routing terhadap jaringan yang diberikan. Setiap client yang terhubung dengan OpenVPN server maka mendapatkan routing table yang ditawarkan apapun keadaannya. Anda tidak perlu melakukan routing secara manual satu persatu pada setiap perangkat.
Anggap saja, anda sudah menguasai konfigurasi dasar OpenVPN server.
LANGKAH 1. Silahkan buka file konfigurasi di /etc/openvpn/server.conf kemudian tambahkan baris warna merah
Keterangan:
- topology subnet = mendefinisikan bahwa topologi yang digunakan adalah subnet (pada dasarnya OpenVPN memiliki 3 topologi
- client-config-dir ccd = mendefinisikan bahwa letak seluruh konfigurasi client berada pada direktori /etc/openvpn/ccd
- config route = memasukkan konfigurasi route (serupa dengan perintah include). Lebih baik routing table dipisahkan dari konfigurasi utama.
- client-to-client = perintah agar komunikasi antar client tidak dilewatkan di layer 3.
LANGKAH 2. Buat direktori ccd dengan lokasi /etc/openvpn/. Direktori ini digunakan untuk menampung seluruh konfigurasi client. Anggap saja common name-nya (CN) adalah client1 dan client2 (untuk CN silahkan baca kembali posting Konfigurasi OpenVPN pada Debian Jessie).
client1 berisi
client2 berisi
keterangan:
- ifconfig-push = memberikan client IP address yang sudah ditentukan.
- iroute = memberitahu server bahwa client memiliki jaringan tersebut dibelakangnya.
LANGKAH 3. Buat file dengan nama route.conf pada direktori /etc/openvpn. File ini berisi daftar route yang harus dimasukkan (push) pada setiap mesin, termasuk server itu sendiri.
- route = memasukkan routing table pada server
- push "route ..." = mendistribusikan routing table keseluruh client.
LANGKAH 4. Start atau restart OpenVPN server. Setelah status OpenVPN server aktif dan tanpa kendala maka setiap client dan server akan mendapatkan routing table baru.
Terima kasih. Semoga bermanfaat.
Salam
reference:
Openvpn.net. (2018). Documentation. [online] Available at: https://openvpn.net/index.php/open-source/documentation/ [Accessed 12 Jun. 2018].
{router} {VPS} {router}
(10.10.10.2/24) ==== (10.10.10.1/24) ==== (10.10.10.3/24)
| |
| |
| |
| |
userA userB
{PC} {PC}
(192.168.1.1/24) (192.168.2.1/24)
VPN client1 dapat berkomunikasi dengan VPN server dan VPN client2 ataupun sebaliknya. Karena masing-masing perangkat mempunyai routing langsung (direct routing). Namun ketika userA hendak menjangkau VPN client2 dan userB, maka userA tidak akan pernah mendapatkan reply sampai waktu habis (timeout). Hal tersebut dikarenakan VPN client2 tidak memiliki routing table untuk jaringan 192.168.1.0/24
Solusinya adalah menambahkan semua subnet pada seluruh perangkat yang belum mengenalnya (tidak terdapat pada routing table mereka). Mungkin tidak menjadi masalah jika perangkat yang terintegrasi sedikit. Bagaimana jika ada banyak dan subnet yang diberikan seringkali berubah?
PREREQUISITE
- Konfigurasi dasar OpenVPN (dapat dilihat DISINI)
Anda dapat menggunakan OpenVPN dan mengaktifkan fitur push. Fitur push ini akan memaksa OpenVPN client untuk melakukan perintah dari OpenVPN server. Beberapa perintah yang kompatibel dengan push diantaranya:
- dhcp-option
|- DNS
|- WINS
- gateway
- route
- perintah lain yang serupa dengan push yaitu ifconfig-push berfungsi untuk memberikan ip pool yang sudah ditentukan.
Perintah yang sesuai dengan kebutuhan saat ini adalah push route. Push route ini akan memaksa OpenVPN client untuk melakukan routing terhadap jaringan yang diberikan. Setiap client yang terhubung dengan OpenVPN server maka mendapatkan routing table yang ditawarkan apapun keadaannya. Anda tidak perlu melakukan routing secara manual satu persatu pada setiap perangkat.
Anggap saja, anda sudah menguasai konfigurasi dasar OpenVPN server.
LANGKAH 1. Silahkan buka file konfigurasi di /etc/openvpn/server.conf kemudian tambahkan baris warna merah
port 1194
proto tcp-server
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.10.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 3 10
auth SHA1
cipher AES-128-CBC # AES
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 6
topology subnet
client-config-dir ccd
config route.conf
client-to-client
Keterangan:
- topology subnet = mendefinisikan bahwa topologi yang digunakan adalah subnet (pada dasarnya OpenVPN memiliki 3 topologi
- client-config-dir ccd = mendefinisikan bahwa letak seluruh konfigurasi client berada pada direktori /etc/openvpn/ccd
- config route = memasukkan konfigurasi route (serupa dengan perintah include). Lebih baik routing table dipisahkan dari konfigurasi utama.
- client-to-client = perintah agar komunikasi antar client tidak dilewatkan di layer 3.
LANGKAH 2. Buat direktori ccd dengan lokasi /etc/openvpn/. Direktori ini digunakan untuk menampung seluruh konfigurasi client. Anggap saja common name-nya (CN) adalah client1 dan client2 (untuk CN silahkan baca kembali posting Konfigurasi OpenVPN pada Debian Jessie).
client1 berisi
ifconfig-push 10.10.10.2 255.255.255.0
iroute 192.168.1.0 255.255.255.0
client2 berisi
ifconfig-push 10.10.10.3 255.255.255.0
iroute 192.168.2.0 255.255.255.0
- ifconfig-push = memberikan client IP address yang sudah ditentukan.
- iroute = memberitahu server bahwa client memiliki jaringan tersebut dibelakangnya.
LANGKAH 3. Buat file dengan nama route.conf pada direktori /etc/openvpn. File ini berisi daftar route yang harus dimasukkan (push) pada setiap mesin, termasuk server itu sendiri.
route 192.168.1.0 255.255.255.0 10.10.10.2
route 192.168.2.0 255.255.255.0 10.10.10.3
push "route 192.168.1.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
- route = memasukkan routing table pada server
- push "route ..." = mendistribusikan routing table keseluruh client.
LANGKAH 4. Start atau restart OpenVPN server. Setelah status OpenVPN server aktif dan tanpa kendala maka setiap client dan server akan mendapatkan routing table baru.
Terima kasih. Semoga bermanfaat.
Salam
reference:
Openvpn.net. (2018). Documentation. [online] Available at: https://openvpn.net/index.php/open-source/documentation/ [Accessed 12 Jun. 2018].
Tidak ada komentar:
Posting Komentar
Terima kasih telah berkunjung.