Đồ án Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux

Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
LỜI CẢM ƠN  
Để có được đồ án này, em xin bày tỏ lòng biết ơn sâu sắc đến các thầy cô  
giáo trong trường Đại học Bách Khoa Hà Nội nói chung, khoa Công nghệ thông  
tin, chương trình đào tạo kỹ sư chất lượng cao tại Việt Nam ( P.F.I.E.V ) nói riêng,  
những người đã tận tình giảng dạy, truyền đạt cho em những kiến thức quý báu  
trong 5 năm học vừa qua.  
Em xin chân thành cảm ơn thầy giáo hướng dẫn, Thạc sỹ - Giảng viên chính  
Đỗ Văn Uy, bộ môn Công nghệ phần mềm, khoa Công nghệ thông tin, trường Đại  
học Bách Khoa Hà Nội đã nhiệt tình hướng dẫn, chỉ bảo và cung cấp cho em nhiều  
kiến thức cũng như tài liệu quý trong suốt quá trình làm đồ án. Nhờ sự giúp đỡ của  
thầy em mới có thể hoàn thành được đồ án này.  
Em xin chân thành cảm ơn các cô chú, các anh, cùng các bạn đồng nghiệp  
tại phòng giải pháp phần mềm hệ thống và bảo mật, công ty phát triển phần mềm  
và hỗ trợ công nghệ bộ quốc phòng – Misoft, những người đã tạo điều kiện về cơ sở  
vật chất, phương tiện làm việc cũng như truyền đạt những kinh nghiệm qúy báu cho  
em trong thời gian thực tập tốt nghiệp và làm đồ án tốt nghiệp tại đây.  
Cuối cùng, xin cảm ơn gia đình, bạn bè, những người luôn ở bên tôi và cho  
tôi những sự động viên lớn lao trong thời gian thực hiện đồ án này.  
1
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
 
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
MỤC LỤC  
2
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
3
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
4
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
MỤC LỤC HÌNH VẼ  
5
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
BẢNG CÁC TỪ VIẾT TẮT  
ARP( Address Resolution Protocol ) : Giao thức chuyển đổi từ địa chỉ IP sang địa  
chỉ vật lý  
BKWall( Bach Khoa Firewall System )  
CGI (Common Gateway Interface) : Giao tiếp gateway chung  
DDoS(Distributed Denied of Service) : Tấn công từ chối dịch vụ phân tán  
DMA(Direct Memory Access) : Truy nhập bộ nhớ trực tiếp  
DMZ(DeMilitarized Zone) : Vùng phi quân sự  
DNS(Domain Name Service) : Dịch vụ tên miền  
DoS(Denied of Service) : Tấn công từ chối dịch vụ  
DRDoS(Distributed Reflection Denied of Service) : DoS phản xạ, phân tán  
FDDI(Fiber Distributed Data Interface )  
FIB(Forwarding Information Table) : Bảng thông tin chuyển đổi định tuyến  
FTP(File Transfer Protocol) : Giao thức truyền file  
HTTP(Hyper Text Transfer Protocol) : Giao thức truyền siêu văn bản  
ICMP(Internet Control Message Protocol): Giao thức điều khiển thông điệp  
Internet  
IGMP(Internet Group Management Protocol) : Giao thức Internet để các host kết  
nối, huỷ kết nối từ các nhóm multicast.  
IP(Internet Protocol) : Giao thức Internet  
IPS(Intrusion Preventation System) : Hệ thống phòng chống xâm nhập  
ISP(Internet Services Provider) : Nhà cung cấp dịch vụ Internet  
ISDN( Integrated Services Digital Network) : Mạng số học các dịch vụ tích hợp  
LAN(Local Area Network) : Mạng nội bộ  
MAC(Media Access Control) : Địa chỉ thiết bị  
MTU(Maximum Transmission Unit) : Đơn vị truyền lớn nhất  
NIC(Network Interface Card) : Card giao tiếp mạng  
PSTN(Public Switched Telephone Network ) : Mạng điện thoại chuyển mạch công  
cộng  
RARP(Reverse Address Resolution Protocol ) : Giao thức chuyển đổi từ địa chỉ vật  
lý sang địa chỉ IP  
RIP( Routing Information Protocol ) : Một kiểu giao thức dẫn đường  
SSL(Secure Socket Layer) : Tầng socket an toàn  
SSH( Secure Shell ) : Dịch vụ truy cập từ xa  
STMP( Simple Mail Transfer Protocol ) : Giao thức truyền thư đơn giản  
TCP(Transmission Control Protocol) : Giao thức điều khiển truyền tin  
TELNET : dịch vụ đăng nhập hệ thống từ xa  
UDP(User Datagram Protocol) : Giao thức điều khiển truyền tin không tin cậy  
URI(Uniform Resouce Indentifier ) Địa chỉ định vị tài nguyên  
URL(Uniform Resouce Locator) : Địa chỉ tài nguyên thống nhất  
6
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
LỜI NÓI ĐẦU  
Trong những năm gần đây, việc tổ chức và khai thác mạng Internet rất phát  
triển. Mạng Internet cho phép các máy tính trao đổi thông tin một cách nhanh  
chóng, thuận tiện. Mọi đối tượng đều có thể sử dụng các dịch vụ và tiện ích của  
Internet một cách dễ dàng như trao đổi thông tin, tham khảo các thư viện tri thức đồ  
sộ của nhân loại…Tai thời điểm hiện nay thì lơi ích của Internet là quá rõ ràng và  
không thể phủ nhận. Nhưng một điều không may là đi kèm với nó là các nguy cơ  
mất an toàn thông tin trên Internet đang là một vấn đề hang đầu cản trở sự phát triển  
của Internet. Bảo đảm an toàn an ninh không chỉ là nhu cầu riêng của các nhà cung  
cấp dịch vụ mà nó còn là nhu cầu của chính đáng của mỗi người sử dụng. Các thông  
tin nhạy cảm về quốc phòng, thương mại là vô giá và không thể để lọt vào tay đối  
thủ cạnh tranh  
Trên thế giới đã có nhiều công trình nghiên cứu về lĩnh vực bảo mật, bảo vệ  
an toàn thông tin trên mạng và kết quả chúng đã trở thành các sản phẩm thương mại  
như : Vista Firewall, ZoneAlarm Firewall, VPN-1/Firewall-1, SmoothWall,  
Astaro… Tuy nhiên mỗi loại có những ưu nhược điểm riêng,phát triển theo những  
hướng khác nhau. Các sản phẩm này được xây dựng trên những nền hệ điều hành  
khác nhau nhưng chủ yếu là Windows của Microsoft và hệ điều hành mã nguồn mở  
Linux.  
Linux là hệ điều hành họ UNIX miễn phí dùng cho máy tính cá nhân đang  
được sử dụng rộng rãi hiện nay. Hệ điều hành Linux đã thu những thành công nhất  
định. Hiện nay Linux ngày càng phát triển, được đánh giá cao và thu hút nhiều sự  
quan tâm của các nhà tin học.  
Tại Việt Nam, mặc dù Internet mới chỉ trở lên phổ biến mấy năm gần đây  
nhưng những vấn đề an toàn an ninh mạng cũng không là ngoại lệ. Mặc dù thực sự  
chưa có tổn thất lớn về kinh tế nhưng vẫn tiềm ẩn trong đó rất nhiều nguy cơ mất an  
toàn. Các cuộc tấn công vào hệ thống của nhà cung cấp dịch vụ, xoá bỏ dữ liệu…  
ngày một tăng. Ở Việt Nam hiện nay chưa có sản phẩm Firewall thương mại nào  
của người Việt tạo ra. Đặc biệt là sản phẩm Firewall được xây dựng trên nền hệ  
điều hành mã nguồn mở Linux.  
Do đó, muốn khai thác và sử dụng Internet thì vấn đề an toàn an ninh phải  
được đặt lên hang đầu. Có rất nhiều biện pháp khác nhau để bảo vệ hệ thống chống  
lại các cuộc tấn công từ bên ngoài. Một trong những biện pháp được áp dụng rộng  
rãi là sử dụng tường lửa – Firewall. Thực tế đã cho thấy đây là một biện pháp đơn  
giản nhưng hiệu quả đạt được lại rất khả quan.  
Trên cơ sở đó, em đã chọn đề tài : “ Tìm hiểu lý thuyết và xây dựng  
Firewall trên nền Linux”  
Mục tiêu của đề tài bao gồm :  
1. Tìm hiểu chung về an toàn an ninh mạng, các kỹ thuật tấn công  
trên mạng. Các chiến lược bảo vệ.  
2. Tìm hiểu lý thuyết về Firewall  
3. Thực hiện xây dựng một Firewall trên nền hệ điều hành Linux  
Bố cục của đồ án gồm 4 chương được bố trí như sau :  
• Chương 1 : Tổng quan an toàn an ninh mạng  
7
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Trình bày các khái niệm chung về an toàn an ninh mạng, tính cấp thiết  
của đề tài. Các mô hình mạng và các giao thức được sử dụng để truyền thông  
trên mạng.  
Các dạng tấn công, một số kỹ thuật tấn công đang được sử dụng phổ  
biến hiện nay, từ đó đưa ra các chiến lược bảo vệ hệ thống khỏi các nguy cơ  
này.  
• Chương 2 : Internet Firewall  
Trình bày khái niệm tổng quát về Firewall. Các chức năng cơ bản của  
Firewall. Các mô hình hay kiến trúc triển khai của một Firewall trong hệ  
thống.  
• Chương 3: Hệ điều hành Linux  
Chương này trình bày khái quát về hệ điều hành Linux. Cấu hình  
mạng trong môi trường Linux. Đặc biệt là chúng ta quan tâm đến một gói  
tiện ích được tích hợp hầu hết trong các bản phân phối Linux. Đó là IPtables  
– Nó thực hiện chức năng lọc gói ở mức lõi ( kernel ) của hệ thống. Từ đó  
đưa ra một vài mô hình Firewall đơn giản dựa trên IPtables.  
• Chương 4 : Xây dựng hệ thống BKWall – Bach Khoa Firewall  
System.  
Thực hiện xây dựng hệ thống BKWall dựa trên sản phẩm mã nguồn  
mở SmoothWall.  
Ngoài ra, đồ án còn có phần phụ lục trình bày các bảng từ viết tắt sử dụng  
trong bài, danh mục các tài liệu tham khảo.  
8
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Chương 1 : TỔNG QUAN AN TOÀN AN NINH MẠNG  
➢ Tình hình thực tế  
➢ Mô hình mạng  
➢ Các mục tiêu cần bảo vệ  
➢ Tấn công trên mạng và các chiến lược bảo vệ  
9
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
 
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Trong chương này chúng ta sẽ trình bày các khái niệm chung về an toàn an  
ninh mạng, tình hình thực tế. Các mô hình mạng và các giao thức được sử dụng để  
truyền thông trên mạng.  
Các dạng tấn công, một số kỹ thuật tấn công đang được sử dụng phổ biến  
hiện nay, từ đó đưa ra các chiến lược bảo vệ hệ thống khỏi các nguy cơ này.  
I. Tình hình thực tế  
Mạng Internet – mạng toàn cầu kết nối các máy tính cung cấp các dịch vụ  
như WWW, E_mail, tìm kiếm thông tin … là nền tảng cho dịch vụ điện tử đang  
ngày càng phát triển nhanh chóng. Internet đã và đang trở thành một phần không thể  
thiếu được trong cuộc sống hằng ngày. Và cùng với nó là những sự nguy hiểm mà  
mạng Internet mang lại.  
Theo thống kê của CERT®/CC ( Computer Emegency Response Team/  
Coordination Center ) thì số vụ tấn công và thăm dò ngày càng tăng.  
Dạng tấn công  
1999  
2000  
2001  
2002  
2003  
Root Compromise  
113  
157  
101  
125  
137  
User Compromise  
21  
34  
115  
36  
127  
760  
111  
36  
587  
25  
Từ chối dịch vụ  
Mã nguy hiểm  
0
0
0
0
4.764  
236  
265  
46  
191.306  
90  
Xóa Website  
Lợi dụng tài nguyên  
12  
24  
9
7
39  
26  
Các dạng tấn công khác 52  
Các hành động do thám 222  
108  
1268  
535.304  
71  
452  
488.000  
706.441  
Tổng cộng  
454  
412  
6.555  
489.890  
1.433.916  
Những kẻ tấn công ngày càng tinh vi hơn trong các hoạt động của chúng.  
Thông tin về các lỗ hổng bảo mật, các kiểu tấn công được trình bày công khai trên  
mạng. Không kể những kẻ tấn công không chuyên nghiệp, những người có trình độ  
cao mà chỉ cần một người có một chút hiểu biết về lập trình, về mạng khi đọc các  
thông tin này là có thể trở thành một hacker. Chính vì lí do này mà số vụ tấn công  
trên mạng không ngừng ra tăng và nhiều phương thức tấn công mới ra đời, không  
thể kiểm soát.  
Theo điều tra của Ernst & Young, thì 4/5 các tổ chức lớn ( số lượng nhân  
viên lớn hơn 2500 ) đều triển khai các ứng dụng nền tảng, quan trọng trong mạng  
cục bộ LAN. Khi các mạng cục bộ này kết nối với mạng Internet, các thông tin thiết  
yếu đều nằm dưới khả năng bị đột nhập, lấy cắp, phá hoại hoặc cản trở lưu thôn.  
Phần lớn các tổ chức này tuy có áp dụng những biện pháp an toàn nhưng chưa triệt  
để và có nhiều lỗ hổng để kẻ tấn công có thể lợi dụng.  
10  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
 
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Những năm gần đây, tình hình bảo mật mạng máy tính đã trở lên nóng bỏng  
hơn bao giờ hết khi hàng loạt các vụ tấn công, những lỗ hổng bảo mật được phát  
hiện hoặc bị lợi dụng tấn công. Theo Arthur Wong – giám đốc điều hành của  
SecurityFocus – trung bình một tuần, phát hiện ra hơn 30 lỗ hổng bảo mật mới.  
Theo điều tra của SecurityFocus trong số 10.000 khách hàng của hãng có cài đặt  
phần mềm phát hiện xâm nhập trái phép thì trung bình mỗi khách hàng phải chịu  
129 cuộc thăm dò, xâm nhập. Những phần mềm web server như IIS của Microsoft  
là mục tiêu phổ biến nhất của các cuộc tấn công.  
Trước tình hình đó thì việc bảo vệ an toàn thông tin cho một hay một hệ  
thống máy tính trước nguy cơ bị tấn công từ bên ngoài khi kết nối vào Internet là  
một vấn đề hết sức cấp bách. Để thực hiện các yêu cầu trên, thế giới đã xuất hiện  
các phần mềm khác với những tính năng khác nhau mà được gọi là Firewall.  
Sử dụng Firewall để bảo vệ mạng nội bộ, tránh sự tấn công từ bên ngoài là  
một giải pháp hữu hiệu, đảm bảo được các yếu tố :  
- An toàn cho sự hoạt động của toàn bộ hệ thống mạng  
- Bảo mật cao trên nhiều phương diện  
- Khả năng kiểm soát cao  
- Mềm dẻo và dễ sử dụng  
- Trong suốt với người sử dụng  
- Đảm bảo kiến trúc mở  
“Biết địch biết ta, trăm trận trăm thắng” để có thể bảo vệ được hệ thống, chống  
lại sự tấn công của hacker, ta phải biết những mục tiêu cần bảo vệ, các kỹ thuật tấn  
công khác nhau, và đưa ra chiến lược bảo vệ mạng hợp lý….  
II. Mô hình mạng  
2.1 Mô hình OSI và TCP/IP  
Kiến trúc mạng được mô tả theo hai dạng mô hình OSI và TCP/IP như hình  
vẽ dưới đây.  
FTP – File Transfer Protocol  
SMTP – Simple Mail Transfer Protocol  
DSN – Domain Name Protocol  
SNMP – Simple Network Management Protocol  
ICMP – Internet Control Message Protocol  
ARP – Address Resolution Protocol  
FDDI – Fiber Distributed Data Interface  
RIP – Routing Information Protocol.  
TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp  
phương tiện truyền thông liên mạng. Dữ liệu được truyền đi trên mạng theo sơ đồ  
sau :  
11  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
   
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Hình 1-1 : Kiến trúc OSI và TCP/IP  
Hình 1-2 : Đường đi của dữ liệu qua các phần tử trên mạng  
2.2 Các tầng của mô hình TCP/IP  
12  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
     
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Như trong phần trên đã giới thiệu về mô hình OSI và TCP/IP, chúng ta có  
thể đưa ra sự tương ứng giữa các tầng của chúng như sau :  
2.2.1 Tầng truy nhập mạng - Network Acces Layer  
Tầng truy nhập mạng bao gồm các giao thức mà nó cung cấp khả năng truy  
nhập đến một kết nối mạng. Tại tầng này, hệ thống giao tiếp với rất nhiều kiểu  
mạng khác nhau.Cung cấp các trình điều khiển để tương tác với các thiết bị phần  
cứng ví dụ như Token Ring, Ethernet, FDDI…  
2.2.2 Tầng Internet – Internet Layer  
Tầng Internet cung cấp chức năng dẫn đường các gói tin. Vì vậy tại tầng này  
bao gồm các thủ tục cần thiết giữa các hosts và gateways để di chuyển các gói giữa  
các mạng khác nhau. Một gateway kết nối hai mạng, và sử dụng kết nối mạng bao  
gồm IP ( Internet Protocol ), ICMP ( Internet Control Message Protocol )  
2.2.3 Tầng giao vận - Transport Layer  
Tầng giao vận phân phát dữ liệu giữa hai tiến trình khác nhau trên các máy  
tính host. Một giao thức đầu vào tại đây cung cấp một kết nối logic giữa các thực  
thể cấp cao.Các dịch vụ có thể bao gồm việc điều khiển lỗi và điều khiển luồng.  
Tại tầng này bao gồm các giao thức Transmission Control Protocol ( TCP ) và User  
Datagram Protocol ( UDP )  
2.2.4 Tầng ứng dụng – Application Layer  
Tầng này bao gồm các giao thức phục vụ cho việc chia sẻ tài nguyên và điều  
khiển từ xa ( remote access ). Tầng này bao gồm các giao thức cấp cao mà chúng  
được sử dụng để cung cấp các giao diện với người sử dụng hoặc các ứng dụng. Một  
số giao thức quan trọng như File Transfer Protocol ( FTP ) cho truyền thông,  
HyperText Transfer Protocol ( HTTP ) cho dịch vụ World Wide Web, và Simple  
Network Management Protocol ( SNMP ) cho điều khiển mạng. Ngoài ra còn có :  
Domain Naming Service ( DNS ), Simple Mail Transport Protocol ( SMTP )  
13  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
       
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Post Office Protocol ( POP ). Internet Mail Access Protocol ( IMAP ), Internet  
Control Message Protocol ( ICMP )….  
2.3 Các giao thức,dịch vụ trong mạng TCP/IP  
2.3.1 Các giao thức tầng mạng – Network Layer Protocols  
a. Internet Protocol ( IP )  
Mục đích chính của giao thức IP là cung cấp khả năng kết nối các mạng con  
thành liên mạng để truyền dữ liệu. Vai trò của nó tương tự vai trò tầng mạng trong  
mô hình OSI.. IP là giao thức kiểu “không liên kết” ( connectionless ) có nghĩa là  
không cần thiết lập liên kết trước khi truyền dữ liệu. Đơn vị dữ liệu dùng trong giao  
thức IP được gọi là IP datagram có khuôn dạng bao gồm phần header và phần dữ  
liệu.  
Hình 1-3 : Cấu trúc gói tin IP ( IP datagram )  
Để định danh các host trên mạng thì trong giao thức dùng địa chỉ IP có độ  
dài 32 bits được tách thành 4 vùng mỗi vùng 1 byte và chúng thường được viết dưới  
dạng các số thập phân. Người ta chia địa chỉ IP ra làm 5 lớp ký hiệu là A, B, C, D,  
E. Ví dụ về một địa chỉ IP : 192.168.1.1  
Mỗi địa chỉ IP gồm hai phần là : địa chỉ mạng ( network id ) và địa chỉ máy trạm (  
host id ). Để phân tách giữa phần network id và host id người ta dùng đến subnet  
mask do vậy một địa chỉ IP đầy đủ thường là : 192.168.1.1/24  
b. Giao thức ánh xạ địa chỉ - Address Resolution Protocol (ARP)  
Địa chỉ IP và địa chỉ phần cứng hay địa chỉ vật lý ( độ dài 48 bits ) là độc lập  
nhau. Giao thức ARP làm nhiệm vụ chuyển đổi từ địa chỉ IP sang địa chỉ vật lý khi  
cần thiết. Để ánh xạ từ địa chỉ IP sang địa chỉ vất lý theo hai cách là tĩnh hoặc động.  
ARP và RARP sử dụng phương pháp ánh xạ động. Nó sử dụng các gói tin ARP  
request và ARP reply  
c. Giao thức ánh xạ ngược địa chỉ - Reverse Address Resolution Protocol  
(RARP)  
Tuơng tự như ARP chỉ có điều nó sẽ ánh xạ ngược từ địa chỉ vật lý (MAC)  
sang địa chỉ IP. Sơ đồ đơn giản sự hoạt động của giao thức như sau :  
14  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
       
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
d. IP version6 or IP next generation ( IPv6 or IPng )  
IPv6 về cơ bản vẫn giống như IPv4. Sau đây là một số điểm khác biệt giữa chúng :  
- IP address có độ dài là 128 bits so với 32 bít của IPv4. Ví dụ một địa chỉ  
IPv6  
flea:1075:fffb:110e:0000:0000:7c2d:a65f  
- IPv6 có thể tự động cấu hình địa chỉ cục bộ và địa chỉ router cục bộ giải  
quyết các vấn đề cấu hình và thiết lập  
- IPv6 có phần header đơn giản và lược bỏ một số phần. Nó góp phần tăng  
hiệu quả quá trình dẫn đường và có thể dễ dàng bổ xung một loại header  
mới.  
- Hỗ trợ cho chứng thực, bảo mật dữ liệu là một phần của kiến trúc Ipv6.  
e. Internet Control Message Protocol (ICMP)  
Vì IP là giao thức không tin cậy vì vậy phải cần đến giao thức ICMP. Giao  
thức này thực hiện truyền các thông báo điều khiển ( báo cáo về tình trạng lỗi trên  
mạng, …) giữa các gateway hay các trạm của liên mạng. Tình trạng lỗi có thể là :  
một datagram không thể tới đuợc đích của nó, hoặc một router không đủ bộ đệm để  
lưu và chuyển một datagram. Một thông báo ICMP được tạo ra và sẽ chuyển cho IP  
để IP thực hiện gói  
( encapsulate ) với một IP header để truyền cho trạm hay router đích.  
2.3.2 Các giao thức tầng giao vận – Transport Layer Protocols  
Có hai giao thức tại tầng giao vận là : TCP ( Transport Control Protocol ) và  
UDP ( User Datagram Protocol ). Cả hai đều nằm giữa tầng ứng dụng và tầng mạng.  
TCP và UDP có trách nhiệm truyền thông tiến trình với tiến trình tại tầng giao vận  
(process – to – process)  
a. Transport Layer Protocol ( TCP )  
TCP là một giao thức kiểu “ hướng liên kết “ ( connection – oriented ) nghĩa  
là cần phải thiết lập liên kết locgic trước khi có thể truyền dữ liệu.  
Đơn vị dữ liệu dùng trong TCP được gọi là segment ( đoạn dữ liệu ) có khuôn dạng  
được mô tả dưới đây :  
Hình 1-4 : Khuôn dạng của TCP segment  
Các tham số trong khuôn dạng trên có ý nghĩa như sau :  
15  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
 
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
- Source port ( 16bits ) : Số hiệu cổng của trạm nguồn  
- Destrination port ( 16bits ) : Số hiệu cổng của trạm đích  
- Sequence Number ( 32bits ): Số hiệu của byte đầu tiên của segment trừ khi  
bit SYN được thiết lập. Nếu bit SYN được thiết lập thì nó là số hiệu tuần tự  
khởi đầu ( ISN )  
- Acknowledment Number ( 32bits ) : Số hiệu của segment tiếp theo mà trạm  
nguồn đang chờ nhận được và nó có ý nghĩa báo nhận tốt  
- Data offset ( 4bits ) : Số lượng từ ( 32bits ) trong TCP header. Nó có tác  
dụng chỉ ra vị trí bắt đầu của vùng data.  
- Reserved ( 6bits ) : dành để sử dụng sau này  
- Code bits hay các bits điều khiển ( 6bits ) theo thứ tự từ trái sang phải như  
sau :  
URG : vùng con trỏ khẩn ( Urgent Pointer ) có hiệu lực  
ACK : vùng báo nhận ( ACK number ) có hiệu lực  
PSH : chức năng PUSH  
RST : khởi động lại liên kết  
SYN : đồng bộ hoá các số hiệu tuần tự ( sequence number )  
FIN : không còn dữ liệu từ trạm nguồn  
- Window ( 16bits ) : cấp phát credit để kiểm soát luồng dữ liệu( cơ chế cửa sổ  
). Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong  
vùng ACK number, mà trạm nguồn đã sẵn sang nhận  
- Check sum ( 16bits ) : mã kiểm soát lỗi ( theo phương pháp CRC )  
- Urgent Poiter ( 16bits ) : con trỏ này trỏ tới số hiệu tuần tự của byte đi theo  
sau sữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn, chỉ có  
hiệu lực khi bit URG được thiết lập.  
- Options ( độ dài thay đổi ) : khai báo các options của TCP  
- Padding ( độ dài thay đổi ) : Phần chèn thêm vào header để đảm bảo đủ kích  
thước.  
- TCP data : phần dữ liệu của TCP segment.  
b. User Datagram Protocol ( UDP )  
UDP là giao thức không kết nối, không tin cậy như giao thức TCP, nó được  
sủ dụng thay thế TCP trong một số ứng dụng. Không giống như TCP nó không có  
chức năng thiết lập và giải phóng liên kết. Nó cũng không cung cấp các cơ chế báo  
nhận, không sắp xếp các đơn vị dữ liệu theo thứ tự đến và có thể dẫn đến tình trạng  
mất dữ liệu hoặc trùng dữ liệu mà không hề có thông báo lỗi cho người gửi.  
UDP cung cấp cơ chế gán và quản lý các số hiệu cổng để định danh duy nhất  
cho các ứng dụng chạy trên một trạm của mạng. Do có ít chức năng nên UDP có xu  
hướng chạy nhanh hơn so với TCP. Nó thường được sử dụng cho các ứng dụng đòi  
hỏi độ tin cậy không cao. Khuôn dang một UDP datagram như sau :  
16  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
Hình 1-5 : Khuôn dạng UDP datagram  
c. Các giao thức dẫn đường – Routing Protocols  
Như chúng ta biết Internet bao gồm các mạng được kết nối bởi các routers.  
Khi một gói được chuyển từ trạm nguồn đến trạm đích, nó phải đi qua các routers  
mà các router này được gắn với trạm đích. Khoảng cách quãng đường đi này được  
xác định khác nhau tuỳ thuộc vào từng giao thức được sử dụng. Để đưa được các  
gói tin đến đích thì tại các trạm hay các router phải cài đặt các giao thức dẫn đường.  
Tuỳ vào giải thuật đựoc sử dụng mà có các loai giao thức dẫn đường khác nhau.  
Bao gồm các giao thức dẫn đường tĩnh ( ví dụ như RIP – Routing Information  
Protocol … ) và dẫn đường động ( ví dụ như OSPF – Open Shortest Path First …)  
2.3.3 Các dịch vụ tầng ứng dụng  
a. Dịch vụ tên miền – Domain Name System ( DNS )  
Dịch vụ này cho phép định danh các phần tử trên mạng theo tên thay vì các  
con số trong địa chỉ IP. Hệ thống này được đựoc phân cấp và mỗi cấp được gọi là  
một miền ( domain) các miền được tách nhau bằng dấu chấm. Domain cao nhất là  
cấp quốc gia, mỗi quốc gia được cấp một tên miền riêng gồm hai ký tự ví dụ vn (  
Việt Nam ), fr ( France )…và sau đó lại tiếp tục đuợc phân cấp nhỏ hơn. Việc ánh  
xạ giữa địa chỉ IP và các tên miền được thực hiện bởi hai thực thể có tên là : Name  
Resolver và Name Server. Name Resolever được cài đặt trên trạm làm việc còn  
Name Server được cài đặt trên một máy chủ. Name Resolver gửi yêu cầu ánh xạ địa  
chỉ tới Name Server. Nếu host name được tìm thấy thì địa chỉ IP tuơng ứng sẽ được  
gửi trả lại trạm làm việc. Sau đó trạm làm việc sẽ kết nối với host bằng địa chỉ IP  
này.  
b. Đăng nhập từ xa - TELNET  
Cho phép người sử dụng từ một trạm làm việc của mình có thể đăng nhập (  
login ) vào một trạm ở xa thông qua mạng và làm việc y như đang ngồi tại đó.  
TELNET làm việc dựa trên giao thức TCP và trao đổi thông tin tại cổng 23. Để  
khởi động TELNET, từ trạm làm việc của mình người sử dụng chỉ việc gõ lệnh sau  
từ của sổ command line :  
telnet <domain name or IP address >  
c. Truyền tệp – File Transfer Protocol ( FTP )  
Cho phép chuyển các tệp tin từ một máy trạm này sang một trạm khác, bất kể  
máy đó ở đâu và sử dụng hệ điều hành gì, chỉ cần chúng được nối với nhau thông  
qua mạng Internet và có cài đặt FTP.  
Để khởi động FTP ta sử dụng câu lệnh :  
ftp < domain name or IP address >  
Sau đó ta phải đăng nhập với user name và password. Khi đó chúng ta có thể thực  
hiện các công việc như lấy về hay tải lên một file.  
d. Thư điện tử - Electronic Mail ( E_mail )  
Hiện là một dịch vụ phổ biến nhất trên mạng Internet. Nó là dịch vụ kiểu  
17  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
   
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
“ lưu và chuyển tiếp “ ( store – and – forward ) tức là hai trạm trao đổi thư điện tử  
cho nhau không cần phải liên kết trực tiếp. Chúng được lưu chuyển thông qua các  
E_mail Server Các giao thức được sử dụng cho dịch vụ thư điện tử bao gồm :  
- Simple Mail Transfer Protocol ( SMTP )  
- Post Office Protocol Version 3 ( POP3 )  
- Internet Message Access Protocol ( IMAP )  
- Multipurpose Internet Mail Extension ( MIME )  
e. Các dịch vụ tìm kiếm :  
Bao gồm các dịch vụ như :  
- Tìm kiếm file ( Archie )  
- Tra cứu thông tin theo thực đơn ( Gopher )  
- Tìm kiếm thông tin theo chỉ số ( WAIS )  
- Tìm kiếm thông tin dựa trên siêu văn bản ( WWW )  
2.4 Các lỗ hổng trên mạng  
Việc sử dụng mạng Internet làm tăng nhanh khả năng kết nối, nhưng đồng  
thời chứa đựng trong đó những hiểm hoạ không ngờ. Những lỗ hổng để kẻ tấn công  
có thể lợi dụng, gây tổn thương cho hệ thống có rất nhiều. Sau đây là một vài lỗ  
hổng phổ biến trên cộng đồng mạng hiện nay.  
- Các mật khẩn yếu :  
Mọi người thường có thói quen sử dụng mật khẩu theo tên của người thân  
hay những gì quen thuộc với mình. Với những mật khẩu dễ bị phán đoán, kẻ  
tấn công có thể chiếm đoạt được quyền quản trị trong mạng, phá huỷ hệ  
thống, cài đặt backdoor … Ngày nay, một người ngồi từ xa cũng có thể đăng  
nhập vào được hệ thống cho nên ta cần phải sử dụng những mật khẩu khó  
đoán, khó dò tìm hơn.  
- Dữ liệu không được mã hoá :  
Các dữ liệu được truyền đi trên mạng rất dễ bị xâm phạm, xem trộm, sửa  
chữa … Với những dữ liệu không được mã hoá, kẻ tấn công chẳng tốn thời  
gian để có thể hiểu được chúng. Những thông tin nhạy cảm càng cần phải  
phải mã hoá cẩn thận trước khi gửi đi trên mạng.  
- Các file chia sẻ :  
Việc mở các file chia sẻ thông tin là một trong những vấn đề bảo mật rất dễ  
gặp. Điều này cho phép bất kì ai cũng có thể truy nhập các file nếu ta không  
có cơ chế bảo mật, phân quyền tốt.  
- Bộ giao thức nổi tiếng TCP/IP được sử dụng rộng rãi trên mạng hiện nay  
cũng luôn tiềm ẩn những hiểm hoạ khôn lường. Kẻ tấn công có thể sử dụng  
ngay chính các qui tắc trong bộ giao thức này để thực hiện cách tấn công  
DoS. Sau đây là một số lỗ hổng đáng chú ý liên quan đến bộ giao thức  
TCP/IP  
o CGI Scripts: Các chương trình CGI nổi tiếng là kém bảo mật. Và thông  
thường các hacker sử dụng các lỗ hổng bảo mật này để khai thác dữ liệu  
hoặc phá huỷ chương trình  
18  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
   
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
o Tấn công Web server: Ngoài các lỗ hổng bảo mật do việc thực thi các  
chương trình CGI, các Web server còn có thể có các lỗ hổng khác. Ví dụ  
như một số Web server (IIS 1.0 ...) có một lỗ hổng mà do đó một tên file có  
thể chèn thêm đoạn “../” vào trong tên đường dẫn thì có thể di chuyển tới  
mọi nơi trong hệ thống file và có thể lấy được bất kì file nào. Một lỗi thông  
dụng khác là lỗi tràn bộ đệm trong trường request hoặc trong các trường  
HTTP khác.  
o Tấn công trình duyệt Web: Do các trình duyệt Web như của Microsoft,  
Netscape có khá nhiều lỗ hổng bảo mật nên xuất hiện các tấn công  
URL, HTTP, HTML, JavaScript, Frames, Java và ActiveX.  
o Tấn công SMTP (Sendmail)  
o Giả địa chỉ IP (IP Spoofing)  
o Tràn bộ đệm (Buffer Overflows): có 2 kiểu tấn công khai thác lỗi tràn  
bộ đệm là : DNS overflow (Khi một tên DNS quá dài được gửi tới  
Server) và Statd overflow (khi một tên file quá dài được cung cấp).  
o Tấn công DNS (DNS attacks): DNS server thường là mục tiêu chính  
hay bị tấn công. Bởi hậu quả rất lớn gây ra bởi nó là gây ách tắc toàn  
mạng.  
- Tháng 4/2004 vừa qua, Bộ An Ninh Nội Vụ Mỹ và trung tâm Điều phối An  
Ninh Cơ sở hạ tầng quốc gia Anh đã cảnh báo về một lỗi bảo mật TTO  
nghiêm trọng trong bộ giao thức TCP/IP này.  
Trong phần sau chúng ta sẽ xem xét các kỹ thuật tấn công dựa trên các lỗ hổng bảo  
mật này.  
III. Các mục tiêu cần bảo vệ  
Để có thể bảo vệ được hệ thống, chống lại sự tấn công của hacker. Chúng ta phải  
biết những mục tiêu cần bảo vệ, các kỹ thuật tấn công khác nhau từ đó đưa ra các  
chiến luợc bảo vệ hợp lý…  
Trong các phần dưới đây sẽ trình bày cụ thể các vấn đề này.  
Có ba mục tiêu cần được bảo vệ là :  
• Dữ liệu: là những thông tin lưu trữ trong máy tính  
• Tài nguyên : là bản thân máy tính, máy in, CPU…  
• Danh tiếng  
3.1 Dữ liệu  
Mục tiêu , chính sách an toàn của một hệ thống thông tin cũng như đối với  
dữ liệu bao gồm :  
19  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
   
