Chuyển đến nội dung chính

Qui trình thiết lập ban đầu cho Ubuntu Server: Swap, Timezone, User và Firewall

Hướng dẫn các bước thiết lập chuẩn mực ban đầu cho máy chủ Ubuntu Server mới: Cấu hình múi giờ Việt Nam (Asia/Ho_Chi_Minh), tạo phân vùng RAM ảo (Swap File), phân quyền Sudoer và kích hoạt tường lửa UFW.

Thiết lập ban đầu Ubuntu Server

Giới thiệu: Tại sao cần qui trình chuẩn hóa khi vừa tạo VPS mới?

Khi bạn vừa mua một máy chủ VPS mới từ các nhà cung cấp như DigitalOcean, Linode, Hetzner, Vultr hay AWS EC2, hệ điều hành Ubuntu Server thường trong trạng thái cấu hình tối thiểu thô sơ:

  • Múi giờ mặc định là UTC (gây khó khăn khi xem log hệ thống).
  • Không có bộ nhớ RAM ảo (Swap File), dễ dẫn đến tình trạng máy chủ bị đơ (freeze) hoặc sập dịch vụ (Out Of Memory - OOM) khi ứng dụng đột ngột tiêu tốn nhiều RAM.
  • Tài khoản quản trị mặc định là root.
  • Chưa bật tường lửa bảo vệ các cổng mạng.

Bài viết này cung cấp một Qui trình chuẩn hóa từng bước (Initial Setup Checklist) giúp bạn thiết lập máy chủ Ubuntu server trở nên sẵn sàng, ổn định và an toàn trước khi cài đặt bất kì phần mềm nào khác.


Bước 1: Đăng nhập máy chủ và cập nhật toàn diện

Sử dụng Terminal hoặc PowerShell để đăng nhập vào VPS của bạn qua SSH:

bash
ssh root@<IP_MÁY_CH>

Tiến hành cập nhật danh sách gói phần mềm và nâng cấp các thư viện hiện có:

bash
sudo apt update && sudo apt upgrade -y

Cài đặt các gói công cụ thiết yếu thường dùng trong quản trị Linux:

bash
sudo apt install -y curl wget git nano htop net-tools software-properties-common ufw fail2ban

Bước 2: Thiết lập Múi giờ hệ thống (Timezone)

Để các file log (/var/log/syslog, Nginx log, Docker log) ghi lại chính xác thời gian theo giờ Việt Nam (GMT+7), hãy chuyển đổi múi giờ sang Asia/Ho_Chi_Minh:

bash
sudo timedatectl set-timezone Asia/Ho_Chi_Minh

Kiểm tra lại cấu hình thời gian:

bash
timedatectl

Màn hình sẽ hiển thị Time zone: Asia/Ho_Chi_Minh (+07, +0700).

Đảm bảo dịch vụ đồng bộ thời gian mạng (NTP Synchronization) đang hoạt động:

bash
sudo timedatectl set-ntp on

Bước 3: Tạo và Cấu hình Bộ nhớ RAM ảo (Swap File)

Trên các máy chủ VPS dung lượng RAM khiêm tốn (1GB - 2GB RAM), tạo thêm Swap File (sử dụng một phần ổ cứng SSD làm bộ nhớ tạm khi RAM vật lí bị đầy) là bắt buộc để ngăn ngừa hệ thống bị treo đột ngột.

Bước 3.1: Kiểm tra Swap hiện tại

bash
sudo swapon --show
free -h

Nếu không có kết quả nào trả về, máy chủ của bạn chưa có Swap.

Bước 3.2: Khởi tạo file Swap dung lượng 2GB (hoặc 4GB)

bash
# Cấp phát 2GB dung lượng cho file /swapfile
sudo fallocate -l 2G /swapfile

# Phân quyền nghiêm ngặt chỉ cho root đọc/ghi
sudo chmod 600 /swapfile

# Định dạng file thành vùng nhớ Swap
sudo mkswap /swapfile

# Kích hoạt Swap
sudo swapon /swapfile

Bước 3.3: Tự động kích hoạt Swap khi máy chủ reboot

Mở file /etc/fstab:

bash
sudo nano /etc/fstab

Thêm dòng sau vào cuối file:

text
/swapfile none swap sw 0 0

Bước 3.4: Tối ưu thông số Swappiness

Mặc định Linux có thông số vm.swappiness = 60 (sử dụng swap khá sớm). Đối với máy chủ VPS chạy database hoặc web server, bạn nên giảm giá trị này xuống 10 để hệ thống ưu tiên dùng tối đa RAM vật lí tốc độ cao và chỉ dùng Swap khi thực sự khẩn cấp:

bash
# Tạm thời áp dụng
sudo sysctl vm.swappiness=10
sudo sysctl vm.vfs_cache_pressure=50

# Lưu vĩnh viễn vào file cấu hình
sudo tee -a /etc/sysctl.d/99-swap.conf << 'EOF'
vm.swappiness=10
vm.vfs_cache_pressure=50
EOF

Kiểm tra lại dung lượng RAM & Swap sau khi hoàn tất:

bash
free -h

Bước 4: Tạo tài khoản Quản trị viên (Sudo User)

Tránh sử dụng tài khoản root cho các công việc thường nhật. Tạo một user mới (ví dụ: adminuser):

bash
# Tạo user mới
sudo adduser adminuser

# Cấp quyền quản trị viên Sudo
sudo usermod -aG sudo adminuser

Chuyển sang user mới và kiểm tra quyền:

bash
su - adminuser
sudo whoami
# Kết quả hiển thị 'root' nghĩa là thành công

Bước 5: Cấu hình Khóa xác thực SSH Key

Từ máy tính cá nhân của bạn, hãy tạo cặp khóa SSH (nếu chưa có) và gửi khóa công khai (Public Key) lên VPS:

bash
# Chạy trên máy tính của bạn (Local)
ssh-copy-id adminuser@<IP_MÁY_CH>

Sau đó thử đăng nhập bằng SSH Key:

bash
ssh adminuser@<IP_MÁY_CH>

Bước 6: Khởi động Tường lửa UFW

Trước khi đăng xuất, hãy mở tường lửa và cho phép cổng SSH hoạt động:

bash
# Mặc định chặn vào, cho phép ra
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Mở cổng SSH
sudo ufw allow ssh

# Mở cổng Web nếu cần
sudo ufw allow http
sudo ufw allow https

# Kích hoạt tường lửa
sudo ufw enable

Xem danh sách qui tắc tường lửa đang chạy:

bash
sudo ufw status

Bảng tổng kết các thông số thiết lập

Thành phầnCấu hình khuyến nghịLợi ích
Múi giờAsia/Ho_Chi_MinhLog hệ thống đồng bộ theo giờ địa phương
Swap File2GB hoặc 4GB (swappiness=10)Chống tràn RAM sập máy chủ
UserNon-root có quyền sudoGiảm thiểu rủi ro thao tác nhầm
Xác thựcSSH Key Ed25519Chống vét cạn mật khẩu
Tường lửaUFW (Deny Incoming / Allow Outgoing)Đóng các cổng nhạy cảm không dùng đến

Tổng kết

Chỉ với 10 phút hoàn thiện Qui trình thiết lập ban đầu trên, máy chủ Ubuntu Server của bạn đã sở hữu một nền móng vững chắc, ổn định về bộ nhớ và an toàn về mặt bảo mật để sẵn sàng cho các bước cài đặt Docker, Nginx hoặc Database tiếp theo.

💬

Thảo luận & Bình luận

Đăng nhập bằng tài khoản GitHub để đặt câu hỏi hoặc đóng góp ý kiến cho bài viết.