20 Tips Keamanan Pengerasan Server CentOS - Bagian 1


Tutorial ini hanya mencakup tip keamanan umum untuk CentOS 8/7 yang dapat digunakan untuk memperkuat sistem. Tip daftar periksa ini dimaksudkan untuk digunakan sebagian besar pada berbagai jenis server bare-metal atau pada mesin (fisik atau virtual) yang menyediakan layanan jaringan.

Namun, beberapa tips juga dapat berhasil diterapkan pada mesin serba guna, seperti Desktop, Laptop, dan komputer papan tunggal berukuran kartu (Raspberry Pi).

Persyaratan

  • Instalasi Minimal CentOS 8
  • Instalasi Minimal CentOS 7

1. Perlindungan Fisik

Kunci akses ruang server Anda, gunakan penguncian rak dan pengawasan video. Pertimbangkan bahwa akses fisik apa pun ke ruang server dapat membuat mesin Anda terkena masalah keamanan yang serius.

Kata sandi BIOS dapat diubah dengan menyetel ulang jumper pada motherboard atau dengan melepaskan baterai CMOS. Selain itu, penyusup dapat mencuri hard disk atau langsung memasang hard disk baru ke antarmuka motherboard (SATA, SCSI, dll), melakukan booting dengan distro Linux langsung, dan mengkloning atau menyalin data tanpa meninggalkan jejak perangkat lunak apa pun.

2. Mengurangi Dampak Spionase

Dalam kasus data yang sangat sensitif, Anda mungkin harus menggunakan perlindungan fisik tingkat lanjut seperti menempatkan dan mengunci server ke dalam Faraday Cage atau menggunakan solusi TEMPEST militer untuk meminimalkan dampak memata-matai sistem melalui radio atau pancaran kebocoran listrik.

3. Amankan BIOS/UEFI

Mulailah proses pengerasan mesin Anda dengan mengamankan pengaturan BIOS/UEFI, terutama mengatur kata sandi BIOS/UEFI dan menonaktifkan perangkat media boot (CD, DVD, menonaktifkan dukungan USB) di untuk mencegah pengguna yang tidak berwenang mengubah pengaturan BIOS sistem atau mengubah prioritas perangkat boot dan mem-boot mesin dari media alternatif.

Untuk menerapkan perubahan jenis ini pada mesin Anda, Anda perlu membaca manual pabrikan motherboard untuk instruksi spesifik.

4. Pemuat Boot Aman

Tetapkan kata sandi GRUB untuk mencegah pengguna jahat merusak urutan boot kernel atau level proses, mengedit parameter kernel atau memulai sistem ke mode pengguna tunggal untuk membahayakan sistem Anda dan mengatur ulang root kata sandi untuk mendapatkan kontrol istimewa.

5. Gunakan Partisi Disk Terpisah

Saat menginstal CentOS pada sistem yang dimaksudkan sebagai server produksi, gunakan partisi khusus atau hard disk khusus untuk bagian sistem berikut:

/(root) 
/boot  
/home  
/tmp 
/var 

6. Gunakan LVM dan RAID untuk Redundansi dan Pertumbuhan Sistem File

Partisi /var adalah tempat di mana pesan log ditulis ke disk. Bagian sistem ini dapat bertambah besar secara eksponensial pada server dengan lalu lintas padat yang mengekspos layanan jaringan seperti server web atau server file.

Oleh karena itu, gunakan partisi yang besar untuk /var atau pertimbangkan untuk menyiapkan partisi ini menggunakan volume logis (LVM) atau gabungkan beberapa disk fisik ke dalam satu perangkat RAID 0 virtual yang lebih besar untuk mempertahankan ukuran yang besar. sejumlah data. Untuk data, redundansi pertimbangkan untuk menggunakan tata letak LVM di atas level RAID 1.

Untuk menyiapkan LVM atau RAID pada disk, ikuti panduan bermanfaat kami:

  1. Atur Penyimpanan Disk dengan LVM di Linux
  2. Buat Disk LVM Menggunakan vgcreate, lvcreate dan lvextend
  3. Gabungkan Beberapa Disk menjadi Satu Penyimpanan Virtual Besar
  4. Buat RAID 1 Menggunakan Dua Disk di Linux

7. Ubah Opsi fstab untuk Mengamankan Partisi Data

Pisahkan partisi yang dimaksudkan untuk menyimpan data dan mencegah eksekusi program, file perangkat atau bit setuid pada jenis partisi ini dengan menambahkan opsi berikut ke file fstab seperti yang diilustrasikan di bawah ini kutipan:

/dev/sda5 	 /nas          ext4    defaults,nosuid,nodev,noexec 1 2

Untuk mencegah peningkatan hak istimewa dan eksekusi skrip sewenang-wenang, buat partisi terpisah untuk /tmp dan pasang sebagai nosuid, nodev, dan noexec .

/dev/sda6  	/tmp         ext4    defaults,nosuid,nodev,noexec 0 0

8. Enkripsi Hard Disk pada level blok dengan LUKS

Untuk melindungi pengintaian data sensitif jika terjadi akses fisik ke hard drive mesin. Saya menyarankan Anda mempelajari cara mengenkripsi disk dengan membaca artikel kami Enkripsi Data Hard Disk Linux dengan LUKS.

9. Gunakan PGP dan Kriptografi Kunci Publik

Untuk mengenkripsi disk, gunakan perintah PGP dan Kriptografi Kunci Publik atau OpenSSL untuk mengenkripsi dan mendekripsi file sensitif dengan kata sandi seperti yang ditunjukkan dalam artikel ini Konfigurasikan Penyimpanan Sistem Linux Terenkripsi.

