Cấu trúc và các tham số dòng lệnh của Iptables

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu xây dựng giải pháp phòng chống tấn công, đột nhập vào hệ thống để đảm bảo an toàn thông tin trên hệ điều hành mã nguồn mở (Trang 55 - 61)

3.3 Triển khai hệ thống tƣờng lửa trên hệ điều hành nguồn mở

3.3.1.1 Cấu trúc và các tham số dòng lệnh của Iptables

Iptables sẽ kiểm tra tất cả các gói tin (packet) vào và ra khỏi hệ thống bằng cách dùng các bảng tuần tự xây dựng sẵn (queues). Iptables bao gồm 4 bảng: filter, mangle, nat và raw. Trƣớc khi đi tìm hiểu chi tiết các bảng trong iptables, ta tìm hiểu một số thuật ngữ cơ bản:

 Chain: là một chuỗi quy định các thao tác để xử lý các gói tin tùy theo tình huống (hƣớng đi của packet).

 Rule (luật): Là các thiết lập quy định việc xử lý các gói tin tƣơng ứng với mỗi chain khi nó thỏa mãn hay không thỏa mãn một hay nhiều điều kiện. Trong mỗi chain có nhiều rule.

Để có thể triển khai đƣợc iptales, chúng ta cần nắm vững đƣợc các bảng, cũng nhƣ là chức năng của từng bảng và các chain trong mỗi bảng. Trong bảng dƣới đây sẽ trình bày chi tiết về 4 bảng trong iptables.

Bảng 3.1 : Các bảng và chức năng của chúng trong Iptables

Loại

bảng Chức năng Chains Chức năng của chain

filter

Chịu trách nhiệm thiết lập bộ lọc gói tin (packet filtering)

INPUT Lọc gói tin khi đi vào trong firewall

OUTPUT Lọc gói tin khi đi ra khỏi firewall

FORWARD Lọc gói tin đi qua hệ thống (đi vào một hệ thống khác)

nat

Biên dịch lại địa chỉ mạng

(Network Address Translation)

PREROUTING

Thay đổi địa chỉ đích đến của gói tin trƣớc khi nó đƣợc định tuyến (routing) bởi bảng routing của hệ thống (DNAT)

POSTROUTING Thay đổi địa chỉ nguồn của gói tin khi gói tin đã đƣợc định

tuyến bởi hệ thống (SNAT) OUTPUT Thay đổi gói tin cục bộ đƣợc tạo

ra trƣớc khi định tuyến mangle Thay đổi các thông số trong gói IP PREROUTING

Điều chỉnh các bit quy định chất lƣợng dịch vụ trƣớc khi dẫn đƣờng POSTROUTING OUTPUT INPUT FORWARD raw Theo dõi các kết

nối

PREROUTING OUTPUT

Quá trình xử lý gói tin với hệ thống tƣờng lửa Iptables đƣợc mô tả nhƣ trong hình dƣới đây. Các gói tin đi từ ngoài vào sẽ đƣợc kiểm tra bởi các chain PREROUTING trong bảng mangle và nat xem có cần phải thay đổi địa chỉ đích của gói tin (DNAT) không. Sau đó gói tin sẽ đƣợc định tuyến để xem gói tin đƣợc truyền tới hệ thống khác (FORWARD) hay gói tin đƣợc gửi tới hệ thống cục bộ (INPUT).

 Nếu gói tin cần đi tới một hệ thống khác, nó sẽ đƣợc lọc bởi các chain FORWARD trong bảng filter và mangle. Và nếu cần gói tin có thể đƣợc thay đổi địa chỉ nguồn (SNAT) bởi các chain POSTROUTING trƣớc khi đến đƣợc hệ thống đích.

 Nếu gói tin đƣợc gửi tới hệ thống cục bộ (hệ thống chứa iptables), gói tin sẽ đƣợc xử lý bởi các chain INPUT trong bảng filter và mangle. Trong trƣờng hợp gói tin không bị lọc bỏ thì gói tin sẽ đƣợc xử lý bởi một dịch vụ nào đó chạy trên hệ thống. Khi hệ thống gửi trả lời, gói tin mà nó gửi đi đƣợc xử lý bởi các chain OUTPUT trong các bảng filter, mangle, nat và cuối cùng gói tin có thể đƣợc xử lý bởi các chain POSTROUTING của bảng filter và mangle nếu cần SNAT hay thay đổi chất lƣợng dịch vụ QoS (Quality of Service) của gói tin.

