Tutorial ini berfokus pada pengaturan dan konfigurasi server SSH pada server minimal Debian 10
SSH , untuk Secure Shell , adalah protokol jaringan yang digunakan untuk mengoperasikan login jarak jauh ke mesin yang jauh dalam jaringan lokal atau melalui Internet. Arsitektur SSH biasanya menyertakan server SSH yang digunakan oleh klien SSH untuk terhubung ke mesin jarak jauh.
Sebagai administrator sistem, kemungkinan besar Anda menggunakan SSH setiap hari untuk terhubung ke mesin jarak jauh di seluruh jaringan Anda.
Akibatnya, saat host baru di-onboard ke infrastruktur Anda, Anda mungkin harus mengonfigurasinya untuk menginstal dan mengaktifkan SSH di dalamnya.
Dalam tutorial ini, kita akan melihat bagaimana Anda dapat menginstal dan mengaktifkan SSH, melalui OpenSSH , pada distribusi Debian 10.
Prasyarat
Untuk menginstal server SSH di Debian 10, Anda harus memiliki hak sudo di host Anda.
Untuk memeriksa apakah Anda memiliki hak sudo atau tidak, jalankan perintah berikut
$ sudo -l
Jika Anda melihat entri berikut di terminal Anda, itu berarti Anda memiliki hak istimewa yang lebih tinggi
Secara default, utilitas ssh harus diinstal pada host Anda, bahkan pada konfigurasi minimal.
Untuk memeriksa versi utilitas SSH Anda, Anda dapat menjalankan perintah berikut
$ ssh -V
Seperti yang Anda lihat, saya menjalankan OpenSSH v7.9 dengan OpenSSL v1.1.1.
Perhatikan bahwa itu tidak berarti bahwa server SSH diinstal pada host saya, itu hanya berarti bahwa saya dapat terhubung ke mesin jarak jauh sebagai klien menggunakan utilitas SSH.
Ini juga berarti bahwa utilitas khusus yang terkait dengan protokol SSH (seperti scp misalnya) atau yang terkait dengan server FTP (seperti sftp) akan tersedia di host saya.
Menginstal OpenSSH Server di Debian 10
Pertama-tama, pastikan paket Anda mutakhir dengan menjalankan perintah pembaruan
$ sudo apt-get update
Untuk menginstal server SSH di Debian 10, jalankan perintah berikut
$ sudo apt-get install openssh-server
Perintah harus menjalankan proses instalasi lengkap dan harus menyiapkan semua file yang diperlukan untuk server SSH Anda.
Jika penginstalan berhasil, Anda seharusnya sudah menginstal layanan sshd di host Anda.
Untuk memeriksa layanan Anda yang baru diinstal, jalankan perintah berikut
$ sudo systemctl status sshd
Secara default, server SSH Anda akan berjalan pada port 22.
Ini adalah port default yang ditetapkan untuk komunikasi SSH. Anda dapat memeriksa apakah hal ini terjadi pada host Anda dengan menjalankan perintah netstat berikut
$ netstat -tulpn | grep 22
Besar! Server SSH Anda sekarang aktif dan berjalan di host Debian 10 Anda.
Mengaktifkan lalu lintas SSH di setelan firewall Anda
Jika Anda menggunakan UFW sebagai firewall default pada sistem Debian 10 Anda, kemungkinan Anda perlu mengizinkan koneksi SSH di host Anda.
Untuk mengaktifkan koneksi SSH di host Anda, jalankan perintah berikut
$ sudo ufw allow ssh
Aktifkan server SSH pada boot sistem
Seperti yang mungkin Anda lihat, server SSH Anda sekarang berjalan sebagai layanan di host Anda.
Kemungkinan besar juga diinstruksikan untuk memulai saat boot.
Untuk memeriksa apakah layanan Anda diaktifkan atau tidak, Anda dapat menjalankan perintah berikut
$ sudo systemctl list-unit-files | grep enabled | grep ssh
Jika tidak ada hasil yang ditampilkan di terminal Anda, aktifkan layanan dan jalankan perintah lagi
$ sudo systemctl enable ssh
Mengonfigurasi server SSH Anda di Debian
Sebelum memberikan akses kepada pengguna melalui SSH, penting untuk memiliki seperangkat pengaturan yang aman untuk menghindari serangan, terutama jika server Anda berjalan sebagai VPS online.
Seperti yang telah kita lihat sebelumnya, serangan SSH cukup umum tetapi dapat dihindari jika kita mengubah pengaturan default yang tersedia.
Secara default, file konfigurasi SSH Anda berada di /etc/ssh/
Di direktori ini, Anda akan menemukan banyak file konfigurasi yang berbeda, tetapi yang paling penting adalah :
- ssh_config :mendefinisikan aturan SSH untuk klien. Ini berarti mendefinisikan aturan yang diterapkan setiap kali Anda menggunakan SSH untuk terhubung ke host jarak jauh atau untuk mentransfer file antar host;
- sshd_config :mendefinisikan aturan SSH untuk server SSH Anda. Ini digunakan misalnya untuk menentukan port SSH yang dapat dijangkau atau untuk menolak pengguna tertentu berkomunikasi dengan server Anda.
Kami jelas akan memodifikasi bagian seluruh server dari penyiapan SSH kami karena kami tertarik untuk mengonfigurasi dan mengamankan server OpenSSH kami.
Mengubah port default SSH
Langkah pertama untuk menjalankan server SSH yang aman adalah mengubah default yang ditetapkan oleh server OpenSSH.
Edit file konfigurasi sshd_config Anda dan cari baris berikut.
#Port 22
Pastikan untuk mengubah port Anda ke port yang tidak disediakan untuk protokol lain. Saya akan memilih 2222 dalam kasus ini.
Saat menghubungkan ke host Anda, jika tidak berjalan pada port default, Anda akan menentukan sendiri port SSH.
Silakan merujuk ke bagian 'Menghubungkan ke server SSH Anda' untuk informasi lebih lanjut.
Menonaktifkan Login Root di server SSH Anda
Secara default, login root tersedia di server SSH Anda.
Seharusnya tidak demikian karena akan menjadi bencana besar jika peretas masuk sebagai root di server Anda.
Jika kebetulan Anda menonaktifkan akun root di instalasi Debian 10 Anda, Anda masih dapat mengonfigurasi server SSH Anda untuk menolak login root, jika Anda memilih untuk mengaktifkan kembali login root Anda suatu hari nanti.
Untuk menonaktifkan login root di server SSH Anda, ubah baris berikut
#PermitRootLogin
PermitRootLogin no
Mengonfigurasi otentikasi SSH berbasis kunci
Di SSH, ada dua cara untuk terhubung ke host Anda:dengan menggunakan otentikasi kata sandi (apa yang kami lakukan di sini), atau memiliki satu set kunci SSH.
Jika Anda ingin tahu tentang otentikasi SSH berbasis kunci pada Debian 10, ada tutorial yang tersedia tentang subjek ini di sini.
Memulai ulang server SSH Anda untuk menerapkan perubahan
Agar perubahan diterapkan, mulai ulang layanan SSH Anda dan pastikan layanan dimulai ulang dengan benar
$ sudo systemctl restart sshd
$ sudo systemctl status sshd
Juga, jika Anda mengubah port default, pastikan bahwa perubahan diterapkan dengan benar dengan menjalankan perintah netstat sederhana
$ netstat -tulpn | grep 2222
Menghubungkan ke server SSH Anda
Untuk terhubung ke server SSH Anda, Anda akan menggunakan perintah ssh dengan sintaks berikut
$ ssh -p <port> <username>@<ip_address>
Jika Anda terhubung melalui jaringan LAN, pastikan untuk mendapatkan alamat IP lokal mesin Anda dengan perintah berikut
$ sudo ifconfig
Misalnya, untuk terhubung ke instance saya sendiri yang terletak di 127.0.0.1, saya akan menjalankan perintah berikut
$ ssh -p 2222 <user>@127.0.0.1
Anda akan diminta untuk memberikan kata sandi dan menyatakan bahwa keaslian server sudah benar.
Keluar dari server SSH Anda
Untuk keluar dari server SSH Anda di Debian 10, Anda dapat menekan Ctrl + D atau ketik 'logout' dan koneksi Anda akan dihentikan.
Menonaktifkan server SSH Anda
Untuk menonaktifkan server SSH Anda di Debian 10, jalankan perintah berikut
$ sudo systemctl stop sshd
$ sudo systemctl status sshd
Dari sana, server SSH Anda tidak akan dapat diakses lagi.
Pemecahan Masalah
Dalam beberapa kasus, Anda mungkin mengalami banyak pesan kesalahan saat mencoba menyiapkan server SSH di Debian 10.
Berikut adalah daftar kesalahan umum yang mungkin Anda dapatkan selama penyiapan.
Debian :koneksi SSH ditolak
Biasanya, Anda mendapatkan kesalahan ini karena firewall Anda tidak dikonfigurasi dengan benar di Debian.
Untuk mengatasi “koneksi SSH ditolak” Anda harus memeriksa ulang pengaturan firewall UFW Anda.
Secara default, Debian menggunakan UFW sebagai firewall default, jadi Anda mungkin ingin memeriksa aturan firewall Anda dan melihat apakah SSH diizinkan dengan benar.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Jika Anda menggunakan iptables, Anda juga dapat memeriksa aturan IP Anda saat ini dengan perintah iptables.
$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Jika aturan tidak diatur untuk SSH, Anda dapat mengaturnya dengan menjalankan perintah iptables lagi.
$ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Debian :Akses SSH ditolak
Terkadang, Anda mungkin ditolak akses ke server SSH Anda dengan pesan kesalahan ini "Akses SSH ditolak" di Debian.
Untuk mengatasi masalah ini, itu tergantung pada metode otentikasi yang Anda gunakan.
Akses sandi SSH ditolak
Jika Anda menggunakan metode sandi, periksa kembali sandi Anda dan pastikan Anda memasukkannya dengan benar.
Juga, dimungkinkan untuk mengonfigurasi server SSH agar hanya mengizinkan sebagian pengguna tertentu :jika demikian, pastikan Anda termasuk dalam daftar itu.
Terakhir, jika Anda ingin login sebagai root, pastikan Anda telah memodifikasi opsi “PermitRootLogin” di file “sshd_config” Anda.
#PermitRootLogin
PermitRootLogin yes
Akses kunci SSH ditolak
Jika Anda menggunakan kunci SSH untuk autentikasi SSH, Anda mungkin perlu memeriksa ulang apakah kunci tersebut terletak dengan benar di file “authorized_keys”.
Jika Anda tidak yakin tentang cara melakukannya, ikuti panduan kami tentang otentikasi kunci SSH di Debian 10.
Debian :Tidak dapat menemukan paket openssh-server
Untuk yang satu ini, Anda harus memastikan bahwa Anda telah mengatur repositori APT Anda dengan benar.
Tambahkan entri berikut ke file sources.list Anda dan perbarui paket Anda.
$ sudo nano /etc/apt/sources.list
deb http://ftp.us.debian.org/debian wheezy main
$ sudo apt-get update
Kesimpulan
Dalam tutorial ini, Anda mempelajari cara menginstal dan mengkonfigurasi server SSH di host Debian 10.
Anda juga mempelajari tentang opsi konfigurasi dasar yang perlu diterapkan untuk menjalankan server SSH yang aman dan kuat melalui LAN atau melalui Internet.
Jika Anda ingin tahu tentang administrasi sistem Linux, kami memiliki banyak tutorial tentang subjek ini dalam kategori khusus.