Vừa cài xong Fedora Server, đừng để máy “trần” ra Internet
Cài xong Fedora Server chỉ mất 10 phút, nhưng để nó chạy ổn định và an toàn thì cần nhiều hơn thế. Một hệ thống mới cài đặt (vanilla) thường đi kèm với các thiết lập mặc định khá lỏng lẻo. Nếu bạn mở port 22 ngay lúc này, chỉ sau vài phút, log hệ thống sẽ tràn ngập các cuộc tấn công brute-force từ botnet.
Sau 2 năm dùng Fedora cho cả máy cá nhân lẫn server, mình rút ra một bộ quy tắc riêng. Thay vì để mặc định, mình luôn tinh chỉnh lại để hệ thống vừa nhẹ, vừa có khả năng tự vệ cao. Dưới đây là những bước mình thực hiện ngay sau khi màn hình Terminal hiện ra.
1. Tăng tốc DNF và tự động hóa cập nhật
Mặc định, trình quản lý gói DNF của Fedora khá chậm do giới hạn số luồng tải. Một bản cài mới thường có khoảng 300-500MB bản cập nhật chờ sẵn. Hãy giúp nó chạy nhanh hơn bằng cách thêm cấu hình tải song song.
echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf
sudo dnf upgrade -y
Để tránh việc quên vá lỗi bảo mật, hãy cài dnf-automatic. Công cụ này giúp máy chủ tự âm thầm cập nhật các bản vá quan trọng vào lúc 3 giờ sáng mà không cần bạn động tay.
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer
Trong file /etc/dnf/automatic.conf, bạn nên chỉnh upgrade_type = security. Thiết lập này đảm bảo server chỉ cập nhật lỗi bảo mật, tránh việc tự nâng cấp phiên bản phần mềm gây xung đột dịch vụ đang chạy.
2. Gia cố SSH – Chặn đứng 99% bot tự động
Hacker không rảnh để gõ mật khẩu từng máy, chúng dùng script quét hàng triệu IP trên port 22. Để thoát khỏi tầm ngắm, hãy đổi luật chơi trong file /etc/ssh/sshd_config.
- Đổi port 22: Chọn một số ngẫu nhiên như 2468. Điều này loại bỏ hầu hết các đợt quét đại trà.
- Cấm Root Login: Không bao giờ cho phép login trực tiếp vào root. Hãy dùng user thường rồi
sudosau. - Dùng SSH Key: Vô hiệu hóa hoàn toàn mật khẩu. Nếu không có file key vật lý, không ai có thể vào được server.
# Sửa các dòng sau trong /etc/ssh/sshd_config
Port 2468
PermitRootLogin no
PasswordAuthentication no
Cảnh báo: Đừng vội đóng terminal hiện tại. Hãy dùng lệnh ssh-copy-id để đẩy key của bạn lên trước, nếu không bạn sẽ tự khóa chính mình khỏi server sau khi restart SSH.
3. Thiết lập Firewalld theo nguyên tắc “chặn tất cả”
Fedora dùng firewalld để quản lý lưu lượng mạng. Thay vì mở port lẻ tẻ, hãy quản lý theo dịch vụ để dễ kiểm soát hơn. Khi bạn đổi port SSH ở bước trên, việc đầu tiên là phải khai báo nó với tường lửa.
# Mở port SSH mới và đóng port cũ
sudo firewall-cmd --permanent --add-port=2468/tcp
sudo firewall-cmd --permanent --remove-service=ssh
# Chỉ mở web server nếu thực sự cần
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Hãy dùng lệnh sudo firewall-cmd --list-all để kiểm tra lại. Một server an toàn là một server chỉ mở đúng những gì nó cần phục vụ.
4. Đừng tắt SELinux, hãy học cách gán nhãn
Nhiều hướng dẫn trên mạng bảo bạn tắt SELinux để tránh lỗi “Permission Denied”. Đó là lời khuyên tồi. SELinux giống như một vệ sĩ đứng gác từng file. Ngay cả khi hacker chiếm được quyền user, họ cũng không thể sửa file hệ thống nếu SELinux ngăn cản.
Nếu bạn cài Nginx mà gặp lỗi 403, khả năng cao là do nhãn (context) của file chưa đúng. Thay vì tắt bảo vệ, hãy gán lại nhãn cho thư mục web:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/my_site(/.*)?"
sudo restorecon -Rv /var/www/my_site
Nếu quá khó, hãy cài setroubleshoot-server. Nó sẽ viết hẳn một đoạn hướng dẫn bằng tiếng Anh giải thích tại sao lỗi và lệnh nào cần gõ để sửa.
5. Tối ưu RAM với zRAM – Cứu cánh cho server nhỏ
Fedora có một tính năng cực hay là zRAM. Thay vì ghi dữ liệu thừa xuống ổ cứng (Swap) làm chậm máy, nó nén dữ liệu đó lại ngay trong RAM. Tỉ lệ nén thường đạt mức 2:1 hoặc 3:1.
Nếu server của bạn chỉ có 1GB hoặc 2GB RAM (như các gói VPS giá rẻ), hãy kiểm tra zRAM bằng lệnh zramctl. Bạn có thể tăng dung lượng nén để chạy được nhiều container Docker hơn mà không cần nâng cấp phần cứng tốn kém.
6. Giới hạn Log để tránh đầy ổ cứng
Hệ thống log (journald) của Fedora có thể phình to lên vài GB sau vài tháng, gây treo máy vì hết dung lượng phân vùng root. Hãy giới hạn nó ở mức vừa đủ dùng, ví dụ 200MB.
sudo vi /etc/systemd/journald.conf
# Tìm và sửa dòng: SystemMaxUse=200M
sudo systemctl restart systemd-journald
Tương tự, hãy giới hạn số lượng Kernel cũ trong /etc/dnf/dnf.conf bằng dòng installonly_limit=2. Việc này giúp phân vùng /boot luôn thông thoáng.
Lời kết
Bảo mật server không phải là việc làm một lần rồi thôi, nhưng thực hiện đúng checklist này sẽ giúp bạn kê gối ngủ ngon hơn. Khi các lớp phòng thủ từ SSH, Firewalld đến SELinux được thiết lập chặt chẽ, máy chủ Fedora của bạn đã sẵn sàng cho những tác vụ thực tế mà không sợ các cuộc tấn công phổ thông trên mạng.

