Tải bản đầy đủ (.doc) (76 trang)

Đề tài IPTABLES trên LINUX

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 (661.13 KB, 76 trang )

Lời Mở Đầu
An ninh mạng được xem là môt điều rất quan trọng trong bất kì quyết định của
tổ chức một trang web như là mối đe dọa thường trực đang ngày càng trở lên
phổ biens rộng rãi hơn. Một trong nhưng các bảo vệ là sử dụng firewall.
Ban đầu, các bức tường lửa phổ biến nhất / NAT gói chạy trên Linux là
ipchains, nhưng nó đã có một số thiếu sót. Để khắc phục điều này, các tổ chức
Netfilter quyết định tạo ra một sản phẩm mới được gọi là iptables, nó cải tiến
như:
• Tích hợp tốt hơn với các hạt nhân Linux với khả năng tải hạt nhân
iptables cụ thể phần được thiết kế để cải thiện tốc độ và độ tin cậy.
• Kiểm tra trạng thái gói. Điều này có nghĩa rằng tường lửa theo dõi các
kết nối đi qua nó và trong trường hợp nhất định sẽ xem nội dung của các
luồng dữ liệu trong một nỗ lực để dự đoán các hành động tiếp theo của
giao thức nhất định. Đây là tính năng quan trọng trong việc hỗ trợ các
hoạt động FTP và DNS, cũng như các dịch vụ mạng khác.
• Lọc packet dựa trên địa chỉ MAC và các giá trị của những lá cờ trong
phần đầu TCP. Điều này hữu ích trong việc ngăn chặn các cuộc tấn công
bằng cách sử dụng các gói dữ liệu bị thay đổi và hạn chế truy cập từ các
máy chủ tại địa phương thuộc các mạng khác.
Hệ thống đăng nhập, cung cấp các tùy chọn điều chỉnh mức độ chi tiết của báo
cáo.
• Dịch địa chỉ mạng tốt hơn.
• Hỗ trợ cho hội nhập trong suốt với các chương trình như Web proxy như
Squid.
• Một tỷ lệ hạn chế tính năng giúp iptables chặn một số loại từ chối dịch
vụ (DoS) tấn công.
• Được coi là nhanh hơn và an toàn hơn thay thế cho ipchains, iptables đã
trở thành bức tường lửa gói cài đặt mặc định theo RedHat và Fedora
Linux.
Trong thời gian học tập tại trung tâm đào tao Bách Khoa Npower, dưới sự hướng dẫn của
các thầy giáo chuyên ngành quản trị mạng đặc biêt là thầy Vũ Quý Hòa, em đã chọn đề


tài "IPTABLES trên LINUX " cho đồ án môn học SECURITY. Mục đích của đề tài là
giúp mọi người có được cái nhìn tổng quát nhất về PTABLES trên LINUX. Với các tài
liệu thu thập được em đã hoàn thành đồ án "IPTABLES trên LINUX" biết được
IPTABLES là gì?, cách cài đặt iptables, cơ chế xử lý package trong iptables, Target và
Jumps, các tham số dòng lệnh của Iptables và ứng dụng IPTABLES cho máy chủ phục
vụ Web.
CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES
1. Iptables là gì?
Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn phí và có
sẵn trên Linux. Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và
Iptables nằm ngoài nhân. Iptables chịu trách nhiệm giao tiếp giữa người dùng
và Netfilter để đẩy các luật của người dùng vào cho Netfiler xử lí. Netfilter tiến
hành lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong nhân,
nhanh và không làm giảm tốc độ của hệ thống.
Hình 1: Sơ đồ
Netfilter/Iptables
2. Tải về và cài đặt trọn gói Iptables
Trước khi bạn bắt đầu, bạn cần phải chắc chắn rằng các RPM iptables phần
mềm được cài đặt. Khi tìm kiếm các RPM, hãy nhớ rằng tên tập tin thường bắt
đầu với tên gói phần mềm của một số phiên bản, như trong iptables-1.2.9-1.0.
i386.rpm.
3. Làm thế nào để bắt đầu iptables ?
Để có được cấu hình iptables để bắt đầu lúc khởi động, sử dụng lệnh
chkconfig:.
[Root @ bigboy tmp] # chkconfig iptables on
Bạn có thể bắt đầu, dừng lại, và khởi động lại iptables sau khi khởi động bằng
cách sử dụng các lệnh:
[Root @ bigboy tmp] # service iptables start
[Root @ bigboy tmp] # service iptables stop
[Root @ bigboy tmp] # service iptables restart

