Cài Đặt AlmaLinux Cho VPS
Chào mừng bạn đến với hướng dẫn chi tiết về cách cài đặt và cấu hình cơ bản AlmaLinux trên Máy chủ ảo (VPS) của bạn. AlmaLinux là một bản phân phối Linux miễn phí và mã nguồn mở, được xây dựng dựa trên Red Hat Enterprise Linux (RHEL), ra đời như một sự thay thế cho CentOS Linux sau khi dự án này chuyển hướng sang CentOS Stream. Với sự ổn định, bảo mật cao và khả năng tương thích nhị phân với RHEL, AlmaLinux là lựa chọn lý tưởng cho môi trường máy chủ sản xuất.
Tổng Quan
AlmaLinux cung cấp một nền tảng vững chắc và đáng tin cậy cho nhiều loại ứng dụng máy chủ, từ web server (Apache, Nginx), database server (MySQL, PostgreSQL) cho đến các ứng dụng container (Docker, Kubernetes). Việc cài đặt AlmaLinux trên VPS giúp bạn tận dụng tối đa tài nguyên máy chủ với một hệ điều hành mạnh mẽ và được cộng đồng hỗ trợ tích cực.
- Thời gian thực hiện: Khoảng 30-60 phút (tùy thuộc vào tốc độ VPS và kinh nghiệm của bạn).
- Độ khó: Trung bình.
- Yêu cầu: Quyền truy cập quản trị (root) vào VPS, kiến thức cơ bản về dòng lệnh Linux.
Yêu Cầu Hệ Thống
Để AlmaLinux hoạt động hiệu quả trên VPS, bạn cần đảm bảo VPS của mình đáp ứng các yêu cầu tối thiểu sau:
- Cấu hình tối thiểu:
- CPU: 1 vCPU
- RAM: 1 GB
- Ổ đĩa: 20 GB SSD
- Mạng: Kết nối internet ổn định
- Cấu hình khuyến nghị:
- CPU: 2 vCPU trở lên
- RAM: 2 GB trở lên
- Ổ đĩa: 40 GB SSD trở lên
- Mạng: Kết nối internet tốc độ cao
💡 Lưu ý: Hầu hết các nhà cung cấp VPS hiện nay đều có sẵn template AlmaLinux hoặc cho phép bạn cài đặt từ ISO. Hướng dẫn này sẽ tập trung vào việc cấu hình sau khi AlmaLinux đã được cài đặt ban đầu hoặc được cấp phát từ template của nhà cung cấp.
Các Bước Thực Hiện Chi Tiết
Bước 1: Chuẩn Bị VPS và Truy Cập Lần Đầu 🌐
Trước khi bắt đầu, bạn cần có một tài khoản VPS với nhà cung cấp dịch vụ (ví dụ: DigitalOcean, Vultr, Linode, AWS EC2...).
-
Chọn nhà cung cấp VPS và tạo instance:
- Trong quá trình tạo VPS, hãy chọn
AlmaLinuxlàm hệ điều hành. Nếu không có AlmaLinux trực tiếp, bạn có thể chọnCentOS 8hoặcRocky Linuxlàm nền tảng ban đầu, sau đó chuyển đổi nếu cần (mặc dù khuyến nghị cài đặt AlmaLinux trực tiếp). - Ghi lại địa chỉ IP công cộng của VPS và mật khẩu root (nếu nhà cung cấp cấp mật khẩu). Một số nhà cung cấp sẽ yêu cầu bạn sử dụng SSH Key.
- Trong quá trình tạo VPS, hãy chọn
-
Truy cập VPS qua SSH: Sử dụng một terminal trên Linux/macOS hoặc PuTTY/WSL trên Windows để kết nối.
ssh root@YOUR_VPS_IP_ADDRESS- Thay thế
YOUR_VPS_IP_ADDRESSbằng địa chỉ IP thực của VPS của bạn. - Nếu đây là lần đầu tiên bạn kết nối, bạn có thể nhận được cảnh báo về khóa máy chủ (host key). Gõ
yesđể tiếp tục. - Nhập mật khẩu root khi được yêu cầu.
✅ Sau khi đăng nhập thành công, bạn sẽ thấy dấu nhắc lệnh (
prompt) của terminal, thường là[root@your-hostname ~]#. - Thay thế
Bước 2: Cập Nhật Hệ Thống ⚙️
Việc đầu tiên sau khi cài đặt bất kỳ hệ điều hành Linux nào là cập nhật tất cả các gói phần mềm lên phiên bản mới nhất để đảm bảo bảo mật và ổn định.
# Cập nhật tất cả các gói phần mềm đã cài đặt
sudo dnf update -y
# Nâng cấp các gói phần mềm (nếu có bản cập nhật lớn)
sudo dnf upgrade -y
# Khởi động lại VPS để áp dụng các thay đổi kernel (nếu có)
sudo reboot
💡 Giải thích:
sudo: Chạy lệnh với quyền superuser (quản trị viên).dnf: Trình quản lý gói mặc định của AlmaLinux (và các bản phân phối dựa trên RHEL/Fedora).update: Cập nhật chỉ mục gói và các gói đã cài đặt.upgrade: Tương tựupdatenhưng xử lý tốt hơn các dependency và loại bỏ các gói cũ không còn cần thiết.-y: Tự động đồng ý với tất cả các câu hỏi xác nhận.reboot: Khởi động lại hệ thống.
Sau khi VPS khởi động lại, hãy kết nối lại qua SSH với tài khoản root.
Bước 3: Tạo Người Dùng Mới và Cấp Quyền Sudo 🔒
Đăng nhập bằng tài khoản root là không an toàn cho việc sử dụng hàng ngày. Bạn nên tạo một tài khoản người dùng thông thường và cấp cho nó quyền sudo để thực hiện các tác vụ quản trị.
-
Tạo người dùng mới:
# Thay thế 'your_username' bằng tên người dùng bạn muốn
adduser your_username -
Đặt mật khẩu cho người dùng mới:
passwd your_username- Nhập mật khẩu hai lần. Hãy chọn mật khẩu mạnh.
-
Thêm người dùng vào nhóm
wheel: Nhómwheellà nhóm mặc định trên AlmaLinux có quyền sử dụngsudo.usermod -aG wheel your_username-aG: Thêm người dùng vào nhóm phụ mà không loại bỏ các nhóm hiện có.
-
Kiểm tra quyền
sudo(tùy chọn): Bạn có thể chuyển sang người dùng mới và kiểm tra xem họ có thể sử dụngsudohay không.su - your_username
sudo dnf update --check-update- Bạn sẽ được yêu cầu nhập mật khẩu của
your_username. Nếu lệnh chạy mà không báo lỗi quyền, bạn đã thành công. - Gõ
exitđể quay lại tài khoảnroot.
- Bạn sẽ được yêu cầu nhập mật khẩu của
Bước 4: Bảo Mật SSH 🔒
Bảo mật truy cập SSH là cực kỳ quan trọng để bảo vệ VPS của bạn khỏi các cuộc tấn công.
4.1. Vô hiệu hóa đăng nhập Root qua SSH (Khuyến nghị)
Sau khi tạo người dùng mới có quyền sudo, bạn nên vô hiệu hóa khả năng đăng nhập trực tiếp bằng tài khoản root qua SSH.
-
Mở file cấu hình SSH daemon:
sudo nano /etc/ssh/sshd_config -
Tìm và chỉnh sửa dòng
PermitRootLogin: Tìm dòng sau (có thể có dấu#ở đầu):#PermitRootLogin yesThay đổi nó thành:
PermitRootLogin no- Nếu dòng này bị comment (có
#), hãy bỏ comment.
- Nếu dòng này bị comment (có
-
Lưu và thoát file:
- Nhấn
Ctrl+X, sau đóYđể xác nhận lưu, vàEnterđể ghi vào tên file hiện tại.
- Nhấn
-
Khởi động lại dịch vụ SSH:
sudo systemctl restart sshd⚠️ Cảnh báo quan trọng: Trước khi đóng phiên SSH hiện tại (với
root), hãy mở một cửa sổ terminal mới và thử đăng nhập bằngyour_usernameđể đảm bảo bạn có thể truy cập VPS. Nếu bạn vô hiệu hóarootmà không thể đăng nhập bằng người dùng khác, bạn sẽ bị khóa khỏi VPS.ssh your_username@YOUR_VPS_IP_ADDRESS
4.2. Sử dụng SSH Key để Đăng Nhập (Rất Khuyến nghị)
SSH Key cung cấp phương pháp đăng nhập an toàn hơn nhiều so với mật khẩu.
-
Tạo SSH Key trên máy tính cục bộ của bạn (nếu chưa có): Mở terminal trên máy tính cục bộ của bạn và chạy:
ssh-keygen -t rsa -b 4096- Làm theo hướng dẫn. Bạn có thể để trống passphrase nếu muốn đăng nhập không cần mật khẩu, nhưng khuyến nghị đặt passphrase để tăng cường bảo mật.
- Key sẽ được lưu trong thư mục
~/.ssh/(thường làid_rsavàid_rsa.pub).
-
Sao chép Public Key lên VPS: Sử dụng lệnh
ssh-copy-idtừ máy tính cục bộ của bạn.ssh-copy-id your_username@YOUR_VPS_IP_ADDRESS- Bạn sẽ được yêu cầu nhập mật khẩu của
your_username. - Lệnh này sẽ tự động thêm public key của bạn vào file
~/.ssh/authorized_keystrên VPS.
💡 Mẹo: Nếu
ssh-copy-idkhông có sẵn hoặc gặp lỗi, bạn có thể sao chép thủ công:# Trên máy cục bộ, hiển thị public key
cat ~/.ssh/id_rsa.pub
# Copy nội dung. Sau đó, trên VPS (đăng nhập bằng your_username)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "PASTE_YOUR_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys - Bạn sẽ được yêu cầu nhập mật khẩu của
-
Vô hiệu hóa đăng nhập bằng mật khẩu (tùy chọn nhưng khuyến nghị): Sau khi bạn đã xác nhận có thể đăng nhập bằng SSH Key, bạn có thể vô hiệu hóa hoàn toàn việc đăng nhập bằng mật khẩu qua SSH.
- Đăng nhập lại vào VPS bằng
your_usernamevà sử dụngsudo.
sudo nano /etc/ssh/sshd_config- Tìm dòng
PasswordAuthenticationvà thay đổi nó thành:
PasswordAuthentication no- Tìm dòng
ChallengeResponseAuthenticationvà đảm bảo nó được đặt làno:
ChallengeResponseAuthentication no- Lưu và thoát file.
- Khởi động lại dịch vụ SSH:
sudo systemctl restart sshd✅ Bây giờ, bạn chỉ có thể đăng nhập vào VPS bằng SSH Key.
- Đăng nhập lại vào VPS bằng
Bước 5: Cấu Hình Firewall (Firewalld) 🔒
AlmaLinux sử dụng firewalld làm dịch vụ tường lửa mặc định. Bạn cần cấu hình nó để chỉ cho phép các kết nối cần thiết.
-
Kiểm tra trạng thái Firewalld:
sudo systemctl status firewalld- Nếu nó không chạy, hãy kích hoạt và khởi động nó:
sudo systemctl enable --now firewalld -
Cho phép dịch vụ SSH: SSH chạy trên cổng 22. Bạn cần đảm bảo cổng này được mở.
sudo firewall-cmd --permanent --add-service=ssh -
Mở các cổng hoặc dịch vụ khác (ví dụ: HTTP/HTTPS cho web server):
# Cho phép truy cập HTTP (cổng 80)
sudo firewall-cmd --permanent --add-service=http
# Cho phép truy cập HTTPS (cổng 443)
sudo firewall-cmd --permanent --add-service=https💡 Mẹo: Bạn có thể mở cổng cụ thể thay vì dịch vụ:
# Mở cổng 8080 TCP
sudo firewall-cmd --permanent --add-port=8080/tcp -
Tải lại cấu hình firewall để áp dụng các thay đổi:
sudo firewall-cmd --reload -
Kiểm tra các quy tắc đã áp dụng:
sudo firewall-cmd --list-all- Bạn sẽ thấy danh sách các dịch vụ và cổng được phép.
Bước 6: Cấu Hình NTP (Network Time Protocol) 🌐
Đồng bộ hóa thời gian chính xác là rất quan trọng cho các hoạt động của máy chủ, đặc biệt là đối với logging, chứng chỉ SSL và giao dịch cơ sở dữ liệu. AlmaLinux sử dụng chrony để đồng bộ hóa thời gian.
- Cài đặt
chrony(nếu chưa có):sudo dnf install chrony -y - Kích hoạt và khởi động dịch vụ
chronyd:sudo systemctl enable --now chronyd - Kiểm tra trạng thái đồng bộ hóa thời gian:
chronyc sources- Bạn sẽ thấy danh sách các máy chủ NTP mà VPS của bạn đang kết nối và trạng thái đồng bộ hóa. Dấu
^*trước máy chủ cho biết nó đang được sử dụng để đồng bộ hóa.
- Bạn sẽ thấy danh sách các máy chủ NTP mà VPS của bạn đang kết nối và trạng thái đồng bộ hóa. Dấu
Bước 7: Cấu Hình SELinux (Tùy chọn, Nâng cao) 🔒
SELinux (Security-Enhanced Linux) là một cơ chế bảo mật mạnh mẽ trên AlmaLinux, cung cấp kiểm soát truy cập bắt buộc (MAC). Mặc định, SELinux được bật ở chế độ Enforcing. Để đảm bảo tương thích với một số ứng dụng, đôi khi người dùng có thể muốn chuyển sang chế độ Permissive hoặc Disabled, nhưng điều này không được khuyến nghị về mặt bảo mật.
-
Kiểm tra trạng thái SELinux:
sestatus- Bạn sẽ thấy
SELinux status: enabledvàCurrent mode: enforcing.
- Bạn sẽ thấy
-
Chuyển sang chế độ Permissive (không khuyến nghị cho môi trường production): Chế độ
Permissivesẽ ghi log các vi phạm chính sách nhưng không ngăn chặn chúng.sudo setenforce 0- Để thay đổi vĩnh viễn, chỉnh sửa file cấu hình:
sudo nano /etc/selinux/config
# Thay đổi SELINUX=enforcing thành SELINUX=permissive- Khởi động lại VPS để thay đổi có hiệu lực.
-
Vô hiệu hóa SELinux (không bao giờ khuyến nghị cho môi trường production):
sudo nano /etc/selinux/config
# Thay đổi SELINUX=enforcing thành SELINUX=disabled- Khởi động lại VPS để thay đổi có hiệu lực.
⚠️ Cảnh báo: Vô hiệu hóa SELinux sẽ làm giảm đáng kể mức độ bảo mật của hệ thống. Chỉ làm điều này nếu bạn hiểu rõ rủi ro và có các biện pháp bảo mật thay thế.
Troubleshooting hoặc Các Vấn Đề Thường Gặp
- Không thể SSH vào VPS:
- Kiểm tra lại địa chỉ IP của VPS.
- Đảm bảo dịch vụ SSH (
sshd) đang chạy trên VPS (sudo systemctl status sshd). - Kiểm tra tường lửa (
firewalld) trên VPS có chặn cổng 22 không. - Nếu bạn đã vô hiệu hóa đăng nhập
root, hãy chắc chắn bạn đang cố gắng đăng nhập bằng người dùng có quyền và mật khẩu/SSH Key chính xác. - Nếu bạn đang sử dụng SSH Key, kiểm tra quyền của các file trong
~/.sshtrên máy cục bộ (id_rsaphải là 600,id_rsa.publà 644).
- Lỗi
sudo(User is not in the sudoers file):- Đảm bảo người dùng của bạn đã được thêm vào nhóm
wheel(usermod -aG wheel your_username). - Đăng xuất và đăng nhập lại để các thay đổi về nhóm có hiệu lực.
- Đảm bảo người dùng của bạn đã được thêm vào nhóm
- Không thể truy cập dịch vụ web (ví dụ: sau khi cài Apache/Nginx):
- Kiểm tra tường lửa (
firewalld) có mở cổng 80 (HTTP) và 443 (HTTPS) không. - Kiểm tra dịch vụ web có đang chạy không (
sudo systemctl status httpdhoặcsudo systemctl status nginx). - Kiểm tra SELinux có đang chặn dịch vụ không (xem log
audit.loghoặc thử chuyển sangpermissiveđể kiểm tra).
- Kiểm tra tường lửa (
- VPS bị chậm hoặc phản hồi kém:
- Sử dụng
tophoặchtopđể kiểm tra mức sử dụng CPU và RAM. - Sử dụng
df -hđể kiểm tra dung lượng ổ đĩa. - Sử dụng
iotopđể kiểm tra hoạt động I/O của ổ đĩa. - Kiểm tra các tiến trình đang chạy có tiêu thụ nhiều tài nguyên không.
- Sử dụng
Kết Luận
Chúc mừng! Bạn đã hoàn thành việc cài đặt và cấu hình cơ bản AlmaLinux trên VPS của mình. Đến đây, bạn đã có một nền tảng vững chắc, bảo mật và ổn định để triển khai các ứng dụng hoặc dịch vụ của mình.
Các bước tiếp theo và Best Practices:
- Cài đặt các dịch vụ cần thiết: Tùy thuộc vào mục đích sử dụng, bạn có thể cài đặt web server (Apache/Nginx), database server (MySQL/PostgreSQL), PHP, Docker, v.v.
- Cấu hình Swap Space: Nếu VPS của bạn có ít RAM, việc thêm swap space có thể cải thiện hiệu suất.
- Theo dõi hệ thống: Sử dụng các công cụ như
htop,netstat,journalctlđể theo dõi hiệu suất và log của hệ thống. - Sao lưu định kỳ (Backup): Luôn tạo bản sao lưu dữ liệu quan trọng một cách thường xuyên. Hầu hết các nhà cung cấp VPS đều có dịch vụ backup tích hợp.
- Bảo trì định kỳ: Thường xuyên cập nhật hệ thống (
sudo dnf update -y), kiểm tra log và loại bỏ các gói không cần thiết. - Cấu hình fail2ban: Để bảo vệ chống lại các cuộc tấn công brute-force vào SSH và các dịch vụ khác.
Tài liệu Tham Khảo
- Website chính thức của AlmaLinux: https://almalinux.org/
- Tài liệu AlmaLinux: https://docs.almalinux.org/
- Tài liệu Red Hat Enterprise Linux (liên quan đến AlmaLinux): https://access.redhat.com/documentation/
Với AlmaLinux, bạn có thể tự tin xây dựng và quản lý các ứng dụng máy chủ của mình một cách hiệu quả và an toàn.