20 việc nên làm để bảo mật hệ thống CentOS

Chia sẻ

Bài viết này được viết dành cho hệ điều hành CentOS 8/7 được dùng để nâng cao bảo mật cho hệ thống. Hướng dẫn này có thể được sử dụng cho phần lớn các loại server từ vật lí tới servers ảo. Thậm chí cũng có thể áp dụng cho máy tính cá nhân hoặc Raspberry Pi

1. Bảo vệ ở mức vật lý

Đảm bảo phòng server của các bạn được khoá cẩn thận, sử dụng các chìa khoá và camera an ninh. Bởi vì việc cho những người không có thẩm quyền tiếp cận vào phòng server sẽ đặt ra nhiều rủi ro về bảo mật. Ví dụ như mật khẩu BIOS có thể dễ dàng gỡ bỏ bằng cách tháo pin CMOS và chúng ta hoàn toàn có thể boot một Distro dưới chế độ LIVE sau đó clone hoặc copy data mà khó bị phát hiện

2. Giảm thiểu các tác động gián điệp

Trong trường hợp có nhiều dữ liệu nhạy cảm, bạn có thể sử dụng các giải pháp bảo vệ vật lí nâng cao như đặt server trong một thiết bị như Faraday Cage hoặc dùng một giải pháp có hơi hướng quân động như TEMPEST  để giảm thiểu các tác động gián điệp bằng sóng radio hoặc qua nguồn điện

3. Bảo mật BIOS/UEFI

Bắt đầu quá trình bảo mật bắt đầu từ các cài đặt là BIOS/UEFI, đặt một mật khẩu BIOS/UEFO và chặn việc boot từ các thiết bị bên ngoài (CD/DVD/USB) cũng như ngăn chặn việc thay đổi cài đặt BIOS cũng như việc boot từ thiết bị bên ngoài. Tuy nhiên để thực hiện những bảo mật này bạn cần phải xem xét là mainboard của các bạn có hỗ trợ các tính năng bảo mật nâng cao này không

4. Bảo mật Boot Loader

Đặt một password dành cho GRUB để ngăn chặn việc khởi động vào chế độ single-user và đặt lại Password Root từ đó chiếm quyền sở hữu hệ thống

5. Sử dụng các phân vùng ổ đĩa riêng biệt

Khi cài đặt, bạn nên lưu trữ các thành phần chính của hệ thống ra các phân vùng riêng biệt. Ví dụ như: /(root), /boot, /home, /tmp, /var

6. Sử dụng LVM và RAID

Phân vùng /var là nơi mà các log của hệ thống được ghi vào ổ đĩa. Riêng phần này của hệ thống có thể gia năng rất nhanh về dung lượng, do vậy bạn có thể xem xét việc thiết lập phân vùng này sử dụng logical volumes (LVM) hoặc gập nhiều ổ đĩa vật lí thành một ổ ảo lớn RAID 0 để có thể chịu đựng được lượng dữ liệu lớn, về dữ liệu, xem xét việc dùng kiến trúc LVM ở trên cấp độ RAID 1

7. Chỉnh sửa cài đặt của fstab

Với các phân vùng chỉ dùng để lưu trữ dữ liệu thì bạn có thể ngăn chặn việc thực thi các phần mềm ở đây, bạn có thể thêm các thiết đặt vào fstab như hình dưới

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

Để ngăn chặn việc leo thang đặc quyền và việc thực thi script trái phép bạn có thể tạo một phân vùng riêng cho thư mục /tmp và mount nó dưới dạng nosuid, nodev và noexec

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

8. Mã hoá ổ đĩa ở cấp độ block với LUKS

Để bảo vệ các dữ liệu nhạy cảm trong trường hợp ai đó đánh cắp ổ đĩa của bạn. Bạn nên học cách mã hoá đĩa trong bài hướng dẫn mã hoá ổ đĩa Linux với LUKS ở đây

9. Sử dụng PGP và Public Keys

Ngoài việc dùng LUKS bạn có thể dùng PGP và Public-Key và câu lệnh OpenSSL để mã hoá và giải mã các files nhạy cảm với mật khẩu như đã trình bày trong bài hướng dẫn ở đây.

10. Chỉ cài đặt những packages thực sự cần thiết

Hạn chế việc cài đặt những phần mềm không cần thiết để tránh việc gặp các lỗ hổng ở các phần mềm. Hãy giảm thiểu tối đa số lượng các package tồn tại trên hệ thống, chỉ cài khi thực sự cần thiết

11. Cập nhật phần mềm thường xuyên

