Hướng Dẫn Sử Dụng VPS: Từ Đăng Nhập Đến Vận Hành [2026]

NỘI DUNG

Tóm tắt nhanh: Hướng dẫn sử dụng VPS xoay quanh 5 nhóm việc cần làm đúng thứ tự: đăng nhập lần đầu qua SSH, cấu hình hệ thống cơ bản trong 30 phút đầu, cài phần mềm cần thiết, bảo mật máy chủ trước khi mở bất kỳ port nào ra internet, và thiết lập monitoring để phát hiện sự cố sớm. Thứ tự quan trọng hơn tốc độ — bỏ qua bảo mật để vội cài web server là con đường ngắn nhất dẫn đến VPS bị compromise. Bài này dành cho developer, freelancer, và SME mới nhận VPS lần đầu muốn tự quản trị không cần DevOps riêng.

  • SSH là giao thức đăng nhập chính vào VPS Linux — cần 4 thứ để kết nối: địa chỉ IP, port (mặc định 22), username (thường là root), và password hoặc private key
  • Việc đầu tiên sau khi SSH thành công không phải cài web server, mà là đổi mật khẩu root và tạo user thường — bỏ qua bước này, attacker có thể brute-force vào VPS trong vòng vài giờ
  • Bật firewall (UFW hoặc iptables) trước khi expose bất kỳ port nào — đặc biệt không để port 3306 (MySQL) hay 6379 (Redis) mở trực tiếp ra internet
  • Monitoring không cần tool phức tạp ngay từ đầu: htop xem CPU/RAM realtime, df -h xem disk, free -m xem memory — 3 lệnh này đủ bắt đầu
  • VPS NVMe U.2 có IOPS cao hơn VPS SATA SSD từ 3–10 lần tùy workload — chênh lệch thực sự rõ khi chạy database, còn với blog tĩnh thì gần như không ảnh hưởng đáng kể

Email từ nhà cung cấp vừa vào hộp thư: thông tin VPS, địa chỉ IP, root password. Bạn mở terminal. Dán lệnh SSH vào. Màn hình trả về dấu nhắc lệnh quen thuộc — và bạn không biết phải làm gì tiếp theo.

Câu hỏi tưởng đơn giản này khiến không ít người bắt đầu Google, gặp 30 bài viết mâu thuẫn nhau. Bài bảo cài web server ngay. Bài khuyên update OS trước. Bài lại nói phải cấu hình firewall đầu tiên. Không ai giải thích tại sao thứ tự đó quan trọng.

Sự thật là: quản trị VPS không khó. Nhưng làm sai thứ tự có hậu quả cụ thể — VPS bị brute-force trong ngày đầu tiên vì chưa đổi mật khẩu root, hoặc ngược lại, tự khóa mình ra ngoài vì cấu hình firewall sai trước khi allow port SSH. Cả hai đều đã xảy ra với nhiều người dùng mới.

Bài này đi qua 5 phase theo đúng thứ tự logic: chuẩn bị và đăng nhập lần đầu, cấu hình cơ bản trong 30 phút đầu, cài phần mềm cần thiết cho use case của bạn, bảo mật máy chủ đúng cách, rồi mới đến monitoring và backup liên tục. Mỗi phase có lý do rõ ràng tại sao nó đứng ở vị trí đó trong chuỗi — không phải danh sách checklist ngẫu nhiên.

Hướng dẫn sử dụng VPS
Hướng dẫn sử dụng VPS

VPS là gì và cần chuẩn bị gì trước khi bắt đầu?

VPS (Virtual Private Server) là một máy chủ ảo được tạo ra bằng công nghệ ảo hóa (virtualization), cho phép nhiều VPS chạy độc lập trên cùng một server vật lý nhưng không chia sẻ tài nguyên với nhau. Mỗi VPS có CPU, RAM, và ổ đĩa riêng — về mặt vận hành, bạn đang làm việc với một máy chủ Linux thực thụ, chỉ là chạy trên lớp ảo hóa KVM thay vì phần cứng vật lý trực tiếp. Theo tài liệu kỹ thuật của Red Hat về KVM virtualization, mỗi guest VM được cấp tài nguyên cách ly hoàn toàn thông qua hypervisor — điều này đảm bảo VPS của bạn không bị ảnh hưởng bởi tải của máy khác trên cùng node.

Trước khi gõ lệnh SSH đầu tiên, có 4 thứ cần xác nhận đã có đủ trong tay:

  • Địa chỉ IP của VPS — thường là IPv4 dạng 103.x.x.x hoặc 45.x.x.x, nhà cung cấp gửi trong email bàn giao
  • Port SSH — mặc định là 22, một số nhà cung cấp đã đổi sang port khác vì lý do bảo mật, hãy kiểm tra email kỹ
  • Username và password — thường là root và mật khẩu tạm do hệ thống sinh ra. Mật khẩu này cần đổi ngay sau đăng nhập lần đầu
  • SSH client — Windows dùng PuTTY hoặc Windows Terminal (Win 10+); macOS và Linux dùng Terminal built-in

Nếu bạn thắc mắc VPS của mình đang chạy hệ điều hành gì — Ubuntu hay CentOS — thông tin này cũng có trong email bàn giao. Một số nhà cung cấp để bạn chọn OS lúc đặt; nếu chưa chọn thì hỏi support trước khi bắt đầu, vì cú pháp lệnh giữa Debian/Ubuntu và CentOS/RHEL khác nhau ở một số chỗ quan trọng.

Để hiểu rõ hơn về các loại dịch vụ máy chủ và khi nào nên dùng VPS thay vì Shared Hosting hay Cloud Server, bạn có thể xem hướng dẫn tổng quan về VPS dành cho người mới.

VPS Linux và VPS Windows khác nhau ở điểm nào?

Bài này chủ yếu hướng dẫn VPS Linux — đây là loại phổ biến hơn và là lựa chọn mặc định cho web hosting, app server, và hầu hết use case phổ biến. Tuy nhiên, cần nói rõ ngay từ đầu để bạn không áp dụng nhầm hướng dẫn:

Tiêu chí VPS Linux VPS Windows
Giao diện quản trị SSH (command line) RDP (Remote Desktop — giao diện đồ họa)
Phần mềm hỗ trợ PHP, Python, Node.js, Ruby, Nginx, Apache, MySQL, PostgreSQL .NET Framework, MS SQL Server, ASP.NET, IIS
Giá baseline Thấp hơn — không có license OS Cao hơn — cộng thêm Windows Server license
Phù hợp với ai Developer web/app, sysadmin, hosting website PHP/Node.js Dev .NET, app dùng MS SQL Server, cần GUI remote