4. Xác định Các trạng thái của iptables
Bạn có thể xác định xem iptables đang chạy hay không thông qua lệnh iptables
trạng thái dịch vụ. Fedora Core sẽ cung cấp cho một thông báo trạng thái đơn
giản. Ví dụ:
[Root @ bigboy tmp] # service iptables status
[Root @ bigboy tmp] #
5. Cơ chế xử lý package trong iptables
Tất cả gói kiểm tra iptables đi qua một chuỗi các được xây dựng trong các
bảng (hàng đợi) để xử lý. Mỗi hàng đợi là dành riêng cho một loại hình cụ thể
của hoạt động gói và được điều khiển bởi một chuyển đổi gói tin liên quan /
dây chuyền lọc.
Có ba bàn trong tổng số. Đầu tiên là bảng mangle có trách nhiệm cho những
thay đổi về chất lượng dịch vụ của các bit trong phần đầu TCP. Đây là hầu như
không được sử dụng trong một môi trường nhà hoặc SOHO.
Bảng xếp hàng thứ hai là bộ lọc này có trách nhiệm lọc gói. Nó có ba được xây
dựng trong các chuỗi trong đó bạn có thể đặt các quy tắc chính sách tường lửa
của bạn. Đây là những:
 Chuyển tiếp chuỗi: Bộ lọc các gói dữ liệu đến các máy chủ được bảo vệ bởi tường lửa.
 Nhập chuỗi: Bộ lọc gói tin cho tường lửa.
 Đầu ra chuỗi: Bộ lọc gói có nguồn gốc từ các bức tường lửa.
Bảng xếp hàng thứ ba là nat có trách nhiệm cho dịch địa chỉ mạng. Nó có hai được xây dựng
trong các dây chuyền, đó là:
 Dự bị định tuyến chuỗi: NAT gói tin khi địa chỉ đích của gói tin cần phải được thay đổi.
 Post-routing chain: NAT gói tin khi địa chỉ nguồn của gói tin cần phải được thay đổi
Bảng 1 : Các loại queues và chain cùng chức năng của
nó.
Loại
hàng đợi
Chức năng
Queue

Gói chuyển đổi
chuỗi trong Queue
Chức năng chuỗi
Filter Lọc gói
FORWARD
Bộ lọc các gói dữ liệu đến các máy chủ có thể truy
cập bởi một NIC trên tường lửa.
INPUT
Bộ lọc gói đến tường lửa.
OUTPUT
Bộ lọc gói đi ra khỏi tường lửa (gói dữ liệu có
nguồn gốc từ các bức tường lửa).
Nat Network
Address
Translation
( Biên dịch
địa
chỉ mạng)
PREROUTING
Thay đổi địa chỉ đích xảy ra trước khi định
tuyến. Tạo điều kiện cho việc chuyển đổi địa chỉ
IP đích tương thích với bảng định tuyến của tường
lửa. Được sử dụng với NAT của địa chỉ IP đích,
còn được gọi là destination NAT hoặc DNAT.
POSTROUTING
Thay đổi địa chỉ đích xảy ra sau khi định
tuyến. Điều này có nghĩa rằng không có cần phải
thay đổi địa chỉ IP đích của gói tin như trong định
tuyến trước. Được sử dụng với NAT của địa chỉ IP
nguồn bằng cách sử dụng một-một hoặc NAT-một

