Cara Terbaik untuk Mengamankan Server SSH Anda

Oct 15, 2025
Privasi dan Keamanan
Eny Setiyowati/Shutterstock.com

Amankan koneksi SSH sistem Linux Anda untuk melindungi sistem dan data Anda. Administrator sistem dan pengguna rumahan sama-sama perlu mengeraskan dan mengamankan komputer yang terhubung ke internet, tetapi SSH bisa jadi rumit. Berikut sepuluh cara cepat-cepat untuk membantu melindungi server SSH Anda.

Dasar-dasar Keamanan SSH

SSH adalah singkatan dari Secure Shell . Nama "SSH" digunakan secara bergantian untuk mengartikan baik protokol SSH itu sendiri atau alat perangkat lunak yang memungkinkan administrator sistem dan pengguna untuk membuat sambungan aman ke komputer jarak jauh menggunakan protokol itu.

Protokol SSH adalah protokol terenkripsi yang dirancang untuk memberikan koneksi aman melalui jaringan yang tidak aman, seperti internet. SSH di Linux dibangun di atas versi portabel dari OpenSSH proyek. Ini diimplementasikan di a model klien-server klasik , dengan server SSH yang menerima koneksi dari klien SSH. Klien digunakan untuk menyambung ke server dan ke layar sesi untuk pengguna jarak jauh. Server menerima koneksi dan dieksekusi sesi.

Dalam konfigurasi defaultnya, server SSH akan mendengarkan koneksi masuk pada Transmission Control Protocol ( TCP ) port 22. Karena ini adalah standar, pelabuhan terkenal , itu adalah target untuk aktor ancaman dan bot jahat .

Pelaku ancaman meluncurkan bot yang memindai berbagai alamat IP untuk mencari port terbuka. Port tersebut kemudian diperiksa untuk melihat apakah ada kerentanan yang dapat dieksploitasi. Berpikir, "Saya aman, ada target yang lebih besar dan lebih baik daripada saya untuk dibidik orang jahat," adalah alasan yang salah. Bot tidak memilih target berdasarkan prestasi apa pun; mereka secara metodis mencari sistem yang dapat mereka langgar.

Anda mencalonkan diri Anda sebagai korban jika Anda belum mengamankan sistem Anda.

Gesekan Keamanan

Gesekan keamanan adalah gangguan — dalam tingkat apa pun — yang akan dialami pengguna dan orang lain saat Anda menerapkan tindakan keamanan. Kami memiliki ingatan yang panjang dan ingat saat memperkenalkan pengguna baru ke sistem komputer, dan mendengar mereka bertanya dengan suara ngeri apakah mereka Betulkah harus memasukkan kata sandi setiap saat mereka masuk ke mainframe. Itu — bagi mereka — adalah gesekan keamanan.

(Kebetulan, penemuan kata sandi dikreditkan ke Fernando J. Corbató , sosok lain dalam jajaran ilmuwan komputer yang pekerjaan gabungannya berkontribusi pada keadaan yang menyebabkan kelahiran Unix .)

Memperkenalkan langkah-langkah keamanan biasanya melibatkan beberapa bentuk gesekan bagi seseorang. Pemilik bisnis harus membayarnya. Pengguna komputer mungkin harus mengubah praktik yang biasa mereka lakukan, atau mengingat kumpulan detail otentikasi lainnya, atau menambahkan langkah-langkah tambahan agar berhasil tersambung. Administrator sistem akan memiliki pekerjaan tambahan yang harus dilakukan untuk menerapkan dan memelihara langkah-langkah keamanan baru.

Pengerasan dan penguncian sistem operasi mirip Linux atau Unix bisa sangat terlibat, dengan sangat cepat. Apa yang kami sajikan di sini adalah serangkaian langkah yang mudah diterapkan yang akan meningkatkan keamanan komputer Anda tanpa memerlukan aplikasi pihak ketiga dan tanpa menggali melalui firewall Anda.

Langkah-langkah ini bukanlah kata terakhir dalam keamanan SSH, tetapi akan sangat membantu Anda dari setelan default, dan tanpa terlalu banyak hambatan.

Gunakan Protokol SSH Versi 2

