Menjamin sambungan SSH membantu anda melindungi sistem dan data Linux anda. Pentadbir sistem dan pengguna rumah juga perlu melindungi komputer yang menghadap ke Internet. Berikut ialah 10 cara mudah untuk membantu anda melindungi pelayan SSH anda .
Beberapa asas tentang keselamatan SSH
SSH bermaksud Secure Shell. Protokol atau alat perisian SSH membenarkan pentadbir sistem dan pengguna membuat sambungan selamat ke komputer jauh menggunakan protokol tersebut.
Protokol SSH ialah protokol yang disulitkan yang direka untuk menyediakan sambungan selamat melalui rangkaian yang tidak selamat seperti Internet. SSH dalam Linux dibina pada versi mudah alih projek OpenSSH. Ia dilaksanakan dalam model pelayan pelanggan klasik dengan pelayan SSH yang menerima sambungan daripada klien SSH. Pelanggan digunakan untuk menyambung ke pelayan dan mendedahkan sesi kepada pengguna jauh. Pelayan menerima sambungan dan memulakan sesi.
Dalam konfigurasi lalainya, pelayan SSH akan "mendengar" untuk sambungan masuk pada Transmission Control Protocol (TCP), port 22. Memandangkan ini adalah port standard dan popular, ia adalah sasaran untuk ancaman pelakon dan bot berniat jahat.
Pelakon berniat jahat melancarkan bot yang mengimbas julat alamat IP mencari port terbuka. Ia kemudian menyiasat pelabuhan ini untuk kelemahan yang boleh dieksploitasi. Berfikir, saya selamat, terdapat banyak sasaran yang lebih besar dan lebih baik daripada saya untuk disasarkan oleh orang jahat adalah salah sama sekali. Bot ini tidak memilih sasaran mereka berdasarkan mana-mana kriteria, mereka hanya mencari jalan untuk menembusi sistem.
Anda akan menjadi mangsa jika anda tidak menjamin sistem anda.
Geseran Keselamatan
Titik Geseran Keselamatan ialah sebarang situasi di mana tugas utama dihalang atau ditangguhkan kerana keperluan keselamatan.
Geseran keselamatan menyebabkan ketidakselesaan (di mana-mana peringkat) untuk pengguna dan orang lain apabila anda melaksanakan langkah keselamatan. Orang yang baru mengenali sistem komputer mungkin bimbang sama ada mereka benar-benar perlu memasukkan kata laluan setiap kali mereka log masuk ke kerangka utama. Bagi mereka, ini juga satu bentuk pergeseran keselamatan.
Memperkenalkan langkah keselamatan selalunya akan merangkumi beberapa bentuk geseran untuk sesetengah orang. Pemilik perniagaan mesti membayar untuk langkah ini. Pengguna komputer mungkin perlu menukar tabiat atau mengingati maklumat pengesahan yang berbeza, menambah langkah untuk menyambung dengan jayanya. Pentadbir sistem akan mempunyai kerja tambahan untuk melaksanakan dan mengekalkan langkah keselamatan baharu.
Mengetatkan dan mengunci sistem pengendalian seperti Linux atau Unix boleh menjadi pantas. Langkah keselamatan di sini ialah satu set langkah yang mudah diikuti yang akan meningkatkan keselamatan komputer tanpa memerlukan aplikasi pihak ketiga dan campur tangan firewall yang mendalam .
Gunakan protokol SSH versi 2
Pada tahun 2006, protokol SSH telah dikemas kini daripada versi 1 kepada versi 2. Ini adalah peningkatan yang ketara. Terdapat banyak perubahan dan penambahbaikan, terutamanya dalam penyulitan dan keselamatan, dan versi 2 tidak serasi ke belakang dengan versi 1. Untuk menghalang sambungan daripada klien versi 1, anda boleh menentukan komputer untuk hanya menerima sambungan daripada versi 2.
Untuk melakukan ini, edit fail /etc/ssh/sshd_config menggunakan arahan berikut:
sudo gedit /etc/ssh/sshd_config

