1. Trang chủ
  2. » Luận Văn - Báo Cáo

iptables trên linux

63 1,7K 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Iptables trên Linux
Trường học Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành An toàn Thông Tin
Thể loại Đề án môn học
Năm xuất bản Chưa rõ
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 63
Dung lượng 614 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đ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.. Đây là những

Trang 1

Mục Lục

Mục Lục 1

CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES 6

1 Iptables là gì? 6

2 Tải về và cài đặt trọn gói Iptables 6

3 Làm thế nào để bắt đầu iptables ? 7

4 Xác định Các trạng thái của iptables 7

5 Cơ chế xử lý package trong iptables 7

Hình 2 Iptables gói lưu lượng Sơ đồ 11

6 Target và Jumps 12

Phân biệt giữa ACCEPT, DROP và REJECT packet 14

Phân biệt giữa NEW, ESTABLISHED và RELATED 14

7 Tùy chọn limit, limit-burst 15

8 Redirect cổng 17

9 Cách đổi địa chỉ IP động (dynamic NAT) 17

10 Cách đóng giả địa chỉ IP (masquerade) 18

11 Quá trình chuyển gói dữ liệu qua Netfilter 19

12 Các tham số dòng lệnh thường gặp của Iptables 20

12.7 Thiết lập những Rule cho Fedora’s iptable: 28

12.8 Tìm lại Đoạn mã bị mất: 28

12.9 Những modun Kernel cần thiết : 29

12.10 Sửa lỗi bảng iptables: 30

13.Những đoạn mã iptables mẫu: 31

13.1 Cơ bản về hoạt động của hệ thống bảo vệ: 31

13.2 Ưu điểm của sự khởi tạo iptables: 33

13.3 Sự cho phép máy chủ DNS truy cập đến Firewall: 35

13.4 Cho phép WWW và SSH truy cập vào firewall: 35

13.5_ Firewall cho phép bạn để truy cập Internet 36

13.6 Cho phép mạng Trang chủ của bạn để truy cập Các Firewall 38

13.7 Mặt nạ (Masquerade_many to one NAT): 38

13.8 Giả mạo (Nhiều NAT) 40

13.9 NAT Port Forwarding (DHCP DSL) 43

13.10 SNAT & MASQUERADE 46

13.11 DNAT 51

CHƯƠNG II: VÍ DỤ VỀ CẤU HÌNH IPTABLES CHO MÁY CHỦ PHỤC VỤ WEB 53

1 Thiết lập các tham số cho nhân 53

2 Nạp các môđun cần thiết cho Iptables 54

3 Nguyên tắc đặt luật là "drop trước, accept sau" 54

4 Lọc ICMP vào và chặn ngập lụt PING 55

5 Reject quét cổng TCP và UDP 56

6 Phát hiện quét cổng bằng Nmap 57

7 Chặn ngập lụt SYN 58

8: Giới hạn truy cập SSH cho admin 58

9 Giới hạn FTP cho web-master 59

10 Lọc TCP vào 60

11 Lọc UDP vào và chặn ngập lụt UDP 60

Trang 2

KẾT LUẬN 62 TÀI LIỆU THAM KHẢO 63

Trang 3

Lời nhận xét

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 4

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

Trang 5

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

Trang 6

CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES

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

Trang 7

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

Trang 8

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ó

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.

Trang 9

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).

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

Trang 10

Để 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

Trang 11

Hình 2 Iptables gói lưu lượng Sơ đồ

Trang 12

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

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ý

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

bị bỏ

Trang 13

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 (default)

icmp-net-unreachable icmp-host-unreachable icmp-proto-unreachable

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-ports

<port>[-<port>]]

Ghi rõ tầm các port nguồn

mà port nguồn gốc có thể ánh xạ được.

Trang 14

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 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ỉ

reject-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-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ụ:

Trang 15

# 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

# 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-

Trang 16

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

Trang 17

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:

Trang 18

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

Trang 19

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,

Trang 20

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>

Trang 21

- 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ử lý gói do người sử dụng hoạch định sẵn

Trang 22

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

-p <protocol-type> Phù hợp với giao thức ( protocols ) , thong

thường là icmp, tcp, udp, và all

-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) là 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

Trang 23

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) là 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

Trang 24

icmp-type <type>

Thường dùng nhất là reply và Request.

echo-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

-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 là 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 kê 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

Trang 25

-m state <state>

Các trạng thái thông dụng nhất được dung 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ả 2 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 thường đây là đặt điểm của các giao thức như 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 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

