Hướng dẫn sử dụng iptables căn bản

iptables là công nghệ lọc gói tin được tích hợp vào kernel Linux kể từ phiên bản 2.4. Netfilter/Iptables gồm hai thành phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân. Với iptables, người quản trị có thể thiết lập các quy tắc trong các bảng của tường lửa nhằm mục đích kiểm soát các gói tin ra vào hệ thống mạng.

CẤU TRÚC IPTABLES

iptables được tạo thành từ các cấu trúc cơ bản dưới đây:

  • TABLES
  • CHAINS
  • TARGETS

TABLES

TABLES là thành phần chính của hệ thống xử lý gói tin, bao gồm các bảng FILTER, NAT và MANGLE. FILTER được sử dụng để lọc các gói tin, nó là bảng mặc định nếu không có quy tắc nào được chỉ định. NAT được sử dụng để sửa địa chỉ nguồn hoặc đích đến của các gói tin hoặc theo dõi các kết nối. MANGLE được sử dụng để chỉnh sửa QOS bit trong phần TCP Header của các gói tin

CHAINS

CHAINS được liên kết với mỗi bảng. Chain là danh sách các quy tắc trong một bảng và chúng được liên kết với các điểm móc nối (hook points) trên hệ thống. Hook points có thể hiểu là những nơi mà bạn có thể chặn lưu lượng truy cập và thiết lập các quy tắc. Dưới đây là các table/chain mặc định của iptables:

  • FILTER: Input, Output, Forward
  • NAT: Prerouting, Postrouting, Output
  • MANGLE: Prerouting, Postrouting, Input, Output, Forward

Chức năng của từng chain như sau:

  • INPUT: Lọc những gói tin đi vào hệ thống
  • OUTPUT: Lọc những gói tin đi ra từ hệ thống
  • FORWARD: Lọc gói dữ liệu đi đến các server khác kết nối trên các NIC khác của firewall
  • PRE-ROUTING: Sửa địa chỉ đích của gói tin trước khi định tuyến
  • POST-ROUTING: Sửa địa chỉ nguồn của gói tin sau khi gói tin đã được định tuyến

Nói cách khác, nếu bạn muốn xử lý các gói tin trước khi đi ra từ hệ thống, nhưng không thực hiện NAT hoặc MANGEL, bạn sẽ nhìn vào chains OUTPUT trong bảng FILTER. Nếu bạn muốn xử lý các gói tin từ bên ngoài đi vào hệ thống, bạn nên sử dụng bảng FILTER kết hợp với chain INPUT.

TARGETS

TARGETS xác định điều gì sẽ xảy ra với một gói tin trong một chain nếu có một quy tắc (rule) được tìm thấy trong chain. Hai hành động phổ biến nhất là DROP (loại bỏ) và ACCEPT (cho phép). Vì vậy, nếu bạn muốn cấm một gói tin, bạn viết một quy tắc phù hợp với lưu lượng truy cập cụ thể và kết thúc bằng DROP target. Ngược lại, nếu bạn muốn cho phép một cái gì đó, hãy kết thúc quy tắc bằng ACCEPT target.

RULES

CÁCH VIẾT RULE

Cấu trúc:

iptables [-t <tables-name>] <command> <chain-name> <parameter-1> <option-1> <parameter-n> <option-n>

Trong đó:

  • Tables-name: cho phép lựa chọn table sử dụng. Mặc định là FILTER table.
  • Command:
Tùy chọnMô tả
-ANối 1 rule vào chain
-DXóa 1 rule ra khỏi chain
-IChèn 1 rule vào chain
-RThay thế rule
-LXem các rule đã được load
-NTạo 1 chain mới
-XXóa 1 chain
-EĐổi tên chain
  • Chain-name:
FILTERNATMANGEL
INPUTPREROUTINGINPUT
OUTPUTPOSTROUTINGOUTPUT
FORWARDOUTPUTFORWARD
PREROUTING
POSTROUTING
  • Parameters:
ParametersMô tả
-pProtocol (tcp, udp, icmp)
-sSource address [/mask]
-dDestination address [/mask]
-iTên interface mà packet nhận vào
-oTên interface mà packet sẽ gửi ra
-jChuyển packet đến target khi thỏa điều kiện của rule
Target có sẵn:
– ACCEPT: iptables chấp nhận chuyển data đến đích.
– DROP: iptables khóa những packet.
– LOG: thông tin của packet sẽ gởi vào syslog
REJECT: ngăn chặn packet và gởi thông báo cho sender
DNAT: thay đổi địa chỉ đích (–to-destination)
SNAT: Thay đổi địa chỉ source (–to-source)
  • Options:
ParametersMatch optionsMô tả
-p tcp–dportThiết lập destination port
–sportThiết lập source port
–synGói TCP với cờ SYN bật lên
–tcp-flagsThiết lập flags (SYN, ACK, FYN, RST)
-p udp–dport
–sport
-p icmp–icmp-typeThiết lập loại icmp (echo-request, echo-reply, …)
#iptable –p icmp –h
(để xem thêm)
-m multiport–sport <port, port>
–dport <port,port>
Thiết lập nhiều port

MỘT SỐ VÍ DỤ

Cho phép các packet từ đường mạng 192.168.1.0 qua firewall

iptables -I INPUT -s 192.168.1.0/24 -j ACCEPT

Lệnh trên chèn 1 rule vào chain INPUT trong bảng FILTER, kiểm tra các packet nếu từ mạng 192.168.1.0/24 thì chấp nhận packet.

LỆNH THAO TÁC IPTABLES

  • Vị trí file iptables: /etc/sysconfig/iptables
  • Khởi động iptables: service iptables start
  • Tắt iptables: service iptables stop
  • Tái khởi động iptables: service iptables restart
  • Xác định trạng thái iptables: service iptables status
  • Lưu các rule vào file cấu hình: service iptables save
  • Xem các rule: iptables -t [table-name] -L
  • Xem các rule Output: iptables -L OUTPUT -n -v
  • Xem các rule Input: iptables -L INPUT -n -v

Rate This Article

Leave A Comment?