10. Instal Hanya Jumlah Minimum Paket yang Diperlukan

Hindari menginstal program, aplikasi, atau layanan yang tidak penting atau tidak diperlukan untuk menghindari kerentanan paket. Hal ini dapat mengurangi risiko bahwa penyusupan suatu perangkat lunak dapat menyebabkan penyusupan pada aplikasi lain, bagian dari sistem, atau bahkan sistem file, yang pada akhirnya mengakibatkan kerusakan data atau kehilangan data.

11. Perbarui sistem secara berkala

Perbarui sistem secara teratur. Jaga agar kernel Linux tetap sinkron dengan patch keamanan terbaru dan semua perangkat lunak yang diinstal selalu diperbarui dengan versi terbaru dengan mengeluarkan perintah di bawah ini:

yum update

12. Nonaktifkan Ctrl+Alt+Del

Untuk mencegah pengguna melakukan boot ulang server setelah mereka memiliki akses fisik ke keyboard atau melalui Aplikasi Konsol Jarak Jauh atau konsol tervirtualisasi (KVM, antarmuka perangkat lunak Virtualisasi), Anda harus menonaktifkan Ctrl+Alt Urutan kunci +Del dengan menjalankan perintah di bawah ini.

systemctl mask ctrl-alt-del.target 

13. Hapus Paket Perangkat Lunak yang Tidak Diperlukan

Instal perangkat lunak minimal yang diperlukan untuk mesin Anda. Jangan pernah menginstal program atau layanan tambahan. Instal paket hanya dari repositori tepercaya atau resmi. Gunakan instalasi minimal pada sistem jika mesin ditakdirkan untuk menjalankan seluruh masa pakainya sebagai server.

Verifikasi paket yang diinstal menggunakan salah satu perintah berikut:

rpm -qa

Buat daftar lokal dari semua paket yang diinstal.

yum list installed >> installed.txt

Konsultasikan daftar perangkat lunak yang tidak berguna dan hapus paket dengan mengeluarkan perintah di bawah ini:

yum remove package_name

14. Mulai ulang Layanan Systemd setelah Pembaruan Daemon

Gunakan contoh perintah di bawah ini untuk memulai ulang layanan systemd untuk menerapkan pembaruan baru.

systemctl restart httpd.service

15. Hapus Layanan yang Tidak Dibutuhkan

Identifikasi layanan yang mendengarkan pada port tertentu menggunakan perintah ss berikut.

ss -tulpn

Untuk membuat daftar semua layanan yang diinstal dengan status keluarannya, jalankan perintah di bawah ini:

systemctl list-units -t service

Misalnya, instalasi minimal default CentOS dilengkapi dengan daemon Postfix yang diinstal secara default yang dijalankan dengan nama master pada port 25. Hapus layanan jaringan Postfix jika mesin Anda tidak akan digunakan sebagai server email.

yum remove postfix

16. Enkripsi Data yang Ditransmisikan

Jangan gunakan protokol yang tidak aman untuk akses jarak jauh atau transfer file seperti Telnet, FTP, atau protokol tinggi teks biasa lainnya seperti SMTP, HTTP, NFS, atau SMB yang, dengan demikian, default, tidak mengenkripsi sesi otentikasi atau data yang dikirim.

Gunakan hanya sftp, scp untuk transfer file, dan SSH atau VNC melalui terowongan SSH untuk koneksi konsol jarak jauh atau akses GUI.

Untuk melakukan tunnel konsol VNC melalui SSH gunakan contoh di bawah ini yang meneruskan port VNC 5901 dari mesin jarak jauh ke mesin lokal Anda:

ssh -L 5902:localhost:5901 remote_machine

Di mesin lokal, jalankan perintah di bawah ini untuk membuat koneksi virtual ke titik akhir jarak jauh.

vncviewer localhost:5902

17. Pemindaian Port Jaringan

Lakukan pemeriksaan port eksternal menggunakan alat Nmap dari sistem jarak jauh melalui LAN. Jenis pemindaian ini dapat digunakan untuk memverifikasi kerentanan jaringan atau menguji aturan firewall.

nmap -sT -O 192.168.1.10

18. Firewall pemfilteran paket

Gunakan utilitas firewalld untuk melindungi port sistem, membuka atau menutup port layanan tertentu, terutama port terkenal (<1024).

Instal, mulai, aktifkan, dan daftarkan aturan firewall dengan mengeluarkan perintah di bawah ini:

yum install firewalld
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --list-all

19. Periksa Paket Protokol dengan Tcpdump

Gunakan utilitas tcpdump untuk mengendus paket jaringan secara lokal dan memeriksa kontennya untuk mencari lalu lintas yang mencurigakan (port sumber-tujuan, protokol TCP/IP, lalu lintas lapisan dua, permintaan ARP yang tidak biasa).

Untuk analisis yang lebih baik terhadap file tcpdump yang diambil, gunakan program yang lebih canggih seperti Wireshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Mencegah Serangan DNS

Periksa konten penyelesai Anda, biasanya file /etc/resolv.conf, yang menentukan alamat IP server DNS yang harus digunakan untuk menanyakan nama domain, untuk menghindari man-in-the -serangan menengah, lalu lintas yang tidak diperlukan untuk server DNS root, spoof atau membuat serangan DOS.

Ini baru bagian pertama. Pada bagian selanjutnya kita akan membahas tips keamanan lainnya untuk CentOS 8/7.