Nếu bạn đang chạy ứng dụng .NET hoặc cần MS SQL Server, VPS Windows là bắt buộc. Với mọi use case còn lại — WordPress, Laravel, Node.js, Python app — VPS Linux là lựa chọn hiệu quả hơn về cả chi phí lẫn hiệu năng.

Nhận VPS xong cần kiểm tra gì trước tiên?

Trước khi làm bất cứ điều gì, kiểm tra nhanh 5 mục này — giống như bước kiểm tra hàng trước khi ký nhận. Nếu có vấn đề, liên hệ support ngay trước khi bắt đầu cấu hình để tránh mất thời gian debug về sau:

  • Ping thử IP — chạy ping [IP_VPS] từ máy tính của bạn. Nếu không có response, kiểm tra lại IP hoặc hỏi nhà cung cấp
  • Test SSH kết nối được khôngssh root@[IP_VPS]. “Connection refused” khác “Connection timed out”: cái đầu là SSH chưa chạy, cái sau là firewall chặn
  • Xác nhận phiên bản OS — sau khi vào được: lsb_release -a (Ubuntu/Debian) hoặc cat /etc/redhat-release (CentOS). Biết chính xác OS version để tra lệnh đúng
  • Kiểm tra disk space ban đầudf -h. Một số VPS giá rẻ giao máy với disk đã dùng ~30–40% vì OS snapshot cũ. Dưới 70% dùng là ổn
  • Kiểm tra RAM khả dụngfree -m. VPS 1GB RAM sau khi khởi động thường chỉ còn khoảng 700–800MB available — đây là bình thường

Cách đăng nhập VPS lần đầu qua SSH

SSH (Secure Shell) là giao thức mã hóa dùng để điều khiển VPS từ xa qua terminal. Toàn bộ giao tiếp giữa máy bạn và VPS đều được mã hóa — khác với Telnet thời cũ gửi password dưới dạng plain text. Trên VPS Linux, SSH gần như là cách duy nhất để đăng nhập và thực thi lệnh.

Phần này chia thành 2 luồng chính tùy OS bạn đang dùng ở máy cá nhân, và thêm một phần về SSH Key cho ai muốn bảo mật hơn ngay từ đầu. Mỗi bước có expected output để bạn biết mình đang đúng hướng hay có lỗi cần xử lý.

Xem thêm hướng dẫn chi tiết cho từng hệ điều hành client tại đăng nhập SSH từ Windows, macOS và Linux.

Đăng nhập VPS trên Windows bằng PuTTY

Windows 10 trở lên đã có OpenSSH built-in trong Windows Terminal — bạn có thể dùng luôn mà không cần cài thêm gì. Nhưng nếu đang dùng Windows cũ hơn, hoặc muốn giao diện đồ họa dễ quản lý nhiều session, PuTTY là lựa chọn tiêu chuẩn. Tải tại putty.org, chạy file .exe thẳng, không cần cài đặt.

  1. Nhập thông tin kết nối: Mở PuTTY, trong ô “Host Name (or IP address)” nhập IP VPS của bạn. Port điền 22 (hoặc port tùy chỉnh nếu nhà cung cấp đã đổi). Connection type giữ nguyên là SSH. Nhấn “Open”.
  2. Chấp nhận host key lần đầu: Lần đầu kết nối, PuTTY sẽ hỏi “The server’s host key is not cached in the registry. Do you want to continue connecting?” — nhấn “Accept”. Đây là việc bình thường, PuTTY chỉ lưu fingerprint của server để những lần sau có thể phát hiện nếu key thay đổi đột ngột.
  3. Nhập username: Terminal hiện ra, gõ root rồi Enter. Một số nhà cung cấp tạo username khác — kiểm tra lại email bàn giao nếu root không được.
  4. Nhập password: Gõ mật khẩu rồi Enter.
Lưu ý quan trọng: khi gõ password trong PuTTY (và mọi terminal Linux), con trỏ không di chuyển và không hiển thị dấu * — đây là behavior bình thường, không phải lỗi. Gõ xong nhấn Enter.

Đăng nhập thành công sẽ thấy thông tin OS, thời gian đăng nhập lần cuối, và dấu nhắc lệnh dạng root@hostname:~#.

Truy cập VPS Linux qua SSH bằng PuTTY
Truy cập VPS Linux qua SSH bằng PuTTY

Đăng nhập VPS trên macOS và Linux

Trên macOS và Linux, SSH client đã có sẵn trong Terminal — không cần cài thêm bất cứ thứ gì.

Mở Terminal — macOS: Command + Space, gõ “Terminal”. Linux: tùy distro, thường là Ctrl + Alt + T.

Chạy lệnh kết nối:

ssh root@[IP_VPS]

Nếu port SSH không phải 22, thêm flag -p: ssh root@[IP_VPS] -p [PORT]

Lần đầu kết nối sẽ thấy: “Are you sure you want to continue connecting (yes/no/[fingerprint])?” — gõ yes rồi Enter. Sau đó nhập password khi được hỏi.

Nếu dùng SSH Key (xem phần tiếp theo), lệnh thêm flag -i trỏ đến private key: ssh root@[IP_VPS] -i ~/.ssh/id_rsa.

Cách đăng nhập VPS bằng SSH Key thay mật khẩu

SSH Key authentication bảo mật hơn password theo cách cơ bản: không có gì để brute-force. Thay vì mật khẩu, xác thực dựa trên cặp key — private key lưu ở máy bạn, public key đăng ký trên VPS. Bot tấn công không có private key thì không vào được, bất kể thử bao nhiêu lần.

Tạo cặp key trên máy local:

ssh-keygen -t ed25519 -C "[email protected]"

Lệnh này tạo 2 file: ~/.ssh/id_ed25519 (private key — không được chia sẻ cho ai) và ~/.ssh/id_ed25519.pub (public key — upload lên VPS). Có thể đặt passphrase thêm một lớp bảo vệ, hoặc để trống nếu muốn login không cần nhập gì.

Copy public key lên VPS:

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@[IP_VPS]

Lệnh này tự động thêm public key vào file ~/.ssh/authorized_keys trên VPS. Nếu không có ssh-copy-id (Windows), bạn cần copy nội dung file .pub và paste thủ công vào file trên.

Test đăng nhập bằng key:

ssh root@[IP_VPS] -i ~/.ssh/id_ed25519

Nếu vào được mà không cần nhập password là thành công.

Tắt password authentication (tùy chọn — khuyến nghị):

Sửa file /etc/ssh/sshd_config, tìm dòng PasswordAuthentication yes và đổi thành PasswordAuthentication no. Sau đó: systemctl restart sshd.

