Konfigurasi SSH kustom yang paling umum dari server OpenSsh

Konfigurasi SSH kustom yang paling umum dari server OpenSsh

Itu Openssh set utilitas mari kita membuat koneksi yang aman dan terenkripsi antar mesin. Dalam tutorial ini kita akan melihat beberapa opsi paling berguna yang dapat kita gunakan untuk mengubah perilaku sshd, itu Openssh Daemon untuk membuat pekerjaan Administrasi Sistem Linux Anda lebih mudah.

Dalam artikel ini kami menganggap keberadaan server yang sudah berjalan dan dapat diakses. Jika Anda ingin tahu lebih banyak tentang instalasi OpenSsh, Anda dapat melihat artikel ini tentang cara menginstal server ssh di ubuntu linux.

Dalam tutorial ini Anda akan belajar:

  • Cara menyesuaikan perilaku daemon sshd dengan memanipulasi opsi di file konfigurasi ssh utama /etc/ssh/sshd_config
  • Cara mengubah port default yang digunakan oleh server
  • Cara mengubah alamat yang didengarkan server
  • Cara mengubah waktu login ssh maksimum
  • Bagaimana mengizinkan atau menolak login sebagai root
  • Cara mengubah upaya login maksimal dan jumlah sesi maksimum dibuka
  • Cara menampilkan pesan saat pengguna mencoba mengotentikasi ke server
  • Cara mengaktifkan/menonaktifkan otentikasi kata sandi dan pubkey
  • Cara mengaktifkan/menonaktifkan hostbasedAuthentication
  • Mengaktifkan/Menonaktifkan Penerusan X11


Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi-independen
Perangkat lunak Tidak ada perangkat lunak tambahan yang diperlukan untuk mengikuti tutorial ini selain dari OpenSsh
Lainnya Server OpenSsh yang berjalan
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

File konfigurasi daemon sshd

Secara default sshd, itu Openssh daemon, membaca konfigurasinya dari /etc/ssh/sshd_config mengajukan. Jalur file yang berbeda dapat ditentukan dengan menggunakan -F opsi saat meluncurkan daemon. Ada banyak pilihan yang dapat kita ubah untuk mengubah perilaku daemon. Meskipun tidak mungkin untuk menyebutkan semuanya di sini, kita akan melihat beberapa yang paling umum digunakan dan apa yang bisa kita peroleh dengan mengubah nilai -nilai mereka. Setiap kali opsi diubah, untuk membuat perubahan efektif, daemon harus dimulai kembali. Saat menggunakan SystemD, perintah yang akan dijalankan adalah:

$ sudo systemctl restart sshd

Mengubah port yang digunakan oleh server

Inilah yang disebut a keamanan melalui ketidakjelasan Ukur: secara default sshd Daemon mendengarkan di port 22. Mengubah port yang digunakan tidak meningkatkan keamanan per se, karena sepele untuk melakukan pemindaian port dan melihat port apa yang digunakan oleh mesin. Namun, lebih dari itu, upaya login brute force hanya menargetkan port default, sehingga memodifikasi port yang digunakan dapat membantu. Untuk menginstruksikan daemon untuk mendengarkan port tertentu, kami menggunakan Pelabuhan opsi dan berikan nomor port:

Port 1024


Berbagai kejadian opsi dapat disediakan: server akan mendengarkan semua port yang ditentukan. Sebelum memulai kembali server SSH untuk membuat perubahan efektif, sangat penting untuk memodifikasi aturan firewall sesuai dengan perubahan tersebut. Di sisi klien, untuk terhubung menggunakan port tertentu, kita harus menentukan nomor port dengan menggunakan -P opsi (pendek untuk -port). Misalnya, untuk masuk menggunakan port 1024 kami akan menulis:

$ ssh -p 1024 egdoc@feanor

Untuk menghindari keharusan menentukan port setiap kali kami terhubung ke server, kami dapat mengatur entri untuk itu di ~/.ssh/config file (kita mungkin harus membuatnya, karena tidak ada secara default dan kita harus membuatnya hanya dapat diakses oleh pengguna), seperti pada contoh di bawah ini:

Host Feanor Hostname 192.168.0.39 Port 1024

Dengan cara ini, setiap kali kita akan mencoba untuk mencocokkan Tuan rumah (Feanor dalam kasus ini) Parameter yang ditentukan dalam bait terkait file konfigurasi SSH akan diterapkan secara otomatis.

Mengubah alamat yang didengarkan server

