Quay lại danh sách
Tin tức công nghệ

Bảo mật VPS Linux cơ bản: 10 bước bắt buộc sau khi mua server mới

17 tháng 5, 2026

Bảo mật VPS Linux: Hành Trình Đầu Tiên Không Thể Bỏ Qua

Sau khoảnh khắc hào hứng khi mua một VPS Linux mới, nhiều quản trị viên thường vội vàng triển khai ứng dụng mà bỏ qua bước quan trọng nhất: củng cố bảo mật. Một server "sạch" từ nhà cung cấp không đồng nghĩa với một server "an toàn". Nó là một thực thể trần trụi, kết nối trực tiếp với internet đầy rẫy rủi ro. Bỏ qua việc bảo mật ban đầu giống như xây nhà mà không có móng – mọi thứ có thể sụp đổ chỉ vì một lỗ hổng nhỏ. Dưới đây là 10 bước bắt buộc bạn phải thực hiện ngay lập tức để biến VPS mới của mình từ một mục tiêu dễ dàng thành một pháo đài kỹ thuật số.

1. Cập Nhật Hệ Thống Ngay Lập Tức

Bước đầu tiên và đơn giản nhất, nhưng lại có ý nghĩa sống còn. Các bản phân phối Linux thường xuyên phát hành các bản cập nhật bảo mật để vá các lỗ hổng (CVE) vừa được phát hiện. Một server mới cài đặt có thể đã chứa các gói phần mềm lỗi thời.

# Đối với Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# Đối với CentOS/RHEL/Rocky Linux/AlmaLinux
sudo yum update -y

# Đối với Fedora
sudo dnf update -y

Sau khi cập nhật, hãy khởi động lại server nếu có thay đổi liên quan đến kernel: sudo reboot. Thiết lập thói quen cập nhật tự động (unattended-upgrades cho Debian/Ubuntu) để luôn được bảo vệ.

2. Tạo Người Dùng Mới & Vô Hiệu Hóa Root SSH

Đăng nhập trực tiếp bằng tài khoản root là một thói quen cực kỳ nguy hiểm. Nó cấp cho kẻ tấn công quyền lực tối cao ngay lập tức nếu mật khẩu bị bẻ khóa. Chiến lược đúng đắn là:

  1. Tạo một người dùng hệ thống mới với đặc quyền sudo.
    sudo adduser tennguoidung
    sudo usermod -aG sudo tennguoidung  # Ubuntu/Debian
    sudo usermod -aG wheel tennguoidung # CentOS/RHEL
  2. Đăng nhập bằng người dùng mới và kiểm tra quyền sudo.
  3. Vô hiệu hóa đăng nhập SSH cho root bằng cách sửa file cấu hình SSH:
    sudo nano /etc/ssh/sshd_config
    Tìm và đổi dòng PermitRootLogin yes thành PermitRootLogin no.
  4. Khởi động lại dịch vụ SSH: sudo systemctl restart sshd.

3. Thiết Lập Xác Thực Khóa SSH Thay Thế Mật Khẩu

Mật khẩu có thể bị brute-force. Khóa SSH (cặp khóa công khai/riêng tư) thì hầu như không thể. Đây là phương pháp xác thực mạnh mẽ nhất cho SSH.

  • Tạo cặp khóa trên máy local của bạn (không phải trên server): ssh-keygen -t ed25519 -C "[email protected]".
  • Copy khóa công khai lên server:
    ssh-copy-id tennguoidung@dia_chip_server
  • Cấu hình SSH để từ chối xác thực bằng mật khẩu (chỉ sau khi bạn đã đăng nhập thành công bằng khóa): Trong /etc/ssh/sshd_config, đặt PasswordAuthentication no và PubkeyAuthentication yes.

Lưu ý quan trọng: Luôn giữ an toàn cho khóa riêng tư (file id_ed25519) trên máy local. Mất nó đồng nghĩa với việc mất quyền kiểm soát server.

4. Cấu Hình Tường Lửa (Firewall) Với UFW hoặc Firewalld

Tường lửa là người gác cổng, chỉ cho phép lưu lượng truy cập cần thiết. Đóng mọi cổng (port), sau đó chỉ mở những cổng bạn thực sự dùng.

  • UFW (Uncomplicated Firewall) - Phổ biến trên Ubuntu/Debian:
    sudo ufw default deny incoming # Chặn mọi kết nối đến
    sudo ufw default allow outgoing # Cho phép mọi kết nối đi
    sudo ufw allow 22/tcp          # Mở SSH (cổng 22) - HÃY THẬN TRỌNG
    sudo ufw allow 80,443/tcp      # Mở HTTP/HTTPS cho web server
    sudo ufw enable                # Kích hoạt firewall
  • Firewalld - Phổ biến trên CentOS/RHEL/Fedora:
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

Khuyến nghị bảo mật cao: Thay đổi cổng SSH mặc định (22) sang một cổng khác (ví dụ: 2222) để giảm thiểu các lượt quét tự động. Tuy nhiên, đây không phải là biện pháp thay thế cho khóa SSH.

5. Cài Đặt & Cấu Hình Fail2ban

Fail2ban là "hệ thống cảnh sát" tự động. Nó giám sát nhật ký (log) của các dịch vụ như SSH, tìm kiếm các dấu hiệu tấn công brute-force (nhiều lần đăng nhập thất bại liên tiếp). Khi phát hiện, nó sẽ tự động chặn địa chỉ IP của kẻ tấn công tại tường lửa trong một khoảng thời gian nhất định.

# Cài đặt
sudo apt install fail2ban  # Ubuntu/Debian
sudo yum install fail2ban  # CentOS/RHEL