Hình 3.14: Quá trình xử lý gói tin trong Iptables

Trong Iptables, Targets là hành động sẽ diễn ra khi một gói tin đƣợc kiểm tra và phù hợp với một yêu cầu nào đó. Khi một target đã đƣợc nhận dạng, gói tin cần nhảy (jump) để thực hiện các xử lý tiếp theo.

Jump là cơ chế chuyển một gói tin đến một target nào đó để xử lý thêm một số thao tác khác.Bảng dƣới đây sẽ liệt kê các targes mà iptables thƣờng sử dụng.

Bảng 3.2: Một số target trong Iptables

Target Ý nghĩa Tùy chọn

ACCEPT

Iptables ngừng xử lý gói tin đó và chuyển tiếp nó vào một ứng dụng cuối hoặc hệ điều hành để xử lý

DROP Ngừng xử lý gói tin đó và gói tin bị chặn, loại bỏ

LOG

Thông tin của gói sẽ đƣợc đƣa vào syslog để kiểm tra. Iptables tiếp tục xử lý gói với quy luật tiếp theo.

--log-prefix “string”

Iptables sẽ đƣa thêm vào log message một chuỗi do ngƣời dùng định sẵn. Thông thƣờng là để thông báo lý do vì sao gói bị bỏ.

REJECT

Tƣơng tự nhƣ DROP, nhƣng nó sẽ gửi trả lại cho phía ngƣời gửi một thông báo lỗi rằng nó đã bị chặn và loại bỏ

--reject-with qualifier Tham số qualifier sẽ cho biết loại thông báo gửi trả lại phía gửi. Qualitfier gồm các loại sau: Icmp-port-unreachable (mặc định) Icmp-net-unreachable Icmp-host-unreachable Icmp-proto-unreachable Icmp-net-prohibited Icmp-host-prohibited Tcp-reset Echo-reply

DNAT Dùng để thực hiện thay đổi địa chỉ đích của gói tin

--to-destination ipaddress Iptables sẽ viết lại địa chỉ ipaddress vào địa chỉ đích của gói tin

SNAT Dùng để thực hiện việc thay đổi địa chỉ nguồn của gói tin

--to-source <address>[ - <address>][: <port>- <port>]

Miêu tả IP và port sẽ đƣợc viết lại bởi Iptables

MASQUERA DE

Đƣợc sử dụng để thực hiện kỹ thuật NAT (giả mạo địa chỉ nguồn với địa chỉ card mạng của firewall)

--to-port <port>[-<port>] Chỉ định dãy port nguồn sẽ ánh xạ với dãy port ban

đầu.

Dƣới đây sẽ trình bày một số tham số cho phép Iptables thực hiện các hành động sao cho phù hợp với biểu đồ xử lý gói tin do ngƣời dùng hoạch định sẵn.

Bảng 3.3: Các tham số quan trọng của Iptables

Các tham số cơ bản trong luật

Ý nghĩa

-t <table> Chỉ định bảng cho iptables bao gồm 4 bảng nhƣ đã chỉ ra ở trên. Nếu không chỉ định rõ bảng nào thì bảng filter sẽ đƣợc áp dụng

-j <target> Nhảy đến một chuỗi target nào đó khi gói tin phù hợp với quy luật hiện tại

-A Nối thêm một luật vào cuối chain.

-F Xóa hết tất cả mọi luật trong bảng đã chọn

-p <protocol-type> Xác định giao thức bao gồm: tcp, udp, udplite, icmp, esp, ah, sctp và all

