GNU/Linux >> Belajar Linux >  >> Linux

3 cara saya mengonfigurasi SSH untuk privasi

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.


Linux
  1. Konfigurasi SSH Keys pada Sistem Debian 9 - Bagaimana cara melakukannya?

  2. Impor Kunci Ssh Sebagai Sub-kunci Gpg Untuk Digunakan Untuk Otentikasi Ssh?

  3. Cara Mengatur kunci SSH untuk login ssh "tanpa kata sandi" di Linux

  1. Cara mengkonfigurasi kunci SSH menggunakan cPanel

  2. Cara Setup SSH keys untuk SSH "public/private key" Login Di Linux

  3. bagaimana Anda membuat kunci ssh untuk pengguna lain?

  1. Ssh Private-public Key Map Untuk Klien?

  2. Kelola Pasangan Kunci SSH untuk server cloud dengan python-novaclient

  3. Cara Menggunakan Perintah ssh-keygen untuk mengkonfigurasi ssh tanpa kata sandi