Bagaimana SSH muncul di port 22

SSH berjalan pada port 22 secara default. Ini bukan kebetulan. Ini adalah kisah bagaimana dia mendapatkan pelabuhan ini.

Ketika saya ( Tatu Ilonen ) pertama kali menerbitkan cerita ini pada April 2017, itu menjadi viral: itu dibaca oleh sekitar 120.000 pembaca dalam tiga hari.

Sejarah menerima port 22 untuk SSH


Saya menulis versi pertama SSH (Secure Shell) pada musim semi 1995. Telnet dan FTP banyak digunakan saat itu.

Tapi saya masih mengembangkan SSH untuk menggantikan telnet (port 23) dan ftp (port 21). Port 22 gratis dan berlokasi antara port untuk telnet dan ftp. Saya berpikir bahwa nomor port seperti itu mungkin salah satu dari detail kecil yang akan memberikan aura kepercayaan SSH. Tapi bagaimana cara mendapatkannya? Saya tidak pernah mengalokasikan port, tetapi saya tahu mereka yang melakukan ini.

Alokasi pelabuhan cukup mudah pada saat itu. Internet lebih kecil dan kami berada di tahap paling awal booming Internet. Nomor port dialokasikan oleh IANA (Internet Assigned Numbers Authority). Pada waktu itu, ini berarti perintis Internet yang dihormati John Postel dan Joyce C. Reynolds . Di antara hal-hal lain, John adalah editor protokol minor seperti IP (RFC 791), ICMP (RFC 792) dan TCP (RFC 793). Beberapa dari Anda mungkin pernah mendengar tentang mereka.

Terus terang saya takut oleh John sebagai penulis semua RFC utama untuk Internet!

Satu atau lain cara, tetapi sebelum pengumuman ssh-1.0 pada Juli 1995, saya mengirim email berikut ke IANA:

Dari ylo Mon 10 Jul 11:45:48 +0300 1995
Dari: Tatu Ylonen <ylo@cs.hut.fi>
Kepada: Otoritas Angka yang Ditugaskan Internet <iana@isi.edu>
Subjek: permintaan nomor port
Organisasi: Universitas Teknologi Helsinki, Finlandia

Dear Sir,

Saya menulis sebuah program untuk masuk secara aman dari satu mesin ke komputer lain melalui jaringan yang tidak aman. Ini adalah peningkatan keamanan yang signifikan atas protokol telnet dan rlogin yang ada serta implementasinya. Secara khusus, ini mencegah IP, DNS, dan routing spoofing. Rencana saya adalah mendistribusikan program ini secara bebas di Internet dan memastikan penggunaan seluas mungkin.

Saya ingin mendapatkan nomor port khusus terdaftar untuk program ini. Ini diinginkan dalam kisaran 1-255 sehingga dapat digunakan di bidang WKS pada server nama.

Di bawah ini saya menerapkan proyek RFC untuk protokol. Perangkat lunak ini telah digunakan secara lokal selama beberapa bulan dan siap untuk dipublikasikan, kecuali untuk nomor port. Jika Anda dapat dengan cepat menetapkan nomor port, saya ingin mengeluarkan program minggu ini. Saat ini saya menggunakan port 22 dalam pengujian beta. Akan lebih baik menggunakan nomor ini (saat ini terdaftar sebagai "tidak ditetapkan" dalam daftar).

Nama layanan untuk perangkat lunak adalah "ssh" (Secure Shell).

Salam

Tatu Ilonen <ylo@cs.hut.fi>

... maka spesifikasi protokol ssh-1.0 berikut

Hari berikutnya, surat dari Joyce ada di kotak masuk:

Tanggal: Sen, 10 Jul 1995 15:35:33 -0700
Dari: jkrey@ISI.EDU
Kepada: ylo@cs.hut.fi
Subjek: Re: permintaan nomor port
Cc: iana@ISI.EDU

Tato

Kami telah menetapkan port 22 untuk SSH, yang menetapkan Anda sebagai penghubung.

Joyce

Kami berhasil! Sekarang SSH memiliki port 22 !!!

Pada 12 Juli 1995 pukul 2:32 pagi, saya mengumumkan beta final untuk penguji beta saya di Universitas Helsinki. Pada 17:23 ia mengirim paket ssh-1.0.0 ke penguji, dan pada 17:51 ia mengirim pengumuman tentang SSH (Secure Shell) ke milis cypherpunks@toad.com . Saya juga menggandakan pengumuman di beberapa grup berita, milis dan langsung ke individu yang membahas topik terkait di Internet.

