Mục lục

Bảo mật Linux & SSH Hardening

Bảo vệ Server khỏi Hacker: Thiết lập SSH Key, Tường lửa UFW và các quy tắc phân quyền (Chmod/Chown) nâng cao.

Một chiếc Server Linux "trần trụi" trên internet sẽ bị scanners dò quét password hàng ngàn lần mỗi giờ. Bài viết này hướng dẫn bạn dựng "khiên chắn" bảo vệ server.

1. SSH Hardening (Gia cố SSH)

Mặc định, SSH cho phép đăng nhập bằng mật khẩu. Đây là điểm yếu chết người nếu mật khẩu của bạn yếu hoặc bị lộ.

Bước 1: Sử dụng SSH Key (Không mật khẩu)

Thay vì gõ password, ta dùng cặp khóa RSA (Public/Private Key).

Tại máy cá nhân (Laptop của bạn):

bash:
# 1. Tạo cặp key (Nếu chưa có)
ssh-keygen -t ed25519 -C "admin@cuibap.com"

# 2. Copy Public Key lên Server (Tự động đưa vào ~/.ssh/authorized_keys)
ssh-copy-id username@ip-server

Bước 2: Tắt đăng nhập bằng Password

Sau khi test đăng nhập bằng Key thành công, hãy tắt luôn chức năng đăng nhập bằng password để chặn Brute Force Attack.

Sửa file config SSH trên Server:

bash:
sudo nano /etc/ssh/sshd_config

Tìm và sửa các dòng sau:

bash:
PasswordAuthentication no
PermitRootLogin no        # Cấm login trực tiếp bằng Root (Login bằng user thường rồi sudo)
Port 2222                 # (Optional) Đổi port mặc định 22 sang số khác để tránh bot quét dạo

Khởi động lại SSH Service:

bash:
sudo service ssh restart

2. Tường lửa (Firewall) với UFW

Ubuntu đi kèm với UFW (Uncomplicated Firewall) rất dễ dùng. Nguyên tắc: "Cấm tất cả, chỉ mở những gì cần thiết".

bash:
# 1. Cài đặt (thường có sẵn)
sudo apt install ufw

# 2. Cho phép SSH (Quan trọng! Nếu không bạn sẽ tự block chính mình)
# Nếu đã đổi port SSH ở trên thành 2222, gõ: sudo ufw allow 2222/tcp
sudo ufw allow ssh

# 3. Cho phép Web Server (Port 80, 443)
sudo ufw allow http
sudo ufw allow https

# 4. Kích hoạt
sudo ufw enable

# 5. Kiểm tra trạng thái
sudo ufw status

3. Phân quyền nâng cao (Permissions Permissions)

Hiểu sâu hơn về các con số 777, 755, 644.

Cấu trúc quyền: R - W - X

  • R (Read - 4): Đọc nội dung.
  • W (Write - 2): Sửa, xóa nội dung.
  • X (Execute - 1): Chạy file (nếu là script) hoặc truy cập vào (nếu là thư mục).

Quyền được set cho 3 nhóm: Owner (Chủ) - Group (Nhóm) - Others (Người lạ).

Các Combo quyền thông dụng

  • chmod 777 (4+2+1 | 4+2+1 | 4+2+1): DANGER AREA. Ai cũng có quyền ghi xóa. Chỉ dùng để debug, không bao giờ để trên production.
  • chmod 755 (Owner: Full, Group/Others: Read+Execute): Chuẩn cho Thư mục Web/App.
  • chmod 644 (Owner: RW, Group/Others: Read): Chuẩn cho File (Config, Code, HTML, Image).
  • chmod 600 (Owner: RW, Group/Others: No Access): Chuẩn cho SSH Key hoặc file chứa mật khẩu Database. Dữ liệu bí mật.

Ví dụ thực tế: Sửa lỗi "403 Forbidden" trên Web Server

Lỗi 403 thường do Nginx/Apache không đọc được file web.

bash:
# Fix quyền thư mục (cho phép đi vào)
find /var/www/html -type d -exec chmod 755 {} \;

# Fix quyền file (cho phép đọc)
find /var/www/html -type f -exec chmod 644 {} \;

# Trao chủ quyền cho user web (www-data)
chown -R www-data:www-data /var/www/html
Quảng cáo
mdhorizontal