Đây là phần mở rộng tiếp theo của ví dụ trước :

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \

sport 1024:65535 -m multiport dport 80,443 -j ACCEPT

iptables -A FORWARD -d 0/0 -o eth0 -s 192.168.1.58 -i eth1 -p TCP \

-m state state ESTABLISHED -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) là 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) và 443 (https) Đến khi các gói dữ liệu nhận trở lại từ 192.168.1.58, thay vì mở các port nguồn và đích , bạn chỉ việc cho phép dùng kết nối cũ đã thiết lập bằng cách dùng tham số -m state và state ESTABLISHED

Trang 26

12.5 Sử dụng user defined chains:

Chuỗi User Defined Chains nằm trong bảng iptables Nó giúp cho quá trình

sử lý gói tốt hơn

V

í d ụ : Thay vì sử dụng gói đơn được xây dựng trong chain cho tất cả giao

thức, ta có thể sử dụng chain này để quyết định loại giao thức cho gói và sau đó kiểm soát việc xử lý user-defined, protocol-specific chain trong bảng filter table

Mặt khác, ta có thể thay thế một chuỗi “long chain” với chuỗi chính “stubby main

chain” bởi nhiều chuỗi “stubby chain”, bằng cách chia ngắn đó tổng chiều dài của tất cả chain gói phải thông qua

Sáu lệnh sau giúp việc cải tiến tốc độ xử lý:

iptables -A INPUT -i eth0 -d 206.229.110.2 -j \

fast-input-queue iptables -A OUTPUT -o eth0 -s 206.229.110.2 -j \

fast-output-queue iptables -A fast-input-queue -p icmp -j icmp-queue-in iptables -A fast-

output-queue -p icmp -j icmp-queue-out iptables -A icmp-queue-out -p

Trang 27

Output chain tách riêng biệt để hỗ trợ cho những giao thức đặc biệt và chuyển các gói đến những protocol specific chains.

icmp-queue-out lệnh output tách riêng cho giao thức

ICMP.

icmp-queue-in Lệnh input tách riêng cho giao thức

ICMP.

12.6 Lưu lại những đoạn mã iptables:

Đoạn mã iptables được lưu tạm thời ở file “/etc/sysconfig/iptables”

Định dạng mẫu trong file iptables cho phép giao thức ICMP, IPSec (những gói ESP và AH), thiết lập liên kết, và quay lại SSH

[

root@bigb o tmp]# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.2.9 on Mon Nov 8 11:00:07 2004 *filter :INPUT ACCEPT [0:0]

Trang 28

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -m icmp icmp-type 255 -j ACCEPT

-A RH-Firewall-1-INPUT -p esp -j ACCEPT

12.7 Thiết lập những Rule cho Fedora’s iptable:

Trong Fedora có chương trình gọi lokkit, chưong trình này có thể thiết lập một

rule firewall đơn giản, giúp tăng cường bảo mật Chương trình lokkit lưu những

rule firewall trong file mới “/etc/sysconfig/iptables”

12.8 Tìm lại Đoạn mã bị mất:

Đoạn mã iptables được lưu trữ trong file “/etc/sysconfig/iptables” Ta có thể

chình sửa những đoạn mã và tạo lại những thành những rule mới

V

í d ụ : xuất những lệnh trong iptables đã lưu trữ ra file văn bản với tên

firewall-config :

[ r oot @b i g b o y tmp]# iptables-save > firewall-config

[ r oot @b i g b o y tmp]# cat firewall-config

# Generated by iptables-save v1.2.9 on Mon Nov 8 11:00:07 2004 *filter

:INPUT ACCEPT [0:0]

Trang 29

-A RH-Firewall-1-INPUT -p icmp -m icmp icmp-type 255 -j ACCEPT

-A RH-Firewall-1-INPUT -p esp -j ACCEPT

[ r oot @b i g b o y tmp]# service iptables save

12.9 Những modun Kernel cần thiết :

Modun Kernel cần thiết để hoạt động một vài chương trình của ứng dụng iptables

Một số modun: iptables_nat module, ip_conntrack_ftp module,

+ iptables_nat module cần cho một số loại NAT.

+ ip_conntrack_ftp module cần cho việc thêm vào giao thức FTP + ip_conntrack module giữ trạng thái liên kết với giao thức TCP.

Trang 30

+ ip_nat_ftp module cần được tải cho những máy chủ FTP sau một

firewall

NAT

*C

H Ú Ý : file /etc/sysconfig/iptables không cập nhật những mô dun tải về,