nhiều. Điều này được gọi là source
NAT, hoặc SNAT.
OUTPUT
NAT sử dụng cho các gói dữ liệu xuất phát từ
tường lửa.Rất hiếm khi được sử dụng trong môi
trường SOHO)
Mangle Chỉnh sửa
TCP header
PREROUTING
POSTROUTING
KẾT QUẢ
INPUT
FORWARD
Điêù chỉnh các bit quy định chất lượng dịch vụ
trước khi dẫn đường. Rất hiếm khi được sử dụng
trong môi trường SOHO (small office – home
office).
Bạn cần xác định các bảng và chuỗi cho mỗi nguyên tắc tường lửa bạn tạo
ra. Có một ngoại lệ: Hầu hết các quy tắc có liên quan đến lọc, do đó, giả định
rằng bất kỳ iptables chuỗi đó là quy định mà không có một bảng có liên quan
sẽ là một phần của bảng lọc. Bảng lọc vì thế là mặc định.
Để giúp thực hiện điều này rõ ràng hơn, hãy xem cách các gói dữ liệu được xử
lý bởi iptables. Trong Hình 2 một gói tin TCP từ Internet về đến giao diện của
tường lửa trên mạng A để tạo ra một kết nối dữ liệu.
Gói tin này được kiểm tra bởi các quy tắc đầu tiên trong chuỗi mangle Table
PREROUTING Chain (nếu có). Sau đó nó được kiểm tra bởi các quy tắc
trong chuỗi nat Table PREROUTING Chain để xem liệu gói tin yêu cầu
DNAT không .DNAT sẽ thay đổi địa chỉ đích của gói dữ liêụ .Sau đó nó được
định tuyến – Routing .
Nếu gói dữ liệu được đưa vào một mạng lưới bảo vệ, sau đó nó được lọc theo

các quy tắc trong chuỗi FORWARD của bảng lọc và, nếu cần thiết, gói trải
qua SNAT trong chuỗi POSTROUTING để thay đổi IP nguôn trước khi đến
mạng B.
Khi máy chủ đích quyết định trả lời, gói trải qua cùng một trình tự các
bước. Cả hai FORWARD và POSTROUTING chuỗi có thể được cấu hình để
thực hiện chất lượng dịch vụ (QoS) các tính năng trong bảng mangle của họ,
nhưng điều này không thường được thực hiện trong môi trường SOHO.
Nếu gói dữ liệu được định hướng đi vào bên trong bức tường lửa chính nó, nó
đươc kiêtra qua các bảng mangle của chuỗi INPUT. Nếu gói dữ đó
thành công vượt qua các thử nghiệm này sau đó nó được xử lý bởi các ứng
dụng định trên tường lửa.
Tại một số điểm, tường lửa cần phải trả lời. trả lời này được định tuyến và
kiểm tra bởi các quy tắc trong chuỗi OUTPUT của bảng mangle, nếu có. Tiếp
theo, các quy tắc trong chuỗi OUTPUT của bảng nat xác định xem DNAT là
cần thiết và các quy tắc trong chuỗi OUTPUT của bảng này sau đó được kiểm
tra bộ lọc để giới hạn các gói dữ liệu trái phép. Cuối cùng, trước khi gói tin
được gửi trở lại vào Internet, hỏng SNAT và QoS được thực hiện bằng các
chuỗi POSTROUTING
Hình 2. Iptables gói lưu lượng Sơ đồ

6 Target và Jumps
 Jump là cơ chế chuyển một packet đến một target nào đó để xử lý thêm một số
thao tác khác.
 Target là cơ chế hoạt động trong iptables, dùng để nhận diện và kiểm tra packet.
Các target được xây dựng sẵn trong iptables như bảng sau:
Bảng 2 : Miêu tả các target mà iptables thường dùng nhất
.
Targets
Ý nghĩa
Tùy chọn

ACCEPT
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ử lý
.
DROP
iptables ngừng
xử
lý gói
dữ liệu đó và gói dữ
liệu 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 kế tiếp
.
log-prefix
"string"
iptables

