Saya baru saja mulai bekerja di sebuah perusahaan kecil di mana CTO lebih memilih untuk meng-host SSH layanan dengan jelas, tinggi nomor port pada server kami melainkan dari terkenal port 22. Pemikirannya adalah bahwa "ini mencegah 99% script kiddy serangan." aku'm penasaran apakah ini dianggap praktek yang buruk.
Secara intuitif hal ini tampaknya masuk akal. Tapi kami berdua sebagian besar otodidak, dan aku tidak nyaman dengan ide improvisasi kita sendiri prosedur keamanan daripada mengikuti mapan konvensi. Saya tahu bahwa secara umum skema kriptografi dan protokol yang dirancang dengan susah payah oleh tim ahli, dan bahwa setiap detail adalah dimaksudkan untuk melindungi terhadap beberapa jenis serangan, tidak peduli seberapa signifikan mungkin tampak. Saya khawatir tentang konsekuensi yang tidak diinginkan dari perilaku yang menyimpang dari rekomendasi ini.
Tapi rekan saya tampaknya memiliki bukti di sisi-nya. Dia mampu menunjukkan bahwa kita mendapatkan puluhan serangan setiap hari yang coba port 22 dan hanya melanjutkan. Saya tahu bahwa umumnya kita harus menghindari keamanan melalui ketidakjelasan, tapi menjauh dari target umum benar-benar tampaknya untuk menggagalkan serangan paling.
Ini adalah praktik yang baik atau tidak? Kita harus menggunakan juga dikenal port?
TAMBAHAN
Kita tidak hanya bergantung pada mengaburkan port. Kami memiliki banyak langkah-langkah keamanan di tempat, termasuk wajib tombol hardware. Saya akan mengulang kembali pertanyaan saya lebih jelas.
Apakah ada alasan mengapa port 22 secara khusus dipilih untuk SSH? Apakah ada sesuatu yang berbahaya dalam menggunakan port lain?
Apakah hal itu meningkatkan keamanan untuk menggunakan mengaburkan nomor port?
Jika anda're sudah menggunakan entropi tinggi sandi atau otentikasi kunci publik, jawabannya adalah "tidak". Sebagian besar anda're hanya menyingkirkan kebisingan di log.
saya khawatir tentang konsekuensi yang tidak diinginkan dari perilaku yang menyimpang dari rekomendasi ini.
Itu tergantung pada apa yang port diangkat. Di Linux, secara default semua port dibawah 1024 memerlukan akses root untuk mendengarkan pada mereka. Jika anda're menggunakan port diatas 1024, setiap akun pengguna dapat mendengarkan pada hal jika ada's tidak sudah proses mendengarkan.
Mengapa hal ini penting? Let's mengatakan anda memilih untuk mengatur ssh untuk mengikat ke port 20,000
. Jika seseorang bisa berhenti SSH proses pada server (let's mengatakan mereka entah bagaimana menemukan cara untuk crash proses), dan memiliki akses lokal ke server tersebut, mereka kemudian bisa berjalan sendiri SSH server pada port 20,000
sebelum pelayanan dimulai. Siapa pun yang masuk kemudian akan masuk ke orang-orang jahat SSH server.
Ini isn't sebagai masalah besar seperti itu digunakan untuk menjadi, karena hari-hari ini's hanya dipercaya staf yang diberi akses login ke server. Tapi tetap saja, itu memang memiliki potensi untuk peningkatan hak istimewa dan lain nastiness jika penyerang mendapat pijakan pada server anda.
Selain menjadi dibawah 1024, ada's tidak ada yang khusus tentang jumlah 22. Sebagian besar itu dipilih karena SSH adalah pengganti telnet di port 23
, dan 21
itu sudah diambil oleh FTP. Asalkan anda memilih port yang di bawah ini 1024
, pelabuhan doesn't benar-benar peduli.
ini Adalah praktik yang baik atau tidak? Kita harus menggunakan juga dikenal port?
Saya tidak't mengatakan saya merekomendasikan hal ini. Saya juga tidak't menyarankan agar hal itu. Seperti yang saya katakan, ini menghindari banyak suara dalam file log, tapi manfaat adalah sebagian besar terbatas untuk itu.
Bagi siapapun yang tertarik dalam cerita latar belakang pada SSH, anda dapat menemukannya di: https://www.ssh.com/ssh/port
Ya, itu tidak. Pertanyaannya adalah: seberapa banyak?
Mengapa tidak? Anda sudah memiliki dasar keamanan, sehingga sehari-hari serangan bot don't khawatir anda. Tapi mungkin ada 0 hari besok dan para penyerang tahu tidak't akan lama sampai patch, sehingga mereka berebut untuk menggunakannya dan tidak't repot-repot dengan sesuatu yang rumit - mereka hanya akan memukul sebanyak mungkin mesin pada port standar. Setiap jenis teoretis SSH worm juga akan menggunakan strategi ini. Anda akan dilindungi terhadap itu.
Berapa banyak keamanan tambahan ini tidak mendapatkan anda? Ini melindungi terhadap ini dan mungkin 2-3 lain skenario tertentu. Itu akan menambah beberapa menit di terbaik untuk setiap serangan yang ditargetkan oleh siapa saja yang tidak idiot. Itu tidak apa-apa untuk skenario anda yang sudah cukup dilindungi terhadap.
Memasukkan angka-angka ke favorit anda metode analisa risiko dan anda harus datang dengan sesuatu yang relatif kecil. Pada sisi negatifnya, anda harus menambahkan upaya pengaturan port non-standar nomor, mendokumentasikan, mungkin hilang selama memecahkan dan membuang-buang waktu, dll.
Saya duga adalah bahwa anda akan hanya tentang impas dengan analisis. Atau, dengan kata lain: Ya, itu tidak meningkatkan keamanan, tetapi itu's tidak layak kesulitan karena peningkatan ini sangat kecil.
Tidak, itu tidak akan meningkatkan keamanan. Hal ini dapat mengurangi log kekacauan, karena otomatis serangan hanya akan mencoba default port untuk misalnya ssh. Tapi port akan tetap muncul sebagai SSH di port scan, dan shodan.io.
Mereka otomatis serangan ini biasanya bertujuan untuk buah tergantung rendah, dengan standar nama pengguna seperti akar, smith dan sebagainya, dan password yang lemah. Jika mereka berhasil, anda memiliki masalah di tempat pertama.
Jika anda mengkonfigurasi ssh untuk hanya memungkinkan otentikasi kunci, melarang root login, dan menggunakan akal password, gunakan fail2ban atau mekanisme yang sama untuk memblokir pelaku, mereka're ancaman nyata.
Saya menggunakan fail2ban dikonfigurasi untuk memblokir sementara untuk lima menit setelah tiga kali gagal, dan selama seminggu setelah 3*5 kali gagal. Hal ini akan mengurangi log kekacauan dan blok kemajuan nyata pada brute force attack.
Untuk target penyerang itu akan membuat tidak ada perbedaan yang port-hal yang mendengarkan. Itu hanya hal-hal yang secara otomatis serangan yang, dalam pendapat saya, diabaikan risiko.
Mengubah port default yang dapat menyelamatkan anda dari port scan dan script kiddies tapi anda mungkin tidak akan mampu bertahan terhadap serangan yang ditargetkan di mana penyerang dapat mengidentifikasi menjalankan layanan yang tidak relevan ke pelabuhan.
Jika anda ingin hanya pergi form script kiddies ini mungkin dapat membantu, tetapi anda mungkin tidak dapat untuk mengamankan diri anda dari sisa uang muka serangan.
Rekomendasi saya adalah untuk menggunakan port default (dapat mengurangi overhead administrasi) dan menggunakan multi-faced keamanan pertahanan untuk mengurangi serangan.
Misalnya dengan default port yang di gunakan, menggunakan sertifikat otentikasi berbasis dengan SSH diperbolehkan untuk tertentu saja sumber terpercaya.
Saya akan mengatakan ya, gunakan non-normal nomor port ini akan menyaring BANYAK otomatis bot. tapi don't bergantung pada itu, seperti yang banyak bot saya telah melihat akan memindai jaringan/host untuk setiap port yang terbuka dan mencoba mereka.
Hal terbaik adalah untuk menerapkan beberapa keamanan yang baik pada port SSH. menonaktifkan login root, whitelist Ip jika anda bisa, don't menggunakan password untuk login ( gunakan tombol ), juga mengaktifkan pemberitahuan untuk setiap login. Dan setup firewall, ini penting.
Menutupi port pada angka tinggi seperti ini hanya berhenti sederhana bot yang akan mencari well known port. Script kiddies dan ditentukan hacker hanya bisa scan port sisanya dari berbagai pelabuhan untuk menemukan layanan, sehingga anda hanya berhenti beberapa log kebisingan.
Itu doesn't benar-benar peduli tentang konvensi tidak mendengarkan pada port standar untuk layanan tersebut. Para pengembang layanan yang memberikan anda pilihan untuk menjalankannya pada port lain, dan setiap program yang dapat berinteraksi dengan itu akan memiliki pilihan untuk menentukan apa yang port anda ingin berbicara dengan.
Saya setuju dengan posting yang lain di sini yang sensitif port seperti SSH harus disimpan dalam istimewa pelabuhan ruang bawah 1024.
Cara yang lebih baik untuk mengaburkan SSH yang benar-benar bekerja untuk melakukan port knock. Ini melibatkan penutupan pelabuhan di iptables sampai urutan port telah "mengetuk" yang kemudian akan membuka port yang diinginkan.
MISALNYA anda mungkin mengirim paket ke 8000 4545 28882 7878. Setelah anda urutan yang diinginkan adalah masuk iptables akan membuka port yang diinginkan. Ini benar-benar tidak berhenti mayoritas dari script kiddies dan hacker sebagai port tidak diiklankan. Tapi ini tidak berhenti terhadap serangan replay, tapi pada titik ini anda memiliki masalah yang lebih besar untuk khawatir tentang .
https://en.wikipedia.org/wiki/Port_knocking.
Benar-benar anda harus menggunakan TCPWrappers dan hanya membiarkan dikenal ips dan rentang jaringan akses port seperti SSH. Apakah anda perlu untuk membiarkan IP's dari cina akses SSH? Atau akan pengembang hanya perlu akses dari kantor LAN? Jika mereka bekerja jauh membuat mereka VPN ke LAN
Seperti yang disebutkan oleh orang lain, migrasi ke port non-standar ini bukan merupakan solusi keamanan karena anda menyaring hanya naïve-tingkat serangan.
Waktu yang sama, migrasi dapat menjadi jauh lebih berharga jika dikombinasikan dengan tindakan pencegahan lainnya. Misalnya, anda menempatkan sebuah honeypot pada port standar (lingkungan yang secara fisik terisolasi dari seluruh sistem anda, tetapi sepertinya legit bagian untuk penyerang). Kemudian, jika anda melihat seseorang masuk dalam honeypot itu's sangat mungkin menjadi hacker sehingga anda dapat auto-ban atau begitu.
Dan tentunya, anda tidak harus menggunakan versi lama dari perangkat lunak dengan kerentanan diketahui, terlepas nomor port mereka're mengikat untuk mendengarkan.
Tidak, itu tidak, atau jika saya ingin menjadi lebih tepat, it's salah perlindungan terhadap ancaman.
Mengambil langkah mundur: apa ancaman yang kita inginkan untuk melindungi dari? Ancaman kita're berusaha untuk melindungi dari ada orang di internet publik yang dapat memotong normal mekanisme otentikasi. Yang's apa ini "script kiddies" coba lakukan: akses server menggunakan SSH meskipun mereka're tidak berwenang. Secara khusus, anda segala keinginan untuk mencegah penyerang ini bahkan mampu untuk mulai membangun sebuah koneksi SSH.
Apa's standar teknologi untuk mencegah pembentukan koneksi jaringan? Firewall. Standar jawaban untuk masalah ini adalah dengan hanya memblokir port 22 sama sekali di luar lalu lintas. Masalah yang lebih besar di sini adalah bahwa SSH ini tersedia untuk umum di internet sama sekali, dan firewall memecahkan ini benar-benar, sementara tidak jelas port hanya menyembunyikan sedikit dan doesn't benar-benar mencegah koneksi. Jika akses eksternal diperlukan, jawaban standar untuk memungkinkan ini resmi akses VPN ke jaringan. Ini akan memblokir script kiddies dan pengetahuan penyerang yang bisa mencari tahu bagaimana untuk menemukan port yang anda're-benar menggunakan.
Jika anda kehilangan 1% dari penyerang, anda masih kalah. Anda membutuhkan perlindungan yang bekerja melawan 100% dari penyerang. Jika bukan anda yang berhasil memblokir 100% dari penyerang (sejauh ini), maka anda harus lebih kuat perlindungan di tempat. Ini perlindungan lainnya membuat jelas port yang tidak relevan, dan jika itu (mudah-mudahan) kasus, semua menggunakan port lain tidak membingungkan orang-orang yang kurang akrab dengan sebenarnya praktik keamanan seperti diri sendiri dan, sangat mungkin, buang-buang waktu orang-orang yang mencoba untuk mendapatkan akses yang sah ketika mereka mencoba untuk menghubungkan (sistem baru tidak dikonfigurasi dan harus meminta seseorang port yang benar, admin lupa untuk memberitahu orang-orang tentang port non-standar dan seseorang harus repot-repot lagi untuk mendiagnosa masalah, dll.).
Ini adalah mengapa kita kecapi tentang "keamanan melalui ketidakjelasan" dan Kerckhoffs's prinsip. Kita harus menghindari mengganggu diri dengan praktek-praktek yang don't benar-benar melindungi kita. Kami harus menghemat waktu dan usaha untuk perlindungan yang benar-benar bekerja dan menghindari rasa palsu "keamanan" yang ini kebingungan metode memberi kita.
Saya ingin menambahkan bahwa pada akhirnya, keamanan adalah permainan tentang sumber daya di kedua sisi. Waktu adalah sumber daya tersebut.
Ukuran ini adalah membuang-buang penyerang waktu jadi's tidak seburuk itu. Anda juga dapat belajar tentang penyerang sumber daya ketika mereka masih terhubung ke port kustom. Mungkin ada's bunga yang lebih tinggi untuk target anda pada khususnya.
Namun jika hal ini menambahkan overhead yang signifikan untuk tugas administrasi anda, anda mungkin ingin menginvestasikan waktu anda di tempat lain. Jika tidak maka lakukan tapi don't bergantung pada itu.
Menggunakan port non-standar untuk sangat rentan aplikasi adalah praktek yang SANGAT BAIK. SSH memiliki banyak kerentanan dan 22 adalah umum port default untuk brute force.
Bahwa menjadi kata, itu mungkin tergantung. It's sangat umum, terutama di lingkungan perusahaan, untuk melihat serangan brute force pada DMZ server terhadap port 22. Banyak perusahaan, keuangan, misalnya, menggunakan port default untuk SSH/SFTP lalu lintas yang berlaku untuk transfer data antar organisasi.
Ide dalam kasus itu adalah lebih lanjut tentang menyaring beberapa kebisingan (Port 22 Brute Forcing) sehingga lalu lintas lainnya di port alternatif yang lebih mudah untuk memantau. Siapa pun yang cukup baik dapat menemukan port yang terbuka di internet menghadapi server.
Ini dianggap sebagai bentuk risiko mitigasi atau pengurangan risiko.
Edit: saya harus menambahkan: Ketika saya mengatakan praktek yang baik, saya'm mengacu pada praktik yang baik di internet anda menghadapi perangkat. Apa-apa di belakang firewall adalah umumnya aman.