Đồ án tốt nghiệp  
Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux  
• Bí mật  
• Toàn vẹn  
• Sẵn sàng  
Thông thường mọi người thường tập trung vào bảo vệ tính bí mật của dữ liệu,  
những thông tin có tính nhạy cảm cao như thông tin về quốc phòng, chiến lược kinh  
doanh… thì đây là yếu tố sống còn. Khi dữ liệu bị sao chép bởi những người không  
có thẩm quyền thì ta nói dữ liệu đã bị mất tính bí mật  
Khi dữ liệu bị sửa đổi một cách bất ngờ bởi người không có thẩm quyền thì khi  
đó có thể nói dữ liệu bị mất tính toàn vẹn  
Tính sẵn sàng là tính chất quan trọng nhất đối với các tổ chức hoạt động cần sử  
dụng nhiều thông tin. Khi người sử dụng hợp pháp muốn xem dữ kiệu của mình  
nhưng dữ liệu không thể đáp ứng ngay vì một lý do nào đó, khi đó ta nói dữ liệu đã  
mất đi tính sẵn sàng.  
3.2 Tài nguyên  
Xét một ví dụ như sau :  
Ta có một máy in ( một dạng tài nguyên ), ngoài ta ra chỉ những ai có đủ  
thẩm quyền thì mới được sử dụng nó. Tuy nhiên, có những người không đủ thẩm  
quyền vẫn muốn sử dụng máy in này miễn phí. Khi đó ta nói chiếc máy in này đã bị  
xâm phạm  
Khái niệm xâm phạm là rất rộng, ví dụ như bộ nhớ, CPU,… đều là tài  
nguyên. Khi chúng bị những người không có thẩm quyền khai thác một cách bất  
hợp pháp thì ta nói tài nguyên đó đã bị xâm phạm.  
3.3 Danh tiếng  
Bảo vệ danh tiếng là một điều quá hiển nhiên đối với cả cá nhân và các tổ  
chức. Không chỉ trên mạng Internet mà cả trong thực tế cuộc sống hàng ngày chúng  
ta đều cần phải bảo vệ danh tiếng. Điều gì sẽ xảy ra nếu như một ngày nào đó tên  
của chúng ta được sử dụng cho những mục đích mờ ám. Và để khôi phục lại danh  
tiếng mà trước đó đã có chắc chắn phải mất một thời gian dài và cũng có thể là  
không thể.  
IV. Tấn công trên mạng và các chiến lược bảo vệ  
4.1 Các dạng tấn công  
Có nhiều dạng tấn công khác nhau vào hệ thống, và cũng có nhiều cách phân  
loại các dạng tấn công này. Trong mục này, chúng ta chia các dạng tấn công làm ba  
phần cơ bản :  
• Xâm nhập ( Intrusion )  
• Từ chối dịch vụ ( Denial of Service – DoS )  
• Ăn trộm thông tin ( Information thieft )  
4.1.1 Xâm nhập  
Tấn công xâm nhập là việc một người hay nhóm người cố gắng đột nhập hay  
lạm dụng hệ thống. Hacker và cracker là hai từ dùng để chỉ những kẻ xâm nhập.  
20  
Ngô Văn Chấn – HTTT&TT – KSCLC – K45  
         
Tải về để xem bản đầy đủ
doc 92 trang myanh 18700 Free
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Tìm hiểu lý thuyết và xây dựng Firewall trên nền Linux", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docdo_an_tim_hieu_ly_thuyet_va_xay_dung_firewall_tren_nen_linux.doc