
Server Linux adalah tulang punggung Internet modern. Saat ini, hampir setiap situs web dan layanan yang dapat Anda akses melalui browser web berjalan pada distribusi Linux. Di sini kami menunjukkan kepada Anda bagaimana Anda dapat mengamankan server Linux Anda.
Catatan: tutorial ini dibuat menggunakan server Ubuntu, tetapi seharusnya juga berlaku untuk distribusi Linux lainnya, termasuk server web lokal Anda.
1. Hapus Akses Root SSH
Salah satu cara tercepat untuk mengamankan server Ubuntu Anda adalah dengan mengamankan daemon SSH Anda dengan menonaktifkan akses Root SSH Anda. Secara default, server OpenSSH mengizinkan koneksi masuk apa pun untuk masuk sebagai pengguna root.
Misalnya, menjalankan perintah berikut di server yang tidak aman akan memberikan prompt login:
ssh root@insecure.server.ip.address
Ini bisa menjadi masalah, karena ini membuat server Anda terbuka dan rentan terhadap serangan brute force kata sandi. Untuk memperbaikinya, masuk ke server Linux Anda dan perbarui file konfigurasi daemon SSH Anda.
Setelah Anda berada di dalam server Linux Anda, edit file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config

Cari variabel PermitRootLogin di GNU Nano dengan menekan Ctrl + W dan mengetik PermitRootLogin
.

Ubah nilai PermitRootLogin dari “yes” menjadi “no”, lalu simpan file dengan menekan Ctrl + Haikemudian Ctrl + x.
Untuk menerapkan pengaturan baru, muat ulang daemon SSH server melalui systemctl
:
sudo systemctl restart ssh

2. Gunakan Keypair Publik untuk Akses SSH
Cara cepat lainnya untuk mengamankan server Linux Anda adalah dengan membuat keypair publik antara akun pengguna lokal dan SSH Anda. Pendekatan ini melewatkan proses login kata sandi dan secara otomatis mengotentikasi Anda ke server jauh Anda.
Untuk membuat pasangan kunci publik, Anda harus terlebih dahulu menjalankan perintah berikut di mesin lokal Anda:
Program keygen akan menanyakan sejumlah detail tentang kunci yang ingin Anda buat. Anda dapat dengan aman meninggalkan opsi ini secara default dengan menekan Memasuki tiga kali.

Ekspor keypair publik baru Anda ke server jauh Anda dengan menggunakan ssh-copy-id
program. Ini adalah utilitas sederhana yang mempersiapkan mesin lokal dan remote untuk otentikasi kunci publik melalui SSH.
ssh-copy-id ramces@my.server.ip.address

Masuk ke mesin jarak jauh Anda dengan menjalankan perintah berikut:
ssh ramces@my.server.ip.address
Dimungkinkan juga untuk lebih mengamankan server Linux Anda dengan menghapus prompt login di SSH. Buka file konfigurasi daemon Anda dengan perintah berikut:
sudo nano /etc/ssh/sshd_config
Temukan PasswordAuthentication
variabel dan ubah nilainya dari “ya” menjadi “tidak.”

Muat ulang daemon SSH Anda dengan menjalankan perintah berikut:
sudo systemctl restart sshd
3. Keraskan Firewall Server Linux Anda
Selain membatasi akses SSH, Anda juga dapat meningkatkan keamanan server Linux Anda dengan mengkonfigurasi firewall Anda. Secara default, mesin Linux baru akan menerima semua koneksi masuk dari port mana pun.
Ini bisa menjadi masalah, karena membuat server Anda rentan terhadap serangan pemindaian port. Misalnya, aktor jahat dapat memindai mesin Anda untuk mencari port yang tidak aman dan menggunakannya untuk menemukan eksploitasi yang sesuai.

Salah satu cara untuk memperbaikinya adalah dengan menginstal ufw, klien firewall sederhana yang dapat mengontrol port dan alamat yang tersedia untuk dunia luar.
Jalankan perintah berikut untuk menginstal ufw di Ubuntu:

Tetapkan aturan default untuk ufw. Ini adalah kebijakan yang akan diikuti firewall Anda untuk port apa pun yang tidak Anda sesuaikan. Ini adalah praktik yang baik untuk memastikan bahwa Anda memblokir semua koneksi masuk:
sudo ufw default deny incoming sudo ufw default allow outgoing

Konfigurasikan firewall Anda untuk layanan yang ingin Anda jalankan di mesin Anda. Misalnya, menjalankan perintah berikut akan memungkinkan Anda untuk masuk melalui SSH dan meng-host server web:
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443
Terakhir, Anda perlu mengaktifkan konfigurasi firewall baru Anda dengan menjalankan sudo ufw enable
. Selanjutnya, Anda dapat memeriksa apakah firewall Anda online dengan menjalankan perintah ini:

4. Buat Pengguna Baru untuk Setiap Layanan
Secara default, setiap file dan program dalam sistem Linux milik pengguna dan grup tertentu. Untuk memodifikasi sistem, Anda harus memiliki izin yang tepat untuk folder yang tepat.
Salah satu cara untuk meningkatkan keamanan server Linux Anda adalah dengan membuat akun pengguna baru untuk setiap layanan baru. Pendekatan ini memungkinkan Anda untuk memuat hak istimewa untuk setiap layanan ke akun pengguna mereka sendiri.

