Tìm hiểu và xây dựng hệ thống Firewall1.2.1.1 Khả năng của Firewall Những khả năng của Firewall có thể làm đối với một hệ thống mạng bao gồm: - Firewall đóng vai trò một chốt chặn, mọi d
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.dut.edu.vn, E-mail: cntt@dut.udn.vn
BÁO CÁO ĐỒ ÁN MÔN HỌC
LẬP TRÌNH MẠNG
ĐỀ TÀI : TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FIREWALL
SINH VIÊN : XXX
Đà Nẵng, 06/2014
Trang 2MỤC LỤC
MỞ ĐẦU
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1
1.1 MẠNG MÁY TÍNH 1
1.2 CƠ CHẾ FIREWALL 2
1.3 Kết chương 3
CHƯƠNG 2 THIẾT KẾ XÂY DỰNG CHƯƠNG TRÌNH 4
2.1 PHÁT BIỂU BÀI TOÁN 4
2.2 PHÂN TÍCH CHỨC NĂNG 4
2.3 THIẾT KẾ XÂY DỰNG CÁC MÔĐUN 6
CHƯƠNG 3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 11
3.1 Môi trường triển khai 11
3.2 Kết quả thực hiện các chức năng 11
[1] XXX 17
[2] XXX 17
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 3DANH MỤC HÌNH ẢNH
HÌNH 1 MẠNG MÁY TÍNH 1
HÌNH 2 FIREWALL BẢO VỆ HỆ THỐNG MẠNG 2
HÌNH 3 CÁC CHỨC NĂNG CHÍNH CỦA HỆ THỐNG 4
HÌNH 4 SƠ ĐỒ THÊM LUẬT MỚI VÀO HỆ THỐNG 6
HÌNH 5 SƠ ĐỒ KIỂM TRA VÀ CHẶN IP 6
HÌNH 6 SƠ ĐỒ THÊM MỘT ỨNG DỤNG CẦN CHẶN 8
HÌNH 7 SƠ ĐỒ CHẶN ỨNG DỤNG 8
HÌNH 8 SƠ ĐỒ CHỌN QUÉT CỔNG 10
HÌNH 9 GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH 11
HÌNH 10 TRƯỚC KHI CHẶN IP 12
HÌNH 11 SAU KHI CHẶN IP 13
HÌNH 12 CHẶN ỨNG DỤNG TRUY CẬP MẠNG 14
HÌNH 13 TRƯỚC KHI BẢO VỆ QUÉT CỔNG 15
HÌNH 14 SAU KHI BẢO VỆ QUÉT CỔNG 15
Trang 4MỞ ĐẦU
1 GIỚI THIỆU
Từ khi mạng máy tính được hình thành, các máy tính đã không chỉ được sửdụng một cách độc lập mà có thể kết nối lại với nhau Thông qua mạng máy tính,các thông tin, dữ liệu sẽ được trao đổi giữa các máy tính với nhau, các tài nguyênphần cứng cũng như phần mềm được chia sẻ sử dụng chung Người dùng đượccung cấp các tiện ích để sử dụng các nguồn tài nguyên này như trình duyệt (Webbrowser), thư điện tử (Email), truyền dẫn tập tin …
Tuy nhiên, cùng với việc các máy tính được kết nối với nhau thì nguy cơ bịmất cắp thông tin của người dùng càng trở nên phổ biến, đặc biệt là các năm trởlại đây Qua đó đặt ra yêu cầu cấp thiết là xây dựng các công cụ, phần mềm giúpngười dùng bảo vệ được các thông tin, dữ liệu của mình trước nguy cơ của cáccuộc tấn công mạng
2 MỤC TIÊU CỦA ĐỀ TÀI
Nắm rõ được cách máy tính truy cập đến một địa chỉ để từ đó có thể chặnđược sự truy cập của máy tính đến địa chỉ đó
Nắm rõ được cách một phần mềm đăng kí với hệ thống máy tính để có thểtruy cập vào mạng máy tính để từ đó có thể chặn được sự truy cập của phần mềmxác định vào mạng máy tính
Xây dựng được chương trình mô phỏng thực hiện đầy đủ các chức năngtrên
Hiểu được cách thức máy tính truy cập vào hệ thống mạng máy tính ở mức
độ hệ thống, qua đó, từ đó hiểu được nguy cơ và cách thức phòng chống các mốinguy hiểm từ mạng máy tính
3 PHƯƠNG PHÁP TRIỂN KHAI
4 BỐ CỤC ĐỒ ÁN
Chương 1: Các cơ sở lý thuyết liên quan đến mạng máy tính và đề tài
Trang 5Chương 2: Phân tích các chức năng của đề tài Thiết kế xây dựng nên cácchức năng và chương trình.
Chương 3: Thực thi chương trình, kiểm thử sự hoạt động của các chức năng,đánh giá kết quả nhận được
Trang 6Chương 1 CƠ SỞ LÝ THUYẾT
1.1 MẠNG MÁY TÍNH
Hình 1 Mạng máy tính
Mạng máy tính hay hệ thống mạng (tiếng Anh: computer network haynetwork system), được thiết lập khi có từ 2 máy vi tính trở lên kết nối với nhau đểchia sẻ tài nguyên: máy in, máy fax, tệp tin, dữ liệu
Một máy tính được gọi là tự hoạt (autonomous) nếu nó có thể khởi động,vận hành các phần mềm đã cài đặt và tắt máy mà không cần phải có sự điều khiểnhay chi phối bởi một máy tính khác
Các thành phần của mạng có thể bao gồm:
Các hệ thống đầu cuối (end system) kết nối với nhau tạo thành mạng, có thể
là các máy tính hoặc các thiết bị khác Nói chung hiện nay ngày càng nhiều cácloại thiết bị có khả năng kết nối vào mạng máy tính như điện thoại di động, PDA,tivi,
Môi trường truyền (media) mà các thao tác truyền thông được thực hiện qua
đó Môi trường truyền có thể là các loại dây dẫn (dây cáp), sóng điện từ (đối vớicác mạng không dây)
Tên tác giả, LỚP XXX
Trang 7Tìm hiểu và xây dựng hệ thống Firewall
Giao thức truyền thông (protocol) là các quy tắc quy định cách trao đổi dữliệu giữa các thực thể
Hình 2 Firewall bảo vệ hệ thống mạng
Hoạt động của một hệ thống Firewall về cơ bản đảm bảo các chức năng sau:
- Ngăn chặn các truy nhập bất hợp pháp từ ngoài vào trong hệ thống
- Hạn chế các truy nhập từ trong hệ thống ra ngoài
Xây dựng Firewall là một biện pháp khá hữu hiệu, nó cho phép bảo vệ vàkiểm soát hầu hết các dịch vụ, do đó được áp dụng phổ biến nhất trong các biệnpháp bảo vệ mạng Thông thường, một hệ thống Firewall là một cổng (gateway)giữa mạng nội bộ giao tiếp với mạng bên ngoài và ngược lại Để Firewall làm việcđược hiệu quả, tất cả các thông tin được trao đổi từ trong ra ngoài và ngược lại đềuphải được kiểm soát bởi Firewall
Trang 8Tìm hiểu và xây dựng hệ thống Firewall
1.2.1.1 Khả năng của Firewall
Những khả năng của Firewall có thể làm đối với một hệ thống mạng bao gồm:
- Firewall đóng vai trò một chốt chặn, mọi dòng thông tin đi vào hay đi ramột mạng nội bộ đều được nó kiểm soát Hoạt động của nó theo các chínhsách an toàn đã được cài đặt
- XXX
1.2.1.2 Những hạn chế của Firewall
Ngoài những khả năng trờn thì Firewall có những hạn chế nhất định sau:
- Firewall không thể bảo vệ trước những kẻ phá hoại từ bên trong Đánh cắp
dữ liệu, làm hư hỏng phần cứng và phần mềm hay thay đổi chương trình màkhông cần đến gần Firewall
- XXX
1.2.2 Kiến trúc của Firewall
Kiến trúc của Firewall được chia ra thành nhiều loại, mỗi loại có những lợithế và bất lợi riêng Việc thiết lập, cài đặt một kiến trúc Firewall phụ thuộc vào hệthống mạng, kinh phí, yêu cầu về độ an toàn v.v Một Firewall có thể tuân theomột trong những kiến trúc sau:
- XXX
1.3 Kết chương
Họ tên sinh viên, Lớp
Trang 9Tìm hiểu và xây dựng hệ thống Firewall
Chương 2 THIẾT KẾ XÂY DỰNG CHƯƠNG TRÌNH
2.1 PHÁT BIỂU BÀI TOÁN
Xây dựng một chương trình Firewall thực hiện các chức năng sau:
- Chặn hệ thống kết nối tới một địa chỉ IP xác định
- Chặn một phần mềm trong máy tính thực hiện kết nối vào hệ thống mạng
- Hỗ trợ bảo vệ hệ thống khỏi việc quét các cổng của hệ thống
2.2.2 Chặn ứng dụng
Bất kì một ứng dụng nào cũng sẽ đăng kí với hệ thống thông qua một mã số
là Application ID Hệ thống sẽ sử dụng mã số này để quản lý việc ứng dụng truycập vào hệ thống mạng Vì vậy, để thực hiên việc chặn một ứng dụng, ta sẽ kiểmtra mã số Application ID , nếu trùng với mã số bị chặn thì ta sẽ thực hiện việc chặnứng dụng truy cập hệ thống mạng
Họ tên sinh viên, Lớp
Trang 10Tìm hiểu và xây dựng hệ thống Firewall
Với chức năng này, chương trình sẽ quét tất cả các ứng dụng, sau đó chọn ứngdụng mà ta muốn chương trình chặn truy cập vào hệ thống mạng Sau khi chươngtrình thực thi, nếu ứng dụng có trong danh sách chặn thực hiện bất kì việc kết nốivào hệ thống mạng thì chương trình sẽ chặn kết nối đó lại
2.2.3 Bảo vệ quét cổng
Khi một kẻ muốn tấn công vào hệ thống, thông thường họ sẽ thực hiện việcquét từng cổng của hệ thống Nếu hệ thống phản hồi lại một thông báo chấp nhậnkết nối, kẻ tấn công sẽ biết được cổng đó được mở và sẽ sử dụng cho việc tấn công
Kẻ tấn công sẽ gởi các gói tin với cờ reset để duy kì kết nối và thực hiện việc độtnhập Còn nếu như hệ thống gởi lại một gói tin với cờ reset thì họ sẽ biết đượccổng đó đã đóng hoặc đã được lọc Vì vậy, để có thể xây dựng chương trình có thểbảo vệ hệ thống khỏi việc quét cổng, ta sẽ ngăn cản việc hết thống phản hồi kể cảthông báo chấp nhận lẫn reset khi bị kẻ tấn công quét cổng
Họ tên sinh viên, Lớp
Trang 11Tìm hiểu và xây dựng hệ thống Firewall
2.3 THIẾT KẾ XÂY DỰNG CÁC MÔĐUN
2.3.1 Chức năng chặn địa chỉ IP
Hình 4 Sơ đồ thêm luật mới vào hệ thống
Hình 5 Sơ đồ kiểm tra và chặn IP
B1 Xây dựng cấu trúc để lưu các địa chỉ IP được nhận vào để chặn:
Họ tên sinh viên, Lớp
Trang 12Tìm hiểu và xây dựng hệ thống Firewall
typedef struct _PFBlocked {
1 Tạo interface cho bộ lọc gói
2 Liên kết interface này tới hệ thống Windows Filtering Platform
3 Thêm các địa chỉ trong danh sách chặn vào bộ lọc
4 Từ đây, thông qua WFP, chương trình sẽ giám sát mỗi kết nối của hệ thống,nếu khi có một kết nối đến một địa chỉ IP có thông tin trùng với thông tintrong bộ lọc thì chương trình sẽ chặn kết nối đó lại cho đến khi dừng chươngtrình
B4 Khi dừng, chương trình sẽ thực hiện ngược lại để giải phóng việc chặn kết nốinhư sau:
1 Xóa bỏ tất cả các địa chỉ đã thêm ra khỏi bộ lọc
2 Xóa bỏ liên kết interface của bộ lọc đến hệ thống
3 Xóa bỏ interface
4 Làm rỗng hoàn toàn các danh sách chặn và danh sách IP thêm vào
Họ tên sinh viên, Lớp
Trang 13Tìm hiểu và xây dựng hệ thống Firewall
Trang 14Tìm hiểu và xây dựng hệ thống Firewall
B2 Sau khi chương trình khởi chạy, chương trình sẽ duyệt qua tất cả các ứng dụng
mà người dùng đã chọn và lưu vào danh sách dưới dạng cấu trúc sau:
typedef struct _APPBlocked {
1 Tạo interface cho bộ lọc ứng dụng
2 Liên kết interface này tới hệ thống Windows Filtering Platform
3 Thêm các ứng dụng trong danh sách chặn vào bộ lọc
4 Từ đây, thông qua WFP, chương trình sẽ giám sát mỗi khi có một ứng dụngthực hiện kết nối vào mạng, nếu ứng dụng đó có thông tin trùng với thôngtin trong bộ lọc thì chương trình sẽ chặn kết nối của ứng dụng đó lại cho đếnkhi dừng chương trình
B5 Khi dừng, chương trình sẽ thực hiện ngược lại để giải phóng việc chặn ứngdụng như sau:
1 Xóa bỏ tất cả các ứng dụng đã thêm ra khỏi bộ lọc
2 Xóa bỏ liên kết interface của bộ lọc đến hệ thống
3 Xóa bỏ interface
4 Làm rỗng hoàn toàn các danh sách chặn và danh sách ứng dụng thêm vào
Họ tên sinh viên, Lớp
Trang 15Tìm hiểu và xây dựng hệ thống Firewall
2.3.3 Chức năng bảo vệ quét cổng
Hình 8 Sơ đồ chọn quét cổng
B1 Khi chương trình chạy, chương trình sẽ kiểm tra tùy chọn bảo vệ quét cổng cóđược chọn hay không, nếu có thì:
1 Tạo interface cho tùy chọn bảo vệ quét cổng
2 Liên kết interface này đến hệ thống Windows Filtering Platform
3 Từ đây, thông qua hệ thống WFP, chương trình sẽ giám sát mỗi khi có kếtnối nào đến hệ thống thực hiện hành vi kiểm tra các cổng thì chương trình
sẽ chặn việc phản hồi của hệ thống cả thông điệp chấp nhận lẫn reset
B2 Sau khi kết thúc, chương trình sẽ thực hiện các bước ngược lại để thực hiệngiải phóng kết nối như sau:
1 Hủy bỏ việc chặn hệ thống phản hồi thông tin
2 Hủy bỏ liên kết của interface đến hệ thống
3 Xóa bỏ interface của chức năng này
Trang 16Tìm hiểu và xây dựng hệ thống Firewall
Chương 3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
3.1 Môi trường triển khai
Chương trình được viết bằng ngôn ngữ Visual C++, sử dụng bộ công cụ VisualStudio 2008
Môi trường áp dụng: hệ điều hành Windows 7 Để chương trình có thể hoạtđộng tốt các chức năng, trong đề tài này em sẽ thực hiện trên một hệ thống vừađược cài đặt, không có bất kì chương trình bảo mật nào khác, tường lửa của hệthống cũng sẽ được tắt đi
3.2 Kết quả thực hiện các chức năng
Hình 9 Giao diện chính của chương trình
3.2.1 Chức năng chặn truy cập vào địa chỉ IP
Trước khi chạy hệ thống, dùng trình duyện IE mặc định vẫn truy cập vàotrang web bình thường (ở đây là trang vnexpress.net)
Trang 17Tìm hiểu và xây dựng hệ thống Firewall
Tắt trang và mở lại trang web, vì chương trình chặn kết nối nên trang web
sẽ không load được cho đến khi ta nhấn nút để dừng chương trình
Trang 18Tìm hiểu và xây dựng hệ thống Firewall
Hình 11 Sau khi chặn IP
3.2.2 Chức năng chặn ứng dụng
Lúc mới chạy chương trình lần đầu, ta nhấn nút để chương trình quét tất
cả ứng dụng, sau đó sẽ hiển thị vào khung bên cạnh đồng thời lưu lại vào file test,lần sử dụng tiếp theo, chúng ta chỉ cần nhấn nút để chương trình load lại cácthông tin file
Sau khi chương trình hiển thị các file xong, ta chọn file cần chặn (ở đâychọn file thực thi của trình duyệt IE) và khởi chạy chương trình
Việc truy cập vào các trang web bây giờ của trình duyệt IE hoàn toàn bịngắt, khi ta tắt chương trình, việc truy cập trở lại như bình thường
Trang 19Tìm hiểu và xây dựng hệ thống Firewall
Hình 12 Chặn ứng dụng truy cập mạng
3.2.3 Bảo vệ quét cổng
Sử dụng phần mềm Nmap để giả lập việc quét cổng, ta có các thông tinchuẩn bị sau:
IP máy nạn nhân (máy ta cài đặt chương trình): 192.168.189.129
IP máy zoombie (máy ảo tham gia quét cổng): 192.168.189.128
IP máy tấn công (máy cài đặt phần mềm Nmap): 192.168.1.100
Thực hiện quét 1000 cổng từ 1-1000 khi chưa sử dụng tùy chọn bảo vệ quétcổng
Trang 20Tìm hiểu và xây dựng hệ thống Firewall
Hình 13 Trước khi bảo vệ quét cổng
Chương trình cho thấy 3 cổng được mở Thực hiện lần nữa với tùy chọn bảo
vệ quét cổng, ta được kết quả
Hình 14 Sau khi bảo vệ quét cổng
Ta thấy chương trình đã phần nào hạn chế được việc quét các cổng (bây giờchỉ còn 1 cổng mở)
Trang 21Tìm hiểu và xây dựng hệ thống Firewall
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1 KẾT QUẢ ĐẠT ĐƯỢC
Chương trình đã đáp ứng được tương đối đầy đủ các yêu cầu mà một tườnglửa cần có:
Người dùng nhập vào một địa chỉ IP cần chặn, kèm theo đó là một cổng
và giao thức dùng để kết nối, chương trình sẽ chặn kết nối đến địa chỉ IP
đó bằng giao thức đã chọn, chương trình hỗ trợ nhiều loại giao thức khácnhau
Chương trình hỗ trợ chặn một ứng dụng kết nối vào mạng Chương trình
sẽ quét toàn bộ các file thực thi (file exe) và người dùng sẽ chọn file đểchặn (một hay nhiều file cùng lúc) Chương trình sẽ chặn file mà ngườidùng đã chọn đó Chương trình còn lưu lại đường dẫn của file lại để lầnsau thực hiện truy cập file nhanh hơn
Đồng thời cũng bảo vệ hệ thống trước vấn đề quét các cổng Khi chọntiện ích này chương trình sẽ ngăn các phản hồi của hệ thống lại trước mọiyêu cầu truy cập cổng kể cả do chương trình bình thường lẫn chươngtrình quét cổng tự động
2 NHỮNG VẤN ĐỀ TỒN TẠI
Hệ thống còn đơn giản, thực hiện được các chức năng cơ bản
Cần cải thiện thêm để các chức năng thực hiện tốt hơn: quét cổng …
3 HƯỚNG PHÁT TRIỂN
Hoàn thiện giao diện, hợp lý và thân thiện cho người dùng hơn
Phát triển trên các chức năng hỗ trợ cho người dùng
Cải tiến hệ thống để chạy ổn định hơn
Trang 22TÀI LIỆU THAM KHẢO
[1] XXX
[2] XXX
PHỤ LỤC