Chiếc VPS mà bạn dày công xây dựng không chỉ là một máy chủ – đó là nền tảng cho website, ứng dụng, hay toàn bộ dự án tâm huyết của bạn. Trong bối cảnh các cuộc tấn công mạng ngày càng tinh vi, việc bỏ qua các bước bảo mật cơ bản cũng giống như gửi một lời mời gọi đến những kẻ có ý đồ xấu. Vấn đề không phải là liệu VPS của bạn có bị tấn công hay không, mà là khi nào. Cùng Tino tìm hiểu cách bảo mật VPS Ubuntu qua bài viết dưới đây nhé!
Tại sao bảo mật VPS Ubuntu lại quan trọng hơn bao giờ hết?
Rủi ro tiềm ẩn khi VPS không được bảo mật
- Mất dữ liệu: Hacker có thể xóa, mã hóa tống tiền (ransomware), hoặc đánh cắp thông tin nhạy cảm của bạn và khách hàng.
- Bị lợi dụng cho mục đích xấu: VPS của bạn có thể bị biến thành một phần của mạng botnet để tấn công DDoS, gửi thư rác, hoặc đào tiền ảo, làm tiêu tốn tài nguyên và khiến nhà cung cấp khóa tài khoản của bạn.
- Mất uy tín: Website bị chèn mã độc, hiển thị nội dung lừa đảo sẽ làm sụt giảm nghiêm trọng lòng tin của người dùng và ảnh hưởng tiêu cực đến thứ hạng SEO.

Lợi ích của một hệ thống được gia cố vững chắc
- Đảm bảo tính toàn vẹn dữ liệu: Bạn có thể chắc chắn rằng tài sản số của mình, chẳng hạn như thông tin kinh doanh và dữ liệu khách hàng luôn chính xác, không bị can thiệp hay sửa đổi trái phép.
- Tối đa hóa thời gian hoạt động (Uptime): Một hệ thống được bảo vệ sẽ đứng vững trước các cuộc tấn công từ chối dịch vụ (DoS/DDoS) ở mức độ cơ bản, đảm bảo dịch vụ của bạn luôn thông suốt và ổn định.
- An tâm tập trung phát triển: Thay vì sống trong lo sợ và tốn thời gian “dập lửa” sau các sự cố, bạn có thể giải phóng tâm trí để tập trung vào điều quan trọng nhất: phát triển sản phẩm và kinh doanh.

Hướng dẫn 10 bước bảo mật VPS Ubuntu toàn diện A-Z
10 bước bảo mật dưới đây sẽ được chia thành 4 giai đoạn.
Giai đoạn 1: thiết lập nền tảng “sạch” ngay từ đầu
Đây là những bước cần phải thực hiện ngay sau khi bạn nhận VPS.
Bước 1: Tạo người dùng mới với quyền sudo (không dùng root)
Làm việc trực tiếp với tài khoản root là cực kỳ nguy hiểm. Một lệnh gõ nhầm có thể phá hủy toàn bộ hệ thống. Thay vào đó, chúng ta sẽ tạo một người dùng thường và cấp cho họ quyền quản trị khi cần.
- Đăng nhập vào VPS bằng tài khoản root.
- Tạo người dùng mới (thay ten_cua_ban bằng tên bạn muốn):
adduser ten_cua_ban
Hệ thống sẽ yêu cầu bạn đặt mật khẩu và điền một số thông tin.
Thêm người dùng này vào nhóm sudo để có quyền quản trị:
usermod -aG sudo ten_cua_ban
Bây giờ, hãy đăng xuất và đăng nhập lại bằng tài khoản mới này cho tất cả các bước sau.
Bước 2: Cập nhật toàn bộ hệ thống
Luôn đảm bảo hệ điều hành và các phần mềm được cập nhật lên phiên bản mới nhất để vá các lỗ hổng bảo mật đã được phát hiện.
- sudo apt update: Lệnh này làm mới danh sách các gói phần mềm từ các kho lưu trữ. Nó cho hệ thống biết có những phiên bản mới nào.
- sudo apt upgrade -y: Lệnh này sẽ tải về và cài đặt các bản cập nhật đó. Tùy chọn -y tự động trả lời “yes” cho các câu hỏi.
sudo apt update && sudo apt upgrade -y

