SSH SSL Stunnel di OpenWRT
Posted: 5 min readMenjalankan SSH SSL Stunnel di OpenWRT sangatlah mudah. SSH (Secure Shell) merupakan protokol engkripsi jaringan yang digunakan untuk komunikasi antara dua komputer atau lebih secara aman. Meskipun hanya menggunakan SSH koneksi Internet sudah cukup aman kita bisa mengabungkannya dengan Stunnel agar lebih aman lagi. Stunnel sendiri berfungsi sebagai pembungkus koneksi ssh dengan menambahkan enkripsi SSL.
Install OpenSSH dan Stunnel di OpenWRT
Secara default SSH yang digunakan di OpenWRT yaitu Dropbear kekurangan dari Dropbear tidak bisa melakukan port fordwarding, kita perlu menginstal OpenSSH terlebih dahulu. Login terlebih dahulu ke ssh router Anda. untuk mengeksekusi perintah berikut;
opkg update && opkg install openssh-client
Setelah OpenSSH terinstall. Langkah selanjutnya yaitu menginstall Stunnel dengan cara ketikan command line berikut;
opkg install stunnel
Konfigusari Stunnel
Setelah berhasil menginstal Stunnel, selanjutnya membuat konfigurasinya. Ada dua opsi untuk konfigurasi Stuunel.
- File konfigurasi berada di /etc/stunnel/stunnel.conf. Ini letak default file config stunnel. Dan untuk contoh confignya seperti dibawah.
[SSH]
client = yes
accept = localhost:69
connect = idx2.jagoanssh.com:443
sni = bing.com
bing.com ini temen-temen bisa diganti dengan nama situs lain misal google.com
- File konfigurasi berada di /root/ atau terserah Anda. Jika Anda menggunakan opsi ini. Anda perlu menonaktifkan auto start Stunnel, tujuan menonaktifkan ini agar tiap kali OpenWRT booting pertama kali Stunnel dijalankan dibackground yang nantinya akan bentrok dengan config bawaan yang berada di /etc/stunnel/stunnel.conf. Untuk menonakitfkannya, dengan cara jalankan command line dibawah. Rureka merekomendasikan cara no 2 karena jika ingin ganti akun ssh stunnel lebih mudah. Dan Rureka memakai opsi yang kedua.
/etc/init.d/stunnel disable
kemudian buat file confignya dengan cara berikut. Dan copy-paste contoh config di atas
nano nama_file_config #contoh nano ssh
Untuk menjalankan Stunnel cukup ketikan command line dibawah
stunnel nama_file_config #contoh stunnel ssh
Untuk menghentikan Stunnel ketikan perintah ini
killall stunnel
Install Redsocks dan Konfigurasi
Redsocks di sini berfungsi sebagai Transparant Proxy yang nantinya akan digabungkan dengan iptables agar baik host maupun client bisa mengakses internet. untuk menginstall Redsock ketikan command line ini
opkg install redsocks
Setelah berhasil menginstall Redsocks langkag selanjutnya yaitu mengkonfigurasi Redsocks. backup terlebih dahulu config default redsock dengan cara berikut.
cd /etc/
mv redsocks.conf.bak
Setelah membackup config default tahap selanjutnya membuat config dengan cara dibawah
nano redsocks.conf
dan copy-paste contoh config dibawah 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;
}
Setting Iptables
Setelah membuat file konfigurasi Redsocks, selanjutnya kita membuat file config iptables yang berfungsi untuk route atau redirect koneksi dari Redsocks ke iptables sehingga host dan client bisa mengakses Internet menggunakan SSH Stunnel. Untuk membuat config iptable ikuti cara dibawah dan copy-paste contoh config di bawah dalam file gproxy yang kita buat.
nano /usr/bin/gproxy
chmod +x /usr/bin/gproxy
Contoh config iptables di file gproxy
#!/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"
Menjalankan SSH Stunnel
Sebelum menjalankan SSH Stunnel kita perlu membuat config ssh terlebih dahulu agar lebih ringkas dan simple saat menggunakannya. Ikutin langkah berikut untuk membuat file config sshnya.
mkdir .ssh
nano .ssh/config
dan copy-paste contoh config berikut ke dalam .ssh/config. Oh iya temen-temen perlu edit bagian “User buka” sesuai nama user akun ssh milik temen-temen. contoh di sini nama akun sshnya “buka” silahkan ganti “buka” sesuai nama user akun ssh temen-temen
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 buka
Setelah membuat file config SSH langkah selanjutnya yaitu menjalankan Stunnel SSH Stunnelnya dengan cara berikut; abaikan tanda # dan teks seterusnya
stunnel nama_file_config #contoh stunnel ssh
ssh -N rureka1
nanti Anda akan diminta memasukan password SSH Anda.
Supaya password ssh otomatis dimasukan saat menjalan ssh Anda perlu sshpass. Jika sshpass sudah terinstal di OpenWRT Anda, untuk menjalankan SSH dengan sshpass dengan cara berikut
sshpass -p password_ssh_Anda ssh -N rureka1 &
Info Tambahan
Untuk menjalankan kembali SSH Stunnel ketikan perintah berikut untuk membersihkan rules iptables dari gproxy agar SSH Stunnel bisa kembali konek.
gproxy stop
Baca Juga SSHPASS Untuk OpenWRT