# Tạo file cấu hình cục bộ (không sửa file mặc định)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Khởi động và kích hoạt
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Bạn có thể tùy chỉnh trong jail.local các thông số như bantime (thời gian chặn), findtime (cửa sổ thời gian kiểm tra), và maxretry (số lần thử tối đa).

6. Gỡ Bỏ Các Dịch Vụ Không Cần Thiết

Mỗi dịch vụ mạng đang chạy là một "cửa sổ" tiềm ẩn rủi ro. Nguyên tắc giảm thiểu bề mặt tấn công đòi hỏi bạn chỉ chạy những gì thực sự cần thiết.

# Liệt kê các dịch vụ đang lắng nghe kết nối từ bên ngoài
sudo ss -tulpn
# hoặc
sudo netstat -tulpn

Dựa vào kết quả, gỡ cài đặt (uninstall) các gói phần mềm của dịch vụ không dùng đến. Ví dụ, nếu bạn không dùng mail server, hãy gỡ sendmail hoặc postfix. Nếu không dùng máy in, hãy gỡ cups.

7. Cấu Hình Tính Năng Bảo Mật Kernel Với Sysctl

File /etc/sysctl.conf cho phép bạn điều chỉnh các tham số bảo mật ở cấp độ kernel. Một số cài đặt quan trọng giúp chống lại một số loại tấn công mạng (như SYN flood, IP spoofing).

# Mở file để chỉnh sửa
sudo nano /etc/sysctl.conf

# Thêm hoặc bỏ comment các dòng sau:
net.ipv4.tcp_syncookies = 1          # Bảo vệ chống SYN flood
net.ipv4.conf.all.rp_filter = 1      # Chống IP spoofing
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1 # Bỏ qua ICMP broadcast (ping)
net.ipv4.conf.all.accept_redirects = 0   # Không chấp nhận ICMP redirect
net.ipv6.conf.all.accept_redirects = 0

Áp dụng thay đổi ngay lập tức: sudo sysctl -p.

8. Thiết Lập Nhật Ký (Logging) Tập Trung & Giám Sát

Nhật ký là "hộp đen" của server. Không giám sát log đồng nghĩa với việc bạn đang bị mù. Cấu hình rsyslog hoặc systemd-journald để lưu log đầy đủ. Quan trọng hơn, hãy thiết lập một hệ thống để tập trung và phân tích log từ xa (ví dụ: dùng rsyslog để gửi log đến một server trung tâm, hoặc dùng dịch vụ như Logwatch, Logcheck để gửi báo cáo hàng ngày qua email).

# Cài đặt Logwatch để nhận báo cáo email đơn giản
sudo apt install logwatch # Ubuntu/Debian
# Cấu hình trong /usr/share/logwatch/default.conf/logwatch.conf

9. Cài Đặt Công Cụ Quét Malware & Rootkit (Tùy Chọn Nâng Cao)

Để có thêm lớp phòng thủ chủ động, bạn có thể cài đặt các công cụ quét file hệ thống định kỳ.

  • Rkhunter (Rootkit Hunter): Quét các dấu hiệu rootkit, backdoor.
    sudo apt install rkhunter
    sudo rkhunter --check
  • ClamAV: Phần mềm diệt virus mã nguồn mở, hữu ích nếu server xử lý file upload từ người dùng.
    sudo apt install clamav clamav-daemon
    sudo freshclam # Cập nhật cơ sở dữ liệu virus
    sudo clamscan -r /home # Quét thư mục /home

Lưu ý: Các công cụ này tiêu tốn tài nguyên và cần được cấu hình cẩn thận để chạy định kỳ (qua cron).

10. Sao Lưu Định Kỳ (Backup) – Biện Pháp Phòng Thủ Cuối Cùng

Cho dù bạn có bảo mật kỹ đến đâu, rủi ro vẫn tồn tại (lỗi phần mềm, lỗi người dùng, tấn công zero-day). Sao lưu định kỳ là kế hoạch khôi phục thảm họa duy nhất đáng tin cậy. Hãy thiết lập ngay một quy trình sao lưu tự động:

  1. Xác định dữ liệu quan trọng: File cấu hình (/etc), dữ liệu web, cơ sở dữ liệu.
  2. Chọn công cụ: rsync kết hợp với cron là giải pháp đơn giản, mạnh mẽ. Các công cụ chuyên dụng như BorgBackup, Restic hỗ trợ mã hóa và deduplication.
  3. Lưu trữ ngoại vi: Không bao giờ lưu bản sao lưu duy nhất trên cùng một server. Hãy sao lưu sang một VPS khác, object storage (như AWS S3, Backblaze B2), hoặc ít nhất là một thư mục được mount riêng biệt.
  4. Kiểm tra khôi phục: Định kỳ thử khôi phục từ bản sao lưu để đảm bảo nó hoạt động.

Kết Luận: Bảo Mật Là Một Hành Trình, Không Phải Điểm Đến

Mười bước trên tạo nên nền tảng bảo mật vững chắc cho bất kỳ VPS Linux mới nào. Tuy nhiên, điều quan trọng cần nhớ là bảo mật không phải là một nhiệm vụ một lần. Đó là một quy trình liên tục bao gồm giám sát, cập nhật, đánh giá và điều chỉnh. Hãy xem đây là danh sách kiểm tra tối thiểu. Tùy thuộc vào mức độ nhạy cảm của dữ liệu và dịch vụ bạn vận hành, bạn có thể cần các biện pháp bổ sung như phân vùng, SELinux/AppArmor, hệ thống phát hiện xâm nhập (IDS), hoặc kiểm tra bảo mật định kỳ. Hãy bắt đầu ngay với 10 bước này để có được giấc ngủ ngon hơn, biết rằng cửa ngõ kỹ thuật số của bạn đã được khóa chặt trước khi đón những vị khách đầu tiên.