⚠️ Cảnh báo: Chỉ làm bước này sau khi đã test login bằng key thành công. Nếu mất private key sau khi tắt password auth, bạn sẽ không vào được VPS trừ khi nhà cung cấp có recovery console.

Hướng dẫn chi tiết về tạo và quản lý SSH Key, bao gồm cách dùng key trên Windows với PuTTYgen, xem tại xác thực SSH Key trên VPS.

Các thao tác quản trị VPS cơ bản sau khi nhận máy

30 phút đầu tiên với VPS mới là khoảng thời gian quan trọng nhất. Không phải cài web server, không phải deploy app — mà là thiết lập nền tảng an toàn để mọi thứ sau đó chạy ổn định. Dưới đây là những việc InterData khuyên khách hàng làm ngay sau khi nhận bàn giao VPS, theo đúng thứ tự.

Lưu ý về lệnh: phần này chủ yếu dùng lệnh Ubuntu/Debian. Nếu VPS chạy CentOS hoặc AlmaLinux, sẽ ghi rõ lệnh tương đương. Xem thêm lệnh Linux cơ bản cần biết khi dùng VPS nếu bạn mới làm quen với command line.

Đổi mật khẩu root và tạo user mới

Mật khẩu root mặc định do nhà cung cấp sinh ra thường ngắn và có pattern dễ đoán. Đổi ngay:

Đổi mật khẩu root:

passwd root

Nhập mật khẩu mới 2 lần. Dùng mật khẩu dài tối thiểu 16 ký tự, mix chữ hoa/thường/số/ký tự đặc biệt. Lưu vào password manager, không lưu trong file text.

Tạo user thường:

Ubuntu/Debian: adduser [username] (có interactive prompt đặt password ngay)

CentOS/RHEL: useradd [username] && passwd [username] (2 lệnh riêng)

Lý do cần user thường: root có quyền xóa bất cứ thứ gì, kể cả file hệ thống quan trọng. Dùng root hàng ngày là rủi ro không cần thiết — một lệnh sai có thể xóa sạch cả OS.

Cấp quyền sudo cho user mới:

usermod -aG sudo [username]

Với CentOS: usermod -aG wheel [username]

Sau bước này, user thường có thể chạy lệnh với quyền root bằng prefix sudo — nhưng phải nhập password xác nhận mỗi lần, tạo thêm một lớp kiểm soát.

Tại sao không dùng root trực tiếp? Nếu VPS của bạn bị compromise — ứng dụng web có lỗ hổng, hoặc bạn vô tình cài malware — attacker có quyền root ngay lập tức. Với user thường, họ cần leo thang đặc quyền (privilege escalation) thêm một bước, cho bạn thêm thời gian phát hiện.

Cập nhật hệ điều hành VPS ngay sau khi nhận

VPS mới giao thường dựa trên một image OS được tạo cách đây vài tuần hoặc vài tháng. Trong khoảng thời gian đó, hàng chục security patch đã được release — nhiều trong số đó vá các lỗ hổng đã có exploit công khai. Theo dữ liệu từ Shodan research blog, một VPS mới expose trực tiếp ra internet mà chưa patch sẽ nhận được brute-force attempt đầu tiên trong vòng dưới 1 giờ.

Cập nhật ngay, làm luôn sau khi đăng nhập lần đầu:

Ubuntu/Debian:

apt update && apt upgrade -y

Lệnh đầu refresh danh sách package, lệnh sau cài tất cả bản cập nhật. Flag -y tự confirm không cần nhấn Enter từng cái.

CentOS Stream / AlmaLinux / Rocky Linux:

dnf update -y

Quá trình thường mất 5–15 phút tùy số lượng package cần update. Sau khi xong, reboot để áp dụng kernel update nếu có: reboot. VPS sẽ offline khoảng 30–60 giây rồi tự khởi động lại.

Cấu hình timezone và hostname cho VPS

Hai việc nhỏ nhưng có ảnh hưởng thực tế khi debug về sau:

Đặt timezone về múi giờ Việt Nam:

timedatectl set-timezone Asia/Ho_Chi_Minh

Đặt tên hostname cho VPS:

hostnamectl set-hostname [tên-vps-của-bạn]

Tại sao timezone quan trọng? Log hệ thống ghi timestamp theo timezone của server. Nếu để mặc định UTC, khi xem /var/log/auth.log để tìm thời điểm có ai đó đăng nhập lúc 2 giờ sáng, bạn sẽ phải cộng thêm 7 tiếng trong đầu mỗi lần. Hostname có ích hơn khi bạn quản lý nhiều VPS — dấu nhắc lệnh sẽ hiển thị tên máy, tránh nhầm lẫn giữa các server.

Kiểm tra và cấu hình swap memory

Nhiều VPS mới không có swap được cấu hình sẵn. Kiểm tra ngay:

free -h

Nếu dòng “Swap” hiển thị 0B / 0B / 0B là chưa có swap. Với VPS RAM 1–2GB, thiếu swap có thể dẫn đến OOM killer (Out-Of-Memory killer) tự ý kill process khi RAM hết — bao gồm cả MySQL hay web server của bạn. Swap không thay thế được RAM thực (tốc độ chậm hơn nhiều), nhưng là safety net quan trọng.

Tạo swap file 1GB:

fallocate -l 1G /swapfile — tạo file 1GB

chmod 600 /swapfile — chỉ root được đọc/ghi

mkswap /swapfile — format file thành swap

swapon /swapfile — kích hoạt swap

Để swap tự bật sau reboot, thêm vào /etc/fstab:

echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

Với VPS có RAM 4GB trở lên và workload không có spike bất thường, swap ít cần thiết hơn. Nhưng với RAM thấp — cài thêm, không có hại gì.

Cài đặt web server và triển khai ứng dụng trên VPS

Đến đây bạn đã có một VPS sạch, được update, có user thường với sudo, và timezone đúng. Bây giờ mới đến lúc cài phần mềm cho use case cụ thể của bạn.

Bài này không cố gắng cover mọi stack — có quá nhiều lựa chọn và mỗi lựa chọn xứng đáng có bài riêng. Phần này tập trung 2 trường hợp phổ biến nhất: LEMP stack (Nginx + PHP + MySQL) cho WordPress, Laravel, hoặc PHP app; và Node.js cho JavaScript app. Cả hai cùng tồn tại được trên cùng một VPS nếu bạn cần.

Nginx hay Apache — nên chọn cái nào cho VPS?

VPS mới → chọn Nginx. Đây là khuyến nghị thẳng thắn, không phải “tùy nhu cầu”.