-s <ip-address> Chỉ định địa chỉ nguồn -d <ip-address> Chỉ định địa chỉ đích

-i <interface-name> Chỉ định card mạng nhận gói tin

-o <interface-name> Chỉ định card mạng chuyển gói tin ra ngoài Để hiểu rõ hơn về các lệnh, xem xét ví dụ sau:

Iptables –A INPUT –s 0/0 –i eth0 –d 192.168.1.1 –p TCP –j ACCEPT

Với lệnh này, Iptables sẽ thêm một luật vào trong bảng filter để lọc gói tin vào firewall. Luật này chấp nhận các gói tin có giao tiếp TCP, đến từ giao tiếp card mạng eth0, có địa chỉ IP nguồn bất kỳ và đi đến địa chỉ IP đích 192.168.1.1, là địa chỉ IP của firewall. Bảng sau sẽ trình bày các điều kiện TCP và UDP thông dụng trong Iptables.

Bảng 3.4: Các điều kiện TCP,UDP,ICMP thông dụng

Lệnh Ý nghĩa

-p tcp --sport <port>

Điều kiện xác định cổng TCP nguồn (source port). Có thể là một giá trị hoặc một chuỗi có dạng:

Start-port-number:end-port-number -p tcp --dport <port> Điều kiện xác định cổng TCP đích

hoặc một chuỗi có dạng:

Start-port-number:end-port-number

-p tcp --syn

Dùng để nhận dạng một yêu cầu kết nối TCP mới.

!--syn, nghĩa là không có yêu cầu kết nối mới.

-p udp --sport <port>

Điều kiện xác định cổng UDP nguồn. Có thể là một giá trị hoặc một chuỗi có dạng:

Start-port-number:end-port-number

-p udp --sport <port>

Điều kiện xác định cổng UDP đích. Có thể là một giá trị hoặc một chuỗi có dạng:

Start-port-number:end-port-number -p icmp --icmp-type <type> Thƣờng dùng nhất là echo-reply và echo-

request.

Một số điều kiện mở rộng thông dụng của Iptables đƣợc trình bày trong bảng dƣới đây:

Bảng 3.5: Một số điều kiện mở rộng thông dụng của Iptables

Lệnh Ý nghĩa

-m multiport --sport <port,port>

Nhiều cổng nguồn khác nhau của TCP/UDP đƣợc phân cách bởi dấu phẩy (,). Đây là liệt kê của các cổng chứ không phải là một chuỗi các cổng.

-m multiport –dport <port,port>

Nhiều cổng đích khác nhau của TCP/UDP đƣợc phân cách bởi dấu phẩy (,). Đây là liệt kê của các cổng chứ không phải là một chuỗi các cổng.

-m multiport --ports <port,port>

Nhiều cổng khác nhau của TCP/UDP đƣợc phân cách bởi dấu phẩy (,). Đây là liệt kê của các cổng chứ không phải là một chuỗi các cổng. Không phân biệt các cổng đích hay cổng nguồn.

-m--state <state>

Các trạng thái thông dụng nhất đƣợc dùng là: ESTABLISHED: gói tin là một phần của kết nối đã đƣợc thiết lập bởi cả hai hƣớng.

NEW: gói tin là bắt đầu của một kết nối mới. RELATED: gói tin là bắt đầu của một kết nối

phụ. Thông thƣờng đây là đặc điểm của các giao thức nhƣ FTP hoặc lỗi ICMP.

INVALID: gói tin không thể nhận dạng đƣợc. Điều này có thể do việc thiếu tài nguyên hệ thống hoặc lỗi ICMP không trùng với một luồng dữ liệu đã có sẵn.

Có thể tham khảo thêm các điều kiện khác của Iptables bằng cách sử dụng lệnh iptables --help hoặc man iptables.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu xây dựng giải pháp phòng chống tấn công, đột nhập vào hệ thống để đảm bảo an toàn thông tin trên hệ điều hành mã nguồn mở (Trang 55 - 61)

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

(103 trang)