sẽ 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
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 gói đã 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. Qualifier gồm
các loại sau:
qualifier sẽ cho biết loại
thông báo gởi trả lại phía
gởi . Qualifier gồm các
loại sau :
icmp-port-unreachable
DNAT
Dùng để thực hiện
Destination network
address translation , địa

chỉ đích của gói dữ liệu sẽ
được viết lại .
to-destination ipaddress

Iptables sẽ viết lại địa chỉ
ipaddress vào địa chỉ
đích của gói dữ liệu .
SNAT
Dùng để thực hiện Source
network address translation
, viết lại địa chỉ nguồn của
gói dữ liệu .
to-source <address>[-
<address>][:<port>-
<port>]
Miêu tả IP và port sẽ được
viết lại bởi iptables .
MASQUERADE
Dùng để thực hiện Source
Networkaddress
Translation. Mặc định
thì địa chỉ IP nguồn sẽ
giống như IP nguồn của
[ to-ports <port>[-
<port>]]
Ghi rõ tầm các port nguồn
mà port nguồn gốc có
Phân biệt giữa ACCEPT, DROP và REJECT packet
- ACCEPT: chấp nhận packet
- DROP: thả packet (không hồi âm cho client)

- REJECT: loại bỏ packet (hồi âm cho client bằng một packet khác)
Ví dụ:
# iptables -A INPUT -i eth0 dport 80 -j ACCEPT chấp nhận các packet vào
cổng 80 trên card mạng eth0
# iptables -A INPUT -i eth0 -p tcp dport 23 -j DROP thả các packet đến cổng
23 dùng giao thức TCP trên card mạng eth0
# iptables -A INPUT -i eth1 -s ! 10.0.0.1-10.0.0.5 dport 22 -j REJECT
reject-with tcp-reset gởi gói TCP với cờ RST=1 cho các kết nối không đến từ
dãy địa chỉ IP 10.0.0.1 5 trên cổng 22, card mạng eth1
# iptables -A INPUT -p udp dport 139 -j REJECT reject-with icmp-port-
unreachable gởi gói ICMP `port-unreachable` cho các kết nối đến cổng 139,
dùng giao thức UDP
Phân biệt giữa NEW, ESTABLISHED và RELATED
- NEW: mở kết nối mới
- ESTABLISHED: đã thiết lập kết nối
- RELATED: mở một kết nối mới trong kết nối hiện tại
Ví dụ:
# iptables -P INPUT DROP đặt chính sách cho chain INPUT là DROP
# iptables -A INPUT -p tcp syn -m state state NEW -j ACCEPT chỉ chấp
nhận các gói TCP mở kết nối đã set cờ SYN=1
# iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT
không đóng các kết nối đang được thiết lập, đồng thời cũng cho phép mở các
kết nối mới trong kết nối được thiết lập
# iptables -A INPUT -p tcp -j DROP các gói TCP còn lại đều bị DROP
7. Tùy chọn limit, limit-burst
limit-burst: mức đỉnh, tính bằng số packet
limit: tốc độ khi chạm mức đỉnh, tính bằng số packet/s(giây), m(phút), d(giờ)
hoặc h(ngày)
VD:
# iptables -N test

