Apakah mengubah nomor port default sebenarnya meningkatkan keamanan?

69

Saya telah melihat saran yang mengatakan Anda harus menggunakan nomor port yang berbeda untuk aplikasi pribadi (mis. Intranet, database pribadi, apa pun yang tidak akan digunakan orang luar).

Saya tidak sepenuhnya yakin itu dapat meningkatkan keamanan karena

  1. Pemindai port ada
  2. Jika suatu aplikasi rentan, tetap demikian terlepas dari nomor portnya.

Apakah saya melewatkan sesuatu atau sudahkah saya menjawab pertanyaan saya sendiri?

Sam
sumber
30
Satu hal yang saya lakukan adalah menggunakan port default tertentu (misalnya, port SSH 22) sebagai pot madu. Siapa pun yang mencoba terhubung ke port-port tersebut diblokir sepenuhnya untuk xjumlah waktu. Ini telah terbukti efektif terhadap pemindaian port. Tentu saja, ini hanya satu alat di kotak alat keamanan.
Belmin Fernandez
Pertanyaan umum tentang keamanan melalui ketidakjelasan diajukan di sini: security.stackexchange.com/questions/2430/…
Tony Meyer
baik itu mungkin menjadi hambatan untuk "scripting kids"
Lukasz Madon
1
@ BelminFernandez, "satu alat di kotak alat keamanan" ? Tidak, ini untuk mengurangi beban server (kinerja) dan tidak ada hubungannya dengan keamanan selain ilusi semata. Dari segi keamanan, sama sekali tidak perlu jika server sudah kuat, dan jika server rentan, itu tidak membuatnya lebih aman.
Pacerier
@Pacerier, Setuju bahwa upaya dan fokus harus diterapkan pada penerapan praktik keamanan yang lebih solid. Namun, tidak ada alasan mengapa Anda tidak dapat melakukan keduanya.
Belmin Fernandez

Jawaban:

68

Itu tidak memberikan pertahanan serius terhadap serangan yang ditargetkan. Jika server Anda ditargetkan maka, seperti yang Anda katakan, mereka akan memindai port Anda dan mencari tahu di mana pintu Anda.

Namun, memindahkan SSH dari port default 22 akan mencegah beberapa jenis serangan kiddie script non-target dan amatir. Ini adalah pengguna yang relatif tidak canggih yang menggunakan skrip untuk port memindai blok besar alamat IP pada suatu waktu khusus untuk melihat apakah port 22 terbuka dan ketika mereka menemukannya, mereka akan meluncurkan semacam serangan di atasnya (brute force, serangan kamus, dll). Jika mesin Anda berada dalam blok IP yang sedang dipindai dan tidak menjalankan SSH pada port 22, maka ia tidak akan merespons dan karenanya tidak akan muncul dalam daftar mesin yang akan diserang oleh skrip kiddie ini. Ergo, ada beberapa keamanan tingkat rendah yang disediakan tetapi hanya untuk jenis serangan oportunistik.

Sebagai contoh, jika Anda memiliki waktu - log menyelam di server Anda (dengan asumsi SSH ada di port 22) dan tarik semua upaya SSH gagal unik yang Anda bisa. Kemudian pindahkan SSH dari port itu, tunggu beberapa saat, dan masuk log diving lagi. Anda pasti akan menemukan lebih sedikit serangan.

Saya dulu menjalankan Fail2Ban di server web publik dan itu benar-benar jelas ketika saya memindahkan SSH dari port 22. Ini memotong serangan oportunistik atas perintah besarnya.

jdw
sumber
3
Sepakat. Saya melihat penurunan yang sangat mirip ketika bereksperimen dengan memindahkan SSH ke port non-standar. Untungnya dengan otentikasi kata sandi dinonaktifkan, ini benar-benar bukan masalah.
EEAA
3
Jawaban terbaik di sini sejauh ini. Semua bermuara pada siapa yang menyerang. Saya pernah membantu admin sebuah sistem yang terkena serangan zero-day dari kiddie pemindaian. Agaknya dalam MS-RDP karena kami tidak memiliki IIS terkena oleh firewall. Tuan rumah kami tidak akan mengizinkan kami untuk mengubah port RDP (hosting yang dikelola) jadi kami pada dasarnya harus duduk di sana sementara mereka mengerjakan pola baru untuk penyaringan IDS / IPS mereka. Meskipun mungkin tidak banyak membantu untuk server yang lebih mapan seperti SSH yang tampaknya memiliki masalah keamanan kurang dari beberapa produk MS.
Matt Molnar
9
Setuju setuju. Keamanan adalah semua tentang lapisan, dan semakin banyak yang Anda miliki, semakin aman Anda. Ini mungkin lapisan yang lemah, tapi tetap saja lapisan. Selama itu tidak hanya diandalkan, itu hanya dapat menambah keamanan.
Paul Kroon
1
Poin lain untuk memindahkan SSH dari port 22 adalah bahwa sejumlah besar SSH mencoba ditambah layanan karena Fail2Ban terkadang dapat menghabiskan waktu CPU yang berharga. Mungkin diabaikan di atas perangkat keras baris tetapi beberapa server yang lebih tua dapat mengalami lonjakan CPU. Ini waktu CPU, memori dan bandwidth yang dapat Anda gunakan untuk hal-hal lain.
artifex
Saya telah melakukan hal yang sama dengan RDP pada Server 2003 - secara substansial mengurangi jumlah entri otentikasi yang gagal di Peraga Peristiwa.
Moshe
43

