ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
BÁO CÁO ĐỀ TÀI MÔN HỌC
ỨNG DỤNG TRUYỀN THÔNG VÀ AN NINH THÔNG TIN
GIẢNG VIÊN HƯỚNG DẪN: ThS. NCS. TÔ NGUYỄN NHẬT QUANG
NHÓM SINH VIÊN THỰC HIỆN: NHÓM 14 – LỚP MMT 02
Danh sách thành viên nhóm 14 lớp MMT02:
Họ và tên Mã số sinh viên
Trương Quốc Hùng 07520159
Đoàn Duy Ninh 07520489
Nguyễn Khánh Thuật 07520501
Phạm Duy Lộc 07520481
Nguyễn Quốc Việt 07520508
Thành phố Hồ Chí Minh ngày 19/05/2011
Mục lục:
Mục lục: .............................................................................................................................. 2
PHẦN I/ TỔNG QUAN VỀ FIREWALL: .................................................................................. 4
1/ Cơ bản về Firewall: ..................................................................................................... 4
a/ Khái niệm: .............................................................................................................. 4
b/ Nhiệm vụ và chức năng: ......................................................................................... 4
c/ Các thành phần của Firewall: ................................................................................. 5
2/ Phân loại Firewall: ...................................................................................................... 5
a/ Phân loại theo phạm vi: ......................................................................................... 5
b/ Phân loại theo tầng giao thức: ............................................................................... 6
c/ Phân loại theo khả năng theo dõi: .......................................................................... 6
3/ Một số Firewall phổ biến: .......................................................................................... 6
a/ Simple Packet Filtering Firewall: ............................................................................ 6
c/ Application Lever Firewall: ..................................................................................... 7
4/ Xây dựng Firewall Rule: .............................................................................................. 7
5/ Các mô hình Firewall thường dùng: ........................................................................... 8
a/ Perimeter Firewall Topology: ................................................................................. 8
PHẦN II/ IPTABLES: ........................................................................................................... 10
1/ Khái niệm: ................................................................................................................ 10
2/ Chức năng: ............................................................................................................... 10
3/ Cài đặt IPTables: ....................................................................................................... 10
5/ Targets và Jumps: ..................................................................................................... 13
2
6/ Một số ví dụ minh họa: ............................................................................................ 14
b/ Cho phép User sử dụng Email: ............................................................................. 20
c/ Cấm truy cập Website được chỉ định: .................................................................. 21
4/ Cấu hình các mô hình Firewall trong ISA 2006: ........................................................ 22
a/ Tổng quan: ........................................................................................................... 22
b/ Cấu hình Edge Firewall: ........................................................................................ 22
5/ Cấu hình Intrusion Detection: .................................................................................. 25
6/ Cấu hình Application Filter: ...................................................................................... 28
a/ Cấu hình HTTP Filter: ............................................................................................ 28
b/ SMTP Filter: .......................................................................................................... 31
TÀI LIỆU THAM KHẢO: ...................................................................................................... 34
HỎI ĐÁP THẢO LUẬN: ...................................................................................................... 35
3
PHẦN I/ TỔNG QUAN VỀ FIREWALL:
1/ Cơ bản về Firewall:
a/ Khái niệm:
Firewall là một thiết bị hoặc một loạt các thiết bị (bao gồm phần cứng và phần mềm) hoạt
động trong môi trường mạng được thiết kế nhằm kiểm soát (cho phép hoặc ngăn chặn) các
truy cập trong mạng dựa trên các quy tắc được tạo ra (rule) và mô hình kết nối.
Công nghệ Firewall xuất hiện vào năm 1988 khi các hệ thống lọc gói tin cơ bản được phát
triển.
Hình 1: Mô hình Firewall đơn giản.
b/ Nhiệm vụ và chức năng:
Nhiệm vụ cơ bản của Firewall là kiểm soát các truy cập và lưu thông dữ liệu giữa các vùng
mạng khác nhau (internet, intranet, extranet, DMZ).
Mục đích của Firewall là cung cấp các kết nối có kiểm soát dựa trên các thông tin về địa
chỉ nguồn, địa chỉ đích, port, protocol, service và loại kết nối.
Các chức năng của Firewall:
• Firewall cho phép hoặc không cho phép những dịch vụ bên trong truy cập ra một tài
nguyên nào đó bên ngoài.
• Firewall cho phép hoặc ngăn những dịch vụ truy cập từ bên ngoài vào một vùng
mạng hoặc một tài nguyên nào đó bên trong.
4
• Firewall theo dõi và kiểm soát luồng dữ liệu đi từ hệ thống mạng bên trong ra bên
ngoài và ngược lại.
• Firewall theo dõi và kiểm soát địa chỉ truy cập, cấm truy cập hoặc truy cập một số
địa chỉ đã được thiết lập.
• Firewall kiểm soát việc truy cập của người dùng và những dữ liệu mà người dùng
nhận từ mạng bên ngoài.
• Firewall có thể chống lại những đợt tấn công của hacker.
c/ Các thành phần của Firewall:
Một Firewall chuẩn sẽ gồm các thành phần sau:
_Bộ lọc gói tin (Packet Filter): Dữ liệu truyền trên mạng luôn được chia nhỏ thành các gói
có gán địa chỉ và các thông tin khác để có thể nhận và tái lập, bộ lọc packet cho phép nhận
hoặc từ chối mỗi packet mà nó nhận được bằng cách kiểm tra các thông tin header trên mỗi
packet (IP nguồn, IP đích, port đích. Giao thức, dịch vụ).
_Proxy Server: Là một firewall được thiết kế để kiểm soát các loại dịch vụ, giao thức cho
phép truy cập vào hệ thống mạng. Nó hoạt động dựa trên cách thức gọi là Proxy Server, là
bộ các chương trình cài trên gateway cho từng ứng dụng, việc truy cập từ mạng nội bộ ra
bên ngoài và ngược lại đều thông qua Proxy Server này thay cho Server/Client thực sự cần
phải giao tiếp. Proxy Server cũng có vai trò như một bộ lọc tin, ngăn chặn các truy cập
không móng muốn vào client thực sự. Proxy Sever cũng giúp tăng tốc độ truy cập do có
lưu thông tin.
_Circuit-Lever Gateway: Hoạt động ở lớp Session (mô hình OSI) và tầng Transport (lớp
TCP, mô hình TCP/IP), CLG giám sát việc bắt tay TCP giữa các gói tin để xác định một
phiên truyền dữ liệu là phù hợp, CLG giúp che dấu client, hệ thống mạng mà nó cần bảo
vệ. CLG không lọc các gói tin.
2/ Phân loại Firewall:
a/ Phân loại theo phạm vi:
Tường lửa cá nhân (Personal Firewall): Thường là ứng dụng lọc dữ liệu ra vào trong một
máy tính đơn.
5
Tường lửa mạng (Network Firewall): Chạy trên các thiết bị mạng hoặc máy tính chuyên
dụng đặt tại vùng biên giữa các khu vực mạng.
b/ Phân loại theo tầng giao thức:
Tường lửa tầng mạng, còn được gọi là Packet Filter Firewall
Tưởng lửa tầng ứng dụng, được gọi là Application/Proxy Gateway Firewall
c/ Phân loại theo khả năng theo dõi:
Tường lửa có trạng thái (Stateful FirewalL): Là tường lửa theo dõi trạng thái của các kết
nối mạng (giao thức TCP/UDP) đi qua nó, bao gồm IP nguồn, IP đích, port TCP/UDP
nguồn, port TCP/UDP đích, data, protocol) tường lửa này được lập trình để biết được gói
tin hợp lệ được phép đi qua hoặc sẽ bị hủy bỏ nếu nó là gói tin không hợp lệ.
Tưởng lưa phi trạng thái (Stateless Firewall): Là tường lửa không theo dõi trạng thái của
các kết nối mà chỉ dựa vào địa chỉ nguồn, địa chỉ đích, một số thông tin trên header để
quyết định cho phép hay không cho phép gói tin đi qua.
3/ Một số Firewall phổ biến:
a/ Simple Packet Filtering Firewall:
Đây có thể coi là loại tường lửa căn bản nhất, nó kiểm tra từng gói tin ra vào hệ thống
mạng, so sách các thông tin thu được (của gói tin đó) với các quy định (rule) đã được thiết
lập sẵn, sau đó quyết định xem gói tin là hợp lệ hay không hợp lệ. Các thông tin được kiểm
tra bao gồm:
• Địa chỉ nguồn của gói tin, cũng có thể là địa chi của hệ thống mà gói tin xuất phát
từ đó.
• Địa chỉ đích, nơi mà gói tin được gởi đến, hoặc cũng có thể là địa chỉ đích của hệ
thống nơi mà gói tin được gởi đến.
• Giao thức nào sẽ được dùng để giao tiếp giữa nơi gởi và nơi nhận. Loại tường lửa
này hoạt đông ở tầng 2 và 3 trong mô hình OSI.
6
b/ Stateful Packet Filtering Firewall:
Tường lửa này cũng có các tính năng và cách hoạt động giống với Simple Packet Filtering
Firewall như là lọc gói tin dựa trên các rule đã được thiết lập, và nó còn giữ lại tất cả trạng
thái của các kết nối đã được chấp nhận (Accepted Connection) trong bộ nhớ. Khi một gói
tin đến, firewall có thể xác định được gói tin đó là của kết nối mới hoặc là của kết nối đã
được thiết lập.
Các trạng thái của các kết nối gồm LISTEN, SYN-SENT, SYN-RECEIVED,
ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK,
TIME-WAIT, CLOSED.
Khi một phiên kết nối bị ngắt hoặc do hết thời gian dành cho kết nối thì thông tin về kết
nối đó sẽ được xóa khỏi bộ nhớ của firewall. Tường lửa này hoạt động ở Layer 2, 3 và 4
trong mô hình OSI.
c/ Application Lever Firewall:
Đây là một loại tường lửa phức tạp (còn được gọi là Application - Proxy Gateway), vì nó
thực hiện nhiều sự kiểm tra các gói dữ liệu từ tầng 2 đến tầng 7 (trong mô hình OSI).
Application Lever Firewall kiểm soát và dẫn đường các gói tin giữa các vùng mạng (tin
cậy và không tin cậy) theo các cơ chế đã được cấu hình trên nó, kiểm soát các ứng dụng
hoặc dịch vụ nào đang gởi hoặc nhận dữ liệu. Tường lửa này cũng có chưc năng như là
một Applicaton Proxy.
Application Lever Firewall có thể thực hiện kiểm tra kĩ lưỡng một gói tin để đưa ra các
quyết định chính xác về việc cho phép hoặc hủy bỏ một gói tin/kết nối.
Application Lever Firewall có thể yêu cầu chứng thực giữa mỗi người dùng hoặc ứng dụng
đang muốn truyền dữ liệu đi qua nó.
4/ Xây dựng Firewall Rule:
Rule của tường lửa là các quy tắc xử lý các gói tin, các kết nối khi nó đi qua tường lửa.
Thông thường thì gói tin hoặc kết nói sẽ được xử lý như sau:
• Accept: Tường lửa chấp nhận cho gói tin/kết nối đi qua và đến nơi cần đến.
7
• Deny: Tường lửa bỏ qua gói tin/kết nối, sau đó một thông báo lỗi sẽ được gởi đến
nơi xuất phát của gói tin.
• Discard: Tường lửa bỏ qua gói tin và không thông báo gì cho nơi gửi.
Các thông tin trong packet sẽ được tường lửa kiểm tra và so sánh với các rule đã có để
quyết định cho phép hay hủy bỏ một gói tin. Chúng ta có thể tạo rule dựa trên các thông tin
này. Chúng bao gồm: địa chỉ nguồn, địa chỉ đích, giao thức, port nguồn, port đích, dịch vụ,
giá trị TTL, dải IP nguồn, dãi IP đích, Domain nguồn, Domain đích, ứng dụng nguồn, ứng
dụng đích, thông tin chứng thực.
5/ Các mô hình Firewall thường dùng:
Firewall có thể được cấu hình thành nhiều các topology phù hợp với hệ thống mạng mà nó
cần bảo vệ. Có ba topology phổ biến thường được sử dụng trong các hệ thống mạng hiện
đại, đó là:
a/ Perimeter Firewall Topology:
Đây là mô hình Firewall phổ biến nhất, mô hình sẽ gồm một Firewall đặt nằm giữa các
vùng mạng hoặc giữa các hệ thống tin cậy và không tin cậy:
Hình 2: Mô hình Perimeter Firewall.
b/ Three - Legged (DMZ) Firewall Topology:
8
Mô hình này thường được sử dụng khi chúng ta muốn công khai các nguồn tài nguyên ra các hệ thống
mạng bên ngoài, khu vực mạng chứa các tài nguyên này được gọi là DMZ. Cũng giống như mô hình
Perimeter Firewall, mô hình này sử dụng một tường lửa nhưng có thêm một card mạng khác để kết nối
với DMZ. Tường lửa sẽ được cấu hình cho phép bên ngoài chỉ có thể truy cập đến những tài nguyên được
chỉ định.
Hình 3: Mô hình 3 Legged (DMZ).
c/ Chained (DMZ) Firewall Topology:
Mô hình này sử dụng 2 tường lửa để tạo DMZ nằm ở giữa hệ thống mạng nội bộ và bên ngoài. Việc cấu
hình cho 2 firewall này tương đối phức tạp, nhưng nếu cấu hình đúng thì mô hình tường lửa này mang lại
hiệu quả bảo mật rát cao. Mô hình này thường được áp dụng khi mạng nội bộ và bên ngoài muốn truy cập
vào DMZ, sẽ có các rule ở mỗi tường lửa cho từng truy cập từ bên trong và bên ngoài.
Hình 4: Mô hình Chained (DMZ).
9
PHẦN II/ IPTABLES:
1/ Khái niệm:
IPTABLE là một loại tường lửa được phát triển bởi Netfilter Organiztion để tăng tính bảo
mật trong các hệ điều hành Linux, nó là một Packet-Filtering Firewall. IPTABLE kiểm tra
các packet vào và ra khỏi một Interface thông qua các rule được thiết lập sẵn. Thông qua
IPTables, chúng ta có thể dễ dàng hiểu được cơ chế hoạt động của một hệ thống Firewall
nói chung
2/ Chức năng:
• IPTABLE dùng để tăng tính bảo mật trên hệ thống của Linux.
• 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 tùy 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 DoS.
3/ Cài đặt IPTables:
IPTABLE được cài đặt mặc định trong hệ thống của Linux. Package của IPTABLE là
Iptable-1.2.9-1.0.i386.rpm.
Khởi động IPTABLE:
#service iptable start
#service iptable stop
#service iptable restart
4/ Cấu trúc IPTables:
10
IPTables gồm có 3 bảng: FILTER, MANGLE, NAT và các CHAIN trong mỗi bảng, người quản trị
sử dụng chúng để tạo ra các rule cho IPTable để kiểm soát các gói tin ra vào hệ thống, chức năng
của chúng như sau:
MANGLE: Dùng chỉnh sửa QoS bit trong phần TCP Header của gói tin.
FILTER: Dùng để lọc các gói tin, gồm có các chain được xây dựng sẵn. gồm:
_Forward Chain: Lọc những gói tin đi qua hệ thống này và chuyển qua môt hệ thống khác:
_Input Chain: Lọc những gói tin đi vào hệ thống:
_Output Chain: Lọc những gói tin đi ra khỏi hệ thống:
NAT: Sửa địa chỉ gói tin gồm các chain được thiết lập sẵn, bao gồm:
11
_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).
12
5/ Targets và Jumps:
IPTables Rule kiểm tra những gói IP và xác định nó sẽ được xử lý theo kiểu nào (target).
Sau đây là một số build-in targets thường được sử dụng:
ACCEPT: IPTables chấp nhận gói tin, đưa nó qua hệ thống mà không tiếp tục kiểm tra nó
nữa.
DROP: IPTables loại bỏ gói tin, không tiếp tục xử lý nó nữa.
LOG: Thông tin của gói tin sẽ được ghi lại bởi syslog hệ thống, IPTables tiếp tục xử lý gói
tin bằng những rules tiếp theo.
REJECT: Chức năng của nó cũng giống như DROP tuy nhiên nó sẽ gửi một error message
tới host đã gửi gói tin.
DNAT: Dùng để sửa lại địa chỉ đích của gói tin.
SNAT: Dùng để sửa lại địa chỉ nguồn của gói tin
MASQUERADE: Cũng là một kiểu dùng để sửa địa chỉ nguồn của gói tin
Để xây dựng các rules còn phải sử dụng các tuỳ chọn để tạo điều kiện so sánh, sau đây là
một số tuỳ chọn thường dùng:
-t: Chỉ ra tên của bảng mà rule của bạn sẽ được ghi vào (mặc định là FILTER).
-j: Nhảy đến một kiểu xử lý (target) tương ứng như đã định nghĩa ở trên nếu điều kiện so
sánh thoả mãn.
-a: Ghi nối tiếp rule vào đuôi một chain.
-p: So sánh protocol gói tin.
-s: So sánh địa chỉ nguồn của gói tin.
-d: So sánh địa chỉ đích của gói tin.
-i: So sánh tên card mạng mà gói tin đi vào hệ thống qua đó.
-o: So sánh tên card mạng mà gói tin từ hệ thống đi ra qua đó.
-p tcp --sport: Xác định port nguồn của gói tin TCP.
-p tcp --dport: Xác định port đích của gói tin TCP.
13
-p udp --sport: Xác định port nguồn của gói tin UDP.
-p udp --dport: Xác định port đích của gói tin UDP.
--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 hay không.
--icmp-type: Xác định loại gói ICMP (echo-reply hay echo-request).
-m multiport --sport < port, port >: Xác định một loạt các giá trị port nguồn.
-m multiport --dport < port, port >: Xác định một loạt các giá trị port đích.
-m multiport --port < port, port >: Xác định một loạt các giá trị port (không phân biệt
nguồn hay đích).
-m --state < state >: Xác định trạng thái kết nối mà gói tin thể hiện
ESTABLISHED: Gói tin thuộc một kết nối đã được thiết lập.
NEW: Gói tin thể hiện một yêu cầu kết nối.
RELATED: Gói tin thể hiện một yêu cầu kết nối thứ hai (có liên quan đến kết nối thứ nhất,
thường xuất hiện ở những giao thức FPT hay ICMP).
INVALID: Thể hiện một gói tin không hợp lệ.
6/ Một số ví dụ minh họa:
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 INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -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.
iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p
TCP \--sport 1024:65535 --dport 80 -j ACCEPT
14