Bila anda menggunakan ISP yang memberikan menggunakan NAT (memberikan private IP), contoh ISP yang menggunakan NAT Oxygen Home, My Republic, Biznet, Bali Fiber. Anda tidak bisa mengakses langsung server ataupun komputer, kita harus menggunakan semacam proxy untuk mengakses server dibalik NAT tersebut.

Beberapa teknologi yang bisa digunakan adalah VPN, SSH Reverse Tunnel. Disini saya akan menggunakan OpenVPN + nginx reverse proxy, karena kebutuhan saya hanya butuh akses web server dari luar.

Agar bisa menjalankan skenario ini kita membutuhkan 1 VPS/dedicated server yang online 24 jam dengan static IP.

Kebutuhan

# Di Rumah/Kantor
– server online 24 jam
– koneksi internet
– openvpn client
– Debian 9

# Online dengan static IP
– VPS atau dedicated server
– nginx (untuk forward ke rumah/kantor)
– openvpn server
– Debian 9

Sebelum menjalankan tutorial ini, anda sudah memiliki openvpn server yang siap digunakan. Bila belum ada bisa install openvpn, caranya bisa dilihat di Instalasi dan Konfigurasi OpenVPN di CentOS 6

1. Setting di server Rumah/Kantor

Untuk contoh kasus ini website corporate kantor di hosting di LAN mengunakan IP 192.168.1.254, karena alasan tertentu Website ini harus di host di jaringan lokal. Server lokal ini menggunakan Debian 9

2.1 Install Openvpn Client

apt install openvpn -y
# fedora
dnf install openvpn -y

Download file client OpenVPN dari server, contoh debian-server.ovpn
Konek ke openvpn server

openvpn debian-server.ovpn

setelah terkoneksi cek private IP yang anda dapatkan dengan ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.77  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::9daa:197e:348c:7fbc  prefixlen 64  scopeid 0x20<link>
        ether 02:81:99:be:5f:36  txqueuelen 1000  (Ethernet)
        RX packets 634941  bytes 152508590 (145.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 531756  bytes 108277004 (103.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 40  
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6696  bytes 402233 (392.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6696  bytes 402233 (392.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.2  netmask 255.255.255.0  destination 10.8.0.2
        inet6 fe80::4342:e1e:5175:fd93  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 4284  bytes 337836 (329.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5304  bytes 3593801 (3.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dari output diatas bisa kita lihat di tun0 server lokal ini mendapatkan IP 10.8.0.2

2. Setting di VPS/Dedicated Server

Menggunakan iptables

aktifkan IPv4 forward

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

Sebagai contoh kita akan mengakses server yang berada di kantor, di IP 192.168.1.254 dari VPS menggunakan IP-SERVER:9000, disini IP Private untuk server tersebut tidak terlalu berpengaruh, yang harus kita forward adalah IP private yang di dapat server di kantor dari VPN server, contoh disini 10.8.0.2, itulah yang akan kita buka dari IP VPS.

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 9000 -j DNAT --to-destination 10.8.0.2:80

Pada skenario diatas, bila kita membuka IP-SERVER:9000 akan otomatis dibuka port 10.8.0.2:80, yang merupakan server yang berada di kantor ;). Kecepatan aksesnya tergantuk koneksi upload ISP di kantor/rumah anda, begitu juga link (latency,jarak) antara Server ke kantor/rumah anda.

Masih ada cara yang bisa digunakan selain menggunakan iptables, yaitu reverse proxy. Dengan reverse proxy kita bisa mengakses menggunakan port 80, jadi tidak perlu mengetik port manual ataupun menggunakan sub direktori, tergantung kreasi anda saja. Belum lagi bisa disetting agar bisa diakses dari SSL.

Join the Conversation

5 Comments

Your email address will not be published. Required fields are marked *

    1. iya, biar kita bisa akses komputer yang pake ISP Oxygen, Indihome, Biznet, MNC Play dan lain sebagainya.

      Contoh sederhanya kita ingin buka komputer di rumah dari kantor/cafe

  1. Bagaimana cara mengedit ini

    tun0: flags=4305 mtu 1500
    inet 10.8.0.2 netmask 255.255.255.0 destination 10.8.0.2

    menjadi

    tun0: flags=4305 mtu 1500
    inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.1

    Tolong di bantu

  2. Cara Mengakses dvr Dibalik NAT ISP … sama ga pembahasan nya… ?

    DVR di dalam jaringan Balifiber!!

    tolong tutorial nya om