SSH SSL Stunnel di OpenWRT

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;

1
opkg update && opkg install openssh-client

Setelah OpenSSH terinstall. Langkah selanjutnya yaitu menginstall Stunnel dengan cara ketikan command line berikut;

1
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.
1
2
3
4
5
[SSH]
client = yes
accept = localhost:69
connect = idx2.jagoanssh.com:443
sni = line.me
  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 diperjalan 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.
1
/etc/init.d/stunnel disable

kemudian buat file confignya dengan cara berikut. Dan copy-paste contoh config di atas

1
nano nama_file_config #contoh nano ssh

Untuk menjalankan Stunnel cukup ketikan command line dibawah

1
stunnel nama_file_config #contoh stunnel ssh

Untuk menghentikan Stunnel ketikan perintah ini

1
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

1
opkg install redsocks

Setelah berhasil menginstall Redsocks langkag selanjutnya yaitu mengkonfigurasi Redsocks. backup terlebih dahulu config default redsock dengan cara berikut.

1
2
cd /etc/
mv redsocks.conf.bak

Setelah membackup config default tahap selanjutnya membuat config dengan cara dibawah

1
nano redsocks.conf

dan copy-paste contoh config dibawah ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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.

1
2
nano /usr/bin/gproxy
chmod +x /usr/bin/gproxy

Contoh config iptables di file gproxy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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.

1
2
mkdir .ssh
nano .ssh/config

dan copy-paste contoh config berikut kedalam .ssh/config

1
2
3
4
5
6
7
8
9
10
11
12
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;

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

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

Baca Juga;



SSHPASS Untuk OpenWRT

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×