Sangat membantu menjaga log tetap bersih.

Jika Anda melihat upaya gagal dengan sshd berjalan pada port 33201 Anda dapat dengan aman berasumsi bahwa orang tersebut menargetkan Anda dan Anda memiliki opsi untuk mengambil tindakan yang sesuai jika Anda inginkan. Seperti menghubungi pihak berwenang, menyelidiki siapa orang ini mungkin ( dengan referensi silang dengan IP pengguna terdaftar Anda atau apa pun), dll.

Jika Anda menggunakan port default maka tidak mungkin untuk mengetahui apakah seseorang menyerang Anda atau itu hanya orang idiot yang melakukan pemindaian acak.

Thomas Bonini
sumber
8
perbedaan yang luar biasa
ZJR
3
+1 Ini adalah argumen terbaik untuk mengubah nomor port yang pernah saya dengar dan sejauh ini satu-satunya hal yang akan memikat saya untuk melakukannya
squillman
2
+1 Ini adalah poin yang bagus. Ancaman yang ditargetkan jauh lebih berbahaya daripada penyelidikan acak (skrip kiddies hanya beralih ke target yang lebih mudah jika Anda memiliki keamanan yang layak). Penyerang yang ditargetkan mungkin tahu lebih banyak tentang kerentanan tertentu atau bahkan pola kata sandi. Adalah baik untuk dapat mengenali serangan-serangan ini di luar kerumunan spam pada port 22.
Steven T. Snyder
1
Ini salah. Saya telah melihat setidaknya satu server dikompromikan melalui pemindaian pada port SSH yang tidak standar. Tidak ada alasan yang melekat mengapa penyerang tidak dapat memindai port lain juga.
Sven Slootweg
@SvenSlootweg, Benar, terutama dengan komputer yang semakin cepat dan lebih murah, pemindaian yang mengambil 65535 kali lebih lama tidak lagi lebih lama lagi.
Pacerier
28

Tidak, tidak. Tidak juga. Istilah untuk ini adalah Security by Obscurity dan ini bukan praktik yang dapat diandalkan. Anda benar dalam kedua poin Anda.

Keamanan oleh Obscurity yang terbaik akan menghalangi upaya kasual yang hanya berkeliling mencari port default mengetahui bahwa pada titik tertentu mereka akan menemukan seseorang yang meninggalkan pintu depan terbuka. Namun, jika ada ancaman serius yang Anda hadapi untuk mengubah port deault paling lambat memperlambat serangan awal, tetapi hanya sedikit saja karena apa yang sudah Anda tunjukkan.

Bantulah diri Anda sendiri dan biarkan port Anda terkonfigurasi dengan benar, tetapi lakukan tindakan pencegahan yang tepat untuk menguncinya dengan firewall yang tepat, otorisasi, ACL, dll.

squillman
sumber
17
Proyeksi kata sandi dan enkripsi (kuat) ke dalam gagasan keamanan oleh ketidakjelasan sedikit berlebihan, menurut pendapat saya sendiri ...
squillman
5
Hanya menggunakan 8 karakter dengan kisaran penuh karakter alfabet dan numerik (dan bahkan tidak memungkinkan karakter khusus) jumlah kombinasi yang mungkin adalah 62 ^ 8 (218.340.105.584.896). 65535 bahkan tidak di alam semesta yang sama dengan itu, bahkan ketika menggunakan detektor port scan. Catatan, saya mengabaikan kata sandi yang lemah.
squillman
3
Sekali lagi , "bukan seolah-olah port non-standar adalah seluruh aparat keamanan". Setiap sedikit membantu. Ini adalah tweak 10 detik yang, jika tidak ada yang lain, akan menghentikan server Anda muncul ke seseorang yang mencari SSH untuk mulai mengetuk pintu.
ceejayoz
8
Ah. Melacak port non-standar tidak sesuai dengan buku saya. Saya akan setuju untuk tidak setuju dengan siapa pun ... Menambahkan langkah-langkah lebih lanjut di luar mengubah port tentu saja merupakan bagian dari persamaan dan saya lebih suka menyerahkan semuanya pada potongan-potongan teka-teki.
squillman
6
Dari apa yang saya lihat port non-standar telah menjadi sangat standar. 2222 untuk ssh, 1080, 8080, 81, 82, 8088 untuk HTTP. Jika tidak, itu menjadi terlalu jelas dan Anda bertanya-tanya apa layanan pada port 7201 dan mengapa Anda tidak dapat terhubung ke ssh pada 7102.
BillThor
13