Bước 3: Đồng bộ hóa thời gian (NTP)
Thời gian chính xác là yếu tố sống còn cho việc ghi log và bảo mật.
sudo timedatectl set-ntp on
Kiểm tra lại bằng lệnh timedatectl và đảm bảo dòng NTP service đang active.
Giai đoạn 2: Xây dựng hàng rào phòng thủ
Nền tảng đã vững, giờ là lúc dựng lên các lớp phòng thủ.
Bước 4: Cấu hình tường lửa UFW (Uncomplicated Firewall)
Tường lửa giống như người bảo vệ, chỉ cho phép những kết nối mà bạn cho phép đi vào. UFW là công cụ tường lửa mặc định của Ubuntu, rất mạnh mẽ và dễ sử dụng.
Cho phép các kết nối cần thiết: Trước khi bật tường lửa, bạn phải đảm bảo cổng SSH được phép, nếu không bạn sẽ tự khóa mình ở ngoài!
# Cho phép SSH
sudo ufw allow OpenSSH
# Nếu bạn chạy web server, hãy cho phép HTTP và HTTPS
sudo ufw allow 'Nginx Full'
# Hoặc 'Apache Full' nếu bạn dùng Apache
Kích hoạt UFW:
sudo ufw enable
Hệ thống sẽ cảnh báo rằng việc này có thể ngắt kết nối SSH, gõ y và Enter.
Kiểm tra trạng thái:
sudo ufw status
Bạn sẽ thấy danh sách các quy tắc đang hoạt động.

Bước 5: Gia cố cổng giao tiếp quan trọng nhất – SSH
SSH là cửa ngõ chính để quản trị VPS. Đây cũng là mục tiêu tấn công phổ biến nhất.
Thay đổi cổng SSH mặc định (Port 22)
Hầu hết các bot tự động chỉ quét cổng 22. Việc đổi cổng sẽ giúp bạn “tàng hình” trước chúng.
Mở file cấu hình SSH:
sudo nano /etc/ssh/sshd_config
Tìm dòng #Port 22, bỏ dấu # ở đầu và đổi 22 thành một số bất kỳ trong khoảng 1024-65535 (ví dụ: 2222).
Port 2222
Lưu file (Ctrl + X, Y, Enter).
Quan trọng: Mở cổng mới này trên tường lửa TRƯỚC KHI khởi động lại SSH.
sudo ufw allow 2222/tcp
Khởi động lại dịch vụ SSH để áp dụng thay đổi:
sudo systemctl restart ssh
Bây giờ, bạn cần đăng nhập lại bằng lệnh ssh ten_cua_ban@<ip_vps> -p 2222.
Vô hiệu hóa quyền đăng nhập của tài khoản root
Không bao giờ cho phép đăng nhập SSH trực tiếp bằng root.
- Mở lại file /etc/ssh/sshd_config.
- Tìm và sửa dòng PermitRootLogin thành no.
PermitRootLogin no
- Lưu và khởi động lại SSH.
Phương pháp bảo mật tối thượng: Sử dụng SSH Keys thay cho mật khẩu
Đây là cách an toàn nhất. Thay vì dùng mật khẩu dễ bị dò, bạn sẽ dùng một cặp khóa mã hóa.
Trên máy tính cá nhân của bạn, mở terminal và chạy lệnh:
ssh-keygen -t rsa -b 4096
Nhấn Enter để chấp nhận các giá trị mặc định.
Sao chép khóa công khai lên VPS:
ssh-copy-id -p 2222 ten_cua_ban@<ip_vps>
(Sử dụng port SSH mới của bạn). Lệnh này sẽ yêu cầu mật khẩu của bạn lần cuối.
Vô hiệu hóa đăng nhập bằng mật khẩu trên VPS:
- Mở file
/etc/ssh/sshd_configtrên VPS. - Tìm và sửa dòng PasswordAuthentication thành no.
- Lưu và khởi động lại SSH:
sudo systemctl restart ssh.
Từ giờ, chỉ có máy tính chứa khóa riêng tư mới có thể đăng nhập vào VPS của bạn.
Giai đoạn 3: Tự động hóa việc phòng thủ
Bước 6: Cài đặt và cấu hình Fail2Ban
Fail2Ban là một công cụ chống xâm nhập tự động. Công cụ này này sẽ theo dõi log hệ thống, phát hiện các hành vi đáng ngờ (như nhập sai mật khẩu SSH nhiều lần) và tự động dùng tường lửa để chặn IP của kẻ tấn công trong một khoảng thời gian.
Cài đặt:
sudo apt install fail2ban
Kích hoạt và khởi động dịch vụ:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Mặc định, Fail2Ban đã được cấu hình để bảo vệ SSH. Bạn có thể kiểm tra trạng thái bằng lệnh sudo fail2ban-client status sshd để xem những IP nào đã bị chặn.

