SSH SSL Stunnel di OpenWRT

Posted: 5 min read

Menjalankan 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.

  1. 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

  1. 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.

Stunnel

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