1. Trang chủ >
  2. Công nghệ thông tin >
  3. Quản trị mạng >

2 Cấu trúc của Iptables

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.46 MB, 100 trang )


+ Output chain: lọc gói khi ra khỏi server.

-



NAT : Gồm có hai loại:

+ Pre-routing : thay đổi địa chỉ của gói dữ liệu đến khi cần thiết.

+ Post-routing : thay đổi địa chỉ của gói dữ liệu khi cần thiết.



Loại



Chức năng



Quy tắc xử lý



Chức năng của chain



queues

Filter



queues

Lọc gói



gói (chain)

FORWARD



Lọc gói dữ liệu đi đến các server

khác kết nối trên các NIC của



NAT



Network



INPUT

OUTPUT

PREROUTING



firewall.

Lọc gói đi đến firewall.

Lọc gói đi ra khỏi firewall.

Việc thay đổi địa chỉ diễn ra



Address



trước khi dẫn đường. Thay đổi



Translation



địa chỉ đích sẽ giúp gói dữ liệu



(Biên dịch địa



phù hợp với bảng chỉ đường của



chỉ mạng)



firewall. Sử dụng destination

POSTROUTING



NAT hay DNAT

Việc thay đổi địa chỉ diễn ra sau

khi dẫn đường. Sử dụng Source



OUTPUT



NAT hay SNAT

NAT sử dụng cho các gói dữ liệu

xuất phát từ firewall. Hiếm khi

dùng trong môi trường SOHO



Chỉnh sửa



PREROUTING



TCP header



POSTROUTING



lượng dịch vụ trước khi dẫn



OUTPUT



đường. Hiếm khi dùng trong môi



INPUT



Mangle



(small office-home office)

Điều chỉnh các bit quy định chất



trường SOHO.



FORWARD

Bảng 01: Các loại queues và chức năng của nó

Ta hãy xem qua ví dụ mô tả đường đi của một gói dữ liệu :



38



Hình 12: Mô tả đường đi của gói dữ liệu.

Đầu tiên, gói dữ liệu đến mạng A, tiếp đó nó được kiểm tra bởi mangle table

PREROUTING chain (nều cần). Tiếp theo là kiểm tra gói dữ liệu bởi nat table's

PREROUTING chain để kiểm tra xem gói dữ liệu có cần DNAT hay không?

DNAT sẽ thay đổi địa chỉ đích của gói dữ liệu. Rồi gói dữ liệu được dẫn đi. Nếu

gói dữ liệu đi vào một mạng được bảo vệ, thì nó sẽ được lọc bởi FORWARD

chain của filter table, và nếu cần gói dữ liệu sẽ được SNAT trong

POSTROUTING chain để thay đổi IP nguồn trước khi vào mạng B.

Nếu gói dữ liệu được định hướng đi vào trong bên trong firewall , nó sẽ được

kiểm tra bởi INPUT chain trong mangle table, và nếu gói dữ liệu qua được các

kiểm tra của INPUT chain trong filter table, nó sẽ vào trong các chương trình của

39



server bên trong firewall .

Khi firewall cần gởi dữ liệu ra ngoài. Gói dữ liệu sẽ được dẫn và đi qua sự

kiểm tra của OUTPUT chain trong mangle table (nếu cần), tiếp đó là kiểm tra

trong OUTPUT chain của nat table để xem DNAT (DNAT sẽ thay đổi địa chỉ

đến) có cần hay không và OUTPUT chain của filter table sẽ kiểm tra gói dữ liệu

nhằm phát hiện các gói dữ liệu không được phép gởi đi. Cuối cùng trước khi gói

dữ liệu được đưa ra ngoài, SNAT and QoS sẽ được kiểm tra trong

POSTROUTING chain.



1.3 Targets

Targets là hành động sẽ diễn ra khi một gói dữ liệu đượ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 dữ liệu sẽ được nhảy

(jump) để thực hiện các xử lý tiếp theo. Bảng sau liệt kê các targets mà Iptables

sử dụng.



Targets



Ý nghĩa



ACCEPT



Tùy chọn



Iptables ngừng xử lý gói

dữ liệu đó và chuyển tiếp

nó vào một ứng dụng cuối

hoặc hệ điều hành để xử



DROP



lý.

Iptables ngừng xử lý gói

dữ liệu đó và gói dữ liệu bị

chặn , loại bỏ.

Thông tin của gói sẽ được



--log-prefix “string”



đưa vào syslog để kiểm



Iptables sẽ thêm vào log



tra.Iptables tiếp tục xử lý



