Hướng dẫn sử dụng /etc/hosts.allow và /etc/hosts.deny để kiểm soát truy cập

Đã kiểm duyệt nội dung
Đánh giá
Hai tập tin /etc/hosts.allow và /etc/hosts.deny trong Linux đóng vai trò như một lớp bảo vệ cơ bản, giúp quản trị viên kiểm soát quyền truy cập vào hệ thống một cách nhanh chóng mà không cần cấu hình tường lửa phức tạp. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng hai tập tin này để tăng cường bảo mật cho máy chủ.
Những điểm chính
- Khái niệm /etc/hosts.allow: Là tập tin cấu hình whitelist thuộc hệ thống TCP Wrappers, dùng để xác định danh sách IP hoặc mạng được phép truy cập vào các dịch vụ cụ thể.
- Khái niệm /etc/hosts.deny: Là tập tin cấu hình blacklist dùng để chặn các kết nối từ địa chỉ IP không mong muốn nếu chúng không được tìm thấy trong hosts.allow.
- Cơ chế hoạt động ưu tiên: Hệ thống luôn kiểm tra quy tắc trong hosts.allow trước, nếu tìm thấy sẽ chấp nhận ngay lập tức, ngược lại mới kiểm tra tiếp hosts.deny.
- Chiến lược cấu hình chuẩn: Nên áp dụng nguyên tắc “Chặn tất cả, chỉ mở cho IP tin cậy” bằng cách khai báo ALL: ALL trong hosts.deny và thêm IP cụ thể vào hosts.allow.
- Cú pháp lệnh cơ bản: Tuân theo định dạng danh_sách_dịch_vụ : danh_sách_client, cho phép kiểm soát chi tiết từng dịch vụ như SSH hay FTP.
- Khắc phục sự cố phổ biến: Hướng dẫn xử lý các lỗi như bị khóa quyền truy cập do quên thêm IP cá nhân hoặc quy tắc không hoạt động do dịch vụ thiếu thư viện libwrap.
- Lưu ý khi sử dụng: Các thay đổi có hiệu lực ngay lập tức không cần khởi động lại dịch vụ và đây chỉ là lớp bảo mật bổ sung, không thay thế hoàn toàn tường lửa.
- Biết đến Vietnix là nhà cung cấp VPS bảo mật tốc độ cao cho Linux.
- Giải đáp thắc mắc: Làm rõ mối quan hệ giữa TCP Wrappers và tường lửa, cũng như cách xử lý xung đột khi sử dụng đồng thời cả hai lớp bảo v

/etc/hosts.allow là gì?
/etc/hosts.allow là một tập tin cấu hình văn bản trong các hệ điều hành giống Unix (như Linux, macOS), được sử dụng bởi hệ thống TCP Wrappers. Chức năng chính của tập tin này là xác định danh sách các địa chỉ IP, tên miền hoặc mạng được phép truy cập vào các dịch vụ mạng cụ thể trên máy chủ. Nói cách khác, đây là whitelist giúp quản trị viên kiểm soát ai có quyền kết nối tới các dịch vụ như SSH, Telnet, FTP,…

Để tối ưu hóa hiệu suất hệ thống khi vận hành các dịch vụ mạng, VPS NVMe của Vietnix là giải pháp lý tưởng. Dịch vụ này sử dụng 100% ổ cứng NVMe Enterprise kết hợp công nghệ ảo hóa hiện đại, mang lại tốc độ xử lý nhanh gấp 10 lần so với SSD thông thường. VPS NVMe được xây dựng trên hạ tầng phần cứng mạnh mẽ, đảm bảo tính ổn định cao và đi kèm tính năng backup tự động miễn phí, giúp bảo vệ an toàn dữ liệu doanh nghiệp một cách tối ưu.
Website nhanh hơn – Bán được nhiều hàng hơn
- Chiếm lĩnh TOP Google, hút traffic.
- Mua sắm mượt mà, tăng tỷ lệ chốt đơn.
- Chuyên gia kỹ thuật đồng hành 24/7.

/etc/hosts.deny là gì?
/etc/hosts.deny là tệp cấu hình được sử dụng để chặn các kết nối từ những địa chỉ IP, dải mạng hoặc tên miền không mong muốn truy cập vào dịch vụ. Trong quy trình xử lý của TCP Wrappers, nếu một yêu cầu kết nối không tìm thấy quy tắc cho phép trong hosts.allow, hệ thống sẽ tiếp tục đối chiếu với hosts.deny. Nếu thông tin khớp với quy tắc chặn tại đây, kết nối sẽ bị từ chối. Đây là lớp bảo vệ thứ hai giúp ngăn chặn truy cập trái phép.