Bước 7: Cài đặt cập nhật bảo mật tự động
Đây là bước cực kỳ quan trọng để hệ thống luôn được vá lỗi kịp thời.
Cài đặt gói cần thiết:
sudo apt install unattended-upgrades
Kích hoạt:
sudo dpkg-reconfigure -plow unattended-upgrades
Một cửa sổ sẽ hiện ra, hãy chọn Yes. Giờ đây, các bản vá bảo mật quan trọng sẽ được tự động cài đặt.
Giai đoạn 4: Giám sát và bảo trì chủ động
Bước 8: Lên lịch sao lưu tự động
Bảo mật tốt đến đâu cũng không thể đảm bảo an toàn 100%. Backup là lớp bảo vệ cuối cùng, là cứu cánh khi điều tồi tệ nhất xảy ra.
- Phương pháp: Bạn có thể dùng các công cụ như rsync kết hợp với cronjob để tự động sao lưu file đến một nơi lưu trữ khác (như Google Drive, Dropbox, hoặc một VPS khác).
- Nhà cung cấp: Hầu hết các nhà cung cấp VPS đều có dịch vụ snapshot (chụp ảnh trạng thái) tự động, đây là một lựa chọn rất tiện lợi.
- Nguyên tắc: Luôn lưu bản sao lưu ở một nơi khác (off-site) so với máy chủ chính.

Bước 9: Tự động phân tích log với logwatch
Thay vì đọc log thủ công, hãy để hệ thống gửi báo cáo cho bạn hàng ngày.
Cài đặt:
sudo apt install logwatch
Chạy thử và xem báo cáo:
sudo logwatch
Để cấu hình gửi email, bạn cần cài đặt một Mail Transfer Agent như Postfix và chỉnh sửa file /etc/cron.daily/00logwatch.
Bước 10: Chủ động quét Rootkit và Malware
Định kỳ kiểm tra xem hệ thống có bị cài cắm phần mềm độc hại hay không.
Cài đặt công cụ:
sudo apt install chkrootkit rkhunter
Thực hiện quét:
# Quét bằng chkrootkit
sudo chkrootkit
# Cập nhật cơ sở dữ liệu cho rkhunter rồi quét
sudo rkhunter --update
sudo rkhunter --checkall
Hãy chạy các lệnh này định kỳ (ví dụ: hàng tuần) và kiểm tra kỹ các cảnh báo (warning) mà chúng đưa ra.
Kết luận
Bảo mật cho một VPS Ubuntu không phải là công việc làm một lần rồi quên, mà là một quá trình liên tục, đòi hỏi sự cẩn trọng và chủ động. Bằng cách thực hiện các bước từ việc gia cố nền tảng, dựng lên tường lửa, tự động hóa phòng thủ và cập nhật, cho đến chủ động giám sát và quét mã độc, bạn đã biến chiếc VPS của mình từ một mục tiêu tiềm năng thành một pháo đài được bảo vệ nghiêm ngặt.
Những câu hỏi thường gặp
VPS của tôi chỉ chạy một blog nhỏ, có thật sự cần làm tất cả các bước phức tạp này không?
Có. Quy mô không quan trọng, vì các bot tấn công tự động trên internet quét mọi địa chỉ IP mà không phân biệt mục tiêu lớn hay nhỏ. Việc bảo mật cơ bản là bắt buộc cho tất cả mọi người.
Nếu đã cài đặt cập nhật tự động (unattended-upgrades), tôi có cần chạy apt upgrade thủ công nữa không?
Có, bạn vẫn nên chạy thủ công định kỳ. Cập nhật tự động thường chỉ áp dụng cho các bản vá bảo mật quan trọng, trong khi apt upgrade sẽ cập nhật toàn bộ phần mềm, bao gồm cả các tính năng mới và bản sửa lỗi thông thường.
Làm thế nào để xem các địa chỉ IP đã bị Fail2Ban chặn và làm cách nào để bỏ chặn một IP?
Để xem IP bị chặn (ví dụ cho SSH): sudo fail2ban-client status sshd. Để bỏ chặn một IP: sudo fail2ban-client set sshd unbanip <ĐỊA_CHỈ_IP>.
Nhà cung cấp VPS đã có Tường lửa Mạng (Network Firewall), tại sao tôi vẫn cần cài đặt UFW trên máy chủ?
Đó là chiến lược “phòng thủ theo chiều sâu”. Hãy coi Tường lửa Mạng là hàng rào của khu phố, còn UFW là cửa khóa của chính nhà bạn. Luôn cần cả hai lớp bảo vệ để tăng cường an ninh tối đa.
Nếu tôi làm mất SSH key (ví dụ: máy tính bị hỏng), làm cách nào để truy cập lại vào VPS?
Sử dụng tính năng “Console” hoặc chế độ cứu hộ (Rescue Mode) của nhà cung cấp. Từ đó, bạn có thể truy cập vào hệ thống, tạm thời cho phép đăng nhập bằng mật khẩu trở lại và thêm SSH key mới của mình.
