29
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA: CÔNG NGHỆ THÔNG TIN Quản Trị Unix TIỂU LUẬN NHÓM ĐỀ TÀI: IPTables Firewall Giảng viên hướng dẫn: Đặng Thanh Bình Mã lớp học phần: 210117301 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Embed Size (px)

DESCRIPTION

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH. KHOA: CÔNG NGHỆ THÔNG TIN. Quản Trị Unix. TIỂU LUẬN NHÓM. ĐỀ TÀI: IPTables Firewall. Giảng viên hướng dẫn : Đặng Thanh Bình Mã lớp học phần : 210117301. Danh sách nhóm. IPTables Firewall. I. IPTABLES là gì ? - PowerPoint PPT Presentation

Citation preview

Page 1: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ

HỒ CHÍ MINHKHOA: CÔNG NGHỆ THÔNG TIN

Quản Trị Unix

TIỂU LUẬN NHÓMĐỀ TÀI:

IPTables Firewall

Giảng viên hướng dẫn: Đặng Thanh BìnhMã lớp học phần: 210117301

Page 2: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

2 Danh sách nhóm

STT Họ Tên MSSV

1 Lê Công Hiếu 11024901

1 Nguyễn Quốc Huy 11238941

2 Nguyễn Thị Kim Quế 11245051

3 Hồ Minh Thu Trang 11224791

4 Phan Thanh Vân 11229481

Page 3: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

3 IPTables Firewall

I. IPTABLES là gì?

II. Chức năng Iptables:

III. Các bảng IPTABLES và các chuỗi luật - CHAINS:

IV. Cơ chế lọc và xử lý gói:

V. Cài đặt iptables:

VI.Targets và Jumps:

VII.Cú pháp iptables:

VIII.Các tham số dòng lệnh của iptables:

Page 4: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

4 IPTABLES là gì?

IPtables là một chương trình chạy ở không gian người dùng, cho phép người quản trị hệ thống có thể cấu hình các bảng của tường lửa trong nhân Linux (được cài đặt trong các Module Netfilter khác nhau) và lưu trữ các chuỗi, luật. Các Module nhân và chương trình khác nhau được áp dụng cho từng giao thức; iptables cho IPv4, ip6tables cho IPv6,..

Page 5: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

5 IPTables Firewall

Page 6: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

6

Là một bức tường lửa ứng dụng lọc gói dữ liệu rất mạnh.

Netfilter/Iptables gồm 2 phần: Netfilter ở trong nhân Linux để đẩy các luật của

người dùng vào cho Netfiler xử lí Iptables nằm ngoài nhân. chịu trách nhiệm giao tiếp

giữa các người dùng

IPTables Firewall

Page 7: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

7 IPTables Firewall

Page 8: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

8

Iptables do Netfilter organization viết ra để tăng tính năng bảo mật trên hệ thống Linux. Iptables cung cấp các tính năng sau:

Tích hợp tốt với kernel của Linux.

Có khả năng phân tích package hiệu quả.

Lọc package dựa vào MAC và một số cờ hiệu trong TCP Header.

Cung cấp chi tiết các tuỳ chọn để ghi nhận sự kiện hệ thống.

Cung cấp kỹ thuật NAT

Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu từ chối dịch vụ (denial of service (DoS) attacks)

Chức năng Iptables:

Page 9: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

9

IPTABLES gồm 3 bảng chính sau: Filter Table, NAT table, Mangle table

Các bảng IPTABLES và các chuỗi luật - CHAINS:

Page 10: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

10

1. Filter Table: đúng như tên gọi nó dùng để lọc các gói tin gồm các build-in chain Forward chain: lọc những gói tin đi qua hệ thống

(đi vào một hệ thống khác). Input chain: lọc những gói tin đi vào hệ thống. Output chain: những gói tin đi ra từ hệ thống.

Các bảng IPTABLES và các chuỗi luật - CHAINS:

Page 11: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

11

2. NAT table: sửa địa chỉ gói tin gồm các build-in chain Pre-routing: sửa địa chỉ đích của gói tin trước khi nó

được routing bởi bảng routing của hệ thống (destination NAT hay DNAT).

