Cara Memasang dan Menggunakan SSH Stunnel di Openwrt
SSH atau dikenal juga sebagai Secure Shell adalah sebuah protokol jaringan yang memungkinkan untuk komunikasi data secara aman (secure) antar jaringan komputer. Pada openwrt sendiri fungsinya hampir mirip dengan VPN yaitu mengakses jaringan internet seakan-akan menggunakan jaringan pribadi sehingga dengan begitu koneksi yang kamu gunakan akan lebih secure lagi.
Untuk tutorial cara memasang Stunnel dan SSH-nya admin dapat dari artikel mbah rureka yaitu SSH SSL Stunnel di OpenWRT. Meskipun di artikel tersebut sudah lengkap, tapi disini admin akan coba menjelaskan kembali hal-hal yang belum sempat mbah Rureka jelaskan, sehingga nantinya artikel tersebut dapat dipahami dan semua tutorialnya dapat diterapkan dengan benar.
Sebelum itu pastikan kamu sudah mempunyai akun SSH SSL terlebih dahulu, apabila belum punya silakan buat akunnya di 5 Situs Penyedia Akun SSH, OpenVPN, Shadowsocks, WireGuard, dan V2Ray Secara Gratis. Serta tidak lupa juga telah memahami bagaimana cara menggunakan Terminal di Openwrt, untuk tutorialnya bisa dibaca di Cara Mengakses Router OpenWRT dari Aplikasi Termux Android, Cara Mengakses Router Openwrt dengan Putty di PC / Komputer, dan Cara Mengakses Router Openwrt dengan WinSCP di PC / Komputer.
Contoh Akun SSH SSL dari SSHOcean
Cara Memasang Stunnel dan SSH di Openwrt
Pada tahap ini paket yang harus dipasang ialah Stunel dan OpenSSH, adapun caranya yaitu dengan login dulu ke Openwrt melalui Terminal lalu masukan perintah berikut
opkg update && opkg install stunnel openssh-client
Setelah paketnya berhasil di pasang, langkah selanjutnya ialah mengatur Stunnel-nya agar dapat dijalankan pada direktori /root/ yaitu dengan memasukan perintah berikut di Terminal
/etc/init.d/stunnel disable
Setelah itu tinggal membuat konfigurasi Stunnel, pada tahap ini kamu wajib memiliki akun SSH SSL karena nantinya pada konfigurasi Stunnel akan dimasukan Hostname dan Port akun SSH SSL yang digunakan. Untuk membuat konfigurasinya masukan perintah berikut
nano ssh
Catatan: nama konfigurasi "ssh" dapat diganti dengan nama lain misalnya seperti openssh, namun nantinya pada konfigurasi stunnel juga harus disesuaikan sehingga awalan konfigurasinya menjadi [OPENSSH], untuk lebih jelasnya silakan lihat contoh konfigurasi Stunnel-nya di bawah.
Maka akan terbuka tampilan baru, selanjutnya masukan konfigurasi berikut
[SSH]
client = yes
accept = localhost:69
connect = ca02.sshocean.net:445
sni = google.com
Catatan:
- Port 69 pada localhost:69 dapat diganti dengan Port lain misalnya seperti 89, 7878 atau yang lainnya. Harap ingat baik-baik Port tersebut karena nantinya Port tersebut akan ditambahkan ke dalam konfigurasi SSH.
- ca02.sshocean.net:445 disesuaikan dengan Hostname dan Port SSL akun SSH yang kamu gunakan, untuk lebih jelasnya silahkan lihat akun SSH yang admin gunakan yang ada pada awal artikel lalu bandingkan dengan konfigurasi Stunnel tersebut.
- google.com pada sni = google.com dapat diganti dengan domain lain contohnya seperti yahoo.com, bing.com atau yandex.com.
Agar konfigurasinya tersimpan, tekan tombol CTRL lalu ketik X, nanti akan muncul konfirmasi Save modified buffer ketik Y, setelah itu akan muncul konfirmasi lagi File Name to Write tekan Enter untuk menyimpannya.
Cara Memasang dan Membuat Konfigurasi Redsocks gproxy di Openwrt
Setelah Stunnel-nya berhasil di pasang, selanjutnya tinggal membuat konfigurasi redsocks dan gproxy-nya. Adapun caranya yaitu masih menggunakan Terminal lalu masukan perintah berikut
opkg install redsocks
Setelah pemasangan redsocksnya selesai, backup terlebih dahulu konfigurasi bawaannya dengan cara memasukan berikut
mv /etc/redsocks.conf /etc/redsocks.conf.bak
Sekarang masukan perintah berikut untuk membuat konfigurasi redsocks-nya
nano redsocks.conf
Maka akan terbuka tampilan baru lalu masukan perintah berikut ini
base {
log_debug = off;
log_info = on;
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 0.0.0.0;
local_port = 12345;
ip = 127.0.0.1;
port = 1080;
type = socks5;
}
redudp {
local_ip = 127.0.0.1;
local_port = 10053;
ip = 127.0.0.1;
port = 1080;
dest_ip = 8.8.8.8;
dest_port = 53;
udp_timeout = 30;
udp_timeout_stream = 180;
}
dnstc {
local_ip = 127.0.0.1;
local_port = 5300;
}
Untuk menyimpan konfigurasinya, tekan tombol CTRL lalu ketik X, nanti akan muncul konfirmasi Save modified buffer ketik Y, setelah itu akan muncul konfirmasi lagi File Name to Write tekan Enter untuk menyimpannya.
Atau bisa juga mengunduh berkas redsocks.conf yang sudah jadinya melalui Terminal yaitu dengan memasukan perintah berikut
wget --no-check-certificate https://rawcdn.githack.com/e2phreaker/openwrt/4ede1c3fb39accfd0396693f061432e57899cea3/redsocks.conf -O /etc/redsocks.conf
Catatan: sebelum menjalankan perintah ini, pastikan kamu sudah menjalankan perintah untuk mem-backup konfigurasi redsocks.conf yaitu "mv /etc/redsocks.conf /etc/redsocks.conf.bak".
Langkah selanjutnya tinggal membuat konfigurasi gproxy, masukan perintah berikut di Terminal
nano /usr/bin/gproxy
Setelah itu masukan konfigurasi berikut
#!/bin/sh
case $1 in
"stop")
iptables -t nat -F REDSOCKS
iptables -t nat -F OUTPUT
iptables -t nat -F PREROUTING
echo "Internet Disconnected"
killall redsocks
exit
;;
esac
iptables -t nat -N REDSOCKS
#Ignore LANs and some other reserved addresses.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.10.1.0/22 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 202.152.240.50/32 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A OUTPUT -j REDSOCKS
redsocks -c /etc/redsocks.conf > /dev/null &
echo "Internet Connected"
Untuk menyimpan konfigurasinya, tekan tombol CTRL lalu ketik X, nanti akan muncul konfirmasi Save modified buffer ketik Y, setelah itu akan muncul konfirmasi lagi File Name to Write tekan Enter untuk menyimpannya.
Atau bisa juga mengunduh berkas gproxy yang sudah jadinya melalui Terminal yaitu dengan memasukan perintah berikut
wget --no-check-certificate https://rawcdn.githack.com/e2phreaker/openwrt/4ede1c3fb39accfd0396693f061432e57899cea3/gproxy -O /usr/bin/gproxy
Setelah itu agar konfigurasi gproxy dapat di execute, masukan perintah berikut
chmod 755 /usr/bin/gproxy
Cara Membuat Konfigurasi SSH di Openwrt
Setelah selesai mengatur konfigurasi stunnel, redsocks, dan gproxy pada tutorial sebelumnya. Sekarang waktunya untuk membuat konfigurasi SSH-nya. Adapun caranya yaitu buka Terminal lalu masukan perintah berikut
mkdir .ssh && nano .ssh/config
Maka akan terbuka tampilan baru, setelah itu masukan konfigurasi berikut
Host rureka*
PermitLocalCommand yes
LocalCommand gproxy %h
DynamicForward 1080
StrictHostKeyChecking no
ServerAliveInterval 10
TCPKeepAlive yes
Host rureka1
HostName 127.0.0.1
Port 69
User sshocean-akunku
Catatan:
- Host rureka* dan rureka1 dapat diganti dengan nama lain contohnya seperti openssh* dan openssh1.
- Port 69 disesuaikan dengan Port yang ada pada konfigurasi Stunnel yang telah kamu buat sebelumnya.
- sshocean-akunku disesuaikan dengan nama user akun SSH yang telah kamu buat sebelumnya.
Untuk menyimpan konfigurasinya, tekan tombol CTRL lalu ketik X, nanti akan muncul konfirmasi Save modified buffer ketik Y, setelah itu akan muncul konfirmasi lagi File Name to Write tekan Enter untuk menyimpannya.
Cara Menjalankan SSH Stunnel di Openwrt
Setelah semua konfigurasinya siap, sekarang saatnya untuk menjalankannya. Adapun perintah yang harus dimasukan di Terminal ialah
stunnel nama_konfigurasi_stunnel && ssh -N rureka1 &
Apabila diterapkan maka hasilnya akan terlihat seperti
stunnel ssh && ssh -N rureka1
Catatan:
- ssh pada stunnel ssh disesuaikan dengan nama konfigurasi stunnel yang telah dibuat sebelumnya, apabila sebelumnya kamu membuat konfigurasi stunnel dengan nama openssh maka perintahnya menjadi stunnel openssh.
- rureka1 pada ssh -N rureka1 disesuaikan dengan nama host yang ada pada konfigurasi SSH, apabila sebelumnya kamu menamai host tersebut dengan nama openssh1 maka perintahnya menjadi ssh -N openssh1.
Setelah menjalankan perintah tersebut maka nanti akan diminta untuk memasukan password SSH. Selanjutnya tinggal masukan password SSH sesuai dengan akun SSH yang kamu telah buat sebelumnya.
Apabila kamu ingin password SSH-nya dimasukan secara otomatis saat menjalankan SSH maka kamu perlu memasang sshpass terlebih dahulu. Sebelum itu pastikan paket yang akan di unduh sesuai dengan arsitektur openwrt yang digunakan, untuk mengeceknya masukan perintah berikut di Terminal
opkg print-architecture | awk '{print $2}'
Ketika perintahnya diterapkan maka contoh hasilnya akan terlihat seperti berikut
all
noarch
mipsel_24kc
Informasi jenis arsitektur Openwrt yang kamu gunakan ada pada baris ketiga, setelah itu unduh paket sshpass-nya sesuai dengan arsitektur Openwrt yang digunakan.
Kumpulan SSHPASS untuk Openwrt
Silakan pilih sshpass yang sesuai dengan Openwrt yang digunakan
aarch64_cortex-a53 = sshpass-1.06-aarch64_cortex-a53.ipk
mips_mips32 = sshpass-1.06-mips_mips32.ipk
mipsel_24kc = sshpass-1.06-mipsel_24kc.ipk
mips_24kc = sshpass-1.05-mips_24kc.ipk
Salin link sshpass di atas yang sesuai dengan arsitektur Openwrt yang kamu gunakan lalu masukan perintah berikut di Terminal untuk mengunduh dan memasang paket sshpassnya
wget --no-check-certificate link_paket_sshpass && opkg install *.ipk
Ketika diterapkan maka perintahnya akan terlihat seperti
wget --no-check-certificate https://github.com/e2phreaker/openwrt/raw/master/sshpass_1.06-Rureka.com_mipsel_24kc.ipk && opkg install *.ipk
Setelah paketnya terpasang, masukan perintah berikut untuk menjalankan stunnel, ssh dan sshpass-nya
stunnel nama_konfigurasi_stunnel && sshpass -p password_ssh ssh -N rureka1
Apabila perintahnya diterapkan maka hasilnya akan seperti berikut
stunnel ssh && sshpass -p vpn123 ssh -N rureka1 &
Catatan:
- ssh pada stunnel ssh disesuaikan dengan nama konfigurasi stunnel yang telah dibuat sebelumnya, apabila sebelumnya kamu membuat konfigurasi stunnel dengan nama openssh maka perintahnya menjadi stunnel openssh.
- vpn123 pada sshpass -p vpn123 disesuaikan dengan password akun SSH yang telah kamu buat sebelumnya.
- rureka1 pada ssh -N rureka1 disesuaikan dengan nama host yang ada pada konfigurasi SSH, apabila sebelumnya kamu menamai host tersebut dengan nama openssh1 maka perintahnya menjadi ssh -N openssh1.
Ketika SSH-nya berhasil dijalankan maka tampilannya akan seperti gambar berikut ini
Untuk menghentikan layanan Stunnel dan SSH-nya masukan perintah berikut
gproxy stop && killall stunnel
Apabila hanya ingin menghentikan layanan SSH-nya saja maka cukup masukan
gproxy stop
Untuk mengatasi masalah DNS Leak (Kebocoran DNS) pada Openwrt, silakan baca artikel Cara Memasang DNS over HTTPS (DOH) di Openwrt atau Cara Memasang DNSCrypt di Openwrt.
Demikianlah artikel Cara Memasang dan Menggunakan SSH Stunnel di Openwrt, apabila ada yang kurang jelas silakan tanyakan di kolom komentar.