GNU/Linux >> Belajar Linux >  >> Linux

7 langkah untuk mengamankan server Linux Anda

Primer ini akan memperkenalkan Anda pada keamanan server Linux dasar. Meskipun berfokus pada Debian/Ubuntu, Anda dapat menerapkan semua yang disajikan di sini ke distribusi Linux lainnya. Saya juga mendorong Anda untuk meneliti materi ini dan memperluasnya jika ada.

1. Perbarui server Anda

Hal pertama yang harus Anda lakukan untuk mengamankan server Anda adalah memperbarui repositori lokal dan meningkatkan sistem operasi dan aplikasi yang diinstal dengan menerapkan patch terbaru.

Di Ubuntu dan Debian:

$ sudo apt update && sudo apt upgrade -y

Di Fedora, CentOS, atau RHEL:

$ sudo dnf upgrade

2. Buat akun pengguna istimewa baru

Selanjutnya, buat akun pengguna baru. Anda tidak boleh masuk ke server Anda sebagai root . Sebagai gantinya, buat akun Anda sendiri (" "), berikan sudo hak, dan menggunakannya untuk masuk ke server Anda.

Mulailah dengan membuat pengguna baru:

$ adduser <username>

Berikan akun pengguna baru Anda sudo hak dengan menambahkan (-a ) sudo grup (-G ) ke keanggotaan grup pengguna:

$ usermod -a -G sudo <username>

3. Unggah kunci SSH Anda

Anda akan ingin menggunakan kunci SSH untuk masuk ke server baru Anda. Anda dapat mengunggah kunci SSH yang telah dibuat sebelumnya ke server baru menggunakan ssh-copy-id perintah:

$ ssh-copy-id <username>@ip_address

Sekarang Anda dapat masuk ke server baru Anda tanpa harus mengetikkan kata sandi.

4. SSH aman

Selanjutnya, buat tiga perubahan ini:

  • Nonaktifkan otentikasi kata sandi SSH
  • Batasi root dari login dari jarak jauh
  • Batasi akses ke IPv4 atau IPv6

Buka /etc/ssh/sshd_config menggunakan editor teks pilihan Anda dan pastikan baris berikut:

PasswordAuthentication yes
PermitRootLogin yes

terlihat seperti ini:

PasswordAuthentication no
PermitRootLogin no

Selanjutnya, batasi layanan SSH ke IPv4 atau IPv6 dengan memodifikasi AddressFamily pilihan. Untuk mengubahnya agar hanya menggunakan IPv4 (yang seharusnya baik-baik saja bagi kebanyakan orang) buat perubahan ini:

AddressFamily inet

Mulai ulang layanan SSH untuk mengaktifkan perubahan Anda. Perhatikan bahwa ada baiknya untuk memiliki dua koneksi aktif ke server Anda sebelum memulai ulang server SSH. Memiliki koneksi ekstra memungkinkan Anda untuk memperbaiki apa pun jika restart salah.

Di Ubuntu:

$ sudo service sshd restart

Di Fedora atau CentOS atau apa pun yang menggunakan Systemd:

$ sudo systemctl restart sshd

5. Aktifkan firewall

Sekarang Anda perlu menginstal firewall, mengaktifkannya, dan mengonfigurasinya hanya untuk mengizinkan lalu lintas jaringan yang Anda tetapkan. Uncomplicated Firewall (UFW) adalah antarmuka yang mudah digunakan untuk iptables yang sangat menyederhanakan proses konfigurasi firewall.

Anda dapat menginstal UFW dengan:

$ sudo apt install ufw

Secara default, UFW menolak semua koneksi masuk dan mengizinkan semua koneksi keluar. Ini berarti aplikasi apa pun di server Anda dapat menjangkau internet, tetapi apa pun yang mencoba menjangkau server Anda tidak dapat terhubung.

Pertama, pastikan Anda dapat masuk dengan mengaktifkan akses ke SSH, HTTP, dan HTTPS:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Kemudian aktifkan UFW:

$ sudo ufw enable

Anda dapat melihat layanan apa yang diizinkan dan ditolak dengan:

$ sudo ufw status

Jika Anda ingin menonaktifkan UFW, Anda dapat melakukannya dengan mengetik:

$ sudo ufw disable

Anda juga dapat menggunakan firewall-cmd, yang sudah diinstal dan diintegrasikan ke dalam beberapa distribusi.

6. Instal Fail2ban

Fail2ban adalah aplikasi yang memeriksa log server mencari serangan berulang atau otomatis. Jika ada yang ditemukan, itu akan mengubah firewall untuk memblokir alamat IP penyerang baik secara permanen atau untuk jangka waktu tertentu.

Anda dapat menginstal Fail2ban dengan mengetik:

$ sudo apt install fail2ban -y

Kemudian salin file konfigurasi yang disertakan:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Dan mulai ulang Fail2ban:

$ sudo service fail2ban restart

Itu saja. Perangkat lunak akan terus memeriksa file log mencari serangan. Setelah beberapa saat, aplikasi akan membuat daftar alamat IP yang dilarang. Anda dapat melihat daftar ini dengan meminta status layanan SSH saat ini dengan:

$ sudo fail2ban-client status ssh

7. Hapus layanan yang terhubung ke jaringan yang tidak digunakan

Hampir semua sistem operasi server Linux hadir dengan beberapa layanan yang menghadap jaringan diaktifkan. Anda akan ingin menyimpan sebagian besar dari mereka. Namun, ada beberapa yang mungkin ingin Anda hapus. Anda dapat melihat semua layanan jaringan yang berjalan dengan menggunakan ss perintah:

$ sudo ss -atpu

Keluaran dari ss akan berbeda tergantung pada sistem operasi Anda. Ini adalah contoh dari apa yang mungkin Anda lihat. Ini menunjukkan bahwa layanan SSH (sshd) dan Ngnix (nginx) mendengarkan dan siap untuk koneksi:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

Bagaimana Anda menghapus layanan yang tidak digunakan (" ") akan berbeda tergantung pada sistem operasi Anda dan pengelola paket yang digunakannya.

Untuk menghapus layanan yang tidak digunakan di Debian/Ubuntu:

$ sudo apt purge <service_name>

Untuk menghapus layanan yang tidak digunakan di Red Hat/CentOS:

$ sudo yum remove <service_name>

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

Jalankan ss -atup sekali lagi untuk memverifikasi bahwa layanan yang tidak digunakan tidak lagi diinstal dan dijalankan.

Pemikiran terakhir

Tutorial ini menyajikan minimal yang dibutuhkan untuk mengeraskan server Linux. Lapisan keamanan tambahan dapat dan harus diaktifkan bergantung pada cara server digunakan. Lapisan ini dapat mencakup hal-hal seperti konfigurasi aplikasi individual, perangkat lunak pendeteksi intrusi, dan mengaktifkan kontrol akses, misalnya, autentikasi dua faktor.


Linux
  1. Konfigurasikan server OpenVPN Anda di Linux

  2. Instal OpenVPN di PC Linux Anda

  3. Bagaimana cara memonitor server Linux Anda?

  1. 9 hal yang harus dilakukan dalam 10 menit pertama Anda di server Linux

  2. Cara Menginstal Server Web Nginx di Linux

  3. Cara Menggunakan OpenSSH untuk Menghubungkan ke Server Linux Anda

  1. Pantau server Linux Anda dengan Checkmk

  2. Blokir alamat IP di server Linux

  3. Praktik terbaik keamanan server Linux