Nếu từng xem log xác thực server, bạn biết: bất kỳ server nào kết nối Internet đều bị tấn công brute-force SSH liên tục bởi script tự động. Dù mật khẩu phức tạp/biện pháp bảo mật khác khiến hacker khó xâm nhập, rủi ro vẫn tồn tại.
May mắn có cách thú vị và hữu ích: bẫy hacker trong "honeypot" để họ bận rộn, không tấn công được target thật.
SSH Honeypot là gì?
Honeypot là mồi nhử giả vờ dễ tấn công để kéo hacker vào. Hacker thường không nhận ra cho đến khi quá muộn. Có nhiều dạng: từ đơn giản đánh lạc hướng đến thu thập thông tin tấn công. Cơ quan chính phủ dùng để bắt tội phạm, sysadmin dùng để bảo vệ server công ty hoặc server cá nhân.
Tại sao dùng SSH Honeypot?
- Chặn kết nối tương lai từ hacker đó.
- Lôi kéo hacker xa khỏi target thật trên hệ thống.
- Mục đích giáo dục: hiểu cách tấn công hoạt động.
Bài này tập trung làm "bẫy đánh lạc hướng": bận rộn hacker, ngăn họ tấn công phần yếu hơn của server bạn, và cả server người khác.
Kỹ thuật "SSH Tarpit" (Bẫy bùn)
Bẫy hacker khi họ brute-force SSH login. Cách đơn giản: gửi banner SSH cực dài, rất chậm. Script tự động của hacker sẽ bị kẹt chờ banner - có thể kéo dài giờ, ngày, tuần. Hacker không ngồi nhìn script nên không biết bị kẹt except sau rất lâu.
Yêu cầu kiến thức SSH cơ bản. Chưa biết? Xem hướng dẫn SSH cơ bản trước.
endlessh - Công cụ tạo tarpit
Chương trình endlessh (tác giả skeeto) thực hiện kỹ thuật này.
- Clone repo (cần git):
git clone https://github.com/skeeto/endlessh
- Biên dịch:
cd endlessh && make
Nếu lỗi thiếu dependency → cài qua package manager.
- Di chuyển binary vào PATH:
sudo mv endlessh /usr/local/bin
Kiểm tra:
which endlessh→ phải ra/usr/local/bin/endlessh. - Tạo systemd service:
sudo cp util/endlessh.service /etc/systemd/system/
Enable service:
sudo systemctl enable endlessh
- Mặc định endlessh chỉ chạy port >1024. Muốn dùng port 22 (SSH mặc định) để lừa hacker → sửa service file:
sudo nano /etc/systemd/system/endlessh.service
- Bỏ comment dòng:
#AmbientCapabilities=CAP_NET_BIND_SERVICE - Comment dòng:
PrivateUsers=true(thêm # đầu dòng)
- Bỏ comment dòng:
- Set capability:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
- Tạo config:
sudo mkdir -p /etc/endlessh && sudo vim /etc/endlessh/config
Nội dung config (chỉ 1 dòng):
Port 22
- Khởi động service:
sudo systemctl start endlessh
Xong! endlessh đang chạy trên port 22, sẵn sàng bẫy hacker.
Kiểm tra
Giả vờ hacker thử SSH vào server:
ssh root@
Lệnh sẽ bị treo. Thêm flag -vvv để xem chi tiết:
ssh -vvv root@
Sẽ thấy endlessh gửi banner SSH từng dòng, rất chậm. Bot của hacker sẽ bị kẹt hàng giờ/ngày.
Câu hỏi thường gặp
1. Có ngăn chặn hoàn toàn hacker truy cập SSH không?
Không đảm bảo 100%. Hacker chú ý sẽ phát hiện honeypot và thử port khác. Nhưng đủ chặn hacker chỉ tìm "mồi dễ" (low-hanging fruit).
2. Dùng SSH thật nếu port 22 bị chiếm bởi endlessh?
Đổi port SSH thật sang port khác. Đây là thói quen tốt dù không có honeypot, vì hacker luôn quét port mặc định trước.
3. Config file còn tùy chọn gì khác?
Có, gồm delay speed... Xem file config mẫu trên GitHub repo.
Lời kết
Đã học cách setup honeypot bẫy hacker. Đây chưa phải cách duy nhất bảo mật SSH. Xem bài: dùng encryption key đăng nhập SSH để tăng cường bảo mật.