# iptables -A test -m limit limit-burst 5 limit 2/m -j RETURN
# iptables -A test -j DROP
# iptables -A INPUT -i lo -p icmp icmp-type echo-request -j test
Đầu tiên lệnh iptables -N test để tạo một chain mới tên là test (table mặc định
là filter). Tùy chọn -A test (append) để thêm luật mới vào chain test. Đối với
chain test, mình giới hạn limit-burst ở mức 5 gói, limit là 2 gói/phút, nếu thỏa
luật sẽ trở về (RETURN) còn không sẽ bị DROP. Sau đó mình nối thêm chain
test vào chain INPUT với tùy chọn card mạng vào là lo, giao thức icmp, loại
icmp là echo-request. Luật này sẽ giới hạn các gói PING tới lo là 2 gói/phút
sau khi đã đạt tới 5 gói.
Bạn thử ping đến localhost xem sao?
$ ping -c 10 localhost
Chỉ 5 gói đầu trong phút đầu tiên được chấp nhận, thỏa luật RETURN đó. Bây
giờ đã đạt đến mức đỉnh là 5 gói, lập tức Iptables sẽ giới hạn PING tới lo là 2
gói trên mỗi phút bất chấp có bao nhiêu gói được PING tới lo đi nữa. Nếu
trong phút tới không có gói nào PING tới, Iptables sẽ giảm limit đi 2 gói tức là
tốc độ đang là 2 gói/phút sẽ tăng lên 4 gói/phút. Nếu trong phút nữa không có
gói đến, limit sẽ giảm đi 2 nữa là trở về lại trạng thái cũ chưa đạt đến mức đỉnh
5 gói. Quá trình cứ tiếp tục như vậy. Bạn chỉ cần nhớ đơn giản là khi đã đạt tới
mức đỉnh, tốc độ sẽ bị giới hạn bởi tham số limit. Nếu trong một đơn vị thời
gian tới không có gói đến, tốc độ sẽ tăng lên đúng bằng limit đến khi trở lại
trạng thái chưa đạt mức limit-burst thì thôi.
Để xem các luật trong Iptables bạn gõ lệnh $ iptables -L -nv (-L tất cả các luật
trong tất cả các chain, table mặc định là filter, -n liệt kê ở dạng số, v để xem chi
tiết)
# iptables -L -nv
Chain INPUT (policy ACCEPT 10 packets, 840 bytes)
pkts bytes target prot opt in out source destination
10 840 test icmp lo * 0.0.0.0/0 0.0.0.0/0 icmp type 8
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 15 packets, 1260 bytes)
pkts bytes target prot opt in out source destination
Chain test (1 references)
pkts bytes target prot opt in out source destination
5 420 RETURN all * * 0.0.0.0/0 0.0.0.0/0 limit: avg 2/min burst
5
5 420 DROP all * * 0.0.0.0/0 0.0.0.0/0
# iptables -Z reset counter
# iptables -F flush luật
# iptables -X xóa chain đã tạo
8. Redirect cổng
Iptables hổ trợ tùy chọn -j REDIRECT cho phép bạn đổi hướng cổng một cách
dễ dàng. Ví dụ như SQUID đang listen trên cổng 3128/tcp. Để redirect cổng 80
đến cổng 3128 này bạn làm như sau:
# iptables -t nat -A PREROUTING -p tcp dport 80 -j REDIRECT to-port
3128
Lưu ý: tùy chọn -j REDIRECT cho có trong chain PREROUTING
9. Cách đổi địa chỉ IP động (dynamic NAT)
Giới thiệu về công nghệ đổi địa chỉ NAT động và đóng giả IP Masquerade.
NAT động là một trong những kĩ thuật chuyển đổi địa chỉ IP NAT (Network
Address Translation). Các địa chỉ IP nội bộ được chuyển sang IP NAT như
sau:
Hình 3. Cách
đôỉ địa chỉ Ip
đông
NAT Router
đảm nhận
việc chuyển dãy IP nội bộ 169.168.0.x sang dãy IP mới 203.162.2.x. Khi có
gói liệu với IP nguồn là 192.168.0.200 đến router, router sẽ đổi IP nguồn thành