Ini sedikit tingkat ketidakjelasan, tetapi bukan kecepatan-benjolan yang signifikan di jalan menuju peretasan. Konfigurasi yang lebih sulit untuk mendukung jangka panjang karena segala sesuatu yang berbicara dengan layanan tersebut harus diceritakan tentang port yang berbeda.

Sekali waktu itu adalah ide yang baik untuk menghindari cacing jaringan, karena mereka cenderung memindai hanya satu port. Namun, waktu cacing yang cepat berkembang biak sekarang sudah lewat.

sysadmin1138
sumber
2
+1 untuk masalah konfigurasi & dukungan yang lebih sulit. Membuat Anda membuang waktu yang bisa dihabiskan untuk mengamankan pintu (daripada harus mencari di mana di rumah Anda telah meletakkannya).
Macke
12

Seperti yang orang lain tunjukkan, mengubah nomor port tidak menawarkan Anda banyak keamanan.

Saya ingin menambahkan bahwa mengubah nomor port sebenarnya dapat merusak keamanan Anda.

Bayangkan skenario yang disederhanakan berikut ini. Seorang cracker memindai 100 host. Sembilan puluh sembilan dari host ini memiliki layanan yang tersedia di port standar ini:

Port    Service
22      SSH
80      HTTP
443     HTTPS

Tetapi kemudian ada satu host yang menonjol dari kerumunan, karena mereka pemilik sistem mencoba untuk mengaburkan layanan mereka.

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

Sekarang, ini mungkin menarik bagi seorang cracker, karena pemindaian menyarankan dua hal:

  1. Pemilik host berusaha menyembunyikan nomor port pada sistem mereka. Mungkin pemiliknya berpikir ada sesuatu yang berharga pada sistem. Ini mungkin bukan sistem run-of-the-mill.
  2. Mereka memilih metode yang salah untuk mengamankan sistem mereka. Administrator membuat kesalahan dengan percaya pada kebingungan port, yang menunjukkan bahwa mereka mungkin seorang administrator yang tidak berpengalaman. Mungkin mereka menggunakan kebingungan port sebagai pengganti firewall yang tepat, atau IDS yang tepat. Mereka mungkin telah membuat kesalahan keamanan lainnya juga, dan mungkin rentan terhadap serangan keamanan tambahan. Mari kita selidiki sedikit lebih jauh sekarang, ya?

Jika Anda seorang cracker, apakah Anda akan memilih untuk melihat salah satu dari 99 host yang menjalankan layanan standar pada port standar, atau host yang satu ini yang menggunakan kebingungan port?

Stefan Lasiewski
sumber
14
Saya akan melihat 99 host kecuali pengalaman mengajarkan saya sebaliknya. Seseorang yang memindahkan porta kemungkinan besar akan melakukan patch dan mengamankan, jika Anda bertanya kepada saya.
ceejayoz
4
Saya akan melihat host 1 yang menonjol, jika beberapa PFY berpikir, "Jika saya mengubah nomor port, SAYA TIDAK TERKENAL!" tetapi kata sandi root diatur ke "kata sandi".
Andrew
3
@ Cheejayoz, sepenuhnya setuju. Saya menjalankan SSH pada 2222, tidak ada nilai keamanan tetapi memotong jalan pada script kiddies. Saya pikir mereka juga cenderung mengabaikan saya, repot-repot mengubah port, mungkin mengambil langkah-langkah lain juga. Jelas itu tidak semua konfigurasi default ...
Chris S
1
Saya mengerti bahwa tidak semua orang setuju dengan pendapat saya. Tetapi dalam pengalaman saya, ada banyak pemilik sistem yang akan menggunakan kebingungan-port, tetapi mereka akan membuat kesalahan seperti tidak memperbarui OpenSSH setelah beberapa kerentanan keamanan kritis terungkap, atau akan menggunakan kunci SSH yang tidak terenkripsi dari sistem universitas bersama, dll. Beberapa sistem ini adalah target yang menarik.
Stefan Lasiewski
3
Dengan ekstensi: pindah ke port non-standar, Anda lebih cenderung untuk mencegah kiddies skrip, tetapi juga lebih mungkin untuk membangkitkan minat peretas yang berpengalaman. Yang mana yang menimbulkan pertanyaan: mana yang lebih Anda takuti?
tardate
9

