Pertama kali membuka server SSH ke internet, apa yang harus diperiksa

9

Saya sudah menjalankan beberapa server untuk waktu yang relatif lama, tetapi saya selalu hanya menyewa mereka, jadi saya tidak punya banyak pengalaman mengamankan server yang sebenarnya (sebagai lawan dari aplikasi yang saya jalankan di atasnya).

Sekarang saya merasa ingin membuka server SSH rumah kecil saya ke internet.

Saya akan menjadi satu-satunya yang menggunakannya, kata sandi saya cukup rumit, saya telah mengubah port SSH default menjadi sekitar 4000, satu-satunya port yang dapat diakses adalah port SSH ini melalui port-forwarding pada router / firewall saya, dan diperbarui secara otomatis setiap malam (menjalankan Arch Linux, distribusi rilis bergulir).

Apa, jika ada, hal-hal lain yang harus saya lakukan untuk menjaganya tetap aman?

Terima kasih!

houbysoft
sumber

Jawaban:

22

Pastikan login root dinonaktifkan PermitRootLogin no. Saya juga akan mempertimbangkan untuk menonaktifkan kata sandi PasswordAuthentication nodan menggunakan kunci publik PubkeyAuthentication yes.

chx
sumber
+1 mengalahkan saya untuk itu ...
gravyface
1
Jika Anda akan menggunakan kata sandi, Anda dapat mencoba melihat ke dalam sistem otentikasi dua faktor. Jika tidak, saya sarankan jangan mengetikkan kata sandi Anda di sistem warnet / perpustakaan internet acak.
Mark Wagner
4
Jika Anda mengizinkan auth kata sandi, pertimbangkan untuk menginstal fail2ban untuk mencegah serangan brute force dan menggunakan kata sandi yang kuat untuk akun apa pun yang diizinkan masuk melalui ssh
uSlackr
@embobo - mengapa begitu? Password dikirim di kawat yang dienkripsi dalam ssh. Ya, kunci auth jauh lebih unggul dalam banyak hal, tetapi selama kata sandi cukup kuat dan Anda telah memverifikasi tidak ada yang berselancar bahu, maka itu bukan masalah besar.
EEAA
3
@ Erika Saya pikir embobo mengacu pada ketidakpercayaan umum sistem asing. Meskipun SSH dienkripsi, mesin asing masih bisa mengatakan, catat keystrokes Anda. Dengan demikian kata sandi = dikompromikan.
rthomson
9

Pastikan hanya SSH-2 yang diizinkan (karena SSH-1 telah mengangkat beberapa masalah keamanan di masa lalu):

Protocol 2

Tentukan satu-satunya pengguna yang diizinkan masuk melalui SSH:

AllowUsers bob, john

Untuk meningkatkan keamanan, larang otentikasi kata sandi dan gunakan otentikasi kunci publik:

PasswordAuthentication no
PubkeyAuthentication yes

Catatan: tutorial ini berisi instruksi untuk membuat kunci dan mengkonfigurasi otentikasi kunci publik.

bambam
sumber
5

Selain poin-poin tentang menonaktifkan login root atau hanya menggunakan otentikasi kunci publik, saya juga akan memeriksa ulang bahwa tidak ada akun pengguna pada sistem yang memiliki kata sandi sepele atau kosong. Anda telah mengatakan kata sandi pribadi Anda baik-baik saja, tetapi itu tidak mengesampingkan akun dengan kata sandi yang buruk dibuat karena alasan lain.

Sebagai contoh: Saya harus memperbaiki satu jaringan di mana admin sebelumnya telah menginstal nagios pada semua sistemnya dari sumber, dan membuat pengguna nagios tanpa kata sandi, atau kata sandi "nagios", dan kemudian mulai mendapatkan tiga mesin yang berbeda dikompromikan.

Daniel Lawson
sumber
4

Anda mungkin ingin melihat beberapa jenis alat daftar hitam IP seperti http://denyhosts.sourceforge.net/ . Ini memblokir semua IP yang mencoba masuk terlalu sering dan sangat dapat dikonfigurasi.

Lynden Shields
sumber
Mungkin buang-buang waktu jika login root Anda dinonaktifkan. Dalam pengalaman saya (2 tahun terakhir dari server SSH di internet), hanya beberapa yang pernah mendapatkan nama pengguna (jelas) saya dengan benar. Bot hanya memeriksa kata sandi yang jelas pada nama pengguna umum (99% dari gagal login di server saya adalah untuk root, yang tentu saja dinonaktifkan).
Brendan Long
4
Jelas bukan buang-buang waktu - tetapi lihat fail2ban
symcbean
+1 untuk fail2ban.
JamesBarnett
1
root bukan satu-satunya akun jelas yang bot periksa, lihat nagios seperti yang disebutkan di atas. Ada juga akun basis data seperti mysql dan postgres. Ditambah akun aplikasi lainnya.
JamesBarnett
Ya saya benar-benar memiliki mesin SSH 'bersih' saya diambil alih oleh bot yang menebak kata sandi non-root, jadi jelas bukan buang-buang waktu. Selain itu, karena mendapatkan daftar hitam seperti ini, melihat log, persentase yang sangat kecil dari upaya sebenarnya untuk root.
Lynden Shields
3

Saya sarankan Anda menginstal Fail2ban! http://www.fail2ban.org

Ini melarang IP setelah percobaan x gagal selama y menit, membantu menjaga scriptkiddies di cek;)

Pengikat dasi
sumber
0

Mengulang ulasan log di seluruh bagian / komponen terkait sistem Anda (tergantung pada konfigurasi aktual / spesifiknya) ...

pengguna48838
sumber