Untuk melakukannya, jalankan perintah berikut:
sudo useradd -s /bin/bash -d /home/new-service -m -G sudo new-service sudo passwd new-service
- Itu
-s
flag menyetel shell sistem untuk akun pengguna baru. Dalam kasus saya, akun baru saya menggunakan Bash untuk cangkangnya. - Keduanya
-d
dan-m
flags mengatur direktori pengguna default untuk akun baru. - Itu
-G
flag, di sisi lain, menambahkan akun baru ke grup sekunder apa pun yang Anda tentukan. Misalnya, menambahkan akun baru ke grup sudo akan memungkinkannya menjalankan perintah superuser. - Itu
passwd
perintah memungkinkan Anda untuk mengatur kata sandi baru untuk akun pengguna baru.
Setelah selesai, Anda dapat menggunakan akun pengguna baru Anda dengan keluar dari akun Anda saat ini atau menjalankan su new-service
.

5. Keraskan Kernel Server Anda
Kernel adalah salah satu bagian terpenting dari sistem Linux dan merupakan perekat yang menghubungkan perangkat keras mesin Anda dengan perangkat lunak Anda. Misalnya, mengkompilasi kernel Linux Anda sendiri memungkinkan Anda mengaktifkan dukungan untuk perangkat keras dan fitur eksotis.

Selain itu, kernel juga berfungsi sebagai proses root dari sistem operasi. Mengamankan kernel adalah salah satu bagian terpenting dalam mengamankan server Linux Anda.
Salah satu cara tercepat untuk mengamankan kernel Anda adalah melalui sysctl
. Ini adalah utilitas bawaan yang memungkinkan Anda untuk mengubah opsi runtime kernel Linux.

Namun, penting untuk dicatat bahwa sysctl
tidak akan mencakup seluruh proses pengerasan kernel, karena mengamankan kernel akan sangat bergantung pada apa yang Anda butuhkan darinya.
Mengetahui hal itu, Anda dapat menjalankan perintah berikut untuk mencegah kernel Anda melaporkan informasi diagnostik apa pun:
sudo sysctl kernel.kptr_restrict=2 sudo sysctl kernel.dmesg_restrict=1 sudo sysctl kernel.kexec_load_disabled=1

Anda juga dapat menjalankan perintah berikut untuk memberi tahu kernel Anda untuk menghapus permintaan koneksi palsu yang dibuat ke server Anda:
sudo sysctl net.ipv4.tcp_syncookies=1 sudo sysctl net.ipv4.tcp_rfc1337=1

Perintah-perintah ini, di sisi lain, akan memaksa kernel untuk memvalidasi setiap koneksi masuk ke mesin:
sudo sysctl net.ipv4.conf.all.rp_filter=1 sudo sysctl net.ipv4.conf.default.rp_filter=1

Terakhir, rangkaian perintah berikut akan mencegah koneksi masuk apa pun untuk mengarahkan lalu lintas jaringan ke gateway yang berbeda. Melakukan hal ini akan mencegah mesin Anda jatuh dari serangan man-in-the-middle.
sudo sysctl net.ipv4.conf.all.accept_redirects= sudo sysctl net.ipv4.conf.default.accept_redirects= sudo sysctl net.ipv4.conf.all.secure_redirects= sudo sysctl net.ipv4.conf.default.secure_redirects= sudo sysctl net.ipv6.conf.all.accept_redirects= sudo sysctl net.ipv6.conf.default.accept_redirects= sudo sysctl net.ipv4.conf.all.send_redirects= sudo sysctl net.ipv4.conf.default.send_redirects=

Tips: selain tips di atas, Anda juga dapat menggunakan alat sumber terbuka ini untuk mengamankan server Linux Anda.
Pertanyaan yang sering diajukan
Saya kehilangan mesin lokal saya. Apakah masih mungkin untuk masuk ke server Ubuntu saya melalui SSH?
Untuk sebagian besar, seharusnya tidak mungkin untuk masuk melalui SSH jika hanya menggunakan otentikasi kunci publik. Namun, masih dimungkinkan untuk mengakses prompt SSH jika Anda tidak menonaktifkan PasswordAuthentication
variabel.
Selain itu, Anda dapat mengakses mesin secara fisik dan memperbarui “/etc/ssh/sshd_config” atau mengakses konsol root dari penyedia VPS Anda.
Server saya memiliki iptables dan ufw. Apakah saya perlu mengkonfigurasi keduanya untuk firewall saya?
Tidak! Baik iptables dan ufw adalah perangkat lunak firewall yang mengambil kendali atas rentang alamat dan port yang sama. Anda hanya perlu mengonfigurasi salah satunya agar firewall berfungsi di server Linux Anda.
Apakah mungkin untuk menghapus hak pengguna super dari pengguna yang saya buat?
Ya! Dimungkinkan untuk menghapus pengguna yang ada dari grup. Menggunakan usermod
kegunaan. Misalnya lari usermod -G video new-service
akan menghapus pengguna “layanan baru” dari grup “sudo” dan menambahkannya ke grup “video”.
Kredit gambar: Hapus percikan. Semua perubahan dan tangkapan layar oleh Ramces Red.
Berlangganan newsletter kami!
Tutorial terbaru kami dikirim langsung ke kotak masuk Anda