Saya akan menentang tren umum, setidaknya sebagian.

Sendiri , mengubah ke port yang berbeda mungkin memberi Anda beberapa detik saat sedang dicari, sehingga Anda tidak mendapatkan apa-apa secara nyata. Namun, jika Anda menggabungkan penggunaan port non-standar bersama dengan langkah-langkah anti-portcan, hal itu dapat memberikan peningkatan keamanan yang benar-benar berharga.

Inilah situasi yang berlaku untuk sistem saya: Layanan non-publik dijalankan pada port non-standar. Setiap upaya koneksi ke lebih dari dua port dari satu alamat sumber, di mana berhasil atau tidak, dalam jumlah waktu tertentu menghasilkan semua lalu lintas dari sumber yang sedang jatuh.

Untuk mengalahkan sistem ini akan membutuhkan keberuntungan (mengenai port yang tepat sebelum diblokir) atau pemindaian terdistribusi, yang memicu tindakan lain, atau waktu yang sangat lama, yang juga akan diperhatikan dan ditindaklanjuti.

John Gardeniers
sumber
Kombinasikan ini dengan poin oleh Andreas Bonini tentang serangan yang ditargetkan dan ini adalah argumen yang kuat untuk menggunakan port alternatif.
JivanAmara
5

Menurut pendapat saya memindahkan port tempat aplikasi berjalan tidak meningkatkan keamanan sama sekali - hanya karena alasan aplikasi yang sama berjalan (dengan kekuatan dan kelemahan yang sama) hanya pada port yang berbeda. Jika aplikasi Anda memiliki kelemahan, pindahkan port yang didengarkannya ke port lain tidak mengatasi kelemahannya. Lebih buruk itu secara aktif mendorong Anda untuk TIDAK mengatasi kelemahan karena sekarang tidak terus-menerus dipalu oleh pemindaian otomatis. Itu menyembunyikan masalah sebenarnya yang merupakan masalah yang harus dipecahkan.

Beberapa contoh:

  • "Ini membersihkan log" - Lalu Anda memiliki masalah dengan bagaimana Anda menangani log Anda.
  • "Itu mengurangi overhead koneksi" - overhead itu tidak signifikan (karena kebanyakan pemindaian adalah) atau Anda memerlukan semacam penyaringan / mitigasi Denial-of-Service dilakukan hulu
  • "Ini mengurangi eksposur aplikasi" - Jika aplikasi Anda tidak tahan terhadap pemindaian dan eksploitasi otomatis maka aplikasi Anda memiliki kekurangan keamanan serius yang perlu diatasi (mis. Tetap tambal sulam!).

Masalah sebenarnya adalah administratif: Orang mengharapkan SSH berada di 22, MSSQL berada di 1433 dan seterusnya. Memindah-mindah ini adalah satu lapisan kerumitan lagi dan dokumentasi yang diperlukan. Sangat menjengkelkan untuk duduk di jaringan dan harus menggunakan nmap hanya untuk mencari tahu di mana segala sesuatu telah dipindahkan. Penambahan keamanan paling tidak fana dan kelemahannya tidak signifikan. Jangan lakukan itu. Perbaiki masalah sebenarnya.


sumber
2

Anda benar bahwa itu tidak akan membawa banyak keamanan (karena rentang port server TCP hanya memiliki 16 bit entropi), tetapi Anda dapat melakukannya karena dua alasan lain:

  • seperti yang telah dikatakan orang lain: penyusup yang mencoba banyak login dapat mengacaukan file log Anda (bahkan jika serangan kamus dari IP tunggal dapat diblokir dengan fail2ban);
  • SSH memerlukan kriptografi kunci publik untuk bertukar kunci rahasia untuk membuat terowongan yang aman (ini adalah operasi yang mahal yang dalam kondisi normal tidak perlu sering dilakukan); koneksi SSH yang diulang dapat menghabiskan daya CPU .

Catatan: Saya tidak mengatakan bahwa Anda harus mengubah port server. Saya hanya menjelaskan alasan yang masuk akal (IMO) untuk mengubah nomor port.