Mengubah port SSH di server


Secara default, server SSH masih berjalan pada port 22. Namun, ini terjadi secara berbeda. Salah satu alasannya adalah pengujian. Cara lainnya adalah menjalankan beberapa konfigurasi pada host yang sama. Jarang server berjalan tanpa hak root, dalam hal ini ia harus ditempatkan pada port yang tidak terjangkau (mis., Dengan jumlah 1024 atau lebih).

Nomor port dapat dikonfigurasi dengan mengubah direktif Port 22 di / etc / ssh / sshd_config . Ini juga ditentukan oleh parameter -p <port> di sshd . Klien SSH dan program sftp juga mendukung parameter -p <port> .

Menentukan Port SSH di Baris Perintah


Parameter -p <port> dapat digunakan untuk menentukan nomor port saat menghubungkan menggunakan perintah ssh di Linux. SFTP dan scp menggunakan parameter -P <port> (catatan: huruf kapital P). Instruksi dari baris perintah menimpa nilai apa pun dalam file konfigurasi.

Mengkonfigurasi Akses SSH Melalui Firewall


SSH adalah salah satu dari sedikit protokol yang sering diizinkan untuk bekerja melalui firewall untuk akses keluar, terutama di perusahaan kecil dan teknis. SSH masuk biasanya diizinkan untuk satu atau lebih server.

Ssh keluar


Menyiapkan ssh keluar di firewall sangat sederhana. Jika ada pembatasan lalu lintas keluar secara umum, buat saja aturan yang memungkinkan koneksi keluar pada port TCP 22. Itu saja. Jika Anda ingin membatasi alamat tujuan, Anda dapat membuat aturan yang sesuai dengan mengizinkan akses hanya ke server organisasi Anda di cloud atau ke server lompat yang melindungi akses ke cloud.

Membalikkan terowongan adalah risiko


Namun, SSH keluar tanpa batas bisa berisiko. Protokol SSH mendukung tunneling . Gagasan utamanya adalah bahwa server SSH pada server eksternal mendengarkan koneksi dari mana-mana, meneruskannya ke organisasi dan membuat koneksi dengan beberapa jenis server internal.

Dalam beberapa kasus, ini nyaman. Pengembang dan administrator sistem sering menggunakan tunneling untuk mendapatkan akses jarak jauh dari rumah atau dari laptop saat bepergian.

Tetapi biasanya tunneling melanggar kebijakan keamanan dan mengambil kendali dari administrator firewall dan tim IS. Misalnya, mungkin melanggar aturan PCI , HIPAA, atau NIST SP 800-53 . Ini dapat digunakan oleh peretas dan layanan khusus untuk meninggalkan backdoors di jaringan lokal.

Program CryptoAuditor mengontrol tunneling di firewall atau pada titik masuk ke sekelompok server cloud. Ini bekerja bersama dengan Universal SSH Key Manager untuk mendapatkan akses ke kunci host , menggunakannya untuk mendekripsi sesi SSH di firewall dan memblokir penerusan yang tidak sah.

Ssh masuk


Untuk akses masuk, ada beberapa opsi:

  • Konfigurasikan firewall untuk meneruskan semua koneksi ke port 22 ke alamat IP tertentu pada jaringan internal atau DMZ . Jalankan CryptoAuditor atau lompati server di alamat IP ini untuk mengontrol dan memverifikasi akses lebih lanjut ke organisasi.
  • Gunakan port yang berbeda pada firewall untuk mengakses server yang berbeda.
  • Hanya izinkan akses SSH setelah masuk menggunakan VPN, biasanya melalui IPsec .

Mengaktifkan SSH melalui iptables


Iptables adalah firewall host yang dibangun ke dalam kernel Linux. Biasanya dikonfigurasi untuk melindungi server dengan mencegah akses ke semua port yang tidak terbuka secara eksplisit.

Jika iptables diaktifkan di server, perintah berikut ini memungkinkan akses SSH masuk. Mereka harus dijalankan dari bawah root.

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT


Jika Anda ingin menjaga aturan selamanya, maka dalam beberapa sistem ini dapat dilakukan dengan perintah:

service iptables save

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


All Articles