GNU/Linux >> Belajar Linux >  >> Linux

Cara meningkatkan Keamanan SSH di Ubuntu 18.04

Layanan SSH adalah titik akses utama ke Server Cloud Anda dan, pada saat yang sama, salah satu layanan yang paling rentan terhadap serangan. Panduan ini akan membantu Anda meningkatkan keamanan layanan berkat berbagai trik dan teknik.

Mengubah port mendengarkan

Port default untuk mendengarkan koneksi SSH adalah 22:mengubah pengaturan ini akan memungkinkan layanan cloud dan meningkatkan keamanan koneksi .

Untuk menghindari interferensi dengan layanan lain yang ada pada mesin, praktik yang baik adalah memeriksa port mana yang sedang digunakan, menggunakan perintah netstat:

$ netstat -n -l
    
Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address State
tcp        0 0 127.0.0.1:3306          0.0.0.0:* LISTEN
tcp        0 0 127.0.0.53:53           0.0.0.0:* LISTEN
tcp        0 0 0.0.0.0:22              0.0.0.0:* LISTEN
tcp6       0 0 :::80                   :::* LISTEN
tcp6       0 0 :::22                   :::* LISTEN
udp        0 0 127.0.0.53:53           0.0.0.0:*

Melalui parameter -l yang diteruskan ke netstat, paksa untuk mencetak semua koneksi yang berada dalam status LISTEN. Dalam contoh ini port berikut digunakan:

  • 3306 layanan MySQL

  • 22 SSH

  • 80 Apache2 / HTTP

  • 53 DNS

Untuk mengubah port, cukup edit file konfigurasi di / etc / ssh / sshd_config, batalkan komentar pada arahan Port:

#Port 22

Kemudian tetapkan nilai baru, mungkin tinggi, untuk mencegahnya dicegat oleh perangkat lunak pemindaian port otomatis (misalnya 2200, 5574, 1022):

Port 5574

Untuk menerapkan perubahan, unggah layanan melalui:

$ sudo service sshd reload

. Pertahankan koneksi tetap hidup dengan menggunakan reload sedemikian rupa untuk memperbaiki kesalahan dan memeriksa akses baru dengan klien SSH lain

Setelah perubahan diterapkan, sambungkan ke server Anda dengan menentukan port baru. Misalnya, jika Anda menggunakan klien SSH dari baris perintah:

$ ssh [email protected]<SERVER.IP> -p 5574

Penggunaan kunci untuk autentikasi

Banyak digunakan untuk keamanannya, akses melalui kunci RSA adalah alternatif untuk login berbasis sandi. Dalam jenis otentikasi ini, klien menghasilkan kunci pribadi dan kunci publik terkait yang diinstal pada mesin server untuk mengotentikasi klien dengan jelas. .

Untuk menginstal kunci publik, klien pertama-tama harus membuat pasangan kunci menggunakan perintah ssh-keygen:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file where to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Sebelum melanjutkan pembuatan, ssh-keygen meminta frasa sandi opsional yang dapat digunakan untuk otentikasi. Dalam contoh ini untuk memudahkan akses, file berikut dibiarkan kosong.

Setelah selesai, perangkat lunak akan menyimpan dua file di :

  • id_rsa:kunci pribadi klien, tidak untuk dibagikan dengan siapa pun.

  • id_rsa.pub:kunci publik yang dapat dibagikan .

Untuk menyiapkan lingkungan server, buat file bernama Authorized_keys di folder .ssh di dalam folder pengguna yang akan Anda gunakan untuk login:

$ sudo mkdir ~/.ssh
$ sudo touch ~/.ssh/authorized_keys
$ sudo chmod 600 ~/.ssh/authorized_keys

Pastikan file memiliki izin seperti di atas .

Kemudian lanjutkan dengan menempelkan kunci publik yang sebelumnya disiapkan oleh mesin klien:

$ sudo nano ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoTzd9RnqT0yioQG1klsLEK/VG9myo7CQ47aRXu7hnPit6Lgw5kAjC7vzNWYLTy2oIlsrVI7R/tvWmVNISGkWDp9U3fONbSLp+vgBKDzRUVAIqP/AIJ2THanyZxj2b8XU/4s2uzGoTLSR3ViX0JU6zTc+IkaBp1o3W3OolvO15E10/VYJCKN3TkxPsSSGE3QReXnCcnIZYAnrPf9f1DPP1Lo+VUCIzZ7IzcZajAWQ53hC71mTYNHkUgIlWxpRyEhnsRfmqEfUSFbTwpNEarv7vGlK686C4xVxlVfKbqlNa3/g2Vrae4ArVBM958JPZ6aa+7KDZfH5TDgPPtlFCIGkd [email protected]

Simpan file dan muat ulang layanan SSH:

$ sudo service sshd reload

Pada titik ini mengakses server tanpa memerlukan kata sandi apa pun harus dimungkinkan:

$ ssh [email protected]<SERVER.IP>

Jika semuanya bekerja dengan benar, nonaktifkan akses kata sandi dari mesin server dengan memodifikasi file / etc / ssh / sshd_config, dengan parameter berikut:

ChallengeResponseAuthentication no
    PasswordAuthentication no

Ingat bahwa Anda dapat menambahkan kunci publik lainnya hanya dengan menyimpannya di akhir file ~ / .ssh / Authorized_keys file di mesin server.

Membatasi waktu ketersediaan layanan

Strategi untuk mengurangi akses yang tidak diinginkan dan serangan brute force adalah dengan mengurangi waktu ketersediaan layanan SSH. Jika Anda yakin tidak perlu terhubung ke server pada waktu-waktu tertentu (misalnya dari pukul 11.00 hingga 08.00 keesokan harinya), atur jadwal otomatis untuk memblokir port koneksi.

Untuk melakukannya, gunakan firewall default yang disebut iptables, tetapi, sebelum melanjutkan konfigurasi, ingatlah bahwa iptables, menurut sifatnya, tidak menyimpan konfigurasi yang dimasukkan.

Untuk menyimpan dan memuat konfigurasi lebih cepat, gunakan paket iptables-persistent, yang memuat ulang konfigurasi yang disimpan saat startup sistem.

Kemudian lanjutkan menginstal paket:

$ sudo apt-get install iptables-persistent

Setelah menyelesaikan instalasi, masukkan "rantai" untuk memblokir layanan SSH:

$ sudo iptables -N chain-ssh
$ sudo iptables -A INPUT -p tcp --dport 22 -j chain-ssh

Dengan cara ini, semua koneksi yang ditujukan untuk port 22 (jika layanan SSH Anda menggunakan port lain, ubah nilai ini) akan melewati rantai "chain-ssh" yang baru dibuat.

Simpan konfigurasi saat ini (yang akan dimuat oleh iptables-persistent) dengan perintah:

$ sudo iptables-save > /etc/iptables/rules.v4

Kemudian buat jadwal waktu untuk memasukkan dan menghapus aturan pada rantai dengan memodifikasi crontab sebagai berikut:

$ sudo crontab -e
    
# m h  dom mon dow   command
0 23   * * *   iptables -A chain-ssh -j DROP
0 8    * * *   iptables -F chain-ssh

Seperti yang Anda lihat, dengan operasi pertama aturan DROP koneksi pada pukul 11.00 ditambahkan, sedangkan operasi kedua mengosongkan rantai pada pukul 08.00 untuk memulihkan layanan.

Simpan file untuk menerapkan perubahan.


Linux
  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara Mengatur Kunci SSH

  3. Cara Mengatur Kunci SSH di Ubuntu 16.04

  1. Cara Mengaktifkan SSH di Ubuntu 18.04

  2. Cara Membuat Pasangan Kunci SSH (dengan Contoh)

  3. Cara Mengatur Kunci SSH di Ubuntu 18.04

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara Menghasilkan Kunci SSH di Windows 10

  3. Cara Mengatur Kunci SSH di Ubuntu 18.04