Cơ chế hoạt động của TCP Wrappers
Khi có một yêu cầu kết nối đến máy chủ, hệ thống sẽ kiểm tra quyền truy cập theo trình tự ưu tiên sau:
- Kiểm tra hosts.allow: Hệ thống sẽ quét tệp /etc/hosts.allow đầu tiên. Nếu tìm thấy quy tắc khớp (IP và dịch vụ), quyền truy cập được chấp nhận ngay lập tức. Hệ thống sẽ dừng kiểm tra và bỏ qua tệp hosts.deny.
- Kiểm tra hosts.deny: Nếu không tìm thấy quy tắc khớp trong hosts.allow, hệ thống tiếp tục quét tệp /etc/hosts.deny. Nếu tìm thấy quy tắc khớp tại đây, quyền truy cập sẽ bị từ chối.
- Quy tắc mặc định: Nếu yêu cầu truy cập không khớp với bất kỳ quy tắc nào trong cả hai tệp trên, hệ thống sẽ cho phép truy cập theo mặc định.
Lưu ý
Quy tắc trong hosts.allow luôn có độ ưu tiên cao hơn hosts.deny.
Cấu trúc và cú pháp chuẩn
Cấu trúc lệnh trong hai file này tuân theo định dạng:
danh_sách_dịch_vụ : danh_sách_client [: tùy_chọn]Trong đó:
- danh_sách_dịch_vụ (daemon_list): Tên tiến trình của dịch vụ (ví dụ: sshd, vsftpd, hoặc ALL cho tất cả dịch vụ).
- danh_sách_client (client_list): Địa chỉ IP, tên miền, hoặc dải mạng (ví dụ: 192.168.1.1, ALL).
- tùy_chọn (option): Các lệnh thực thi bổ sung như gửi email cảnh báo hoặc ghi log.
Ví dụ:
sshd: 192.168.1.100: Cho phép IP 192.168.1.100 truy cập SSH.sshd: ALL: Áp dụng quy tắc SSH cho tất cả các IP.
Hướng dẫn sử dụng /etc/hosts.allow và /etc/hosts.deny
Để bảo mật hệ thống hiệu quả, bạn nên tuân theo nguyên tắc “Chặn tất cả, chỉ mở cho IP tin cậy”. Dưới đây là các bước thực hiện:
Bước 1: Tạo quy tắc từ chối mặc định
Đầu tiên, bạn cần thiết lập quy tắc chặn tất cả các kết nối đến. Bạn hãy mở file hosts.deny để chỉnh sửa:
sudo nano /etc/hosts.denyBạn thêm dòng sau vào cuối file để từ chối tất cả các dịch vụ từ mọi địa chỉ IP:
ALL: ALL
Bước 2: Thêm IP được phép truy cập
Tiếp theo, bạn cần khai báo những địa chỉ IP được phép kết nối để tránh việc chính mình bị chặn khỏi hệ thống. Bạn hãy mở file hosts.allow:
sudo nano /etc/hosts.allow
Bạn thêm các quy tắc cho phép tùy theo nhu cầu (ví dụ bên dưới dành cho dịch vụ SSH):
# Cho phép SSH từ một IP cụ thể
sshd: 192.168.1.100
# Cho phép SSH từ một dải mạng nội bộ
sshd: 192.168.1.
# Cho phép kết nối từ chính server (localhost)
ALL: 127.0.0.1Bước 3: Lưu và kiểm tra
Sau khi soạn thảo xong, bạn lưu file bằng cách nhấn tổ hợp phím Ctrl + X, sau đó chọn Y và nhấn Enter. Hệ thống sẽ áp dụng ngay lập tức các thay đổi này. Bạn nên thử kết nối từ một phiên làm việc mới để kiểm tra xem quy tắc đã hoạt động đúng chưa trước khi thoát phiên hiện tại. Dù không có lệnh kiểm tra cú pháp chuyên biệt, nhưng nếu bạn viết sai cú pháp, quy tắc đó sẽ đơn giản là không hoạt động.
Ví dụ cấu hình thực tế
Trường hợp 1: Chỉ cho phép duy nhất 1 IP truy cập SSH
Đây là cấu hình bảo mật cao nhất, thường dùng cho các máy chủ cá nhân.
- File /etc/hosts.deny:
ALL: ALL- File /etc/hosts.allow (Thay bằng IP công cộng của bạn):
sshd: 203.0.113.10
Kiểm tra truy cập:

Trường hợp 2: Cho phép nhiều IP
Cấu hình này phù hợp cho môi trường văn phòng hoặc đội ngũ kỹ thuật.
File /etc/hosts.allow:
sshd: 192.168.1.100, 192.168.1.101, 192.168.1.102
sshd: 127.0.0.1Trường hợp 3: Cho phép cả dải mạng
Mô hình này thường dùng trong môi trường doanh nghiệp hoặc mạng nội bộ (LAN).
File /etc/hosts.allow:
sshd: 192.168.1.
sshd: 10.0.0.
sshd: 127.0.0.1Các lỗi thường gặp và cách khắc phục
Trong quá trình cấu hình, bạn có thể gặp phải một số vấn đề khiến hệ thống bị khóa hoặc quy tắc không hoạt động. Sau đây là cách khắc phục:
Lỗi bị khóa hoàn toàn
- Hiện tượng: Bạn không thể truy cập SSH từ bất kỳ IP nào sau khi cấu hình.
- Nguyên nhân: Bạn đã thêm quy tắc chặn tất cả trong hosts.deny nhưng quên thêm IP của chính mình vào hosts.allow.
- Cách xử lý: Bạn cần truy cập server thông qua giao diện Console/VNC (do nhà cung cấp dịch vụ VPS hỗ trợ) và sửa lại file hosts.allow để thêm IP của mình vào.
Lỗi quy tắc không hoạt động do thiếu hỗ trợ
- Hiện tượng: Bạn đã cấu hình đúng nhưng vẫn không chặn/cho phép được dịch vụ.
- Nguyên nhân: Dịch vụ bạn đang dùng không hỗ trợ thư viện TCP Wrappers (libwrap).
- Cách xử lý: Bạn hãy kiểm tra xem dịch vụ có hỗ trợ không bằng lệnh:
ldd $(which sshd) | grep libwrap. Nếu không có kết quả trả về, bạn phải dùng tường lửa thay thế.
Lỗi cú pháp
- Hiện tượng: Các quy tắc bị hệ thống bỏ qua.
- Nguyên nhân: Bạn viết sai định dạng, thiếu dấu hai chấm hoặc sai khoảng trắng.
- Cách xử lý: Bạn cần kiểm tra kỹ lại file cấu hình, đảm bảo đúng định dạng
dịch_vụ: IP.
Lưu ý quan trọng khi sử dụng
- Thứ tự ưu tiên: /etc/hosts.allow luôn được kiểm tra trước. Nếu đã cho phép ở đây, nội dung trong hosts.deny sẽ bị bỏ qua đối với kết nối đó.
- Phạm vi tác động: Chỉ các dịch vụ (daemons) được biên dịch với thư viện libwrap mới tuân thủ các quy tắc trong tập tin này. Các dịch vụ hiện đại hoặc web server (như Nginx, Apache) thường không sử dụng cơ chế này.
- Dịch vụ thay thế: Ngày nay, việc sử dụng firewall như iptables, UFW, hoặc Firewalld được khuyến nghị hơn vì khả năng kiểm soát mạnh mẽ và linh hoạt hơn so với TCP Wrappers. Tuy nhiên, /etc/hosts.allow vẫn được dùng như một lớp bảo mật bổ sung .
Dịch vụ VPS Vietnix – Giải pháp lưu trữ tốc độ cao
Vietnix cung cấp đa dạng các gói dịch vụ máy chủ ảo như VPS Giá Rẻ, VPS SSD và AMD VPS, đáp ứng linh hoạt mọi nhu cầu từ cá nhân đến doanh nghiệp lớn. Hệ thống cam kết uptime lên đến 99.9% nhờ nền tảng công nghệ ảo hóa tiên tiến và hạ tầng phần cứng mạnh mẽ. Đặc biệt, khách hàng sử dụng dịch vụ tại Vietnix còn nhận được bộ quà tặng Theme/Plugin bản quyền giá trị cao cùng sự hỗ trợ kỹ thuật 24/7 chuyên nghiệp, giúp việc quản trị hệ thống trở nên dễ dàng và hiệu quả hơn.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
Câu hỏi thường gặp
Tôi có cần khởi động lại dịch vụ sau khi sửa file hosts không?
Không. Một trong những ưu điểm lớn nhất của phương pháp này là các thay đổi sẽ có hiệu lực ngay lập tức sau khi bạn lưu file mà không cần restart bất kỳ dịch vụ nào.
Hosts.allow/deny có thay thế được tường lửa không?
Không. Đây chỉ là một lớp bảo mật bổ sung. Tường lửa (như iptables hay firewalld) hoạt động ở mức độ thấp hơn trong mô hình OSI và có khả năng lọc gói tin mạnh mẽ hơn, do đó bạn nên kết hợp cả hai để đạt hiệu quả bảo mật tối đa.
Nếu tôi chặn IP trong hosts.deny nhưng mở trong Firewall (iptables) thì sao?
Kết nối sẽ đi qua Firewall trước, sau đó mới đến lớp TCP Wrappers. Nếu Firewall cho phép, kết nối sẽ tiếp tục bị TCP Wrappers chặn lại (nếu có trong hosts.deny). Nếu Firewall chặn ngay từ đầu, TCP Wrappers sẽ không bao giờ nhận được yêu cầu đó.
Việc cấu hình chính xác /etc/hosts.allow và /etc/hosts.deny là phương pháp đơn giản nhưng hiệu quả để tăng cường bảo mật cho VPS Linux. Sự kết hợp này tạo nên lớp bảo vệ linh hoạt, giúp kiểm soát chặt chẽ quyền truy cập mạng ngay từ bước xác thực đầu tiên. Tuy nhiên, để đạt hiệu quả bảo mật tối đa, bạn nên kết hợp TCP Wrappers với tường lửa và các biện pháp xác thực mạnh mẽ khác.
THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM
Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

















