Mengapa mengubah port ssh default?

Jawaban:

27

Alasan yang paling mungkin adalah untuk membuatnya lebih sulit bagi orang-orang yang secara acak mencoba memaksakan masuknya SSH yang dapat mereka temukan. Mesin yang menghadap internet saya menggunakan port SSH default, dan log saya dulu diisi dengan hal-hal seperti ini (disarikan dari file log aktual):

sshd[16359]: Invalid user test from 92.241.180.96
sshd[16428]: Invalid user oracle from 92.241.180.96
sshd[16496]: Invalid user backup from 92.241.180.96
sshd[16556]: Invalid user ftpuser from 92.241.180.96
sshd[16612]: Invalid user nagios from 92.241.180.96
sshd[16649]: Invalid user student from 92.241.180.96
sshd[16689]: Invalid user tomcat from 92.241.180.96
sshd[16713]: Invalid user test1 from 92.241.180.96
sshd[16742]: Invalid user test from 92.241.180.96
sshd[16746]: Invalid user cyrus from 92.241.180.96
sshd[16774]: Invalid user temp from 92.241.180.96
sshd[16790]: Invalid user postgres from 92.241.180.96
sshd[16806]: Invalid user samba from 92.241.180.96

Hari ini saya menggunakan DenyHosts untuk memblokir IP yang gagal mengotentikasi terlalu banyak, tetapi mungkin hanya mudah untuk hanya berpindah porta; hampir semua serangan brute force semacam ini tidak akan mengganggu pemindaian untuk melihat apakah sshd Anda mendengarkan di port lain, mereka hanya akan menganggap Anda tidak menjalankan satu dan melanjutkan

Michael Mrozek
sumber
15

Tidak, ini keamanan karena ketidakjelasan taktik yang .

Jika pengaturan sshd Anda tidak cukup memadai untuk menghadapi kiddies skrip bodoh yang hanya mencoba port 22, Anda tetap memiliki masalah.

Reaksi yang lebih rasional adalah:

  • pastikan bahwa pengguna Anda menggunakan kata sandi yang baik yang sulit ditebak / kasar
  • nonaktifkan otentikasi kata sandi (setidaknya untuk akun penting) dan cukup gunakan otentikasi kunci publik
  • hati-hati terhadap masalah keamanan dan peningkatan ssh

Beberapa orang mungkin juga terganggu oleh noise sshd yang menulis ke log sistem, misalnya:

Jan 02 21:24:24 example.org sshd[28396]: Invalid user guest from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28396]: input_userauth_request: invalid user guest [preauth]
Jan 02 21:24:24 example.org sshd[28396]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Jan 02 21:24:24 example.org sshd[28398]: Invalid user ubnt from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28398]: input_userauth_request: invalid user ubnt [preauth]
Jan 02 21:24:24 example.org sshd[28398]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth

Mungkin tergoda untuk mengaburkan port sshd atau menggunakan solusi pemblokiran otomatis (seperti DenyHosts, Fail2ban, atau BlockHosts) untuk meningkatkan rasio sinyal-ke-noise lagi.

Tapi ada alternatif yang lebih baik. Sebagai contoh, Anda dapat mengkonfigurasi daemon syslog Anda sehingga kebisingan log sshd hanya ditulis untuk - katakan - /var/log/sshd-attempts.logdan sinyal (yaitu pesan log sshd yang tersisa) ditulis ke /var/log/messagesdll seperti sebelumnya.

Penyebaran alat blocking otomatis harus dipertimbangkan secara hati-hati karena menambah kompleksitas keamanan berarti sistem yang relevan juga meningkatkan risiko dari eksploitasi . Dan memang, selama bertahun-tahun, ada beberapa laporan kerentanan DoS untuk setiap DenyHosts , Fail2ban , dan BlockHosts .

maxschlepzig
sumber
4
Saya tidak benar-benar setuju dengan "keamanan oleh ketidakjelasan" Saya pikir itu, jawaban itu adalah kesalahan umum dalam kasus ini. @ Alasan Michael umumnya menunjukkan alasan yang lebih baik untuk memilikinya di tempat lain. Sebagian besar hanya untuk menyingkirkan semua serangan botted scripted. Tidak berarti Anda takut pada mereka, atau menganggapnya efektif terhadap penyerang yang gigih. Saya tahu saya tidak pernah khawatir mereka akan benar-benar masuk. Tapi semua log cruft itu mengganggu.
xenoterracide
1
@ xenoterracide: Jika Anda hanya khawatir tentang keterbacaan file log Anda maka ada alternatif lain yang lebih baik untuk mengecualikan kebisingan daripada mengubah port sebagai taktik yang tidak jelas, yang merupakan pertanyaan. Mengenai pemblokiran IP, yang bukan bagian dari pertanyaan: Harap dicatat bahwa menambahkan lebih banyak kompleksitas ke sistem keamanan yang relevan berarti juga meningkatkan risiko eksploitasi. Pertimbangkan misalnya seclists.org/fulldisclosure/2007/Jun/121 ossec.net/main/attacking-log-analysis-tools . Ya, DenyHosts terpengaruh oleh ini.
maxschlepzig
1
Ada lebih dari sekedar keterbacaan dalam pikiran. Perubahan port yang didokumentasikan dengan benar bukanlah keamanan karena ketidakjelasan.
xenoterracide
4

Mengubah port SSH sebagian besar adalah teater keamanan . Ini memberi Anda perasaan kabur telah melakukan sesuatu. Anda telah menyembunyikan port SSH di bawah keset.

Jika Anda menjalankan server SSH di Internet, Anda akan melihat banyak upaya gagal login di log Anda, dari bot yang mencari kata sandi yang sangat lemah , kunci yang lemah dan eksploitasi yang diketahui di server versi lama. Upaya yang gagal hanya itu: gagal upaya yang . Sejauh mengevaluasi seberapa rentan Anda, mereka sama sekali tidak relevan. Yang perlu Anda khawatirkan adalah upaya intrusi yang berhasil, dan Anda tidak akan melihatnya di log Anda.

Mengubah port default akan mengurangi jumlah hit oleh bot seperti itu, tetapi itu hanya menggagalkan penyerang paling canggih yang dihentikan oleh keamanan yang layak (pembaruan keamanan diterapkan secara teratur, kata sandi yang cukup kuat atau otentikasi kata sandi yang dinonaktifkan). Satu-satunya keuntungan adalah mengurangi volume log. Jika itu masalah, pertimbangkan sesuatu seperti Denyhosts atau Fail2ban untuk membatasi kecepatan koneksi, itu juga akan membuat bandwidth Anda bagus.

Mengubah port default memiliki kelemahan besar: itu membuat Anda cenderung tidak dapat masuk dari balik firewall. Firewall lebih memungkinkan untuk membiarkan layanan melalui port default mereka daripada pada beberapa port acak lainnya. Jika Anda tidak menjalankan server HTTPS, pertimbangkan untuk membuat SSH juga mendengarkan pada port 443 (atau mengalihkan permintaan TCP yang masuk dari port 443 ke port 22), karena beberapa firewall memungkinkan lalu lintas yang tidak dapat mereka dekode pada port 443 karena terlihat seperti HTTPS.

Gilles 'SANGAT berhenti menjadi jahat'
sumber