Jika Anda melakukan itu, saya pikir Anda perlu menjelaskan kepada setiap admin atau pengguna lain bahwa ini tidak boleh dianggap sebagai fitur keamanan, dan bahwa nomor port yang digunakan bahkan bukan rahasia, dan yang menggambarkan ini sebagai fitur keamanan yang membawa keamanan nyata tidak dianggap sebagai perilaku yang dapat diterima.

curiousguy
sumber
File log dapat dengan mudah berantakan dengan filter yang tepat. Jika Anda berbicara tentang kinerja server karena pengurangan log, maka kami tidak lagi berbicara tentang keamanan. Kinerja adalah topik yang sama sekali berbeda.
Pacerier
Tidak ketika komputer menjadi tidak dapat digunakan karena penggunaan disk berlebih.
curiousguy
Ya itu masalah kinerja. Performa jelas juga penting, tetapi utas khusus ini hanya membahas tentang keamanan. (Untuk keperluan utas ini, bayangkan saja Anda seukuran Google, dan Google benar - benar menginginkan data tersebut untuk keperluan analisis dan / atau penjualan.)
Pacerier
1

Saya dapat melihat satu situasi hipotetis di mana akan ada manfaat keamanan potensial dalam menjalankan sshd Anda di port alternatif. Itu akan ada dalam skenario di mana kerentanan remote yang dieksploitasi secara sepele ditemukan dalam perangkat lunak sshd yang Anda jalankan. Dalam skenario seperti itu menjalankan sshd Anda pada port alternatif mungkin memberi Anda waktu tambahan Anda tidak perlu menjadi target drive-by acak.

Saya sendiri menjalankan sshd pada port alternatif di komputer pribadi saya, tetapi itu terutama sebagai kemudahan untuk menjaga kekacauan di /var/log/auth.log. Pada sistem multi-pengguna, saya benar-benar tidak menganggap manfaat keamanan hipotetis kecil yang disajikan di atas sebagai alasan yang cukup untuk kerumitan tambahan yang disebabkan oleh sshd yang tidak ditemukan pada bagian standar.

andol
sumber
Skenario ini hanya akan berlaku jika semua admin benar-benar tidak mengambil kelonggaran dengan "waktu tambahan" ini untuk pergi makan siang dan lain
Pacerier
1

Ini sedikit meningkatkan keamanan. Dalam hal penyerang menemukan port terbuka sekarang harus mencari tahu apa yang berjalan di port. Tidak memiliki akses ke file konfigurasi Anda (belum :-)) ia tidak tahu apakah port 12345 menjalankan http, sshd, atau salah satu dari seribu layanan umum lainnya sehingga mereka perlu melakukan pekerjaan ekstra untuk mencari tahu apa yang sedang berjalan sebelum mereka dapat serius serang itu.

Juga seperti yang ditunjukkan poster lain ketika upaya untuk masuk ke port 22, bisa berupa skrip kiddies, trojan zombie, atau bahkan pengguna asli yang salah mengetik alamat IP. Upaya untuk masuk ke port 12345 hampir pasti menjadi pengguna asli atau penyerang serius.

Strategi lain adalah memiliki beberapa pelabuhan "perangkap madu". Karena tidak ada pengguna asli yang tahu tentang nomor port ini maka setiap upaya koneksi harus dianggap berbahaya dan Anda dapat memblokir / melaporkan alamat IP yang menyinggung secara otomatis.

Ada kasus khusus di mana menggunakan nomor port yang berbeda pasti akan membuat sistem Anda lebih aman. Jika jaringan Anda menjalankan layanan publik seperti Server Web tetapi juga menjalankan server web yang hanya menggunakan internal, Anda dapat memblokir akses eksternal dengan menjalankan nomor port yang berbeda dan memblokir akses eksternal dari port ini.

pengguna23523
sumber
Peningkatan keamanan 0,1% harus ditimbang terhadap penurunan keamanan yang relevan , kemungkinan menghasilkan total kerugian bersih dalam keamanan tergantung pada kasus penggunaan dan konteks.
Pacerier
0

Tidak dengan sendirinya. Namun, tidak menggunakan port default untuk aplikasi tertentu (katakanlah, SQL Server) pada dasarnya akan memaksa penyerang Anda untuk memindai port Anda; perilaku ini kemudian dapat dideteksi oleh firewall Anda atau metrik pemantauan lainnya, dan IP penyerang diblokir. Juga, rata-rata "script kiddie" akan lebih mungkin terhalang ketika alat sederhana atau skrip perintah yang mereka gunakan tidak menemukan contoh server SQL pada mesin Anda (karena alat hanya memeriksa port default).

KeithS
sumber