203.162.2.200 sau đó mới gởi ra ngoài. Quá trình này gọi là SNAT (Source-
NAT, NAT nguồn). Router lưu dữ liệu trong một bảng gọi là bảng NAT động.
Ngược lại, khi có một gói từ liệu từ gởi từ ngoài vào với IP đích là
203.162.2.200, router sẽ căn cứ vào bảng NAT động hiện tại để đổi địa chỉ
đích 203.162.2.200 thành địa chỉ đích mới là 192.168.0.200. Quá trình này gọi
là DNAT (Destination-NAT, NAT đích). Liên lạc giữa 192.168.0.200 và
203.162.2.200 là hoàn toàn trong suốt (transparent) qua NAT router. NAT
router tiến hành chuyển tiếp (forward) gói dữ liệu từ 192.168.0.200 đến
203.162.2.200 và ngược lại.
10. Cách đóng giả địa chỉ IP (masquerade)
Đây là một kĩ thuật khác trong NAT.
Hình 4. Cách đóng giả địa chỉ IP.
NAT Router chuyển dãy IP nội bộ 192.168.0.x sang một IP duy nhất là
203.162.2.4 bằng cách dùng các số hiệu cổng (port-number) khác nhau. Chẳng
hạn khi có gói dữ liệu IP với nguồn 192.168.0.168:1204, đích
211.200.51.15:80 đến router, router sẽ đổi nguồn thành 203.162.2.4:26314 và
lưu dữ liệu này vào một bảng gọi là bảng masquerade động. Khi có một gói dữ
liệu từ ngoài vào với nguồn là 221.200.51.15:80, đích 203.162.2.4:26314 đến
router, router sẽ căn cứ vào bảng masquerade động hiện tại để đổi đích từ
203.162.2.4:26314 thành 192.168.0.164:1204. Liên lạc giữa các máy trong
mạng LAN với máy khác bên ngoài hoàn toàn trong suốt qua router.
11. Quá trình chuyển gói dữ liệu qua Netfilter
Gói dữ liệu (packet) chạy trên chạy trên cáp, sau đó đi vào card mạng (chẳng
hạn như eth0). Đầu tiên packet sẽ qua chain PREROUTING (trước khi định
tuyến). Tại đây, packet có thể bị thay đổi thông số (mangle) hoặc bị đổi địa chỉ
IP đích (DNAT). Đối với packet đi vào máy, nó sẽ qua chain INPUT. Tại chain
INPUT, packet có thể được chấp nhận hoặc bị hủy bỏ. Tiếp theo packet sẽ
được chuyển lên cho các ứng dụng (client/server) xử lí và tiếp theo là được
chuyển ra chain OUTPUT. Tại chain OUTPUT, packet có thể bị thay đổi các
thông số và bị lọc chấp nhận ra hay bị hủy bỏ. Đối với packet forward qua

máy, packet sau khi rời chain PREROUTING sẽ qua chain FORWARD. Tại
chain FORWARD, nó cũng bị lọc ACCEPT hoặc DENY. Packet sau khi qua
chain FORWARD hoặc chain OUTPUT sẽ đến chain POSTROUTING (sau
khi định tuyến). Tại chain POSTROUTING, packet có thể được đổi địa chỉ IP
nguồn (SNAT) hoặc MASQUERADE. Packet sau khi ra card mạng sẽ được
chuyển lên cáp để đi đến máy tính khác trên mạng.
12. Các tham số dòng lệnh thường gặp của Iptables
12.1. Gọi trợ giúp
Để gọi trợ giúp về Iptables, bạn gõ lệnh
• $ man iptables
• $ iptables help
Chẳng hạn nếu bạn cần biết về các tùy chọn của match limit, bạn gõ lệnh
$ iptables -m limit help.
12.2. Các tùy chọn để thao tác với chain
- Tạo chain mới: iptables -N <tên_chain>
- Xóa hết các luật đã tạo trong chain: iptables -X <tên_chain>
- đặt chính sách cho các chain `built-in` (INPUT, OUTPUT & FORWARD):
iptables -P <tên_chain_built-in> <tên policy (DROP hoặc ACCEPT)>, ví dụ:
iptables -P INPUT ACCEPT để chấp nhận các packet vào chain INPUT
- liệt kê các luật có trong chain: iptables -L <tên_chain>
- xóa các luật có trong chain (flush chain): iptables -F <tên_chain>
- reset bộ đếm packet về 0: iptables -Z <tên_chain>
12.3. Các tùy chọn để thao tác với luật
- thêm luật: -A (append)
- xóa luật: -D (delete)
- thay thế luật: -R (replace)
- chèn thêm luật: -I (insert)
12.4. Các tùy chọn để chỉ định thông số
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ử