Tiêu chí Nginx Apache
Hiệu năng concurrent Event-driven, xử lý nghìn request/giây với RAM thấp Process/thread-based, tốn RAM hơn khi nhiều connection
Config syntax Server blocks — rõ ràng, ít lỗi âm thầm .htaccess linh hoạt hơn nhưng override runtime gây chậm
PHP handling Qua PHP-FPM — cấu hình thêm nhưng hiệu năng tốt hơn mod_php tích hợp — dễ cấu hình, ít linh hoạt hơn
Static files Rất nhanh — xử lý trực tiếp không qua PHP Chậm hơn một chút do overhead .htaccess
Phù hợp với ai VPS mới, high traffic, reverse proxy, microservices Migrate từ Shared Hosting, WordPress cũ dùng .htaccess nhiều

Apache vẫn có chỗ đứng — đặc biệt khi bạn migrate site cũ từ Shared Hosting lên VPS và site đó dùng nhiều directive trong .htaccess. Nhưng với setup mới từ đầu, Nginx cho tài nguyên tốt hơn trên cùng cấu hình phần cứng.

Nginx vs Apache
Nginx vs Apache

Cài Nginx trên VPS Ubuntu — từng bước

Cài Nginx:

apt install nginx -y

Khởi động Nginx và enable auto-start:

systemctl start nginx

systemctl enable nginx

Kiểm tra Nginx đang chạy:

systemctl status nginx

Output cần thấy dòng Active: active (running). Nếu thấy failed, xem log lỗi: journalctl -xe

Kích hoạt Nginx thành công
Kích hoạt Nginx thành công

Test qua browser: Mở trình duyệt, nhập IP VPS. Nếu thấy trang “Welcome to nginx!” là Nginx đang chạy trên port 80. Nếu không vào được, kiểm tra firewall — port 80 phải được allow (xem phần Bảo mật bên dưới).

Cấu hình server block cơ bản: File cấu hình mặc định tại /etc/nginx/sites-available/default. Để host một domain, tạo file riêng trong thư mục này với tên domain của bạn, rồi tạo symlink sang sites-enabled. Hướng dẫn đầy đủ để setup LEMP stack hoàn chỉnh bao gồm PHP và MySQL, xem tại cài Nginx + PHP + MySQL trên Ubuntu VPS.

Nếu muốn deploy ứng dụng Node.js thay vì PHP, quy trình khác nhau một chút — Nginx đóng vai trò reverse proxy trước app Node.js. Xem hướng dẫn deploy Node.js trên VPS để đi từng bước.

Tại sao VPS NVMe nhanh hơn VPS SSD thường?

NVMe (Non-Volatile Memory Express) dùng giao thức PCIe thay vì SATA truyền thống. Sự khác biệt không chỉ là tốc độ đọc/ghi tuần tự — mà quan trọng hơn là IOPS (Input/Output Operations Per Second) và độ trễ (latency).

Theo thông số từ NVMe Express Consortium, ổ NVMe U.2 Gen 4 có thể đạt 300.000–1.000.000 IOPS, trong khi SATA SSD thường chỉ đạt 80.000–100.000 IOPS. Độ trễ NVMe dưới 0.1ms, SATA SSD khoảng 0.1–1ms.

Trên thực tế thì sao? Với một shop WooCommerce có 500 concurrent users đang checkout cùng lúc — mỗi checkout là hàng chục MySQL query. Trên VPS SATA SSD, I/O wait tăng cao, query time kéo dài 200–400ms. Trên VPS NVMe, cùng workload đó query time xuống còn 30–60ms. Người dùng thấy trang checkout load nhanh hơn rõ rệt.

Với blog cá nhân 100 lượt truy cập/ngày? Không thấy khác biệt đáng kể — bottleneck lúc đó là network hoặc PHP processing, không phải disk I/O.

InterData

Thuê VPS NVMe U.2 Giá Rẻ — InterData

CPU đời mới, ổ NVMe U.2 Gen 4, ảo hóa KVM, full root access, kích hoạt tự động ngay sau khi thanh toán

  • NVMe U.2 Gen 4 — IOPS cao gấp 3–10 lần SSD SATA thông thường
  • KVM virtualization — tài nguyên cách ly hoàn toàn, không chia sẻ với VPS khác trên cùng node
  • Full root access, tự chọn OS — Ubuntu, CentOS, Debian, AlmaLinux

Xem gói VPS NVMe →

Bảo mật VPS — Những việc bắt buộc phải làm

Đây là phần hầu hết bài hướng dẫn VPS viết qua loa hoặc bỏ hẳn. Sai lầm đó tốn kém — không phải về lý thuyết, mà theo nghĩa đen.

Một VPS mới expose port 22 ra internet mà không đổi mật khẩu root sẽ nhận brute-force attempt đầu tiên trong vòng vài chục phút. Không phải do bạn bị nhắm mục tiêu — đây là automated scan chạy liên tục trên toàn internet, dò địa chỉ IP và thử mật khẩu phổ biến. Port 3306 (MySQL) để mở public là lời mời gọi để attacker dump hoặc ransom database. Những tình huống này InterData gặp thường xuyên trong ticket hỗ trợ của khách hàng mới.

Không cần làm mọi thứ trong một lần — nhưng 4 bước dưới đây là tối thiểu không thể bỏ qua.

Cấu hình firewall cơ bản với UFW

UFW (Uncomplicated Firewall) là frontend đơn giản hóa cho iptables, được cài sẵn trên Ubuntu. Cú pháp đọc được bằng tiếng Anh thường — dễ cấu hình và ít rủi ro nhầm lẫn hơn iptables raw.

Cài UFW (nếu chưa có):

apt install ufw -y

Đặt default policy — chặn tất cả traffic vào, cho phép tất cả traffic ra:

ufw default deny incoming

ufw default allow outgoing

⚠️ QUAN TRỌNG — Allow SSH TRƯỚC KHI enable UFW:

ufw allow ssh (hoặc ufw allow 22/tcp nếu muốn tường minh hơn)

Nếu bỏ qua bước này và bật UFW ngay, bạn sẽ bị lockout khỏi VPS ngay lập tức. Sau đó chỉ có thể vào lại qua VNC console của nhà cung cấp.

Allow các port cần thiết:

ufw allow 80/tcp — HTTP
ufw allow 443/tcp — HTTPS

Chỉ allow những port bạn thực sự cần. Database (3306, 5432), Redis (6379), Memcached (11211) — không bao giờ allow public.

Bật UFW:

ufw enable

Kiểm tra rules hiện tại: ufw status verbose