Pada tahun 2006, protokol SSH telah diperbarui dari versi 1 ke versi 2 . Itu adalah peningkatan yang signifikan. Ada begitu banyak perubahan dan peningkatan, terutama seputar enkripsi dan keamanan, sehingga versi 2 tidak kompatibel dengan versi 1. Untuk mencegah koneksi dari klien versi 1, Anda dapat menetapkan bahwa komputer Anda hanya akan menerima koneksi dari klien versi 2.

Untuk melakukannya, edit / etc / ssh / sshd_config mengajukan. Kami akan banyak melakukan ini di seluruh artikel ini. Kapan pun Anda perlu mengedit file ini, ini adalah perintah untuk digunakan:

sudo gedit / etc / ssh / sshd_config

Tambahkan baris:

Protokol 2

Dan simpan file tersebut. Kami akan memulai ulang proses daemon SSH. Sekali lagi, kami akan sering melakukan ini di seluruh artikel ini. Ini adalah perintah yang akan digunakan dalam setiap kasus:

sudo systemctl restart sshd

Mari kita periksa apakah setelan baru kami berlaku. Kami akan melompat ke mesin lain dan mencoba melakukan SSH ke mesin uji kami. Dan kami akan menggunakan -1 (protokol 1) opsi untuk memaksa ssh perintah untuk menggunakan protokol versi 1.

ssh -1 [email protected]

Bagus, permintaan koneksi kami ditolak. Mari kita pastikan kita masih dapat terhubung dengan protokol 2. Kita akan menggunakan -2 (protokol 2) pilihan untuk membuktikan fakta.

ssh -2 [email protected]

Fakta bahwa server SSH meminta kata sandi kami adalah indikasi positif bahwa koneksi telah dibuat dan Anda berinteraksi dengan server. Sebenarnya, karena klien SSH modern akan menggunakan protokol 2 secara default, kami tidak perlu menentukan protokol 2 selama klien kami adalah yang terbaru.

ssh [email protected]

Dan koneksi kami diterima. Jadi hanya koneksi protokol 1 yang lebih lemah dan kurang aman yang ditolak.

Hindari Port 22

Port 22 adalah port standar untuk koneksi SSH. Jika Anda menggunakan port yang berbeda, itu menambahkan sedikit keamanan melalui ketidakjelasan ke sistem Anda. Keamanan melalui ketidakjelasan tidak pernah dianggap sebagai tindakan keamanan yang sebenarnya, dan saya telah mencercanya di artikel lain. Faktanya, beberapa bot penyerang yang lebih cerdas menyelidiki semua port yang terbuka dan menentukan layanan mana yang mereka bawa, daripada mengandalkan daftar pencarian port sederhana dan dengan asumsi mereka menyediakan layanan biasa. Tetapi menggunakan port non-standar dapat membantu menurunkan kebisingan dan lalu lintas yang buruk pada port 22.

Untuk mengonfigurasi port non-standar, edit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Hapus hash # dari awal baris "Port" dan ganti "22" dengan nomor port pilihan Anda. Simpan file konfigurasi Anda dan mulai ulang daemon SSH:

sudo systemctl restart sshd

Mari kita lihat efek apa yang dimilikinya. Di komputer kami yang lain, kami akan menggunakan ssh perintah untuk terhubung ke server kami. Itu ssh default perintah untuk menggunakan port 22:

ssh [email protected]

Koneksi kami ditolak. Mari coba lagi dan tentukan port 470, menggunakan opsi -p (port):

ssh -p 479 [email protected]

Koneksi kami diterima.

Filter Koneksi Menggunakan TCP Wrappers

TCP Wrappers mudah dimengerti daftar kontrol akses . Ini memungkinkan Anda untuk mengecualikan dan mengizinkan koneksi berdasarkan karakteristik permintaan koneksi, seperti alamat IP atau nama host. Wrapper TCP harus digunakan bersama dengan, dan bukan dengan, firewall yang dikonfigurasi dengan benar. Dalam skenario khusus kami, kami dapat memperketat segalanya dengan menggunakan pembungkus TCP.

Wrapper TCP sudah diinstal pada mesin Ubuntu 18.04 LTS yang digunakan untuk meneliti artikel ini. Itu harus diinstal pada Manjaro 18.10 dan Fedora 30.

Untuk menginstal di Fedora, gunakan perintah ini:

sudo yum install tcp_wrappers

Untuk menginstal di Manjaro, gunakan perintah ini:

sudo pacman -Syu tcp-wrappers

Ada dua file yang terlibat. Yang satu memegang daftar yang diizinkan, dan yang lainnya memegang daftar yang ditolak. Edit daftar tolak menggunakan:

sudo gedit /etc/hosts.deny

Ini akan membuka gedit editor dengan file deny yang dimuat di dalamnya.

Anda perlu menambahkan baris:

SEMUA SEMUA

Dan simpan file tersebut. Itu memblokir semua akses yang belum diberi otorisasi. Kami sekarang perlu mengotorisasi koneksi yang ingin Anda terima. Untuk melakukan itu, Anda perlu mengedit file allow:

sudo gedit /etc/hosts.allow

Ini akan membuka gedit editor dengan memungkinkan file dimuat di dalamnya.

Kami telah menambahkan nama daemon SSH, SSHD , Dan alamat IP komputer yang akan kami izinkan untuk membuat sambungan. Simpan file, dan mari kita lihat apakah batasan dan izin berlaku.

Pertama, kami akan mencoba menyambungkan dari komputer yang tidak ada di dalam hosts.allow file:

Koneksi ditolak. Sekarang kami akan mencoba menyambungkan dari mesin di alamat IP 192.168.4.23:

Koneksi kami diterima.

Contoh kami di sini agak brutal — hanya satu komputer yang dapat terhubung. Pembungkus TCP cukup fleksibel dan lebih fleksibel dari ini. Ini mendukung nama host, karakter pengganti, dan subnet mask untuk menerima koneksi dari rentang alamat IP. Anda didorong untuk lihat halaman manual .

Tolak Permintaan Koneksi Tanpa Kata Sandi

Meskipun ini adalah praktik yang buruk, administrator sistem Linux dapat membuat akun pengguna tanpa kata sandi. Itu berarti permintaan koneksi jarak jauh dari akun itu tidak akan memiliki kata sandi untuk diperiksa. Koneksi tersebut akan diterima tetapi tidak diautentikasi.

Pengaturan default untuk SSH menerima permintaan koneksi tanpa kata sandi. Kami dapat mengubahnya dengan sangat mudah, dan memastikan semua koneksi diautentikasi.

Kami perlu mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir file sampai Anda melihat baris yang bertuliskan "#PermitEmptyPasswords no." Hapus hash # dari awal baris dan simpan file. Mulai ulang daemon SSH:

sudo systemctl restart sshd

Gunakan Kunci SSH Bukan Kata Sandi

Kunci SSH menyediakan cara yang aman untuk masuk ke server SSH. Kata sandi bisa ditebak, retak, atau paksa . Kunci SSH tidak terbuka untuk jenis serangan seperti itu.

Saat Anda membuat kunci SSH, Anda membuat sepasang kunci. Salah satunya adalah kunci publik, dan yang lainnya adalah kunci pribadi. Kunci publik dipasang di server yang ingin Anda sambungkan. Kunci pribadi, seperti namanya, disimpan dengan aman di komputer Anda sendiri.

Kunci SSH memungkinkan Anda membuat koneksi tanpa kata sandi yang — berlawanan dengan intuisi — lebih aman daripada koneksi yang menggunakan otentikasi kata sandi.

Saat Anda membuat permintaan koneksi, komputer jarak jauh menggunakan salinan kunci publik Anda untuk membuat pesan terenkripsi yang dikirim kembali ke komputer Anda. Karena itu dienkripsi dengan kunci publik Anda, komputer Anda dapat membatalkan enkripsi dengan kunci pribadi Anda.

Komputer Anda kemudian mengekstrak beberapa informasi dari pesan, terutama ID sesi, mengenkripsinya, dan mengirimkannya kembali ke server. Jika server dapat mendekripsi dengan salinan kunci publik Anda, dan jika informasi di dalam pesan cocok dengan apa yang dikirim server kepada Anda, koneksi Anda dipastikan berasal dari Anda.

Di sini, koneksi sedang dibuat ke server di 192.168.4.11, oleh pengguna dengan kunci SSH. Perhatikan bahwa mereka tidak diminta untuk memasukkan kata sandi.

ssh [email protected]

Kunci SSH mendapatkan artikel untuk dirinya sendiri. Dengan mudah, kami punya satu untuk Anda. Ini dia cara membuat dan menginstal kunci SSH .