vì vậy chúng ta phải thêm vào những trạng thái đó vào file /etc/rc.local và chạy nó tại cuối mỗi lần boot lại

Những mẫu đoạn mã trong phần này bao gồm những trạng thái được

lưu trong file /etc/rc.local:

# File: /etc/rc.local

# Module to track the state of connections modprobe ip_conntrack

# Load the iptables active FTP module, requires ip_conntrack modprobe

# ip_conntrack_ftp

# Load iptables NAT module when required modprobe iptable_nat

# Module required for active an FTP server using NAT modprobe ip_nat_ftp

12.10 Sửa lỗi bảng iptables:

Một số công cụ cho phép sửa lỗi đoạn mã firewall iptables Một trong

những phương pháp tốt nhất là loại bỏ tất cả những gói bị khoá

+ Tự động viết vào file /var/log/messages và sau đó thực thi rule kế tiếp

Để tạm dừng đường truyền không mong muốn, ta phải thêm vào rule phù

Trang 31

hợp với một DROP target sau LOG rule.

Tạm dừng một nhóm gói bị lỗi vào file /var/log/messages.

#

-# Log and drop all other packets to file /var/log/messages

# Without this we could be crawling around in the dark

#

-iptables -A OUTPUT -j LOG

iptables -A INPUT -j LOG

iptables -A FORWARD -j LOG

iptables -A OUTPUT -j DROP

iptables -A INPUT -j DROP

iptables -A FORWARD -j DROP

13.Những đoạn mã iptables mẫu:

13.1 Cơ bản về hoạt động của hệ thống bảo vệ:

Hệ Điều Hành Linux có cơ chế bảo vệ là các thông số kernel hệ thống trong file

hệ thống /proc qua file /etc/sysctl.conf Dùng file /etc/systl.conf cho các thông số

kernel hỗ trợ

Đây là một cấu hình mẫu:

# File: /etc/sysctl.conf

# -# Disable routing triangulation Respond to queries out

# the same interface, not another Helps to maintain state

# Also protects against IP spoofing

# -net/ipv4/conf/all/rp_filter = 1

Ngày đăng: 03/03/2014, 16:25

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ Netfilter/Iptables - iptables trên linux
Hình 1 Sơ đồ Netfilter/Iptables (Trang 6)
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 - iptables trên linux
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 (Trang 8)
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ọ - iptables trên linux
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ọ (Trang 9)
Hình 2. Iptables gói lưu lượng Sơ đồ - iptables trên linux
Hình 2. Iptables gói lưu lượng Sơ đồ (Trang 11)
packet. Các target được xây dựng sẵn trong iptables như bảng sau: - iptables trên linux
packet. Các target được xây dựng sẵn trong iptables như bảng sau: (Trang 12)
Hình 3. Cách đôỉ địa chỉ Ip đông - iptables trên linux
Hình 3. Cách đôỉ địa chỉ Ip đông (Trang 18)
Hình 4. Cách đóng giả địa chỉ IP. - iptables trên linux
Hình 4. Cách đóng giả địa chỉ IP (Trang 19)
11. Q trình chuyển gói dữ liệu qua Netfilter - iptables trên linux
11. Q trình chuyển gói dữ liệu qua Netfilter (Trang 19)
Bảng 3: Các tham số chuyển mạch (switching) quan trọng của Iptables - iptables trên linux
Bảng 3 Các tham số chuyển mạch (switching) quan trọng của Iptables (Trang 22)
Bảng 4: Các điều kiện TCP và UDP thông dụng. - iptables trên linux
Bảng 4 Các điều kiện TCP và UDP thông dụng (Trang 23)
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. - iptables trên linux
ptables đượ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 (Trang 24)
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)  là  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 - iptables trên linux
ptables đượ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) là 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 (Trang 25)
Sau khi giả mạo đã đạt được bằng cách sử dụng chuỗi POSTROUTING của bảng nat, bạn sẽ phải cấu hình iptables để cho phép các gói tin đến dòng chảy giữa hai  giao diện - iptables trên linux
au khi giả mạo đã đạt được bằng cách sử dụng chuỗi POSTROUTING của bảng nat, bạn sẽ phải cấu hình iptables để cho phép các gói tin đến dòng chảy giữa hai giao diện (Trang 41)
Lưu ý: Nếu bạn cấu hình tường lửa của bạn để làm giả mạo, sau đó nếu cần phải - iptables trên linux
u ý: Nếu bạn cấu hình tường lửa của bạn để làm giả mạo, sau đó nếu cần phải (Trang 43)

TỪ KHÓA LIÊN QUAN

w