SSLH: Sembunyikan SSH / HTTPS / OpenVPN / Telegram di belakang satu port 443

gambar

SSH / HTTPS / OpenVPN / Telegram dan semuanya pada satu port ?! Apa?
- Ya!
  • Ingin menyembunyikan keberadaan beberapa layanan Anda?
  • Apakah semuanya kecuali 443 (https) port diblokir pada jaringan wi-fi publik?
  • Sudahkah Anda mengonfigurasi Telegram Proxy / OpenVPN dan tidak ingin "menyinari" itu?
  • Koneksi SSH ke server Anda dari negara yang disensor?

Hanya ada satu jawaban untuk semua pertanyaan ini - Koneksi SSL / TLS multiplexing, atau SSLH.

Dalam posting, kita akan melihat cara menyembunyikan sekelompok layanan dalam 1 perintah di belakang 1 port .

Mengapa


Dengan rilis Telegram Proxy baru-baru ini, yang hampir sepenuhnya mirip dengan lalu lintas SSL, sebuah pertanyaan menarik telah muncul di komentar di pos :
Newton :
Saya punya pertanyaan yang cukup noob - apakah benar-benar tidak mungkin untuk mendapatkan ini bersama dengan sslh?
Setelah memeriksa kemampuan aplikasi sslh dengan cepat, saya merasa bahwa saya tidak akan dapat memulainya, tetapi saya sangat tertarik dengan aplikasi ini, dan, ternyata, saya masih dapat melintasinya dengan landak .

Bagaimana?


Aplikasi SSLH adalah multiplexer, dengan kata lain, ia menganalisis lalu lintas (benar-benar melakukan pekerjaan mini-DPI) dan, tergantung pada jenis lalu lintas, mengirimkannya ke port lokal 8443/999/991 atau ...

Yang memungkinkan kita menggunakan teknologi DPI untuk pertama kalinya demi keuntungan .

Tantangan


Untuk contoh menggunakan SSLH, kami menetapkan tugas:

Aplikasi berikut diinstal di server - Telegram Proxy, Apache, SSH dan kami ingin membiarkan semua layanan ini masuk ke dunia melalui port 443.

Server dalam contoh kami adalah Ubuntu 16.04.4 LTS, Apache2 + LetsEncrypt, SSH, Telegram Proxy in Docker.

Saat ini, Apache sedang mengerjakannya, sebagaimana mestinya.

Instalasi & Pengaturan


Instal SSLH:

sudo apt-get install --no-install-recommends sslh 

Selama instalasi, sebuah pertanyaan akan ditanyakan tentang mode penggunaan, ada dua di antaranya:

  • stabil tetapi lebih banyak sumber daya intensif
  • cepat, tetapi dengan kehilangan koneksi saat proses jatuh

Saya untuk opsi kedua, tentu saja, Anda dapat memilih yang lain.

Periksa apakah mukjizat kita bekerja dengan perintah berikut:

 sudo sslh-select -f --listen IP:8443 --tls 127.0.0.1:443 --ssh 127.0.0.1:22 --anyprot 127.0.0.1:9443 

IP - server IP eksternal
8443 - port tempat multiplexer kami akan diluncurkan
443 - tempat tinggal Apache
Perhatikan opsi anyprot - ini adalah tempat Proxy Telegram kami akan hidup, dengan kata lain, jika lalu lintas tidak cocok dengan jenis apa pun - kirim ke sana.

Perhatian! Jika konfigurasi Anda tidak memiliki Telegram atau SSH, hapus kunci startup tambahan.

Lihat itu?


Buka browser di alamat server Anda dengan port 8443 - Anda akan melihat respons dari Apache, lalu coba sambungkan melalui SSH atau melalui Telegram Proxy.

Porting Apache ke Port Lain


Untuk mentransfer Apache dari port standar (443) ke yang lain, misalnya ke 7443, kunjungi file berikut:

 sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf 

Dalam contoh, Apache + SSL / HTTPS diinstal menggunakan LetsEncrypt dengan sertifikat berbeda, file konfigurasi dapat dengan cara lain.

Mulai otomatis


Sudah waktunya untuk mengatur autorun.

Edit file:

 sudo nano /etc/default/sslh 

Di bidang DAEMON_OPTS = , tambahkan atribut saat menjalankan perintah sslh-select, atur RUN ke = yes.

Jalankan:

 sudo systemctl start sslh 

Pastikan semuanya baik-baik saja:

 sudo systemctl status sslh 

Apa hasilnya?


Setelah menyelesaikan tutorial ini, Anda harus memiliki server yang memiliki beberapa layanan yang tersedia melalui satu port (yang mana pilihan Anda) .

Bagaimana dengan OpenVPN? Protokol apa yang masih bisa dilakukan aplikasi?


Pada saat penulisan, sslh dapat mendeteksi dan multiplexing protokol-protokol berikut:
 [--ssh <addr>] [--openvpn <addr>] [--tinc <addr>] [--xmpp <addr>] [--http <addr>] [--ssl <addr>] [--tls <addr>] [--anyprot <addr>] 

Sebelum menggunakan, lebih baik memastikan protokol mana yang didukung versi Anda , (tiba-tiba itu lebih baru) menggunakan:

 sslh-select -h 


Referensi


Pengembangan SSLH dilakukan di github, dalam repositori ini: github.com/yrutschle/sslh

Docker


Saya tidak berhasil mengumpulkan versi kerja sslh di buruh pelabuhan bersama dengan semua layanan lain, menurut pendapat saya file pembuat docker yang dapat diangkat pada port 443 akan menarik:
  • Apache + LetsEncrypt
  • Proxy Telegram
  • OpenVPN (opsional)
  • Gunakan SSH lokal


Jika seseorang berhasil - tulis di komentar - tambahkan ke artikel, menurut saya, itu akan berguna.

Anda mungkin juga tertarik.


Source: https://habr.com/ru/post/id412779/


All Articles