Beberapa internet service provider atau beberapa perusahaan kadang memblok sebagian besar port dan hanya port tertentu yang di buka seperti port 80 dan 443, hal ini di lakukan biasanya karena alasan keamanan. Terus gimana solusinya untuk remote SSH (port 22), kalo nemuin kasus di mana hanya port 80 atau 443 saja yang di open ?, kita nggak bisa remote server donk…

Tenang saja…, untuk kasus ini kita bisa menggunakan SSLH, yaitu sebuah SSL/SSH multiplexer. in akan listen untuk koneksi dengan port 443. SSLH mengijinkan kita untuk menjalankan beberapa program di port 443 di OS linux. jadi kita dapat menjalankan SSL dan SSH menggunakan port yang sama dalam waktu yang sama.

SSLH – Sharing sebuah Port untuk HTTPS, SSH, dan OpenVPN

SSLH saat ini sudah merupakan paket yang ada di sebagian distro linux, jadi kita tinggal install menggunakan package manager, semisal apt-get atau pacman dll.

Di Arch Linu dan turunannya, seperti  Antergos, Manjaro Linux bisa menggunakan Pacman

sudo pacman -S sslh

Di Debian, Ubuntu dan turunannya

sudo apt-get install sslh

Di RHEL, CentOS kamu perlu untuk menambahkan EPEL di repository dan kemudian isnatall SSLH

sudo yum install epel-release

sudo yum install sslh

Konfigurasi webserver Apache atau Nginx

seperti yang kita ketahui, Apache dan Nginx akan berjalan di port 443 untuk semua interface secara default (0.0.0.0:443), kita harus merubah setingan ini ke localhost (127.0.0.1:443 atau localhost:443)

Untuk melakukan ini, edit setingan webserver (nginx atau apache)

listen 443 ssl;

rubah ke

listen 127.0.0.1:443 ssl;

Jika menggunakan virtualhost di Apache, pastikan kita juga merubah setingan di bawah ini.

VirtualHost 127.0.0.1:443

Configure SSLH

Setelah melakukan perubahan di sisi webserver, sekarang kita rubah konfigurasi SSLH

sudo vi /etc/default/sslh

temukan baris berikut

Run=no

dan rubah menjadi

Run=yes

kemudian sedikit geser ke bawah dan modofikasi baris yang akan mengijinkan SSLH untuk listen di port 443 untuk semua interface

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

Dimana,

  • –user sslh : username.
  • –listen 0.0.0.0:443 : SSLH listen di port 443 untuk semua interface.
  • –sshs 127.0.0.1:22 : mengarahkan SSH traffic ke port 22 di localhost.
  • –ssl 127.0.0.1:443 : mengarahkan HTTPS/SSL traffic ke port 443 di localhost.