Bật UFW
Bật UFW thành công

Nếu bạn cần cấu hình chi tiết hơn với iptables (rule phức tạp, rate limiting, logging), xem hướng dẫn cấu hình iptables cho VPS.

Đổi port SSH mặc định từ 22 sang port khác

Port 22 là port SSH mặc định. Theo dữ liệu từ Shodan, hơn 70% brute-force SSH attack nhắm vào port 22 mặc định — vì bot chỉ scan port mặc định để tiết kiệm thời gian. Đổi sang một port bất kỳ trong dải 1024–65535 sẽ loại bỏ hầu hết các automated scan đó ngay lập tức.

Đây là “security through obscurity” — không phải bảo mật thực sự, nhưng giảm đáng kể noise và giúp log sạch hơn để phát hiện threat thực sự.

  1. Sửa file SSH config: nano /etc/ssh/sshd_config
  2. Tìm dòng #Port 22, bỏ dấu # và đổi số port: Port 2222 (hoặc port bất kỳ bạn chọn) > Lưu lại bằng CTRL + S > Thoát ra bằng CTRL + X
  3. Allow port mới trong UFW: ufw allow 2222/tcp
  4. Restart SSH: systemctl restart sshd
Đổi port SSH mặc định từ 22 sang port khác
Đổi port SSH mặc định từ 22 sang port khác

Mở PuTTY mới, test kết nối bằng port mới: 2222 — test trước khi đóng session hiện tại

Test kết nối bằng port 2222
Test kết nối bằng port 2222

Sau khi test thành công, có thể xóa rule allow port 22 cũ: ufw delete allow ssh.

Cách xem và chặn IP tấn công VPS

Xem các lần đăng nhập thất bại gần đây:

grep "Failed password" /var/log/auth.log | tail -20

Output sẽ thấy các dòng như Failed password for root from 45.xxx.xxx.xxx port 54321.

Xem các lần đăng nhập VPS thất bại
Xem các lần đăng nhập VPS thất bại

Nếu một IP xuất hiện liên tục, block thủ công:

ufw deny from 45.xxx.xxx.xxx to any

Nhưng làm thủ công chỉ là giải pháp tạm thời — IP thay đổi liên tục. Fail2ban tự động đọc log, phát hiện pattern brute-force, và block IP động. Đây là công cụ quan trọng thứ hai sau firewall, và việc cài đặt nó không phức tạp. Hướng dẫn chi tiết tại cài đặt Fail2ban chống brute-force SSH.

Tắt đăng nhập root trực tiếp qua SSH

Khi đã có user thường với sudo (từ bước đổi mật khẩu ở trên), không cần để root login qua SSH nữa. Tắt nó đi loại bỏ một attack surface lớn:

  1. Sửa SSH config: nano /etc/ssh/sshd_config
  2. Tìm dòng PermitRootLogin yes, đổi thành PermitRootLogin no
  3. Restart SSH: systemctl restart sshd

Prerequisite quan trọng: Phải test login bằng user thường trước khi logout khỏi session root. Mở terminal mới, ssh bằng user thường, chạy sudo whoami — nếu trả về root là sudo đang hoạt động đúng. Sau đó mới logout root.

Nếu muốn đi sâu hơn về hardening SSH — disable weak ciphers, cấu hình AllowUsers, fail2ban nâng cao — xem hướng dẫn hardening SSH trên VPS Linux.

🛡️
VPS NVMe U.2 — InterData

Bảo mật bắt đầu từ hạ tầng — KVM isolation đảm bảo VPS của bạn không bị ảnh hưởng bởi traffic của máy khác trên cùng node. Full root access để bạn cấu hình firewall và security policy theo ý mình.

KVM — tài nguyên cách ly hoàn toàn  |
Deploy dưới 2 phút  |
Hỗ trợ kỹ thuật 24/7

Xem cấu hình VPS →

Giám sát hiệu năng và tài nguyên VPS

VPS không cần giám sát 24/7 từ người — nhưng cần có đủ dữ liệu để bạn biết khi nào cần can thiệp. Phần này chia thành 2 nhóm: giám sát thủ công bằng CLI (đủ để bắt đầu và xử lý sự cố tức thì) và giám sát tự động (cần setup một lần, sau đó chạy nền và cảnh báo khi có vấn đề).

Nhà cung cấp hosting thường nhận được ticket “VPS chạy chậm” mà không kèm theo bất kỳ thông tin nào về tài nguyên — không biết CPU bao nhiêu %, RAM còn bao nhiêu, disk còn bao nhiêu. Những lệnh dưới đây trả lời đủ 3 câu hỏi đó trong vòng 30 giây.