gói
do người sử dụng hoạch định sẵn
.
Bảng 3 : Các tham số chuyển mạch (switching) quan trọng của Iptables
Lệnh switching quan trọng
Ý nghĩa
-t
<table>
Nếu bạn không chỉ định rõ là tables nào
,
thì
filter table sẽ được áp dụng. Có ba
loại table
là filter, nat,
mangle.
-j
<target>
Nhảy đến một chuỗi target nào đó khi
gói
dữ
liệu phù hợp quy luật hiện tại
.
-A
Nối thêm một quy luât nào đó vào
cuối
chuỗi ( chain
).
-F

Xóa hết tất cả mọi quy luật trong bảng
đã
chọn
.
-p
<protocol-type>
Phù hợp với giao thức ( protocols ) ,
thong
thường là icmp, tcp, udp, và all
.
-s
<ip-address>
Phù hợp IP
nguồn
-d
<ip-address>
Phù hợp IP
đích
-i
<interface-name>
Phù hợp điều kiện INPUT khi gói dữ
liệu
đi
vào
firewall.
-o
<interface-name>
Phù hợp điều kiện OUTPUT khi gói
dữ
liệu đi ra khỏi firewall

.
Trong lệnh này ví dụ thiết bị chuyển mạch
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 tiếp (protocols)

TCP , đến từ giao tiếp card mạng eth0 , có bất
kỳ địa chỉ IP nguồn là bất kỳ đi đến địa chỉ
192.168.1.1,
là địa chỉ IP của
firewall. 0/0 nghĩa là bất kỳ địa chỉ IP nào
.
Bảng 4 : Các điều kiện TCP và UDP thông dụng
.
Lện Lệnh
switching
chin Miêu
t

-p tcp sport
<port>
Điều kiện TCP port 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 TCP port đích ( destination port
)
.Có thể là
một giá trị hoặc một chuỗi
có dạng

:
starting-port:ending-port
-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ần kết nối mới
.
-p udp sport
<port>
Đ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-port-number:end-port-number
-p udp dport
<port>
Điều kiện TCP port đích ( destination port
)
Có thể là một giá trị hoặc một chuỗi

có dạng

:
starting-port:ending-port
Ta cùng xem ví dụ sau
:
iptables-A FORWARD-s 0 / 0-i eth0-d 192.168.1.58-o eth1-p
TCP \
- Thể thao 1024:65535 - dport 80-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 tiếp (protocols)

TCP , đến từ card mạng eth0 , có bất kỳ địa chỉ IP
nguồn là bất kỳ , đi đến địa chỉ 192.168.1.58
qua
card mạng eth1. Số port
nguồn là từ 1024 đến 65535 và port đích là 80
(www/http).
Bảng 5 : Điều kiện
ICMP
Lệnh
Miêu tả
icmp-type
<type>
Thường dùng nhất là echo-reply và
echo-
Request.
Ta cùng xem mộ ví dụ sau về ICMP
.
iptables-A OUTPUT-p icmp - icmp-type echo-request-j ACCEPT

iptables-A INPUT-p icmp - icmp-type echo-reply-j ACCEPT
Iptables được cấu hình cho phép firewall chấp nhận gởi ICMP
echo-
requests
(pings) và gởi trả các ICMP
echo-replies.
Bảng 6 : Các điều kiện mở rộng thông
dụng
Lệnh Ý nghĩa
-m multiport sport <port,
port>
Nhiều port 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 port chứ không phải

một chuỗi các
port.
-m multiport dport <port,
port>
Nhiều port đích khác nhau của
TCP/UDP
được phân cách bởi dấu phẩy (,) . Đây là liệt

của các port chứ không phải là một chuỗi các
port.
-m multiport ports <port,

port>
Nhiều port 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 port chứ không phải là một chuỗi các
port.
Không phân biệt port đích hay port nguồn
.

×