Các điều kiện trong chuỗi luật của IPTables

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp an toàn thông tin cho hệ thống tính toán lưới Luận văn ThS. Công nghệ thông tin 60 48 05 (Trang 54 - 58)

2.1.3 .2Ủy quyền

3.5 Các điều kiện trong chuỗi luật của IPTables

Để xây dựng một luật của iptables, ta cần chỉ ra các điều kiện kiểm tra gói tin và sau đó phải chỉ ra các hành động xử lý gói tin đó khi thông tin của gói tin đáp ứng được điều kiện chỉ ra. Trong phần này, ta khảo sát một số điều kiện cơ bản thường được sử dụng trong bảng filter và nat. iptables sẽ chỉ thực hiện kiểm tra các gói tin dựa vào các điều kiện được chỉ ra.

Những điều kiện kiểm tra gói tin được chia thành các nhóm: Nhóm các điều kiện chung , nhóm các điều kiện ẩn, nhóm các điều hiện hiện.

Nhóm các điều kiện chung

Nhóm các điều kiện chung có thể được sử dụng trong tất cả các luật. Nhóm điều kiện chung luôn luôn có hiệu lực, không xét đến giao thức gói tin, không xét đến các điều kiện mở rộng. Không có tham số đặc biệt nào cần phải có khi sử dụng những điều kiện này.

Các điều kiện chung: -p protocol

Điều kiện này được sử dụng để kiểm tra giao thức (protocol) của gói tin. Giao thức có thể được chỉ ra bằng tên hoặc bằng giá trị số của giao thức (các giá trị số hợp lệ là các giá trị được khai báo trong tập tin /etc/protocols), ví dụ như 1 có nghĩa là giao thức ICMP. Các giá trị của điều kiện -p cũng có thể là một danh sách các giao thức, đượcphân cách nhau bởi dấu ','. Giá trị ALL đại diện cho mọi giao thức.

Ví dụ: iptables -A INPUT -p tcp,udp

-s source_addr

Điều kiện này đượcsử dụng để kiểm tra địa chỉ nguồn (source_addr) của các gói tin. Giá trị của điều kiện này, source_addr, là một địa chỉ IP với netmask có thể được ghi ở dạng CIRD.

Ví dụ: iptables -A INPUT -s 192.168.1.1/27

-d dest_addr

Điều kiện này đượcsử dụng để kiểm tra địa chỉ đích (dest_addr) của các gói tin. Giá trị của điều kiện này, dest_addr, là một địa chỉ IP với netmask có thể đượcghi ở dạng CIRD. Ví dụ: iptables -A INPUT -d 192.168.1.1/24

-i in_interface

Điều kiện -i được sử dụng để chỉ thực hiện kiểm tra những gói tin có đi đến giao tiếp mạng in_interface. Điều kiện này chỉ đượcphép khai báo trong các chuỗi luật INPUT, FORWARD và PREROUTING. Giá trị của điều kiện này, in_interface, là tên của giao tiếp mạng. Có thể sử dụng ký tự thay thế “+” trong tên của giao tiếp mạng. Nếu “+” đứng một mình thì sẽ đại diện cho tất cả các giao tiếp mạng. Nếu “+” được viết liền sau một phần tên của giao tiếp mạng, nó thay thế cho tất cả các giaotiếp mạng có phần tên đó. Ví dụ, điều kiện -i eth+ sẽ áp dụng luật cho bất kỳ giao tiếp Ethernet nào trên hệ thống ngoại trừ các giao tiếp khác, như là ppp0.

Ví dụ: iptables -A INPUT -i eth0

FORWARD và POSTROUTING, ngược với điều kiện -i. Cú pháp của điều kiện này tương tự như cú pháp của điều kiện -i.

Ví dụ: iptables -A FORWARD -o eth0

Nhóm các điều kiện ẩn

Các điều kiện ẩn đượcthực hiện, công nhận, tự động và được nạp một cách hoàn toàn. Hiện có ba kiểu điều kiện ẩn áp dụng cho ba giao thức: điều kiện kiểm tra gói TCP, kiểm tra gói UDP, và kiểm tra gói ICMP.

Các điều kiện ẩn: --sport source_port