Kiểm tra CPU, RAM và disk đang dùng bao nhiêu?

  • htop — xem realtime CPU và RAM theo từng process. Cột %CPU%MEM cho biết process nào đang ngốn tài nguyên nhất. Cài nếu chưa có: apt install htop -y. Ngưỡng cần chú ý: CPU load average (dòng trên cùng) vượt quá số lõi CPU kéo dài hơn 5 phút liên tục.
  • df -h — xem disk usage theo từng mount point. Cột Use% là tỷ lệ đã dùng. Disk trên 90% cần xử lý ngay — log file cũ, temp file, hoặc database dump không xóa thường là thủ phạm. Chạy du -sh /* | sort -rh | head -20 để tìm thư mục nào chiếm nhiều nhất.
  • free -m — xem RAM và swap. Dòng available trong block Mem là RAM thực sự khả dụng (khác với free — Linux cache nhiều vào RAM, nhưng cache đó được giải phóng khi app cần). Nếu available gần 0 và swap đang được dùng nhiều là dấu hiệu cần nâng RAM hoặc tối ưu app.
  • iostat -x 1 5 — xem disk I/O. Cột %iowait cao (trên 30–40% kéo dài) cho thấy CPU đang chờ disk, bottleneck đang ở storage. Cài: apt install sysstat -y.

Để không phải chạy thủ công mỗi lần, Netdata là công cụ monitoring web-based cài trên VPS, tự thu thập metrics mỗi giây và hiển thị dashboard real-time qua browser. Hướng dẫn cài đặt tại cài Netdata theo dõi VPS realtime. Nếu muốn script gửi cảnh báo tự động qua Telegram khi tài nguyên vượt ngưỡng, xem script monitoring VPS tự động.

Bot telegram giám sát tài nguyên VPS
Bot telegram giám sát tài nguyên VPS

Cách xem log hệ thống khi VPS có sự cố

3 file log cần biết đầu tiên:

  • /var/log/syslog — log sự kiện hệ thống tổng hợp. Khi VPS làm gì bất thường — crash, service bị kill, hardware error — đây là chỗ đầu tiên cần xem. Đọc realtime: tail -f /var/log/syslog
  • /var/log/auth.log — log đăng nhập. Xem ai đã SSH vào, lần đăng nhập thất bại, và sudo commands đã chạy. Lệnh tìm brute-force: grep "Failed password" /var/log/auth.log | tail -50
  • /var/log/nginx/error.log hoặc /var/log/apache2/error.log — log lỗi web server. Khi website trả về 500 hay 502, xem ở đây trước. Tìm theo thời gian gần đây: tail -100 /var/log/nginx/error.log

Với CentOS/RHEL, log hệ thống được quản lý bởi journald thay vì file text — dùng lệnh journalctl -xe để xem, hoặc journalctl -u nginx --since "1 hour ago" để lọc theo service và thời gian.

Dấu hiệu VPS bị quá tải hoặc sắp hỏng

Những triệu chứng này thường xuất hiện trước khi VPS thực sự “chết” — nhận ra sớm thì còn kịp xử lý:

  • Load average vượt số lõi CPU kéo dài — xem trong htop góc trên trái. VPS 2 core mà load average 5–6 liên tục là đang quá tải nặng
  • Swap usage trên 50% — RAM thực đã gần hết, hệ thống đang dùng swap (chậm hơn RAM nhiều lần)
  • Disk I/O wait cao%iowait trong iostat cao liên tục, website load chậm dù CPU không cao
  • Website trả lỗi 502 Bad Gateway hoặc 504 Gateway Timeout — upstream (PHP-FPM, Node.js) không trả lời trong thời gian quy định, thường do app crash hoặc database quá tải
  • SSH timeout khi kết nối — nếu cả SSH cũng không vào được, VPS có thể đang bị OOM killer hoạt động hoặc kernel panic. Cần dùng VNC console của nhà cung cấp để vào trực tiếp
  • Connection drops bất thường — file /var/log/syslog thấy nhiều dòng connection reset hoặc broken pipe

Sao lưu và khôi phục dữ liệu VPS

Backup là thứ bạn không nghĩ đến — cho đến khi cần. Ổ cứng hỏng, cấu hình sai xóa mất database, VPS bị hack và attacker xóa dữ liệu — những tình huống này xảy ra thực tế và thường xuyên hơn người dùng VPS mới tưởng.

Có 3 phương pháp backup chính, mỗi cái giải quyết tình huống khác nhau: snapshot từ panel nhà cung cấp (nhanh, đơn giản, dùng cho rollback sau khi thay đổi lớn), rsync sang remote server (linh hoạt, tự kiểm soát), và cron job tự động hóa (set up một lần, chạy nền hàng ngày).

Snapshot VPS là gì và dùng khi nào?

Snapshot là bản chụp đầy đủ trạng thái VPS tại một thời điểm — gồm toàn bộ disk image, hệ điều hành, cấu hình, và dữ liệu. Khác với backup truyền thống (copy từng file), khôi phục snapshot đưa VPS về đúng trạng thái cũ trong vài phút, không cần cài lại từng phần mềm.

Dùng snapshot khi nào? Trước bất kỳ thay đổi lớn nào có thể gây hỏng hệ thống: nâng cấp OS major version (Ubuntu 22 → 24), thay đổi cấu hình Nginx quan trọng, cài mới một service lớn. Snapshot như điểm save game — nếu thứ mới làm gây vấn đề, rollback về snapshot là xong.

Hạn chế cần biết: snapshot lưu trong hạ tầng của nhà cung cấp. Nếu datacenter gặp sự cố nghiêm trọng, snapshot cũng mất theo. Đây là lý do cần kết hợp snapshot với backup ra ngoài (rsync sang server khác hoặc cloud storage).

Backup dữ liệu VPS bằng rsync

rsync là công cụ sync file hiệu quả — chỉ copy phần thay đổi, không copy lại toàn bộ mỗi lần. Lý tưởng cho backup incremental hàng ngày.

Cài rsync (thường đã có sẵn):

apt install rsync -y

Lệnh backup cơ bản:

rsync -avz /var/www/ user@backup-server:/backups/www/

Flag -a: archive mode (giữ nguyên permission, timestamp), -v: verbose, -z: nén khi truyền.

Tạo script backup đơn giản:

Tạo file /root/backup.sh với nội dung:

#!/bin/bash
DATE=$(date +%Y%m%d)
# Backup web files
rsync -az /var/www/ user@backup-server:/backups/www-$DATE/
# Backup MySQL databases
mysqldump -u root -p[password] --all-databases | gzip > /tmp/db-$DATE.sql.gz
rsync -az /tmp/db-$DATE.sql.gz user@backup-server:/backups/db/
# Xóa dump local sau khi transfer
rm /tmp/db-$DATE.sql.gz

Phân quyền cho script: chmod +x /root/backup.sh

Đặt cron job chạy tự động hàng ngày lúc 2 giờ sáng:

crontab -e

Thêm dòng: 0 2 * * * /root/backup.sh >> /var/log/backup.log 2>&1

Để backup sang AWS S3, Backblaze B2, hoặc setup retention policy tự động xóa backup cũ hơn 30 ngày, xem hướng dẫn tự động backup VPS với rsync và cron job.

SSH thuần vs Control Panel — nên dùng cái nào?

SSH thuần phù hợp với developer và sysadmin. Control Panel (DirectAdmin, cPanel) phù hợp với SME, freelancer, hoặc bất kỳ ai không muốn nhớ lệnh Linux để quản lý website hàng ngày. Đây là kết luận thực tế, không phải câu trả lời “tùy” mà thiếu hữu ích.

Theo quan sát của InterData từ base khách hàng VPS, khoảng 60–65% khách hàng technical (developer, sysadmin) dùng SSH thuần. 35–40% còn lại — chủ yếu là SME hosting nhiều website hoặc reseller — dùng Control Panel. Cả hai đều hoạt động tốt, chỉ là phong cách quản lý khác nhau.

Khi nào nên dùng Control Panel thay vì SSH?

Control Panel không “an toàn hơn” hay “mạnh hơn” SSH — chỉ là giao diện khác. Vẫn cần làm đủ các bước bảo mật OS bên dưới (update, firewall, đổi password) dù dùng Control Panel. Những trường hợp Control Panel thực sự hữu ích:

  • Quản lý nhiều website trên cùng một VPS — tạo virtual host, domain addon, subdomain qua GUI nhanh hơn nhiều so với sửa file config tay
  • Team không có background Linux — nhân viên nội dung, designer cần upload file hay restart service mà không cần học command line
  • Tạo hosting account cho khách — nếu bạn là reseller hoặc agency cần cung cấp hosting cho khách hàng, Control Panel là bắt buộc
  • Quản lý email server — cấu hình mailbox, DKIM, SPF qua giao diện đơn giản hơn nhiều so với Postfix config thủ công
  • Backup và restore website nhanh — DirectAdmin và cPanel đều có tính năng backup/restore domain level với vài click

So sánh DirectAdmin và cPanel cho VPS

Tiêu chí DirectAdmin cPanel
Giá license ~15–30 USD/tháng tùy loại ~15–45 USD/tháng tùy số account
Tài nguyên sử dụng Nhẹ hơn — phù hợp VPS RAM thấp (2–4GB) Nặng hơn — nên dùng với VPS 4GB RAM trở lên
Tính năng Đủ dùng cho hầu hết use case — hosting, email, database Nhiều tính năng hơn, ecosystem plugin rộng
Phù hợp với ai VPS tiết kiệm, người dùng Việt Nam (InterData hỗ trợ DirectAdmin) Quen cPanel từ Shared Hosting, cần tính năng nâng cao

InterData hỗ trợ DirectAdmin natively — cài đặt, cấu hình, và hỗ trợ kỹ thuật. Nếu chọn DirectAdmin trên VPS, xem hướng dẫn sử dụng DirectAdmin toàn tập hoặc cách cài DirectAdmin trên VPS Linux.

Sai lầm phổ biến khi mới dùng VPS lần đầu

Những lỗi dưới đây không phải suy diễn — đây là những gì đội support InterData gặp lặp lại trong ticket hỗ trợ của khách hàng mới. Mỗi lỗi có hậu quả thực tế, không phải cảnh báo lý thuyết.

Không đổi mật khẩu root mặc định.

Hậu quả: bị brute-force trong vòng 24 giờ đầu. Mật khẩu do nhà cung cấp sinh ra thường có pattern (ví dụ: chữ cái + số + ký tự đặc biệt, độ dài cố định) — bot brute-force có thể thử pattern đó trước. Sửa: passwd root ngay sau lần đăng nhập đầu tiên.

Để port 3306 (MySQL) mở ra internet.

Cài MySQL xong, quên không kiểm tra port nào đang public. netstat -tlnp | grep 3306 — nếu thấy 0.0.0.0:3306 là đang expose toàn internet. Database bị scan tìm lỗ hổng hoặc bị bruteforce tài khoản. MySQL chỉ cần lắng nghe trên 127.0.0.1:3306 — sửa trong /etc/mysql/mysql.conf.d/mysqld.cnf, dòng bind-address = 127.0.0.1.

Không update OS sau khi nhận VPS.

Hậu quả: dính lỗ hổng cũ đã có exploit công khai. Ví dụ: CVE-2021-4034 (PwnKit) cho phép user thường leo thang lên root — lỗ hổng này tồn tại trong hầu hết distro Linux và đã có exploit PoC public. Patch mất 5 phút, bỏ qua thì để lỗ hổng mở vô hạn.

Sửa SSH config sai cú pháp → lockout.

Một dấu cách thừa trong /etc/ssh/sshd_config, restart SSH, và bạn không vào được nữa. Quy tắc: trước khi restart bất kỳ service critical nào, mở terminal thứ hai giữ session hiện tại. Nếu session mới không kết nối được, session cũ vẫn còn để sửa.

Không theo dõi disk usage → disk full, website die.

Log file (đặc biệt /var/log/nginx/access.log) không được rotate sẽ grow không giới hạn. Một server nhận 50.000 request/ngày tạo ra hàng trăm MB log mỗi ngày. Cấu hình logrotate để tự rotate: Ubuntu đã cài sẵn logrotate, kiểm tra /etc/logrotate.d/nginx.

Chạy ứng dụng web bằng user root.

Nếu web app có lỗ hổng (SQL injection, RCE) và attacker khai thác được, họ có quyền root ngay. App web nên chạy dưới user riêng (www-data cho Nginx/Apache mặc định, hoặc tạo user riêng cho từng app). Kiểm tra: ps aux | grep nginx — worker processes phải chạy dưới www-data, không phải root.

Không backup trước khi cài thứ gì đó mới.

“Thử cài xem sao” là câu nói trước khi mất database. Tạo snapshot trước mỗi thay đổi lớn — 2 phút để tạo snapshot, vài giờ để rebuild từ đầu nếu không có. Đây là quy tắc không có ngoại lệ.

Gợi ý từ InterData

Cần VPS tốc độ cao để triển khai ngay?

VPS NVMe U.2 Gen 4 của InterData — đọc/ghi nhanh, KVM cách ly tài nguyên hoàn toàn, sẵn sàng dùng ngay sau khi đăng ký.

  • ⚡ NVMe U.2 Gen 4 — IOPS cao, phù hợp database và high traffic
  • ⚡ Deploy dưới 2 phút — full root access, tự cài OS
  • ⚡ Hỗ trợ kỹ thuật 24/7 qua hotline 1900 636 822

Xem gói VPS NVMe →

Câu hỏi thường gặp khi sử dụng VPS

Mới nhận VPS phải làm gì đầu tiên?

Đổi mật khẩu root ngay trong 5 phút đầu tiên — đây là việc ưu tiên số một. Tiếp theo, chạy apt update && apt upgrade -y để cập nhật toàn bộ package lên phiên bản mới nhất. Sau đó tạo user thường với sudo, cấu hình timezone về Asia/Ho_Chi_Minh, và bật UFW firewall với ít nhất port 22 được allow. Chỉ sau khi làm xong 5 bước này mới bắt đầu cài ứng dụng.

VPS mặc định có sẵn phần mềm gì?

VPS Linux mới giao chỉ có hệ điều hành cơ bản — Ubuntu, CentOS, hoặc distro bạn chọn khi đặt. Không có web server, database, hay Control Panel nào được cài sẵn. Bạn có toàn quyền quyết định cài gì. Một số nhà cung cấp có option “VPS + DirectAdmin” hoặc “VPS + cPanel” khi đặt — trong trường hợp đó, Control Panel được cài kèm, nhưng vẫn cần bạn tự cấu hình thêm.

Tại sao không SSH được vào VPS?

Ba nguyên nhân phổ biến nhất: (1) Connection refused — SSH service chưa chạy trên VPS, hoặc bạn đang dùng sai port. Kiểm tra lại port trong email bàn giao. (2) Connection timed out — firewall đang chặn, thường là firewall phía nhà cung cấp hoặc network upstream. Liên hệ support và cung cấp IP nguồn của bạn để kiểm tra. (3) Permission denied (publickey) — đang thử dùng SSH key nhưng public key chưa được đăng ký trên VPS, hoặc đang trỏ nhầm private key. Thử thêm flag -o PasswordAuthentication=yes để dùng password trước.

VPS Linux dùng hệ điều hành nào tốt nhất?

Với người mới, Ubuntu Server LTS là lựa chọn tốt nhất — tài liệu nhiều nhất, cộng đồng lớn nhất, và hầu hết hướng dẫn trên internet đều có phiên bản cho Ubuntu. Phiên bản khuyến nghị hiện tại: Ubuntu 22.04 LTS (hỗ trợ đến 2027). Với người đã quen RedHat ecosystem hoặc cần tương thích với môi trường enterprise, AlmaLinux hoặc Rocky Linux là lựa chọn ổn định.

VPS khác Cloud Server ở điểm nào?

Tiêu chí VPS Cloud Server
Tài nguyên Cố định — 2 core, 4GB RAM mua là có đó Co giãn được — scale CPU/RAM theo nhu cầu
Giá Thấp hơn — phù hợp workload ổn định Cao hơn — pay-as-you-go, phù hợp workload biến động
Phù hợp với ai Website, app có traffic ổn định, hosting cá nhân/doanh nghiệp nhỏ E-commerce có peak traffic, startup scale nhanh

Xem thêm so sánh chi tiết tại Cloud Server là gì và khi nào nên dùng thay VPS.

VPS NVMe nhanh hơn VPS SSD thường bao nhiêu?

Về IOPS (thước đo tốc độ truy cập ngẫu nhiên quan trọng nhất với database và web app): NVMe U.2 Gen 4 đạt 300.000–1.000.000 IOPS, so với SATA SSD thông thường 80.000–100.000 IOPS — chênh lệch từ 3 đến 10 lần tùy cấu hình. Trong thực tế với website WordPress có caching được cấu hình tốt, chênh lệch không rõ lắm. Nhưng với database nặng, nhiều concurrent query, hoặc ứng dụng I/O-intensive — NVMe cho latency thấp hơn rõ ràng.

Nên tự quản trị VPS hay thuê managed VPS?

Tự quản trị (unmanaged VPS) phù hợp nếu bạn có background kỹ thuật — developer, sysadmin, hoặc người sẵn sàng học Linux. Chi phí thấp hơn, kiểm soát hoàn toàn. Managed VPS (nhà cung cấp hỗ trợ cấu hình, monitor, và xử lý sự cố) phù hợp với SME không có IT staff riêng và cần đảm bảo uptime cao mà không tốn thời gian quản trị. Managed thường tốn thêm 50–100% chi phí so với unmanaged cùng cấu hình.

VPS bị tấn công phải làm gì?

5 bước xử lý khẩn cấp theo thứ tự: (1) Cô lập ngay — nếu nhà cung cấp có tính năng tắt network interface từ panel, dùng ngay để ngăn attacker tiếp tục truy cập và ngăn VPS tấn công nguồn khác. (2) Vào qua VNC console để không bị phụ thuộc vào SSH. (3) Kiểm tra process lạ: ps aux | sort -k3 -r | head -20, kiểm tra cron job: crontab -lls /etc/cron.*. (4) Kiểm tra auth.log để biết attacker vào từ đâu và lúc nào. (5) Sau khi hiểu rõ vector tấn công, rebuild VPS từ snapshot sạch thay vì cố gắng “clean” — bạn không thể chắc chắn đã dọn sạch 100%.

Một VPS có thể chạy được bao nhiêu website?

Không có con số cố định — phụ thuộc hoàn toàn vào traffic và resource consumption của từng site. VPS 2GB RAM có thể chạy 20–30 website WordPress ít traffic (dưới 100 lượt/ngày mỗi site) với caching tốt, hoặc chỉ 2–3 site medium traffic (5.000–10.000 lượt/ngày mỗi site). Database là bottleneck thường gặp nhất khi chạy nhiều site — giám sát RAM và slow query log để phát hiện sớm.

Làm thế nào để tăng RAM/CPU VPS khi hết tài nguyên?

Với VPS thông thường, cần nâng gói (vertical scaling) — liên hệ nhà cung cấp để upgrade lên plan cao hơn. Quá trình thường cần reboot VPS, gián đoạn vài phút. Với Cloud Server, có thể thay đổi tài nguyên linh hoạt hơn mà không cần migration. Trước khi nâng cấp, kiểm tra xem bottleneck thực sự là gì — đôi khi cấu hình MySQL hoặc PHP-FPM sai có thể gây triệu chứng giống như thiếu RAM nhưng thực ra không phải.

VPS có cần cài antivirus không?

Câu trả lời thẳng thắn: với VPS Linux chạy web server, antivirus truyền thống không cần thiết và thường không hiệu quả với loại threat mà Linux server thực sự gặp. Threat phổ biến nhất với VPS Linux không phải virus mà là: brute-force SSH, khai thác lỗ hổng web app, và misconfiguration. Thứ thực sự cần là: Fail2ban, firewall cấu hình đúng, update OS thường xuyên, và web app firewall (ModSecurity hoặc tương đương) nếu chạy website public. ClamAV có thể hữu ích nếu VPS được dùng làm mail server để quét attachment.

Từ đây, bạn đi tiếp theo hướng nào?

Quản trị VPS hiệu quả không phải về việc biết nhiều lệnh Linux. Quan trọng hơn là hiểu thứ tự đúng: bảo mật trước, cài phần mềm sau, tối ưu khi đã có dữ liệu thực tế, monitor liên tục để phát hiện vấn đề trước khi chúng leo thang. Làm ngược thứ tự này — dù từng bước riêng lẻ đúng — vẫn có thể dẫn đến hậu quả không lường trước được.

Hai việc quan trọng nhất để làm tiếp theo tùy vào giai đoạn bạn đang ở: nếu VPS mới nhận và chưa bảo mật, đọc ngay hướng dẫn hardening SSH trên VPS Linux — đây là lớp bảo vệ quan trọng nhất sau firewall. Nếu đã bảo mật xong và muốn deploy web app, cài LEMP stack trên Ubuntu VPS là điểm bắt đầu thực tế nhất cho hầu hết use case PHP.

Những phần đi sâu hơn trong bài này — rsync backup tự động, Netdata monitoring, Fail2ban, và DirectAdmin — đều có bài vệ tinh chi tiết trong cùng chuỗi. Đi từng bước một, không cần làm tất cả trong một ngày.