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.