Tambah baris berikut:
Protocol 2
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Dan simpan fail, kemudian mulakan semula proses daemon SSH menggunakan arahan berikut:
sudo systemctl restart sshd
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Uji persediaan baharu dalam tindakan dengan bertukar kepada mesin lain dan cuba SSH ke dalam mesin ujian. Kami akan menggunakan pilihan -1 (protokol 1) untuk memaksa arahan ssh menggunakan protokol versi 1.
ssh -1 dave@howtogeek.local
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Permintaan sambungan ditolak. Pastikan anda masih boleh menyambung ke protokol 2. Kami akan menggunakan -2 (protokol 2) untuk menguji.
ssh -2 dave@howtogeek.local
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Fakta bahawa pelayan SSH meminta kata laluan adalah petanda positif bahawa sambungan telah dibuat dan anda berinteraksi dengan pelayan. Pelanggan SSH moden akan menggunakan protokol 2 secara lalai, kami tidak perlu menentukan protokol 2 dengan syarat pelanggan adalah terkini.
ssh dave@howtogeek.local
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Sambungan telah diterima.
Elakkan pintu 22
Port 22 ialah port standard untuk sambungan SSH. Jika port lain digunakan, ia menambahkan sedikit Security Through Obscurity (STO) pada sistem anda. Keselamatan melalui kekaburan tidak boleh dianggap sebagai langkah keselamatan sebenar. Malah, beberapa bot serangan yang lebih bijak menyiasat semua port terbuka dan memutuskan perkhidmatan yang mereka lakukan, dan bukannya bergantung pada senarai carian mudah port dan menganggap mereka menyediakan perkhidmatan. Tetapi menggunakan port bukan standard boleh membantu mengurangkan trafik buruk pada port 22.
Untuk mengkonfigurasi port bukan standard, edit fail konfigurasi SSH seperti di atas.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Padamkan # pada permulaan baris Port dan gantikan 22 dengan nombor pilihan anda. Simpan fail konfigurasi dan mulakan semula daemon SSH.
Pada komputer lain kami akan menggunakan arahan ssh untuk menyambung ke pelayan. Perintah ssh lalai menggunakan port 22:
ssh dave@howtogeek.local
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Sambungan ditolak. Cuba lagi dan tentukan port 470 menggunakan pilihan –p (port):
ssh -p 479 dave@howtogeek.local
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Sambungan disahkan.
Sambungkan penapis menggunakan TCP Wrappers
TCP Wrappers ialah senarai kawalan akses yang mudah difahami. Ia membolehkan anda menafikan dan membenarkan sambungan berdasarkan ciri-ciri permintaan sambungan seperti alamat IP atau nama hos. Pembungkus TCP hendaklah digunakan dengan, bukan sebagai ganti, tembok api yang dikonfigurasikan dengan betul.
TCP Wrappers didatangkan prapasang pada mesin Ubuntu 18.04 LTS . Ia mesti dipasang pada Manjaro 18.10 dan Fedora 30.
Untuk memasang pada Fedora, gunakan arahan berikut:
sudo yum install tcp_wrappers
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Untuk memasang pada Manjaro, gunakan arahan ini:
sudo pacman -Syu tcp-wrappers
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Terdapat dua fail yang disertakan, satu fail memegang senarai membenarkan dan satu fail memegang senarai menafikan. Edit senarai penafian menggunakan arahan berikut:
sudo gedit /etc/hosts.deny
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Perintah di atas akan membuka editor gedit dengan fail enggan dimuatkan di dalamnya.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Anda perlu menambah baris:
ALL : ALL
Dan simpan fail itu. Baris ini akan menyekat semua akses yang tidak dibenarkan. Sekarang, kami perlu memberikan kebenaran kepada sambungan yang anda mahu terima. Untuk melakukannya, anda perlu mengedit fail kebenaran:
sudo gedit /etc/hosts.allow
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Perintah di atas akan membuka editor gedit dengan fail yang boleh dimuat turun di dalamnya.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Kami telah menambah nama daemon SSH, SSHD, dan alamat IP komputer yang membolehkan sambungan dibuat. Simpan fail dan lihat sama ada sekatan dan kebenaran berkuat kuasa.
Mula-mula, anda akan cuba menyambung daripada komputer yang tiada dalam fail hos.allow:
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Sambungan ditolak. Kami akan cuba menyambung dari mesin dengan alamat IP 192.168.4.23:
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Sambungan diterima.
Contoh di sini hanya membenarkan satu mesin disambungkan. Pembalut TCP agak fleksibel, ia menyokong nama hos, kad bebas dan topeng subnet untuk menerima sambungan daripada julat alamat IP.
Tolak permintaan sambungan tanpa kata laluan
Walaupun tidak bagus, pentadbir sistem Linux boleh mencipta akaun pengguna tanpa kata laluan. Ini bermakna tiada kata laluan diperlukan untuk sambungan jauh daripada akaun ini. Sambungan ini akan diterima tetapi tidak disahkan.
Tetapan lalai untuk SSH menerima permintaan sambungan tanpa kata laluan. Kami boleh menukarnya dengan mudah dan memastikan semua sambungan tersebut disahkan.
Anda perlu mengedit fail konfigurasi SSH.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah dalam fail sehingga anda melihat baris yang mengatakan #PermitEmptyPasswords no . Padam # pada permulaan baris dan simpan fail. Mulakan semula daemon SSH.
Gunakan kekunci SSH dan bukannya kata laluan
Kunci SSH menyediakan cara selamat untuk log masuk ke pelayan SSH. Kata laluan boleh dipecahkan, diteka atau dipaksa secara kasar . Kunci SSH tidak terdedah kepada jenis serangan ini.
Apabila menjana kunci SSH, anda mencipta pasangan kunci. Satu ialah kunci awam dan satu lagi kunci peribadi. Kunci awam dipasang pada pelayan yang ingin anda sambungkan. Kunci peribadi disimpan dengan selamat pada komputer anda.
Kekunci SSH membenarkan sambungan dibuat tanpa kata laluan, yang lebih selamat daripada sambungan menggunakan pengesahan kata laluan.
Apabila membuat permintaan sambungan, komputer jauh menggunakan salinan kunci awam untuk mencipta mesej disulitkan yang dihantar semula ke komputer. Memandangkan ia disulitkan dengan kunci awam, komputer boleh menyahsulitnya dengan kunci peribadi.
Komputer kemudian mengekstrak beberapa maklumat daripada mesej, menyulitkannya, dan menghantarnya kembali ke pelayan. Jika pelayan boleh menyahsulitnya dengan salinan kunci awam. Jika maklumat dalam mesej sepadan dengan apa yang dihantar pelayan kepada anda, sambungan akan disahkan.
Di sini, sambungan dibuat ke pelayan di 192.168.4.11 oleh pengguna dengan kunci SSH. Ambil perhatian bahawa mereka tidak digesa untuk memasukkan kata laluan.
ssh dave@192.168.4.11
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Lumpuhkan pengesahan kata laluan sepenuhnya
Anda boleh melumpuhkan sepenuhnya pengesahan kata laluan jika anda menggunakan kekunci SSH. Kita perlu mengedit fail konfigurasi SSH.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah fail sehingga anda melihat baris yang bermula dengan #PasswordAuthentication ya . Padam # pada permulaan baris, tukar ya kepada tidak dan simpan fail. Mulakan semula daemon SSH.
Lumpuhkan pemajuan X11
Pemajuan X11 membolehkan pengguna jauh untuk menjalankan aplikasi grafik dari pelayan anda melalui sesi SSH tetapi mudah dieksploitasi oleh pelakon jahat. Adalah lebih baik untuk mematikannya dengan mengedit fail konfigurasi SSH.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah fail sehingga anda melihat baris #X11Forwarding no , padamkan # pada permulaan baris dan simpan fail. Mulakan semula daemon SSH.
Tetapkan nilai tamat masa melahu
Jika sambungan SSH diwujudkan dengan komputer dan tiada aktiviti padanya untuk satu tempoh masa, ini boleh menimbulkan risiko keselamatan.
Oleh itu anda harus menetapkan had tamat masa. Sambungan SSH akan diputuskan jika tiada aktiviti dalam had masa. Sekali lagi, kita perlu mengedit fail konfigurasi SSH.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah fail sehingga anda melihat baris yang bermula dengan #ClientAliveInterval 0 . Keluarkan # pada permulaan baris, tukar nombor 0 kepada nilai yang anda inginkan. Biasanya orang menetapkannya kepada 300 saat, iaitu 5 minit. Simpan fail dan mulakan semula daemon SSH.
Tetapkan had pada bilangan entri kata laluan
Menentukan had pada bilangan pengesahan boleh membantu mencegah tekaan kata laluan dan serangan kekerasan. Selepas bilangan permintaan pengesahan yang ditentukan, pengguna akan diputuskan sambungan daripada pelayan SSH. Secara lalai, tiada had untuk bilangan percubaan kata laluan, tetapi anda boleh mengeditnya dalam fail konfigurasi SSH.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah fail sehingga anda melihat baris bermula dengan #MaxAuthTries 0 . Mengalih keluar # pada permulaan baris menukar nombor kepada nilai yang dikehendaki. Anda boleh menetapkannya kepada 3. Simpan fail semasa membuat perubahan dan mulakan semula daemon SSH.
Anda boleh menguji ini dengan cuba menyambung dan memasukkan kata laluan yang salah.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Ambil perhatian, nombor MaxAuthTries adalah lebih daripada bilangan percubaan yang dibenarkan oleh pengguna. Selepas dua percubaan yang gagal, anda terputus sambungan, yang bermaksud MaxAuthTries ditetapkan kepada 3.
Lumpuhkan log masuk akar
Anda dinasihatkan untuk tidak log masuk sebagai root, hanya gunakan sebagai pengguna biasa di Linux dan gunakan sudo untuk melakukan tindakan yang memerlukan kebenaran root. Anda juga tidak seharusnya membenarkan root untuk log masuk ke pelayan SSH. Hanya pengguna biasa dibenarkan untuk menyambung. Jika mereka perlu melaksanakan tugas peringkat pentadbiran, mereka juga boleh menggunakan sudo. Jika anda mesti membenarkan pengguna root untuk log masuk, anda boleh memaksa mereka menggunakan kunci SSH.
Edit fail konfigurasi untuk melumpuhkan log masuk akar.
![Bagaimana untuk mengamankan pelayan SSH Bagaimana untuk mengamankan pelayan SSH]()
Tatal ke bawah fail sehingga anda melihat baris yang bermula dengan #PermitRootLogin prohibit-password , padamkan # pada permulaan baris.
- Jika anda ingin menghalang root daripada log masuk, gantikan kata laluan larangan dengan no.
- Jika anda membenarkan root untuk log masuk tetapi memaksa penggunaan kunci SSH, biarkan kata laluan larangan tetap utuh.
Simpan perubahan dan mulakan semula daemon SSH.
Langkah terakhir
Sudah tentu, jika anda tidak memerlukan SSH berjalan pada komputer anda, matikannya dengan arahan berikut:
sudo systemctl stop sshd
sudo systemctl disable sshd
Semoga berjaya!