Selain port sshd Daemon mendengarkan, kami juga dapat mengubah Dengarkan alamat. Secara default server mendengarkan semua alamat lokal. Contoh sintaks untuk digunakan dengan opsi ini sudah dapat ditemukan di file konfigurasi SSH:

#Listenaddress 0.0.0.0 #listenaddress ::

Kami dapat menentukan alamat dengan salah satu cara berikut:

  • Host | Alamat IPv4 | Alamat IPv6
  • Host | Alamat IPv4: Port
  • Host | Alamat IPv6: Port

Opsi untuk digunakan dipanggil Listenaddress Berbagai kejadian opsi diizinkan, untuk menentukan beberapa alamat. Kita bisa gunakan IPv4 atau IPv6 alamat, dan secara opsional menentukan port yang akan digunakan. Jika kami tidak menentukan port sshd daemon akan mendengarkan di port yang ditentukan dengan Pelabuhan Opsi yang kami lihat di atas.

Mengubah waktu login maksimum

Kami dapat mengkonfigurasi Openssh daemon untuk memutuskan hubungan setelah jumlah waktu tertentu jika pengguna tidak berhasil masuk. Dalam hal ini opsi yang ingin kami ubah dipanggil LOGINGRACETIME. Yang harus kita lakukan adalah memberikan nilai batas waktu, misalnya:

LOGINGRACETIME 2M

Nilai default untuk opsi ini adalah 120 -an (detik)

Izinkan atau tolak login sebagai root

Dengan menggunakan Leverrootlogin opsi yang dapat kami buat jika sshd Daemon harus memungkinkan pengguna root untuk masuk secara langsung. Opsi menerima salah satu nilai ini:

  • Ya
  • TIDAK
  • Larangan-password
  • hanya-perintah-paksa

Dua nilai pertama cukup jelas. Ketika menggunakan Ya Pengguna root diizinkan untuk masuk melalui SSH, saat menggunakan TIDAK Kemungkinan ini ditolak. Itu Larangan-password Dan hanya-perintah-paksa Nilai lebih menarik.

Saat yang pertama
digunakan sebagai nilai dari Leverrootlogin Opsi, kata sandi dan login interaktif keyboard dinonaktifkan, tetapi pengguna root dapat login menggunakan a kunci publik. Jika hanya-perintah-paksa digunakan, sebagai gantinya, login root melalui otentikasi kunci publik diizinkan tetapi hanya jika a memerintah Opsi ditentukan dalam kunci resmi. Misalnya:

command = "ls -a" ssh -rsa […]


Di atas kami menentukan ls -a sebagai perintah untuk kunci ssh yang akan digunakan oleh root. Dengan cara ini saat menghubungkan menggunakan tombol, perintah akan dieksekusi, dan kemudian koneksi ke server akan ditutup. Mari kita verifikasi (di sini saya berasumsi bahwa kunci sudah ada pada klien dan telah diizinkan di server):

$ ssh root@feanor masukkan sandi untuk kunci '/home/egdoc/.ssh/id_rsa ':… Bash_history .Bashrc .Profil .ssh .vim .Koneksi viminfo ke feanor tertutup.

Mengubah upaya login maks dan jumlah sesi maksimum yang dibuka

Dua parameter lain yang mungkin ingin kami ubah adalah jumlah login yang dicoba per koneksi, dan jumlah shell yang dibuka, login atau sesi subsistem yang diizinkan. Kita dapat mengubah parameter sebelumnya dengan menggunakan MaxAuthtries opsi, memberikan jumlah upaya yang diizinkan (nilai default adalah 6). Yang terakhir, sebaliknya, dapat dimodifikasi dengan menggunakan MaxSessions pilihan. Opsi ini juga membutuhkan nilai integer, makhluk default 10.

Tampilkan pesan saat pengguna mencoba mengotentikasi ke server

Kita bisa menggunakan Spanduk opsi untuk menentukan file yang berisi beberapa teks yang ingin kami kirim ke pengguna sebelum ia mengotentikasi ke server. Nilai default untuk opsi adalah tidak ada, Jadi tidak ada spanduk yang ditampilkan. Inilah contohnya. File/etc/ssh/spanduk yang kami buat berisi beberapa teks yang kami gunakan sebagai pesan. Jika kami mengatur opsi seperti di bawah ini:

Banner/etc/ssh/spanduk.txt

Ketika kami mencoba masuk, kami mendapatkan hasil berikut:

$ ssh egdoc@feanor ###############################uji spanduk############### #################### egdoc@feanor's password: 

Mengaktifkan/Menonaktifkan Kata Sandi dan Otentikasi Pubkey.

