Tải bản đầy đủ (.doc) (22 trang)

TÌM HIỂU và xây DỰNG hệ THỐNG FIREWALL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.34 MB, 22 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA 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 771
Website: itf.dut.edu.vn, E-mail:

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
LỚP : YYY
CBHD : ZZZ
Đà Nẵng, 06/2014
MỤ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
DANH 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
MỞ ĐẦ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ên
phần cứng cũng như phần mềm được chia sẻ sử dụng chung. Người dùng được
cung 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 (Web
browser), 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úp
ngườ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ác
cuộ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ềm
xá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ăng
trê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ối
nguy 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.
Chươ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ác
chứ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.
Chươ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 hay
network 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ển
hay 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ác

loạ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ới
các mạng không dây).
Tên tác giả, LỚP XXX
Tì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ể.
- xxx
- xxx
1.2 CƠ CHẾ FIREWALL
1.2.1 Giới thiệu
Firewall là một kỹ thuật được tích hợp vào hệ thống mạng nhằm ngăn cản
những gì bất hợp pháp đi ra và vào mạng. Hệ thống Firewall thường bao gồm cả
phần cứng và phần mềm. Firewall thường được dùng theo phương thức ngăn chặn
hay tạo các luật đối với các địa chỉ khác nhau.
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ện
phá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 đều
phải được kiểm soát bởi Firewall.
Họ tên sinh viên, Lớp 2
Tì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 ra
một mạng nội bộ đều được nó kiểm soát. Hoạt động của nó theo các chính
sá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ợi
thế 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 theo
một trong những kiến trúc sau:
- XXX
1.3 Kết chương
Họ tên sinh viên, Lớp
Tì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 PHÂN TÍCH CHỨC NĂNG
Hình 3 Các chức năng chính của hệ thống
Như hình trên, chương trình sẽ có 3 chức năng chính:
2.2.1 Chặn địa chỉ IP

Với chức năng này, ta nhập vào một địa chỉ IP cùng với một số hiệu cổng và
giao thức kết nối. Khi chương trình hoạt động, mỗi khi hệ thống kết nối tới một địa
chỉ IP có số hiệu cổng và giao thức xác định, chương trình sẽ xem xét các thông tin
trên với thông tin về các địa chỉ IP đã được nạp vào chương trình để ra quyết định
chặn lại hay cho đi qua.
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 truy
cậ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ểm
tra 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
Tì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 ứng
dụng mà ta muốn chương trình chặn truy cập vào hệ thống mạng. Sau khi chương
trì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ối
và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ệc
qué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ận
kế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 đột
nhậ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 được
cổ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
Tì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
Tìm hiểu và xây dựng hệ thống Firewall
typedef struct _PFBlocked {
char *IP;
UINT16 Port;
UINT8 Protocol;
};
B2. Đưa tất cả các địa chỉ IP đã được nhập vào danh sách chặn, danh sách này
được xây dựng bằng cấu trúc sau:
typedef struct _pFILTERINFO {
BYTE ByteAddr[4];
ULONG HexAddr;
UINT64 OutFilterID;
UINT64 InFilterID;
UINT16 Port;
UINT8 Protocol;
}
B3. Sau khi thực thi chương trình, nếu danh sách địa chỉ IP khác rỗng thì chương
trình sẽ thực hiện việc chặn địa chỉ IP theo trình từ sau:
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 tin
trong bộ lọc thì chương trình sẽ chặn kết nối đó lại cho đến khi dừng chương
trì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ối

như 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
Tìm hiểu và xây dựng hệ thống Firewall
2.3.2 Chức năng chặn ứng dụng
Hình 6 Sơ đồ thêm một ứng dụng cần chặn
Hình 7 Sơ đồ chặn ứng dụng
B1. Ta tiến hành quết tất cả các file thực thi (.exe) và hiện lên cho người dùng
chọn.
Họ tên sinh viên, Lớp
Tì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 {
char *appBlock;
unsigned int length;
}
B3. Chương trình sẽ đưa tất cả các danh sách ứng dụng này vào danh sách chặn
của chương trình thông qua cấu trúc:
typedef struct _aFILTERINFO {
UINT64 FilterID4;
UINT64 FilterID6;
DWORD appID;
wchar_t *appPath;
}
B4. Nếu danh sách khác rỗng, chương trình sẽ thực hiện việc chặn ứng dụng theo
trình tự sau:

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ụng
thự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ông
tin trong bộ lọc thì chương trình sẽ chặn kết nối của ứng dụng đó lại cho đến
khi 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 ứng
dụ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
Tì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ết
nố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ện
giả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.
Họ tên sinh viên, Lớp 10

Tì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ụ Visual
Studio 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ào
trang web bình thường (ở đây là trang vnexpress.net)
Họ tên sinh viên, Lớp 11
Tìm hiểu và xây dựng hệ thống Firewall
Hình 10 Trước khi chặn IP
Dùng cmd của hệ thống ping đến trang wed để lấy địa chỉ IP, sau đó thêm
vào chương trình các thông tin sau:
IP Address: 111.65.248.132
Port: 80
Protocols: TCP
Sau đó nhấn vào nút để thêm địa chỉ cần chặn vào chương trình và nhấn
vào nút để chạy chương trình
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.
Họ tên sinh viên, Lớp 12
Tì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ác
thông tin file.
Sau khi chương trình hiển thị các file xong, ta chọn file cần chặn (ở đây
chọ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.
Họ tên sinh viên, Lớp 13
Tì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 tin
chuẩ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ét
cổng
Họ tên sinh viên, Lớp 14
Tì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ở).
Họ tên sinh viên, Lớp 15
Tì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ường
lử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ác
nhau.
 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ười
dùng đã chọn đó. Chương trình còn lưu lại đường dẫn của file lại để lần
sau 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ọn
tiệ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ọi
yêu cầu truy cập cổng kể cả do chương trình bình thường lẫn chương
trì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.
Họ tên sinh viên, Lớp 16
TÀI LIỆU THAM KHẢO
[1] XXX
[2] XXX
PHỤ LỤC

×