SSH (Secure Shell) adalah protokol yang memungkinkan Anda membuat koneksi terverifikasi dan pribadi, mengamankan saluran menggunakan kunci kriptografik, hingga meluncurkan shell jarak jauh di komputer lain. Dengan menggunakan koneksi ini, Anda dapat menjalankan perintah jarak jauh, memulai transfer file yang aman, meneruskan soket dan tampilan serta layanan, dan banyak lagi.
Sebelum munculnya SSH, sebagian besar administrasi jarak jauh dilakukan melalui telnet, dan agar adil, setelah Anda dapat membuat sesi jarak jauh, Anda dapat melakukan hampir apa pun yang Anda butuhkan. Masalah dengan protokol ini adalah bahwa lalu lintas berjalan tidak terenkripsi sebagai plaintext murni. Tidak perlu banyak upaya untuk menggunakan traffic sniffer untuk melihat semua paket dalam satu sesi, termasuk yang berisi nama pengguna dan sandi.
Dengan SSH, berkat penggunaan kunci asimetris, sesi antara peralatan yang terlibat dalam komunikasi dienkripsi. Dan sekarang ini lebih relevan dari sebelumnya, dengan semua server cloud dikelola dari seluruh dunia.
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
3 tips untuk konfigurasi SSH
Implementasi protokol SSH yang paling umum adalah OpenSSH, yang dikembangkan oleh proyek OpenBSD dan tersedia untuk sebagian besar sistem operasi Linux dan Unix. Setelah Anda menginstal paket ini, Anda memiliki file bernama sshd_config
yang mengontrol sebagian besar perilaku layanan. Pengaturan default umumnya sangat konservatif, tetapi saya cenderung membuat beberapa penyesuaian untuk mengoptimalkan pengalaman SSH saya dan melindungi server saya dari akses yang tidak sah.
1. Ubah port default
Ini adalah salah satu yang tidak semua administrator ingat. Siapa pun yang memiliki pemindai port dapat menemukan port SSH bahkan setelah Anda memindahkannya, jadi Anda hampir tidak dapat melepaskan diri dari bahaya, tetapi Anda dengan mudah menghindari ratusan skrip tidak canggih yang diluncurkan ke server Anda. Ini adalah bantuan yang dapat Anda lakukan sendiri untuk mengurangi kebisingan dari log Anda.
Untuk artikel ini, saya memiliki port default server SSH TCP 22 melalui satu penyedia cloud, dan rata-rata serangan per menit adalah 24. Setelah mengubah port ke angka yang jauh lebih tinggi, TCP 45678, rata-rata orang yang menghubungkan dan menebak nama pengguna atau kata sandi adalah dua per hari.
Untuk mengubah port default untuk SSH, buka /etc/ssh/sshd_config
di editor teks favorit Anda dan ubah nilai Port
dari 22 ke beberapa angka yang lebih besar dari 1024. Baris dapat dikomentari karena 22 adalah default (sehingga tidak perlu dideklarasikan secara eksplisit dalam konfigurasi), jadi batalkan komentar pada baris sebelum menyimpan.
#Port 22122
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Setelah Anda mengubah port dan menyimpan file, mulai ulang server SSH:
$ sudo systemctl restart sshd
2. Tidak ada lagi kata sandi
Ada gerakan umum untuk berhenti menggunakan kata sandi sebagai sarana otentikasi, dengan metode seperti otentikasi dua faktor yang semakin populer. OpenSSH dapat mengautentikasi menggunakan kunci asimetris, jadi tidak perlu mengingat kata sandi yang rumit, apalagi merotasinya setiap beberapa bulan, atau takut seseorang "berselancar bahu" saat Anda membuat sesi jarak jauh. Penggunaan kunci SSH memungkinkan Anda untuk masuk ke peralatan jarak jauh dengan cepat dan aman. Ini sering berarti lebih sedikit waktu untuk memproses nama pengguna dan kata sandi yang salah untuk server itu sendiri. Login sangat sederhana. Saat tidak ada kunci, tidak ada entri—bahkan tidak ada perintah.
Untuk menggunakan fitur ini, Anda harus mengonfigurasi klien (komputer secara fisik di depan Anda) dan server (mesin jarak jauh).
Di mesin klien, Anda harus membuat pasangan kunci SSH. Ini terdiri dari kunci publik dan kunci pribadi. Seperti namanya, satu kunci adalah untuk Anda distribusikan ke server yang ingin Anda masuki, dan yang lainnya bersifat pribadi dan tidak boleh dibagikan kepada siapa pun. Buat kunci baru dengan ssh-keygen
perintah, dan gunakan -t
opsi untuk menentukan pustaka kriptografi terbaru yang bagus seperti ed25519
:
$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (~/.ssh/id_ed25519):
Selama pembuatan kunci, Anda akan diminta untuk memberi nama file. Anda dapat menekan Kembali untuk menerima default. Jika Anda membuat lebih banyak kunci di masa mendatang, Anda dapat memberikan masing-masing kunci nama khusus, tetapi memiliki beberapa kunci berarti menentukan kunci mana yang ingin Anda gunakan untuk setiap interaksi, jadi untuk saat ini, terima saja defaultnya.
Anda juga dapat memberikan kunci Anda sebuah frasa sandi. Ini memastikan bahwa bahkan jika orang lain berhasil mendapatkan kunci pribadi Anda (yang seharusnya tidak pernah terjadi), mereka tidak dapat menggunakannya tanpa frasa sandi Anda. Ini adalah perlindungan yang berguna untuk beberapa kunci, sementara itu tidak sesuai untuk yang lain (terutama yang digunakan dalam skrip). Tekan Kembali untuk meninggalkan kunci Anda tanpa frasa sandi atau membuat frasa sandi jika Anda mau.
Untuk menyalin kunci Anda ke server, gunakan ssh-copy-id
memerintah. Misalnya, jika saya memiliki server bernama example.com
, maka saya dapat menyalin kunci publik saya ke sana dengan perintah ini:
$ ssh-copy-id [email protected]
Tindakan ini akan membuat atau mengubah file authorized_keys
di .ssh
server server direktori dengan kunci publik Anda.
Setelah ssh-copy-id
perintah telah mengkonfirmasi apa yang telah dilakukan, coba masuk dari komputer Anda untuk memverifikasi bahwa Anda dapat masuk tanpa kata sandi (atau dengan kata sandi kunci Anda jika Anda memilih untuk menggunakannya).
Setelah Anda berada di server tanpa menggunakan sandi akun server, edit sshd_config
server dan atur PasswordAuthentication
ke no
.
PasswordAuthentication no
Mulai ulang ssh
service untuk memuat konfigurasi baru:
$ sudo systemctl restart sshd
3. Putuskan siapa yang dapat masuk
Sebagian besar distribusi tidak mengizinkan pengguna root untuk masuk melalui SSH, yang memastikan bahwa hanya akun yang tidak memiliki hak istimewa yang aktif, menggunakan sudo
perintah untuk meningkatkan hak istimewa sesuai kebutuhan. Ini mencegah satu target (root) yang mencolok dan sangat jelas dari serangan skrip yang sederhana namun terlalu umum.
Demikian pula, fitur OpenSSH yang sederhana dan kuat adalah kemampuan untuk memutuskan pengguna mana yang dapat masuk ke mesin. Untuk menyetel pengguna mana yang mendapatkan akses SSH, buka sshd_config
file di editor teks favorit Anda, dan tambahkan baris seperti ini:
AllowUsers jgarrido jane tux
Mulai ulang layanan SSH untuk memuat opsi konfigurasi baru.
Ini memungkinkan hanya tiga pengguna (jgarrido, jane, dan tux) untuk masuk atau menjalankan operasi apa pun pada mesin jarak jauh.
Pemikiran terakhir
Anda dapat menggunakan OpenSSH untuk mengimplementasikan server SSH yang kuat dan tangguh. Ini hanya tiga opsi yang berguna untuk memperkuat instalasi Anda. Namun, ada banyak fitur dan opsi yang dapat Anda aktifkan atau nonaktifkan dalam sshd_config
file, dan ada banyak aplikasi hebat seperti Fail2ban yang dapat Anda gunakan untuk lebih melindungi layanan SSH Anda.