Post-routing: ngược lại với Pre-routing, nó sửa địa chỉ nguồn của gói tin sau khi gói tin đã được routing bởi hệ thống (SNAT).

Các bảng IPTABLES và các chuỗi luật - CHAINS:

Page 12: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

12

3. Mangle table: dùng để chỉnh sửa QoS(qulity of service) bit trong phần TCP Header của gói tin

Mỗi rule mà bạn tạo ra phải tương ứng với một chain, table nào đấy. Nếu bạn không xác định tables nào thì iptables coi mặc định là cho bảng FILTER.

Các bảng IPTABLES và các chuỗi luật - CHAINS:

Page 13: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

13 Cơ chế lọc và xử lý gói: Các gói tin từ ngoài đi vào sẽ được kiểm tra bởi các

Pre-routing chain đầu tiên xem xem nó có cần DNAT không, sau đó gói tin được routing. Nếu gói tin cần đi tới một hệ thống khác ( protected network ) nó sẽ được lọc bởi các FORWARD chain của bảng FILTER và nếu cần nó có thể được SNAT bởi các Post-routing chain trước khi đến được hệ thống đích.

Nếu gói tin được định hướng đi vào trong bức tường lửa của chính nó, nó sẽ được xử lý bởi các INPUT chain và nếu không bị lọc bỏ nó sẽ được xử lý bởi một dịch vụ ( System Service ) 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 OUTPUT chain và có thể được xử ký bởi các Post-routing chain của bảng FILTER và bảng MANGLE nếu nó cần SNAT hay QoS

Page 14: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

14

Iptables được cài đặt mặc định trong hệ thống Linux, package của iptables là iptablesversion.

Red Hat: $ rpm -ivh iptables-version.rpm Debian: $ apt-get install i 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

Cài đặt iptables:

Page 15: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

15

Targets là cơ chế hoạt động trong iptables dùng để nhận diện và kiểm tra packet.

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.

Danh sách các target được xây dựng sẳn trong iptables: ACCEPT: iptables chấp nhận chuyển data đến đích. DROP: iptables khóa những packet.

Targets và Jumps:

Page 16: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

16

LOG: Thông tin của packet sẽ gởi vào syslog daemon, iptables tiếp tục xử lý luật tiếp theo trong bảng mô tả luật. Nếu luật cuối cùng không match thì sẽ drop packet. Với tùy chọn thông dụng là --log-prefix=”string”, tức iptables sẽ ghi nhận lại những message bắt đầu bằng chuỗi “string”.

REJECT: Ngăn chặn packet và gởi thông báo cho sender. Với tùy chọn thông dụng là -- reject-with qualifier, tức qualifier chỉ định loại reject message sẽ được gởi lại cho người gởi. Các loại qualifer sau: icmp-port-unreachable (default), icmp-net-unreachable, icmp-host-unreachable, icmp-proto-unreachable, …

Targets và Jumps:

Page 17: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

17

DNAT: Thay đổi địa chỉ đích của packet (rewriting the destination IP address of the packet). Tùy chọn là --to-destination ipaddress

SNAT: Thay đổi địa chỉ nguồn của packet. Tùy chọn là --to-source[- address][:-]

MASQUERADE: Được sử dụng để thực hiện kỹ thuật NAT ( giả mạo địa chỉ nguồnvới địa chỉ của firewall’s interface của firewall) . Tùy chọn là [--to-ports [-]], chỉ định dãy port nguồn sẽ ánh xạ với dãy port ban đầu

REDIRECT: chuyển hướng của gói tin tới một port khác trên máy local.

Targets và Jumps:

Page 18: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

18

iptables –t table –A chain [match] [target]

-t: table filter (default), nat, mangle

-j: Nhảy đến một target chain khi packet thỏa luật hiện tại

-p: Mô tả các protocol bao gồm: icmp, tcp, udp …

-s: Chỉ định source IP address

-d: Chỉ định destination IP address

-i: Chỉ định “input” interface nhận packet

-o: Chỉ định “output” interface

Cú pháp iptables:

Page 19: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

-A chain: thêm một rule mới.

-D chain: xóa một rule.

