TFTP (Trivial FTP) - Giao thức truyền file đơn giản, KHÔNG an toàn
TFTP (UDP port 69) dùng cho: boot PXE, nạp firmware switch/router, backup config thiết bị mạng. Không có xác thực, không mã hóa, không liệt kê thư mục → RỦI RO CAO nếu exposed.
Tại sao TFTP không an toàn?
- Ai biết IP + filename → đọc/ghi file (config, firmware, shadow password)
- Không xác thực user → không biết ai truy cập
- Không mã hóa → sniff được nội dung (credential trong config)
- Không kiểm soát truy cập theo IP/path
Phương pháp bảo vệ TFTP trong Enterprise
1. Cách tốt nhất: THAY THẾ TFTP
| Thay thế | Ưu điểm | Nhược điểm |
| SFTP (SSH File Transfer) | Mã hóa, auth mạnh (key/pass), quản lý quyền, resume | Yêu cầu SSH server, client hỗ trợ |
| SCP | Đơn giản, qua SSH | Không resume, không manage file |
| HTTPS/REST API | TLS, auth token, audit log, firewall friendly | Cần dev/app support |
| Netconf/RESTCONF/gNMI | Chuẩn hóa quản trị mạng, transaction, validation | Thiết bị phải hỗ trợ |
2. Nếu BẮT BUỘC dùng TFTP (Legacy device)
a. Network Segmentation (Phân đoạn mạng) - QUAN TRỌNG NHẤT
b. TFTP Server Hardening
- Chạy trong chroot jail / container (Docker:
atmoz/tftp với --read-only)
- Giới hạn thư mục root:
tftpd -s /var/lib/tftpboot -r blksize
- Chỉ cho phép READ ONLY nếu chỉ nạp firmware/config
- Tắt option negotiation (blksize, timeout, tsize) nếu không cần
c. VPN / Out-of-Band Management
- Truy cập TFTP chỉ qua Site-to-Site VPN (IPsec, WireGuard) hoặc OOB network (iDRAC, iLO, Console Server)
- Không bao giờ expose TFTP ra Internet
d. Giám sát & Kiểm toán
- Log mọi request: IP nguồn, file, operation (RRQ/WRQ), kết quả
- SIEM alert: TFTP access từ IP lạ, giờ bất thường, file nhạy cảm (running-config, shadow)
- File integrity monitoring (FIM) trên thư mục TFTP root
e. Tự động hóa thay thế thủ công
- Ansible network modules:
ios_config, nxos_backup, iosxr_command
- Netmiko/NAPALM script backup config qua SSH/API
- CI/CD pipeline push config qua API (NetBox, Nautobot + Ansible)
3. Kiểm tra tuân thủ
- Quét port 69 UDP nội bộ:
nmap -sU -p 69 10.0.0.0/8
- Kiểm tra config TFTP server: read-only, chroot, no symlinks
- Review ACL/firewall rule cho TFTP hàng quý
Tóm tắt
Không dùng TFTP cho dữ liệu nhạy cảm. Ưu tiên SFTP/HTTPS/Netconf. Nếu buộc dùng: isolate network, chroot/readonly, VPN-only, logging, FIM, và có kế hoạch thay thế.