Saya ingin dapat SSH ke PC kantor Ubuntu 10,04 saya dari luar. Karena itu saya berpikir untuk memulai daemon SSH di PC. Apa masalah keamanan, gangguan yang mungkin terjadi, pengaturan konfigurasi khusus, dll. Saya harus tahu?
Dalam hal itu penting: ini pada dasarnya hanya untuk penggunaan saya sendiri, saya tidak berpikir akan ada orang lain yang menggunakannya; ini adalah Ubuntu 10.04 PC di sebagian besar lingkungan Windows 7 / Vista / XP.
Jawaban:
Kekhawatiran terbesar adalah orang yang masuk sebagai administrator komputer melalui SSH. Ini dapat dilakukan dengan brute force jika Anda memiliki kata sandi yang mudah ditebak.
Ada beberapa langkah-langkah keamanan yang dapat Anda ambil, di bawah ini adalah beberapa yang selalu saya ambil ketika menyiapkan server SSH dan beberapa tambahan.
Gunakan kata sandi yang kuat, yang terdiri dari setidaknya (katakanlah) 10 huruf besar dan kecil, angka, dan karakter lainnya.
Jail pengguna ke direktori home mereka. Pengguna yang dipenjara tidak akan dapat mengakses / mengedit file yang berada di luar direktori home mereka. Jadi pengguna Anda tidak akan dapat mengakses / mengedit file sistem utama. Banyak tutorial dapat ditemukan online tentang cara memenjarakan pengguna. Sebagian besar dari mereka menggunakan JailKit . Contoh tutorial semacam itu dapat ditemukan di sini . Atau, Anda juga dapat menggunakan
ChrootDirectory
arahan asli OpenSSH-server . Contoh tutorial ini dapat ditemukan di sini .Instal Fail2Ban . Fail2Ban adalah program yang memeriksa log otentikasi untuk entri yang salah. Ketika batas tertentu tercapai, itu menambah blok firewall untuk IP tertentu untuk waktu yang telah ditentukan. Ada juga beberapa tutorial online yang ditemukan online tentang cara mengatur Fail2Ban dengan SSH, contohnya adalah yang ini . Situs web Fail2Ban juga memiliki beberapa HOWTO yang bagus dan lengkap.
Nonaktifkan login root melalui SSH. Ini adalah pengguna yang memiliki akses ke hampir semua file di sistem Anda, oleh karena itu menonaktifkan login shell-nya. Dalam versi terbaru Ubuntu, pengguna root secara otomatis dinonaktifkan tetapi tidak ada salahnya untuk menonaktifkan akses SSH-nya. Ini dilakukan dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan pastikan tidak ada # di depannya.Gunakan port non-standar (Mis. Bukan 22) Ini dapat dilakukan melalui penerusan port di router Anda (Mis 16121 -> 22 bukannya 22 -> 22) atau dengan membuat daemon SSH mendengarkan pada port yang berbeda. Ini akan membuat layanan SSH Anda lebih mudah dideteksi oleh pengguna jahat. Ini dilakukan dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan ubah 22 ke port apa pun yang Anda inginkan. Jangan lupa untuk meneruskan port yang benar di router Anda sesudahnya.Jangan menggunakan kata sandi untuk masuk. Selain kata sandi, SSH juga memungkinkan masuk dengan menggunakan kunci pribadi. Ini berarti kunci disimpan di komputer Anda di mana Anda mengakses SSH dari mesin SSH. Ketika koneksi dicoba, klien SSH menggunakan kunci untuk masuk ke server alih-alih melalui otentikasi kata sandi. Kunci autentikasi jauh lebih kuat secara kriptografis daripada kata sandi dan karenanya tidak mudah diretas. Ada juga beberapa tutorial online yang ditemukan online tentang cara mengatur otentikasi berbasis kunci dengan SSH, contohnya adalah yang ini . (Jika Anda SSH dari windows dengan Putty, periksa tautan ini untuk Putty howto.) Setelah Anda mengatur otentikasi berbasis kunci, Anda dapat menonaktifkan otentikasi kata sandi dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan pastikan tidak ada # di depannya.Secara opsional, seperti yang disebutkan oleh @ Linker3000 dalam komentarnya, Anda dapat mengatur terowongan VPN ke PC yang ingin Anda akses melalui SSH dan kemudian melarang akses jaringan non-lokal pada server SSH. Dengan begitu, tidak ada perangkat eksternal tanpa koneksi VPN yang dapat mengakses server SSH Anda. Ini dapat dilakukan dengan menolak SEMUA host dan kemudian hanya mengizinkan IP jaringan lokal untuk login. Ini dilakukan dengan mengedit
/etc/hosts.deny
dan menambahkan yang berikut:dan untuk
/etc/hosts.allow
menambahkan yang berikut ini:di mana IP cocok dengan salah satu jaringan lokal Anda.
*
adalah wildcard, sehingga semua alamat IP yang dimulai dengan192.168.1.
akan diterima. Jika ini tidak berhasil, distribusi Anda mungkin digunakanssh
sebagai gantinyasshd
. Dalam hal ini, Anda harus mencobassh: 192.168.1.*
danssh: ALL
sebagai gantinya.Anda hanya bisa mengizinkan host tertentu, melakukan hal yang sama dengan
/etc/hosts.allow
dan/etc/hosts.deny
seperti yang dijelaskan dalam 6, tetapi/etc/hosts.allow
menambahkan baris berikut dan setiap host untuk memungkinkan dipisahkan oleh spasi:Izinkan hanya pengguna tertentu untuk mengakses server SSH Anda. Ini dilakukan dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan pastikan tidak ada # di depannya. Jika tidak ada, buat itu. Misalnya, jika Anda hanya ingin mengizinkan john, tom dan mary, tambahkan / edit baris ini:Anda juga dapat menolak pengguna tertentu misalnya, jika Anda ingin menolak akses ke john, tom dan mary, tambahkan / edit baris ini:
Hanya izinkan protokol SSH2 untuk koneksi masuk. Ada dua versi protokol SSH. SSH1 tunduk masalah keamanan sehingga menggunakan SSH 2 dianjurkan. Hal ini dapat dipaksa dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan pastikan tidak ada # di depannya. Jika tidak ada, buat itu.hapus, 1 sehingga garisnya akan
Jangan memungkinkan pengguna untuk login yang tidak memiliki password ditetapkan. Hal ini dapat dipaksa dengan mengedit file
/etc/ssh/sshd_config
. ✝ Cari baris berikut dan pastikan tidak ada # di depannya. Jika tidak ada, buat itu.Dan meskipun sederhana dan mungkin tidak perlu dikatakan tetapi terbukti penting dalam banyak kasus, tetap perbarui peranti lunak Anda. Perbarui paket / perangkat lunak yang diinstal secara rutin.
✝ = setelah mengedit file konfigurasi SSH, jangan lupa untuk me-restart daemon untuk menerapkan perubahan. Mulai ulang daemon dengan menjalankan:
atau
tergantung pada distribusi Linux yang Anda gunakan.
sumber
sudo service ssh restart
di Ubuntu.sudo restart ssh
,.Beberapa tips:
sumber
Risiko utama adalah lupa bahwa Anda menjalankan server ssh dan meletakkan kata sandi yang lemah di akun. Ada penyerang di luar sana yang secara sistematis mencoba nama akun umum (seperti
webmaster
danbob
) dan kata sandi yang lemah. Anda dapat menghilangkan risiko ini dengan melarang login password (dimasukkanPasswordAuthentication no
dalamsshd_config
, dan baik juga menempatkanUsePAM No
atau otentikasi password menonaktifkan dalam pengaturan PAM untuk ssh). Ukuran perantara adalah untuk membatasi login ssh ke daftar putih pengguna denganAllowUsers
atauAllowGroups
dalamsshd_config
.Perhatikan bahwa mengizinkan kata sandi masuk bukan merupakan masalah keamanan. password yang lemah dan password menyadap adalah masalah, dan memungkinkan otentikasi password di server ssh adalah enabler. Untuk melindungi terhadap sandi mengintip, tidak pernah ketik sandi Anda pada mesin Anda tidak sepenuhnya percaya (tapi kemudian jika Anda melakukan mempercayai mesin Anda mungkin juga menginstal sebuah kunci pribadi di atasnya, dan kemudian Anda tidak perlu otentikasi password).
Persyaratan minimum untuk menggunakan klien ssh pada mesin adalah bahwa Anda percaya bahwa tidak akan ada pembajakan aktif dari komunikasi ssh (serangan man-in-the-middle dimungkinkan jika itu dijalankan pada mesin klien - Anda pikir Anda mengetik perintah ke klien ssh asli tetapi klien sebenarnya mengirimkan data otentikasi Anda dengan setia tetapi juga memasukkan kuda trojan ke dalam komunikasi setelah itu). Ini adalah persyaratan yang lebih lemah daripada percaya tidak akan ada pengintai kata sandi (biasanya dilakukan melalui keylogger, tetapi ada metode lain yang kurang otomatis seperti selancar bahu). Jika Anda memang memiliki kepercayaan minimum tetapi masih takut pengintai, Anda dapat menggunakan kata sandi satu kali (OpenSSH mendukung mereka melalui dukungan PAM-nya).
Tentu saja, seperti program lain yang berinteraksi dengan mesin di luar kendali Anda (bukan hanya server jaringan tetapi juga klien), Anda harus mengikuti pembaruan keamanan.
sumber
Tiga hal muncul di benak saya:
Jika Anda membuka port 22 standar maka segera akan terdeteksi dan PC Anda akan dipalu oleh serangan brute force. Saya sarankan Anda mengkonfigurasi sshd untuk mendengarkan port lain atau melakukan pemetaan port pada firewall Anda. Meskipun ini bukan peluru ajaib itu pasti akan menghemat siklus CPU yang sama setidaknya.
Port 12345
Nonaktifkan otentikasi kata sandi dan gunakan kunci saja secara eksplisit. Kunci apa pun akan lebih baik daripada kata sandi paling rumit yang dapat Anda ingat.
PasswordAuthentication no
Meskipun Ubuntu memiliki pengguna root dinonaktifkan secara default, secara eksplisit menonaktifkan login root
PermitRootLogin ada
sumber