Itu sshd Daemon menyediakan beberapa cara untuk mengotentikasi pengguna. Kami dapat memilih untuk mengaktifkan atau menonaktifkan otentikasi dengan kata sandi atau dengan kunci publik menggunakan masing -masing PasswordAuthentication Dan PubKeyAuthentication pilihan. Secara default kedua opsi biasanya disetel ke Ya: Ini berarti bahwa pengguna dapat terhubung ke server dengan memberikan kata sandi dan juga dengan menggunakan kunci publik yang ia miliki (kunci juga dapat dilindungi dengan kata sandi). Untuk menonaktifkan salah satu dari dua opsi yang cukup kami gunakan TIDAK sebagai nilai. Misalnya, jika hanya ingin mengizinkan login dengan kunci publik, kami dapat mengatur:

Kata sandi no

Dengan cara ini hanya pengguna yang memiliki kunci publik terdapat dalam file tombol resmi akan dapat masuk ke server. File Kunci Resmi adalah file yang berisi kunci publik yang diizinkan. Secara default file tersebut .ssh/otorisasi_keys Di direktori rumah pengguna di server, tetapi ini dapat diubah menggunakan OtorisasiKeysfile opsi dan menentukan file alternatif, memberikan salah satu mutlak atau a relatif jalur. Ketika jalur relatif digunakan, itu dianggap relatif terhadap direktori home pengguna. Opsi ini juga dapat diatur ke tidak ada: Dengan cara ini server tidak akan mencari kunci publik di file.

Mengaktifkan/menonaktifkan hostbasedAuthentication

Server openssh dapat diatur untuk menerima berbasis host autentikasi. Saat menggunakan jenis otentikasi ini, host mengotentikasi atas nama semua atau beberapa penggunanya. Opsi diatur ke TIDAK secara default. Mengatur opsi untuk Ya tidak cukup untuk membuat otentikasi berbasis host bekerja.

Mengaktifkan/Menonaktifkan Penerusan X11

Itu X11 Sistem jendela memiliki arsitektur klien-server: Klien adalah banyak aplikasi grafis yang meminta koneksi ke server yang mengelola ditampilkan. Server X11 dan kliennya sering berjalan pada mesin yang sama, tetapi ini tidak perlu. Dimungkinkan untuk mengakses server X11 jarak jauh melalui protokol yang berdedikasi tetapi tidak aman. Openssh Mari kita jalankan koneksi dengan aman, membuat terowongan terenkripsi. Opsi yang mengontrol perilaku ini adalah X11 forwarding. Fitur ini umumnya dinonaktifkan secara default, sehingga diatur ke TIDAK.

Kita harus mengatur opsi untuk Ya Jika kita ingin memanfaatkannya. Di sisi klien, kami mengaktifkan fitur dengan menggunakan -X opsi dari baris perintah, atau setel Forwardx11 ke Ya di file konfigurasi klien. Misalnya, katakanlah kami memiliki X11 yang berjalan di mesin jarak jauh; Kami ingin menggunakan koneksi SSH untuk meluncurkan aplikasi "Pluma" (editor teks ringan) dan mengendalikannya menggunakan x11forwarding. Kita lari:

$ ssh egdoc@feanor -x pluma


Program ini akan diluncurkan. Di bilah judul, jelas kita dapat melihat bahwa itu berjalan di "Feanor", yang merupakan nama mesin jarak jauh.



X11 Forwarding sedang beraksi

Kesimpulan

Dalam tutorial ini kami melihat apa defaultnya sshd file konfigurasi daemon dan kami belajar bagaimana kami dapat menggunakan yang alternatif dengan menentukan jalurnya dengan -F opsi saat memulai layanan. Kami juga melihat beberapa opsi paling berguna yang dapat kami gunakan dalam file tersebut untuk mengubah perilaku SSHD. Kami melihat cara mengizinkan atau menolak otentikasi berbasis kata sandi dan kunci publik; cara mengaktifkan atau menyangkal login root; cara mengaktifkan atau menonaktifkan fitur penerusan X11 dan cara membuat server menampilkan pesan ketika pengguna mencoba mengotentikasi di atasnya.

Kami juga melihat cara menentukan upaya login maksimum yang diizinkan per koneksi dan cara mengubah alamat dan port yang didengarkan server. Untuk mengetahui lebih lanjut tentang kemungkinan konfigurasi server, silakan berkonsultasi dengan halaman manual untuk SSHD dan untuk file konfigurasi sshd_config.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Bagaimana memanfaatkan openssh
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Linux: Setup SSH
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Cara memantau aktivitas jaringan pada sistem Linux
  • Instal Arch Linux di VMware Workstation
  • Unduh Linux