Monday, April 21, 2014

Cách sử dụng /etc/hosts.allow và /etc/hosts.deny

Hai tập tin này định nghĩa các quy tắt(luật) truy cập vào hệ thống ở tầng ứng dụng mạng. Dựa trên điều khiển TCPWappers và tôi thường gọi nó là một dạng tường lửa ở tầng ứng dụng. Số khác thì gọi là ACL(ACCESS CONTROL LIST).v.v.
IP access deny
Giới hạn truy cập vào hệ thống với hosts.deny

Thứ tự ưu tiên của /etc/hosts.allow trước, rồi đến /etc/hosts.deny. Nghĩa là nếu có trong hosts.allow thì không cần tìm trong hosts.deny nữa.
Cú pháp trong hosts.allow và hosts.deny như sau:
deamon: client [tùy chọn1: tùy chọn 2:...]
Trong đó:
  • deamon: là dịch vụ cần áp đặt luật. Nếu để là ALL sẽ áp dụng cho mọi dịch vụ.
  • client: là địa chỉ ip nguồn, host nguồn
  • phần tùy chọn sẽ trình bày trong bài viết sau
Ta chỉ cần nhớ nếu luật được ghi vào hosts.allow thì đồng nghĩa với việc cho phép, ngược lại ghi vào hosts.deny thì không cho phép.
Ví dụ:
Cho phép client 192.168.1.20 truy cập vào ssh.

Cách thực hiện
Bước 1: Mở tập tin /etc/hosts.allow, có thể sử dụng vi, nano, ee .v.v.
vi /etc/hosts.allow
Bước 2: Thêm dòng sau vào cuối tập tin
sshd: 192.168.1.20
Bước 3: Lưu lại nội dung tập tin ở trên.
Các ví dụ sau cách thực hiện cũng tương tự, có thể cần thay đổi tập tin hosts.allow hoặc hosts.deny tùy vào từng trường hợp như đã giải thích ở trên.
Mẹo:
Nếu có nhiều client ta sử dụng dấu ‘,’ để ngăn cách
Nếu muốn áp đặt cho một lớp mạng ta khai báo lớp mạng và kết thúc với dấu ‘.’
Ví dụ:
sshd: 192.168.1. , 192.168.3.2
Áp dụng luật trên với lớp mạng 192.168.1.0 và IP 192.168.3.2
Ví dụ:
Chặn mọi truy cập từ client có IP 192.168.10.10
ALL: 192.168.10.10
Ở đây deamon đã được thay thành ALL, tương đương với tất cả. Nghĩa là dịch vụ nào cũng chịu ảnh hưởng từ luật này. Nhớ là thêm nội dung đó vào tập tin hosts.deny nhé.
Gợi ý:
ALL có thể sử dụng cho deamon lẫn client.
Ví dụ:
Chặn tất cả client truy cập vào vsftp
vsftpd: ALL

Để bài viết ngắn gọn và truyền tải được nội dung, tôi xin dừng bài viết ở đây để đúc kết lại vài ý:
  • Cách sử dụng hosts.allow và hosts.deny cũng khá tương tự như các khái niệm ACL trên Cisco .v.v. Nói chung đây là một dạng điều khiển truy cập vào hệ thống ở mức ứng dụng.
  • Cũng có thể gọi đây là một dạng firewall đơn giản, vì đúng bản chất nó rất đơn giản.
  • Ngoài ra nếu muốn tìm hiểu thêm về firewall trên Linux ta nên tìm hiểu về netfilter và iptables. (Sẽ mất nhiều thời gian đào bới kiến thức về thằng firewall này đó :)) )
Link:http://phanquocly.com/networking/cach-su-dung-etc-hosts-allow-va-etc-hosts-deny/