-I chain number: chèn một rule vào dòng [number].

-R chain number: thay thế một rule ở dòng [number].

-L chain: xem các rule đã có.

-F chain: xóa mọi rule hiện có.

-N chain: định nghĩa một chain mới.

-E [old_chain] [new_chain]: đổi tên chain (chỉ có thể thay đổi với những chain do người dùng tạo ra).

Cú pháp iptables:

Page 20: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

20

[target]: ACCEPT, DROP, LOG..

[match]:

-p [!] name: chọn những packet dựa trên protocol. Protocol có thể

là tên hoặc port tương ứng trong file /etc/protocols.

-s [!] address[/mask]: chọn những packet dựa trên địa chỉ nguồn.

Address có thể là hostname hoặc địa chỉ IP.

-d [!] address[/mask]: cũng giống trường hợp trên nhưng là địa chỉ

đích của packet.

Cú pháp iptables:

Page 21: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

21

-i name: chọn packet được nhận từ interface name (input).

-o name: chọn những packet được gửi từ interface name (output).

[!] –f: chọn những gói tin bị phân mảnh (từ mảnh vụn thứ hai).

--sport [!] [port][:port]: chọn những packet có port nguồn xác định

như trên

--dport [!] [port][:port]: chọn những packet có port đích xác định như

trên.

Cú pháp iptables:

Page 22: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

22

-p tcp --sport : xác định port nguồn của gói tin TCP. 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 : xác định port đích của gói tin TCP. 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 : xác định port nguồn của gói tin UDP. Có thể là một giá trị hoặc một chuỗi có dạng start-port-number:end-port-number

Cú pháp iptables:

Page 23: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

23

-p udp --dport : xác định port đích của gói tin UDP. Có thể là một giá trị hoặc một chuỗi có dạng start-port-number:end-port-number

--syn : xác định gói tin có phải là một yêu cầu tạo một kết nối TCP mới không.

--icmp-type : xác định loại gói icmp (echo-reply hay echo-request).

Cú pháp iptables:

Page 24: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

--mac-source [!] address: chọn những packet có địa chỉ MAC nguồn là address. Address viết dưới dạng 00:60:08:91:CC:B7

--limit rate: giới hạn tần suất của packet, được chỉ định bằng 1 con số và đằng sau là /second, /minute, /hour, /day. Default là 3/hour.

--limit-burst [number]: xác định số lượng packet tối đa được chấp nhận. Default là 5.

24 Cú pháp iptables:

Page 25: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

25

-m --state < state >: chọn gói tin có trạng thái là 1 trong các trạng thái được liệt kê ở states

Một số trạng thái thông dụng:

ESTABLISHED: đã thiết lập kết nối.

NEW: bắt đầu thiết lập kết nối.

RELATED: thiết lập kết nối thứ 2 (FTP data transfer, hoặc ICMP error).

INVALID: Gói dữ liệu không nhận dạng được. Nguyên nhân là do việc thiếu tài nguyên hệ thống hoặc lỗi ICMP không trùng với dữ liệu có sẵn.

Cú pháp iptables:

Page 26: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

26

iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT: chấp nhận những gói tin từ mọi địa chỉ ip (-s 0/0) đi vào từ eth0, gửi đến hệ thống có địa chỉ 192.168.1.1

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \--sport 1024:65535 --dport 80 -j ACCEPT: cho phép những gói tin từ mọi địa chỉ ip đi vào từ eth0 đi ra eth1 để đến hệ thống có địa chỉ 192.168.1.58, giá trị port nguồn của các gói tin trong phạm vi 1024 đến 65535 và giá trị port đích là 80 ( www/http).

Sau đây là một số rule ví dụ minh hoạ:

Page 27: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Gọi trợ giúp $ man iptables hay $ iptables -help Tạo chain mới: iptables -N <tên_chain> Xóa hết các luật đã tạo trong chain: iptabies -X <tên

chain> Reset bộ đếm packet về 0: iptables -Z <tên_chain>

27 Các tham số dòng lệnh của iptables:

Page 28: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

28 Các tham số dòng lệnh của iptables:

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

Page 29: TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

CÁM ƠN!!!