Cập nhật phần mềm thường xuyên và đảm bảo nhân Linux của bạn được đồng bộ với các bản vá mới nhất của hệ thống cũng như các phần mềm được cài đặt trên hệ thống được cập nhật mới nhất bằng cách chạy câu lệnh dưới đây

yum update

12. Khoá tổ hợp phím Ctrl + Alt + Del

Nếu bạn muốn việc ngăn chặn người dùng khởi động lại hệ thống bạn nên sử chặn quyền sử dụng tổ hợp phím Ctrl + Alt + Del bằng cách sử dụng câu lệnh

systemctl mask ctrl-alt-del.target

13. Gỡ bỏ các packages không cần thiết

Như đã nói ở điều 10 bạn nên gỡ bỏ các packages không cần thiết để đảm bảo sự an toàn cho hệ thống. Bạn có thể thực hiện theo các bước sau
Xác minh các packages đã cài trong hệ thống bằng câu lệnh

rpm -qa

Tạo một danh sách các packages đã cài và lưu lại dưới tên files installed.txt

yum list installed >> installed.txt

Gỡ bỏ các packages không cần thiết bằng câu lệnh

yum remove tên packages

14. Khởi động lại các Systemd Services sau khi thực hiện Daemon Updates

Sử dụng câu lệnh sau đây để khởi động lại các dịch vụ liên quan tới systemd sau khi một bản cập nhật hệ thống được thực hiện thành công. Chẳng hạn với dịch vụ HTTPD

systemctl restart httpd.service

15. Xoá bỏ các Services không cần thiết

Xác định các services đang hoạt động trong hệ thống bằng câu lệnh ss

ss -tulpn

Để xem danh sách tất cả các dịch vụ đang hoạt động với trạng thái output của chúng, chúng ta sử dụng câu lệnh

systemctl list-units -t service

Ví dụ, với cài đặt mặc định của CentOS có đi kèm dịch vụ Postfix được cài đặt và hoạt động dưới port 25. Vì vậy hãy Gỡ bỏ dịch vụ postfix sẽ nếu server của bạn không sử dụng vào mục đích làm mail server

yum remove postfix

16. Mã hoá các dữ liệu được truyền dẫn

Không sử dụng các giao thức kém an toàn như Telnet, FTP hoặc các giao thức plain text như SMTP, HTTP, NFS hoặc SMB. Chỉ sử dụng SFTP, SCP để truyền files và SSH hoặc VNC qua SSH tunnels khi bạn cần remote vào hệ thống với giao diện đồ hoạ. Ví dụ để chuyền VNC Console qua SSH sử dụng cổng 5901 bạn có thể dùng câu lệnh

ssh -L 5902:localhost:5901 remote_machine

Trên máy local bạn chạy câu lệnh sau để kết nối

vncviewer localhost:5902

17. Quét các Port trong mạng

Kiểm tra các port bên ngoài dùng công cụ Nmap từ một hệ thống khác trong mạng LAN. Kiểu scan này có thể dùng để kiểm tra các lỗ hổng trong mạng cũng như kiểm tra các quy tắc trên firewalls

nmap -sT -O 192.168.1.10

18. Lọc các packet qua Firewall

Sử dụng công cụ firewalld để bảo vệ các cổng của hệ thống, đóng hoặc mở một cổng cụ thể (Đặc biệt là các port phổ biến <1024)
Cài đặt, khởi động, kích hoạt và liệt kê các quy tắc của firewall bằng cách sử dụng các câu lệnh dưới đây

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

19. Kiểm tra các giao thức của mỗi gói tin với Tcpdump

Sử dụng công cụ tcpdump để giữ lại các packets trong mạng của bạn và kiểm tra nội dung của chúng nhằm tìm ra các traffic đáng ngờ (Dựa theo ports đích, giao thức TCP/IP, layer two traffic, hoặc những yêu cầu ARP đáng ngờ)
Bạn có thể phân tích files captured của tcpdump bằng các công cụ nâng cao như Wireshark

tcpdump -i eno16777736 -w tcpdump.pcap

20. Phòng ngừa tấn công DNS

Kiểm tra nội dung của bộ phân giải của bạn, đặc biệt là files /etc/resolv.conf. Vốn định nghĩa ra các địa chỉ IP của các máy chủ DNS nó sẽ sử dụng để query các domain. Nhằm phòng ngừa các cuộc tấn công do người đứng giữa, các traffic không cần thiết cho DNS Server, Spoò hoặc tạo ra một cuộc tấn công DOS

Chia sẻ