TERKAIT: Cara Membuat dan Menginstal Kunci SSH Dari Shell Linux

Nonaktifkan Otentikasi Kata Sandi Sama Sekali

Tentu saja, perpanjangan logis dari penggunaan kunci SSH adalah jika semua pengguna jarak jauh dipaksa untuk mengadopsinya, Anda dapat mematikan otentikasi kata sandi sepenuhnya.

Kami perlu mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir file sampai Anda melihat baris yang dimulai dengan "#PasswordAuthentication yes". Hapus hash # dari awal baris, ubah "ya" menjadi "tidak", dan simpan file. Mulai ulang daemon SSH:

sudo systemctl restart sshd

Nonaktifkan X11 Forwarding

Penerusan X11 memungkinkan pengguna jarak jauh untuk menjalankan aplikasi grafis dari server Anda melalui sesi SSH. Di tangan pelaku ancaman atau pengguna jahat, antarmuka GUI dapat mempermudah tujuan jahat mereka.

Mantra standar dalam keamanan siber adalah jika Anda tidak memiliki alasan kuat untuk mengaktifkannya, matikan. Kami akan melakukannya dengan mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir file sampai Anda melihat baris yang dimulai dengan "# X11Forwarding no." Hapus hash # dari awal baris dan simpan file. Mulai ulang daemon SSH:

sudo systemctl restart sshd

Tetapkan Nilai Batas Waktu Idle

Jika ada koneksi SSH yang mapan ke komputer Anda, dan tidak ada aktivitas di dalamnya selama jangka waktu tertentu, ini dapat menimbulkan risiko keamanan. Ada kemungkinan pengguna telah meninggalkan mejanya dan sibuk di tempat lain. Siapa pun yang melewati mejanya dapat duduk dan mulai menggunakan komputer mereka dan, melalui SSH, komputer Anda.

Jauh lebih aman untuk menetapkan batas waktu tunggu. Koneksi SSH akan terputus jika periode tidak aktif sesuai dengan batas waktu. Sekali lagi, kami akan mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir file sampai Anda melihat baris yang dimulai dengan "#ClientAliveInterval 0" Hapus hash # dari awal baris, ubah digit 0 ke nilai yang Anda inginkan. Kami telah menggunakan 300 detik, yaitu 5 menit. Simpan file, dan mulai ulang daemon SSH:

sudo systemctl restart sshd

Tetapkan Batas Untuk Upaya Kata Sandi

Menentukan batas jumlah upaya otentikasi dapat membantu menggagalkan tebakan kata sandi dan serangan brute-force. Setelah jumlah permintaan otentikasi yang ditentukan, pengguna akan diputuskan dari server SSH. Secara default, tidak ada batasan. Tapi itu segera diatasi.

Sekali lagi, kami perlu mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir file sampai Anda melihat baris yang dimulai dengan "#MaxAuthTries 0". Hapus hash # dari awal baris, ubah digit 0 ke nilai yang Anda inginkan. Kami menggunakan 3 di sini. Simpan file saat Anda membuat perubahan dan mulai ulang daemon SSH:

sudo systemctl restart sshd

Kami dapat menguji ini dengan mencoba menghubungkan dan sengaja memasukkan kata sandi yang salah.

Perhatikan bahwa jumlah MaxAuthTries tampaknya lebih dari satu jumlah percobaan yang diizinkan oleh pengguna. Setelah dua kali upaya buruk, pengguna uji kami terputus. Ini dengan MaxAuthTries yang disetel ke tiga.

Nonaktifkan Masuk Root

Log in sebagai root di komputer Linux Anda adalah praktik yang buruk. Anda harus masuk sebagai pengguna biasa dan menggunakan sudo untuk melakukan tindakan yang membutuhkan hak akses root. Terlebih lagi, Anda tidak boleh mengizinkan root untuk masuk ke server SSH Anda. Hanya pengguna biasa yang diperbolehkan untuk terhubung. Jika mereka perlu melakukan tugas administratif, mereka harus menggunakan sudo terlalu. Jika Anda dipaksa untuk mengizinkan pengguna root untuk masuk, Anda setidaknya dapat memaksa mereka untuk menggunakan kunci SSH.

Untuk terakhir kalinya, kami harus mengedit file konfigurasi SSH Anda:

sudo gedit / etc / ssh / sshd_config

Gulir melalui file sampai Anda melihat baris yang dimulai dengan "#PermitRootLogin melarang-sandi" Hapus hash # dari awal baris.

  • Jika Anda ingin mencegah root login sama sekali, ganti "banit-password" dengan "no".
  • Jika Anda akan mengizinkan root untuk masuk tetapi memaksa mereka untuk menggunakan kunci SSH, biarkan "larangan-kata sandi" di tempatnya.

Simpan perubahan Anda dan mulai ulang daemon SSH:

sudo systemctl restart sshd

Langkah Utama

Tentu saja, jika Anda sama sekali tidak perlu menjalankan SSH di komputer Anda, pastikan SSH dinonaktifkan.

sudo systemctl berhenti sshd
sudo systemctl nonaktifkan sshd

Jika Anda tidak membuka jendela, tidak ada yang bisa masuk.

The Best Ways To Secure Your SSH Server

How To Secure Linux SSH Server

How To Secure And Protect SSH Server

How To Secure A Server

Fail2ban Tutorial | How To Secure Your Server

How To Secure A Linux Server With UFW, SSH Keygen, Fail2ban & Two Factor Authentication

🔒 Securing SSH Server: Configuration

Beginners Guide To SSH


Privasi dan Keamanan - Artikel Terpopuler

Cara Membiarkan Kontak Melewati Mode Jangan Ganggu iOS

Privasi dan Keamanan Aug 27, 2025

KONTEN TIDAK CACHED Pembaca diam Fitur Jangan Ganggu iPhone adalah cara terbaik untuk memastikan handset Anda tidak mengganggu Anda saat Anda sedang tidur a..


Mengapa Microsoft Mengenakan Biaya $ 100 untuk Enkripsi Ketika Semua Orang Memberikannya?

Privasi dan Keamanan Apr 4, 2025

KONTEN TIDAK CACHED Semua platform lainnya — Mac, iOS, Android , Chrome OS, dan Linux — penawaran enkripsi disk penuh . Namun, jika PC Anda tidak..


Apa Itu "Runtime Broker" dan Mengapa Ini Berjalan di PC Saya?

Privasi dan Keamanan Jul 18, 2025

Jika Anda membaca artikel ini, Anda mungkin melihat proses Runtime Broker di Pengelola tugas jendela dan bertanya-tanya apa itu – dan mungkin bahkan mengap..


Cara Mengatur Kamera Keamanan Rumah Canary

Privasi dan Keamanan Mar 1, 2025

Itu Kamera keamanan rumah Canary adalah kamera yang mudah digunakan yang terhubung langsung ke jaringan Wi-Fi Anda (atau melalui ethernet) dan memungkinkan Anda melih..


Panduan How-To Geek untuk Memulai dengan LastPass

Privasi dan Keamanan Nov 5, 2024

Sangat mudah untuk menjadi ceroboh dengan keamanan kata sandi Anda karena jumlah akun dan kata sandi yang menyertai menumpuk. Saatnya untuk mulai membiarkan LastPass membuat dan men..


Cara Mengundang Semua Teman ke Undangan Acara Facebook, atau Memblokir Mereka

Privasi dan Keamanan May 6, 2025

Jika Anda pernah membuat acara Facebook, Anda tahu itu mungkin sulit untuk mengundang lebih dari beberapa teman dalam satu waktu. Untungnya, ada cara baru untuk mengundang hampir se..


Jailbreak iPhone atau iPod Touch Anda dengan iOS 4 dengan Cara Mudah

Privasi dan Keamanan Feb 4, 2025

KONTEN TIDAK CACHED Jika Anda belum mendengar berita selama beberapa hari terakhir, sekarang ada cara yang sangat mudah untuk melakukan jailbreak pada iPod Touch atau iPhone yang menjalanka..


Komputasi Aman: Perlindungan Virus Gratis untuk Pengguna Tingkat Lanjut dengan ClamWin

Privasi dan Keamanan Sep 16, 2025

KONTEN TIDAK CACHED Jika Anda menginginkan utilitas anti-virus sumber terbuka yang memungkinkan Anda memindai saat diperlukan, bukan waktu nyata, Anda mungkin ingin melihat ClamWin, utilita..


Kategori