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-serverdev tunca ca.crtcert server.crtkey server.keydh dh1024.pemserver 10.10.100.0 255.255.255.0ifconfig-pool-persist ipp.txtkeepalive 3 10auth SHA1cipher AES-128-CBC # AESuser nobodygroup nogrouppersist-keypersist-tunstatus openvpn-status.logverb 6topology subnetclient-config-dir ccdconfig route.confclient-to-clientKeterangan:
- 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.0iroute 192.168.1.0 255.255.255.0client2 berisi
ifconfig-push 10.10.10.3 255.255.255.0iroute 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.2route 192.168.2.0 255.255.255.0 10.10.10.3push "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.