message một chuỗi do



gói với quy luật tiếp theo



người dùng định



kế tiếp.



LOG



sẵn.Thông thường là để

thông báo lý do vì sao gói



REJECT



Tương tự như DROP,



bị bỏ.

--reject-with qualifier



40



nhưng nó sẽ gửi trả lại cho



Tham số qualifier sẽ cho



phía người gởi một thông



biết loại thông báo gởi trả



báo lỗi rằng gói đã bị chặn



lại phía gởi.Qualifier gồm



và loại bỏ.



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

Destination network



ipaddress và địa chỉ đích



đích của gói dữ liệu sẽ



của gói dữ liệu.



được viết lại.

Dùng để thực hiện Source



--to-source

[-



network address



][:-



translation, viết lại địa chỉ



]



của nguồn gói dữ liệu.



Miêu tả ip và port sẽ được



Dùng để thực hiện Source



viết lại bởi Iptables.

[--to-ports [-



network address



]]



translation. Mặc định thì



Ghi rõ các port nguồn mà



địa chỉ IP nguồn sẽ giống



port nguồn gốc có thể ánh



như IP nguồn của firewall



MASQUERADE



Iptables sẽ viết lại địa chỉ



address translation, địa chỉ



SNAT



--to-destination ipaddress



xạ được.



Bảng 02: Miêu tả các target mà Iptables thường dùng nhất



41



1.4 Các tùy chọn quan trọng của Iptables

Các tham số sau 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 do người dùng hoạch định sẵn.



Các tùy chọn quan trọng



Ý nghĩa



- t



Nếu không chỉ định rõ table nào, thì table

filter sẽ được áp dụng.Có 3 loại table là



-j



filter, nat, mangle.

Nhảy đến một chuối target nào đó khi gói



-A

-F

-p



dữ liệu phù hợp với quy luật hiện tại.

Nối thêm một quy luật vào cuối chain

Xóa hết mọi quy luật trong bảng đã chọn.

Phù hợp với giao thức , thông thường là



-s

-d

-i



icmp, tcp, udp và all.

Phù hợp với IP nguồn.

Phù hợp với IP đích.

Phù hợp với điều kiện INPUT khi gói dữ



-o



liệu đi vào firewall.

Phù hợp với điều kiện OUTPUT khi gói

dữ liệu đi ra khỏi firewall.



Bảng 03: Bảng các tùy chọn quan trọng của Iptables

Để hiểu rõ hơn về các lệnh ta cùng xem ví dụ sau:

iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP –j

ACCEPT

Iptables được cấu hình cho phép firewall chấp nhận các gói dữ liệu có giao

thức là TCP, đến từ card mạng eth0, có địa chỉ IP nguồn là bất kì đến địa chỉ

192.168.1.1, là địa chỉ IP của firewall.



Tùy chọn



Miêu tả



-p tcp --sport



Điều kiện TCP port nguồn (source port). Có thể



42



là một giá trị hoặc một chuỗi có dạng start-p tcp --dport



port-number:end-port-number

Điều kiện TCP port đích. Có thể là một giá trị

hoặc một chuỗi có dạng start-port-



-p tcp --syn



number:end-port-number

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

Có thể dùng dấu “!” để phủ định. Ví dụ:



-p udp --sport



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

Điều kiện UDP port nguồn (source port). Có thể

là một giá trị hoặc một chuỗi có dạng start-



-p udp --dport



port-number:end-port-number.

Điều kiện UDP port đích. Có thể là một giá trị

hoặc một chuỗi có dạng start-port-



--icmp-type



number:end-port-number.

Thường dùng nhất là echo-reply và echo-



-m multiport --sport


request.

Liệt kê nhiều port nguồn khác nhau, phân cách



port>

-m multiport --dport


bởi dấu phẩy.

Liệt kê nhiều port đích khác nhau, phân cách



port>

-m multiport --port --port



bởi dấu phẩy.

Liệt kê nhiều port khác nhau, phân cách bởi dấu







phẩy. Không phân biệt port nguồn hay port



-m --state



đích.

Các trạng thái thông dụng nhất được dùng là :

ESTABLISHED : Gói dữ liệu 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 dữ liệu là bắt đầu của một kết nối

mới.

RELATED : Gói dữ liệu bắt đầu một kết nối

phụ.Thường là của giao thức FTP hoặc lỗi

ICMP.

INVALID : Gói dữ liệu không thể nhận dạng

được. Điều này có thể do thiếu tài nguyên hệ

thống hoặc lỗi ICMP không trùng với một



43



Xem Thêm