Điều kiện này chỉ hợp lệ khi trong luật có chỉ ra điều kiện -p tcp hoặc -p udp. Điều kiện --source-port đượcsử dụng để kiểm tra các gói tin dựa trên cổng nguồn (source_port) của chúng. Nếu không chỉ ra điều kiện này, iptables sẽ không kiểm tra cổng nguồn của gói tin. Giá trị của điều kiện này, source_port, có thể là cổng hoặc tên dịch vụ (tên dịch vụ hợp lệ là các tên dịch vụ đượckhai báo trong tập tin /etc/services). source_port cũng có thể là một dãy các cổng, đượcphân cách nhau bởi dấu ':'.

Ví dụ: iptables -A INPUT -p tcp --sport 22:80

-dport destination_port

Điều kiện này chỉ hợp lệ khi trong luật có chỉ ra điều kiện -p tcp hoặc -p udp. Điều kiện -- dport đượcsử dụng để kiểm tra các gói tin dựa trên cổng đích (destination_port) của chúng. Cú pháp của điều kiện này giống như cú pháp của điều kiện --source-port.

Ví dụ: iptables -A INPUT -p tcp --dport 22

-icmp-type type

Điều kiện này chỉ hợp lệ khi trong luật có chỉ ra điều kiện -p icmp. Điều kiện --icmp-type đượcsử dụng để kiểm tra các gói tin dựa trên kiểu giao thức ICMP của gói tin. Các kiểu, type, của giao thức ICMP có thể đượcchỉ ra ở định dạng số hoặc định dạng tên.

-syn

Điều kiện --syn được duy trì từ ipchains để đảm bảo tính tương thích và để tạo sự chuyển tiếp một cách dễ dàng hơn. Nó được dùng để kiểm tra các gói tin nếu chúng có cờ SYN đượcbật và các cờ ACK và RST bị tắt. Những gói tin này chủ yếu được dùng để yêu cầu một kết nối mới từ máy chủ. Nếu ta thực hiện loại bỏ những gói tin này, tất cả các gói tin.

Nhóm các điều kiện hiện

Những điều kiện hiện là những điều kiện phải được nạp một cách đặc biệt lựa chọn -m. Sự khác nhau giữa các điều kiện hiện và điều kiện ẩn là ở chỗ điều kiện được nạp ẩn sẽ tự động được nạp khi kiểm tra thuộc tính của cácgói tin, trong khi các điều kiện được nạp hiện sẽ không bao giờ được nạp một cách tự động – nó để cho người quản trị tự phát hiện và kích hoạt các điều kiện hiện.

Các điều kiện hiện: --source-port list

Điều kiện này chỉ hợp lệ khi trong luật có chỉ ra điều kiện -p tcp hoặc -p udp và điều kiện -m multiport. Điều kiện --source-port và điều kiện --sport không sử dụng cùng nhau trong một luật. Điều kiện --source-port tương tự như điều kiện --sport, như ng giá trị của điều kiện là một danh sách, list (tối đa 15 phần tử), các cổng được phân cách nhau bởi dấu ','.

Ví dụ: iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110

--destination-port list

Điều kiện --destination-port tương tự như điều kiện --dport, nhưng giá trị của nó là một danh sách các cổng. Cú pháp và điều kiện sử dụng điều kiện này tương tự như điều kiện --source-port.

Ví dụ: iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110

--port list

Điều kiện này được sử dụng để kiểm tra gói tin dựa vào cả địa chỉ nguồn lẫn địa chỉ đích của gói tin. Cú pháp và điều kiện giống như --source-port.

--mac-source mac_addr

Điều kiện này được dùng để kiểm tra các gói tin dựa trên địa chỉ MAC nguồn của chúng. Địa chỉ MAC, mac_addr, phải đượcghi ở định dạng XX:XX:XX:XX:XX:XX. Điều kiện - -mac-source chỉ hợp lệ trong các chuỗi PREROUTING, FORWARD và INPUT, đồng thời trong luật phải chỉ ra điều kiện -m mac.

Ví dụ: iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01

Các giá trị của điều kiện có thể được lấy “nghịch đảo” bằng cách sử dụng ký tự “!” đứng sau điều kiện. Ví dụ, nếu ta khai báo điều kiện sau -p ! icmp , iptables sẽ kiểm tra các gói tin không làm việc theo giao thức ICMP.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp an toàn thông tin cho hệ thống tính toán lưới Luận văn ThS. Công nghệ thông tin 60 48 05 (Trang 54 - 58)

Tải bản đầy đủ (PDF)

(74 trang)