GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
1.2.1 1.2.2 1.2.3 1.2.4 1.2.5
2.1.1 2.1.2 2.1.3
2.1.4 2.1.5
2.2.1 2.2.2
5.5.1 5.5.2 5.5.3 5.5.4 Phần I : Lý Thuyết............................................................................................................ 4 1. Hệ thống lọc gói IPv4............................................................................................ 5 1.1 Hệ thống lọc gói trong IPv4 kiểu phi trạng thái......................................... 6 Lọc dựa trên cổng kết nối.................................................................... 7 Lọc dựa trên các cờ TCP...................................................................... 9 Lọc dựa trên địa chỉ.............................................................................. 9 Lọc các gói phân mảnh ....................................................................... 11 Lọc các gói ICMP................................................................................ 12 Lọc dựa trên Options của IP.............................................................. 12 Lọc các lưu lượng đường hầm ........................................................... 13 IPsec ..................................................................................................... 14 1.2 Hệ thống lọc gói trong IPv4 kiểu có trạng thái ........................................ 16 Lọc dựa vào giao thức TCP................................................................ 17 Lọc các gói UDP .................................................................................. 19 Lọc các gói ICMP................................................................................ 19 Lọc gói dựa trên đặc điểm của lưu lượng ......................................... 20 Lọc các gói phân mảnh ......................................................................... 21 2. Hệ thống lọc gói trong IPv6................................................................................ 22 2.1 Hệ thống lọc gói trong IPv6 kiểu phi trạng thái....................................... 23 Lọc gói dựa trên địa chỉ...................................................................... 24 Lọc các gói ICMPv6............................................................................ 24 Lọc các tiêu đề mở rộng của IPv6...................................................... 25 2.1.3.1 Tiêu đề mở rộng Hop-by-Hop........................................................ 25 2.1.3.2 Tiêu đề mở rộng Destination.......................................................... 25 2.1.3.3 Tiêu đề mở rộng Routing ............................................................... 26 2.1.3.4 Tiêu đề mở rộng Fragment ............................................................ 26 IPsec ................................................................................................. 27 2.1.3.5 Kỹ thuật chuyển tiếp từ IPv4 sang IPv6 ........................................... 28 Lọc các gói tin tại biên của hệ thống mạng IPv6.............................. 28 2.2 Hệ thống lọc gói trong IPv6 kiểu có trạng thái ........................................ 30 Flow Label ........................................................................................... 30 Flow label và lọc gói có trạng thái ..................................................... 31 Phần II : Triển khai hệ thống lọc gói IPv6 trên FreeBSD.......................................... 32 3. Giới thiệu FreeBSD............................................................................................. 33 4. Công cụ lọc gói IPv6 trong FreeBSD................................................................. 34 5. Triển khai hệ thống lọc gói IPv6........................................................................ 36 Đặt vấn đề .................................................................................................... 36 5.1 5.2 Yêu cầu......................................................................................................... 36 5.3 Mô hình mạng ............................................................................................. 36 Tài nguyên sử dụng..................................................................................... 37 5.4 Thực hiện ..................................................................................................... 37 5.5 Xây dựng FreeBSD router ................................................................. 38 Xây dựng Web server IPv6 ................................................................ 38 Xây dựng DNS server IPv6 ................................................................ 38 Cấu hình SSH cho phép điều khiển truy cập từ xa.......................... 40 Xây dựng kịch bản và triển khai lọc gói ................................................... 41 5.6
Sinh viên: Nguyễn Thanh Sơn 1
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5.6.1 5.6.2 5.6.3 5.6.4
Phần III : Phần Phụ lục
7.3.1 7.4
7.4.1 7.4.2 7.4.3
7.6.1 7.6.2 7.6.3 7.6.4
Kiểm thử lưu lượng ICMPv6............................................................. 41 Kiểm thử lưu lượng DNS.................................................................... 43 Kiểm thử lưu lượng Web.................................................................... 44 Điều khiển lưu lượng SSH.................................................................. 45 Kết Luận ............................................................................................... 48 Giới Thiệu Hạ Tầng IPv6 ............................................................... 50 6. Giới thiệu IPv6 .................................................................................................... 50 7. Hạ tầng IPv6........................................................................................................ 50 Tiêu đề IPv6..................................................................................................... 50 7.1 Tiêu đề mở rộng .............................................................................................. 51 7.2 Cấu trúc địa chỉ mới ....................................................................................... 55 7.3 Định danh Interface (interface ID)........................................................ 56 Các loại địa chỉ trong IPv6............................................................................. 56 Địa chỉ Unicast......................................................................................... 57 Địa chỉ Anycast........................................................................................ 60 Địa chỉ Multicast ..................................................................................... 60 7.5 Giao thức ICMPv6.......................................................................................... 61 7.6 Giao thức Neighbor discovery ....................................................................... 62 Các loại thông điệp Neighbor Discovery............................................... 62 Định dạng của Neighbor Discovery options ......................................... 64 Neighbor Discovery và các thông điệp Options tương ứng................. 66 Các chức năng hoạt động của Neighbor Discovery ............................. 67 7.6.4.1 Duplicate address detection ............................................................... 67 7.6.4.2 Neighbor Unreachability Detection................................................... 67 7.6.4.3 Network prefix assignment ................................................................ 67 7.6.4.4 Tự động cấu hình địa chỉ.................................................................... 68
Sinh viên: Nguyễn Thanh Sơn 2
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Lời giới thiệu
Hệ thống lọc gói cho phép lọc lưu lượng vào và ra hệ thống mạng của tổ chức, nhằm chống lại những truy cập trái phép hoặc hạn chế những truy cập ra bên ngoài.
Khi hệ thống mạng internet có xu hướng chuyển dần sang môi trường IPv6 để thỏa mãn nhu cầu về không gian địa chỉ, cũng như những ưu điểm trong hổ trợ điều khiển chất lượng dịch vụ và bảo mật truyền thông, thì hệ thống lọc gói IPv6 vẫn tiếp tục được sử dụng, phát triển khả năng kiểm tra và ngăn chặn bước đầu trong chiến lược bảo mật hệ thống mạng của một tổ chức.
Do tính thời sự của nhu cầu chuyển tiếp sang mạng IPv6 cũng như sự cấp thiết bảo mật hệ thống mạng, Tôi đã chọn đề tài “nghiên cứu Hệ Thống Lọc Gói Trong IPv6” cho đồ án tốt nghiệp của mình.
Đề tài được triển khai trên hệ thống mã nguồn mở, sử dụng hệ điều hành FreeBSD và được chia thành 4 phần như sau:
Phần 1: lý thuyết hệ thống lọc gói, giới thiệu về lý thuyết lọc gói của IPv4 và IPv6.
Phần 2: thực hành, giới thiệu và mô tả những ưu điểm của FreeBSD. Triển khai hệ thống lọc gói trên FreeBSD.
Phần 3: kết luận, đánh giá những kết quả đạt được của đồ án, những thiếu xót, hạn chế và hưóng phát triển của đề tài.
Phần phụ lục: trong phần này, giới thiệu về hạ tầng mạng IPv6 nhằm làm rõ hơn lý thuyết lọc gói của IPv6.
Tháng 11, năm 2006
Sinh viên Nguyễn Thanh Sơn
Sinh viên: Nguyễn Thanh Sơn 3
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Phần I : Lý Thuyết
Trong phần này, tập trung làm rõ lý thuyết lọc gói, phân tích các loại lưu lượng, nhận dạng và đưa ra cách giải quyết. Từ đó, có cái nhìn tổng quan về hệ thống lọc gói, tạo tiền đề triển khai trên hệ thống thực.
Nội dung chính của phần này gồm: 1. Hệ thống lọc gói IPv4
1.1 1.2 Hệ thống lọc gói trong IPv4 kiểu phi trạng thái Hệ thống lọc gói trong IPv4 kiểu có trạng thái
2. Hệ thống lọc gói trong IPv6
2.1 2.2 Hệ thống lọc gói trong IPv6 kiểu phi trạng thái Hệ thống lọc gói trong IPv6 kiểu có trạng thái
Sinh viên: Nguyễn Thanh Sơn 4
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1. Hệ thống lọc gói IPv4
Lọc gói là một hệ thống thực hiện việc kiểm tra và lọc lưu lượng trên một host hay tại một ví trí cần thiết trong hạ tầng mạng của một tổ chức.
Các thành tố chính của một hệ thống lọc gói là:
Chính sách (policy) •
• Luật (rules): áp dụng cụ thể chính sách vào hệ thống lọc gói thông qua công tác nhận diện lưu lượng và điều khiển lưu lượng tương ứng. Cụ thể như :
o Nhận diện lưu lượng: hệ thống lọc gói dựa vào một số tiêu chí để nhận diện lưu lượng như: điểm xuất phát của lưu lượng, điểm đến lưu lượng , lọai lưu lượng (web, mail, telnet..), đặc điểm lưu lượng (fragment, cờ TCP (syn, cờ rst…).
o Điều khiển lưu lượng: hệ thống lọc gói điều khiển lưu lượng bằng cách cho phép các gói tin đi qua (allow), chặn các gói tin lại (drop) hoặc chuyển tiếp các gói tin (forward)…
Hệ thống lọc gói hoạt động thông qua cơ chế so khớp các gói tin dựa trên các luật được định nghĩa trước.
Trong hệ thống lọc gói IPv4 có hai trường hợp: lọc gói trong IPv4 kiểu phi trạng thái và lọc gói trong IPv4 kiểu có trạng thái.
Sinh viên: Nguyễn Thanh Sơn 5
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.1 Hệ thống lọc gói trong IPv4 kiểu phi trạng thái
Trong hệ thống lọc gói IPv4 phi trạng thái, các luật nhận diện và điều khiển lưu lượng gói tin không phụ thuộc vào các gói tin được gởi và nhận trước đó. Tại mỗi thời điểm, nó chỉ kiểm tra một gói tin và so khớp với các luật được định nghĩa trước dựa trên các thông tin trong tiêu đề IP, và tiêu đề TCP.
Hình 1: hệ thống lọc gói phi trạng thái IPv4
Vì thế, cơ chế hoạt động của lọc gói IPv4 phi trạng thái dựa trên cơ sở nhận diện lưu lượng như: loại lưu lượng, điểm xuất phát, điểm đến hay các đặc điểm của lưu lượng.
Các phần sau đây sẽ làm rỏ hơn cơ chế này.
Lọc dựa trên cổng kết nối Lọc dựa trên các cờ TCP Lọc dựa trên địa chỉ Lọc các gói phân mảnh Lọc các gói ICMP Lọc dựa trên Options của IP Lọc các lưu lượng đường hầm IPsec 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
Sinh viên: Nguyễn Thanh Sơn 6
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.1.1 Lọc dựa trên cổng kết nối
Lọc gói dựa trên cổng kết nối (port) được sử dụng như những chính sách bảo mật cơ bản ban đầu. Giao thức TCP và UDP sử dụng cổng kết nối để xác định hai đầu cuối của một kết nối, những cổng kết nối này được chia thành những dãy khác nhau với những mục đích khác nhau.
Cổng kết nối từ 1-1023 dành riêng cho hệ thống (system port), chỉ những tiến trình có đặc quyền mới được gán chúng trong chương trình. Điều này được tạo ra nhằm ngăn chặn người sử dụng (user) bình thường thiết lập kết nối tới những cổng kết nối này.
Các cổng kết nối từ 1024-4999 dành cho các kết nối được sử dụng bởi một máy trạm (client) tới máy chủ (server). Trong thời gian hoạt động của máy trạm, một cổng kết nối trong dãy này sẽ được gán, trừ những trường hợp máy trạm có những yêu cầu một cổng kết nối đặc biệt.
Cổng kết nối từ 5000-65535 được sử dụng cho những dịch vụ ít phổ biến trên internet, được gán không cố định hoặc không xác định trước.
Sự giả mạo cổng kết nối có thể xảy ra nếu một dịch vụ được thiết lập trên một dịch vụ khác sử dụng cổng kết nối hệ thống. ví dụ: SSH có thể hoạt động trên cổng kết nối của HTTP và HTTPs. Những cổng kết nối HTTP luôn được mở để để các lưu lượng Web đi qua, trong khi đó, cổng kết nối SSH có thể bị hệ thống lọc gói chặn lại.
Việc mở cổng kết nối phụ thuộc vào chính sách của tổ chức. Một số cổng kết nối luôn mở như DNS (53), Web (80). Một số cổng kết nối khác tùy thuộc vào nhu cầu sử dụng của tổ chức, để có những chính sách sử dụng phù hợp và bảo mật.
Ví dụ: một tổ chức cho phép điều khiển truy cập từ xa thông qua cổng kết nối 22, sử dụng SSH. Các luật sau sẽ thể hiện điều này:
add allow tcp from any to any 22
Bảng 1, sẽ mô tả cổng kết nối của một số dịch vụ và giao thức được sử dụng.
Bảng 1: các dịch vụ và cổng kết nối tương ứng
Sinh viên: Nguyễn Thanh Sơn 7
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Một số dịch vụ sử dụng cả hai giao thức TCP và UDP, vì thế cần có những chính sách sử dụng phù hợp cho từng loại giao thức. Ví dụ, dịch vụ DNS sử dụng cả TCP và UDP. Quá trình “zone transfer” của DNS
với DNS master chỉ cần sử dụng TCP, các luật sau sẽ thể hiện điều này: add allow tcp fromany to DNS-server 53 add deny udp from any to DNS-server 53
Hệ thống lọc gói cũng phải quan tâm tới một số dịch vụ có những tính chất đặc
biệt khi sử dụng cổng kết nối, cụ thể như • Lọc các gói FTP
Dịch vụ FTP cần được quan tâm đặc biệt khi lọc gói, bởi vì cách thức hoạt động của chúng. FTP sử dụng hai kết nối TCP tách rời để truyền file: cổng 21 được sử dụng cho các lệnh FTP và cổng 20 được sử dụng để truyền dữ liệu.
FTP có 2 phương pháp để thiết lập truyền dữ liệu, phụ thuộc vào kết nối được bắt đầu từ máy trạm (client) hay máy chủ (server).
Kết nối từ máy chủ tới máy trạm (server-to-client) được gọi là cơ chế active mode FTP, máy trạm lắng nghe trên một cổng kết nối bất kỳ và báo cho máy chủ biết điều này qua cổng 21. Sau đó máy chủ sẽ mở một kết nối tới cổng kết nối này thông qua cổng 20 để thực hiện truỳên dữ liệu.
Hình 2: FTP active mode
Kết nối từ máy trạm tới máy chủ (client-to-server) được gọi là passive mode FTP. Máy trạm gởi câu lệnh thông báo cổng kết nối tới máy chủ thông qua cổng kết nối 21 tại thời điểm bắt đầu kết nối. Máy chủ sử dụng cổng 20 để truỳên dữ liệu tới cổng kết nối được thông báo.
Hình 3: FTP passive mode
Sinh viên: Nguyễn Thanh Sơn 8
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Trong hệ thống lọc gói IPv4 kiểu phi trạng thái, không thể xứ lý được những lưu lượng chuyển cổng kết nối như FTP.
Trong trường hợp FTP sử dụng cơ chế “passive mode”, khi đó kết nối từ máy trạm tới máy chủ chỉ mở một cổng kết nối, lúc đó có thể cấu hình hệ thống lọc gói cho phép lưu lượng FTP đi qua bằng cách khống chế cổng kết nối từ máy trạm có địa chỉ cố định.
những luật sau đây cho phép các gói tin Passive FTP đi vào và đi ra.
/*Passive FTP from me to other places*/ add allow tcp from myip to anyip ftp out via eth0 add allow tcp from myip 49152-65534 to anyip 49152-65534 out via eth0
/*Passive FTP to me*/ add allow tcp from anyip to myip ftp in via eth0 add allow tcp from anyip 49152-65534 to myip 49152-65534 in via eth0
1.1.2 Lọc dựa trên các cờ TCP
Giao thức TCP sử dụng “three-way handshake” để thiết lập kết nối giữa 2 host, three-way handshake gồm có ba loại gói tin: SYN (yêu cầu mở kết nối), SYN/ACK và ACK (thông báo gói SYN đã được nhận và kết thúc thiết lập kết nối).
Hình 4: Three-way handshake
Hệ thống lọc gói phi trạng thái chỉ xử lý từng gói tin riêng lẽ và không phụ thuộc vào các gói trước đó, do đó, không xử lý được được kết nối có trạng thái của TCP. Để xử lý những kết nối có trạng thái như TCP, phải dùng hệ thống lọc gói IPv4 kiểu có trạng thái.
1.1.3 Lọc dựa trên địa chỉ
Địa chỉ là một trong những thông tin cơ bản được dùng để xác định lưu lượng của hệ thống lọc gói. Địa chỉ thường được sử dụng cho những dịch vụ có địa chỉ cố định, như DNS, Mail... Hệ thống lọc gói dựa vào địa chỉ nguồn và địa chỉ đích để xác định lưu lượng và so khớp với các luật được định nghĩa trước.
Sinh viên: Nguyễn Thanh Sơn 9
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Trường hợp, cổng kết nối được xác định trước, thì lọc gói dựa trên địa chỉ là một phương pháp hữu hiệu để ngăn chặn các truy cập trái phép tới các địa chỉ đặc biệt được xác định trước, cụ thể như DNS-server hoặc Mail-server...
Trong hình 5, chỉ cho phép TCP từ gateway DNS truy vấn tới inside DNS qua port 53. Còn tất cả lưu lượng khác đến inside DNS đều bị chặn lại.
Hình 5: Lọc các gói DNS
Các luật thể hiện quá trình này:
allow tcp from gateway-DNS to inside-DNS 53 deny tcp from any to inside-DNS 53
1.1.3.1 Lọc các gói đi vào và đi ra tại các biên của hệ thống mạng
Tại các biên của hệ thống mạng (edge of network), các gói tin từ bên ngoài đi vào hệ thống mạng bên trong, có địa chỉ xuất phát là địa chỉ riêng (private), địa chỉ loopback, địa chỉ không được chỉ định...thì đó là những gói tin có địa chỉ giả mạo. Hệ thống lọc gói cần phải được cấu hình để nhận ra những loại lưu lượng này và chặn chúng lại.
Lọc gói tại các biên của hệ thống mạng cần nhận dạng các lưu lượng không hợp lệ sau:
Địa chỉ không được chỉ định • Địa chỉ nguồn hoặc đích là địa chỉ chỉ riêng (private). • Địa chỉ nguồn là địa chỉ broadcast. • Địa chỉ loopback không phải của interface loopback. • Địa chỉ nguồn là địa chỉ multicast. • Địa chỉ đích là những địa chỉ multicast không phù hợp. • • Địa chỉ nguồn quá dài so với subnet mà gói tin được dự trù trước
Tại biên của hệ thống mạng, các gói tin đi ra phải hợp lệ. Những gói tin thuộc subnet nội bộ thì cần được chặn lại.
Các luật sau sẽ chặn các gói gói tin có địa chỉ private đi ra ngoài tại biên của hệ thống mạng:
/*Private Addresses should not enter or leave the network*/ add deny all from 10.0.0.0/8 to anyip out via eth0 add deny all from 192.168.0.0/16 to anyip out via eth0 add deny all from 172.16.0.0/12 to anyip out via eth0 add deny all from 10.0.0.0/8 to mynet in via eth0
Sinh viên: Nguyễn Thanh Sơn 10
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
add deny all from 192.168.0.0/16 to mynet in via eth0 add deny all from 172.16.0.0/12 to mynet in via eth0
1.1.4 Lọc các gói phân mảnh
Có những trường hợp, hệ thống lọc gói IPv4 sẽ gặp khó khăn trong xử lý , cụ thể là các gói phân mảnh.
Nếu một gói tin có kích thước lớn hơn giá trị MTU (maximum transfer unit) muốn gởi đi, chúng sẽ được phân mảnh (Fragment) thành những gói nhỏ hơn, mỗi gói được chứa đầy đủ thông tin để tái hợp lại khi tới đích. Khi gói tin bị tách ra, những thông tin tiêu đề của lớp trên sẽ không còn đầy đủ (chẳng hạn tiêu đề TCP), điều này làm cho việc xử lý của hệ thống lọc gói IPv4 kiểu phi trạng thái gặp khó khăn.
Hình 6: Các gói tin phân mảnh
Để xử lý các gói tin bị phân mảnh, hệ thống lọc gói IPv4 kiểu phi trạng thái thường đệm lại để tái hợp các gói tin trước khi xử lý. Khi đó, gói tin gốc ban đầu được khôi phục, các thông tin của lớp vận chuyển (transport) đươc tái hợp đầy đủ.
Để các gói tin có kích thước lớn có thể được truyền đi trên mạng, giải pháp PMTU (path maximum transfer unit) được sử dụng.
• Giải pháp PMTU
Giải pháp PMTU được đưa ra, để giúp các host trên mạng xác định được kích thước lớn nhất của một gói tin có thể được truyền mà không phải phân mảnh.
PMTU hoạt động bằng cách gởi một gói tin có thiết lập cờ “don’t fragment” trong tiêu đề IP và gởi tới đích. Nếu có bất cứ MTU nào trên đường truyền nhỏ hơn kích thước của gói tin, gói tin sẽ bị loại bỏ bởi router và gởi về một ICMP thông báo không thể phân mảnh (ICMP can’t fragment). Khi đó, host nguồn sẽ điều chỉnh kích thước của gói tin phù hợp với kích thước MTU nhỏ nhất của các node trung gian.
Quá trình PMTU phụ thuộc vào thông điệp ICMP thông báo lỗi (icmp don’t fragment). Nếu host nguồn không nhận được gói ICMP thông báo lỗi, thì chúng sẽ không biết gói tin gởi đi có kích thước lớn hơn kích thước MTU, và chúng tiếp tục gởi các gói tin.
Sinh viên: Nguyễn Thanh Sơn 11
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Tuy nhiên, những gói tin ICMP thường bị hệ thống lọc gói chặn lại, vì chúng có thể được sử dụng để tấn công từ chối dịch vụ (DOS). Khi đó, những gói tin ICMP thông báo lỗi sẽ không được gởi trả về tới host nguồn của quá trình PMTU.
Để quá trình PMTU có thể thực hiện đựoc, thì hệ thống lọc gói cần được cấu hình cho phép “ICMP don’t fragment” đi qua. Khi đó, các gói tin có thể được gởi đi mà không cần phân mảnh. 1.1.5 Lọc các gói ICMP
Giao thức ICMP là một phần của hệ thống mạng, được sử dụng để xác định trạng thái của mạng IP. Việc xử lý các thông điệp này cần được cân nhắc kỹ lưỡng trong chính sách bảo mật của hệ thống mạng.
Những thông điệp ICMP như: ICMP don’t fragment, Network unreachable, Parameter problem, nên được phép đi qua hệ thống lọc gói, để giúp cho hệ thống mạng hoạt động tốt hơn.
Ví dụ, hệ thống lọc gói sẽ cho phép các gói tin ICMP don’t fragment đi qua.
add allow icmp from any to any icmptype don't fragment Những loại thông điệp ICMP khác không phục vụ cho quá trình truyền các gói IP thì cần được chặn lại bởi hệ thống lọc gói.
1.1.6 Lọc dựa trên Options của IP
Trường Options là một phần thêm vào của tiêu đề IP, làm thay đổi thông tin và chiều dài của gói tin, thường được sử dụng cho các dịch vụ bảo mật (ít khi được sử dụng trong các dịch vụ thường và ít được hổ trợ bởi host hoặc router). Source routing là một option mà vẫn còn được sử dụng, mặc dù lí do sử dụng chúng đều không hợp lí,có hai hình thức của source routing là: “strict source routing và loose source routing”.
“Strict source routing” thì không bao giờ được sử dụng, nó chỉ rõ con đường gói tin phải đi tới đích, trong khi đó, tình trạng mạng có thể thay đổi, IP lại không sử dụng truỳên có kết nối, khi đó, router làm nhiệm vụ định tuyến quyết định đường đi của gói tin.
Hình thức phổ biến hơn, “loose source routing” còn được sử dụng, chỉ rõ một hoặc nhiều hops mà gói tin phải đi qua để tới đích, đích tới sẽ gởi trả về một gói “inverse of the route” chỉ rõ trong tiêu đề routing. Loose source routing có thể được lợi dụng để gởi những gói tin từ địa chỉ giả mạo đi qua máy của kẻ tấn công để lấy thông tin của destination từ “inverse of the route”.
Do đó, những gói IP có options là source routing thường bị chặn lại bởi hệ thống
lọc gói.
Sinh viên: Nguyễn Thanh Sơn 12
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.1.7 Lọc các lưu lượng đường hầm
Tạo đường hầm (Tunnelling) là một tiến trình, gởi một gói tin bằng cách đóng gói gói tin trong một giao thức khác để chuyển tiếp tới đích. Khi gói tin đến điểm cuối của kết nối, tiêu đề đóng gói được tách ra và gói tin gốc được xem xét. Chúng có thể được sử dụng trong nhiều ngữ cảnh khác nhau, cụ thể như: chuyển tiếp IPv6, hoặc IPsec…
Hình 7: Các quá trình tạo đường hầm
Tạo đường hầm trong IPsec là một phương pháp hữa ích để gởi dữ liệu qua mạng không tin cậy (internet). IPsec cung cấp những chức năng này bằng cách mã hóa các tiêu đề tại lớp mạng và làm việc bằng đường hầm.
Trong quá trình tạo đường hầm, thông tin tiêu đề của gói tin gốc được mã hóa và đóng gói bên trong một giao thức khác, vì thế, hệ thống lọc gói IPv4 kiểu phi trạng thái gặp nhiều khó khăn khi xử lý lưu lượng đường hầm.
Nếu hệ thống mạng không cần kết nối tới mạng IPv6 thì những giao thức đường hầm được sử dụng để chuyển tiếp giữa IPv4 và IPv6 sẽ bị hệ thống lọc gói chặn lại.
Để xử lý lưu lượng đường hầm một cách hợp lý, hệ thống lọc gói IPv4 kiểu phi trạng thái thường kết hợp với hệ thống lọc gói ở lớp ứng dụng.
Trường hợp tạo đường hầm khi sử dụng IPsec, thường được hệ thống lọc gói cho phép đi qua, và được xử lý tiếp theo ở lớp ứng dụng (thường là điểm cuối của kết nối đường hầm).
Sinh viên: Nguyễn Thanh Sơn 13
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.1.8 IPsec
Mục đích của IPsec là cung cấp cơ chế truyền end-to-end và những dịch vụ bảo mật tại lớp mạng (Network). Những dịch vụ này bao gồm điều khiển truy cập, tính toàn vẹn dữ liệu, xác thực và sự tin cậy dữ liệu.
Trong IPsec hổ trợ 2 cơ chế truyền:
• Cơ chế vận chuyển (Transport mode).
• Tạo đường hầm (tunnel).
IPsec mã hóa dữ liệu theo hai cách:
• AH (Authentication header).
• ESP (Encapsulating Security Payload)
Trong cơ chế vận chuyển, AH và ESP được sử dụng để bảo vệ tiêu đề của lớp vận chuyển (transport). Chúng mã hóa gói tin khi chuyển từ lớp vận chuyển xuống lớp mạng.
Trong hình sau, A và B là 2 host được cấu hình truyền theo cơ chế vận chuyển, các gói tin ở lớp vận chuyển được mã hóa trong quá trình truyền.
Hình 8: Cơ chế vận chuyển
Hình 9: Định dạng gói tin trong phương thức vận chuyển
Sinh viên: Nguyễn Thanh Sơn 14
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Cơ chế tạo đường hầm trong IPsec thường được sử dụng khi đích tới sau cùng của gói tin là điểm kết thúc của một cơ chế bảo mật khác (hình 9). Cơ chế này còn được sử dụng khi sự bảo mật được cung cấp bởi một thiết bị không phải là nơi xuất phát của gói tin gốc ban đầu, ví dụ như VPNs.
Hình 10: Cơ chế tạo đường hầm trong IPsec
Hình 11: Định dạng gói tin IPsec trong cơ chế đường hầm. Các gói tin IPsec được nhận dạng bằng trường ID trong tiêu đề của IP (AH: 51, ESP: 50)
Hệ thống lọc gói trong IPv4 kiểu phi trạng thái gặp nhiều khó khăn trong viêc xử lý các gói IPsec, do tiêu đề của lớp mạng và lớp vận chuyển được mã hóa, vì thế, các thông tin tại các tiêu đề này không được xem xét bởi hệ thống lọc gói.
Để xử lý các gói IPsec, hệ thống lọc gói IPv4 kiểu phi trạng thái thường kết hợp với lọc gói ở lớp ứng dụng. Khi đó, các gói IPsec sẽ được cho phép đi qua hệ thống lọc gói và được xử lý tại lớp ứng dụng.
Một điểm đặc biệt của IPsec trong IPv4 là trên quá trình truyền các gói tin không được phép phân mảnh. Điều này do việc mã hóa trong IPsec xảy ra trước quá trình phân mảnh, vì thế, chúng sử dụng PMTU để tạo các gói IPsec có kích thứơc phù hợp với MTU, kích thước này phụ thuộc vào giao thức và thuật toán mã hóa được sử dụng trong IPsec.
Sinh viên: Nguyễn Thanh Sơn 15
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.2 Hệ thống lọc gói trong IPv4 kiểu có trạng thái
Trong hệ thống lọc gói phi trạng thái, việc nhận dạng lưu lượng chỉ dựa vào một số thông tin đơn giản trong tiêu đề của IP và tiêu đề lớp vận chuyển. Tại mỗi thời điểm hệ thống lọc gói phi trạng thái chỉ xử lý một gói tin.
Do đó, hệ thống lọc gói phi trạng thái chỉ xử lý được những gói tin đơn giản, truyền không kết nối. Hệ thống lọc gói phi trạng thái không thể xử lý các gói tin truyền có kết nối, hoặc những gói tin được phân mảnh.
Để giải quyết những hạn chế của hệ thống lọc gói phi trạng thái, hệ thống lọc gói IPv4 kiểu có trạng thái được sử dụng.
Hệ thống lọc gói IPv4 kiểu có trạng thái hoạt động dựa vào trạng thái của mỗi kết nối được nhận diện khi gói tin đi qua hệ thống lọc gói. Hệ thống lọc gói lưu giữ các trạng thái này dựa trên các thông tin về địa chỉ nguồn, địa chỉ đích, cổng kết nối nguồn, cổng kết nối đích…
Trong lọc gói IPv4 kiểu có trạng thái, lưu lượng được nhận dạng dựa trên quá trình truyền gói tin có kết nối (TCP), hoặc không có kết nối (UDP và ICMP).
Trong phần này gồm các nội dụng chính sau: 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 Lọc dựa vào giao thức TCP Lọc các gói UDP Lọc các gói ICMP Lọc gói dựa trên đặc điểm của lưu lượng Lọc các gói phân mảnh
Sinh viên: Nguyễn Thanh Sơn 16
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.2.1 Lọc dựa vào giao thức TCP
Trong TCP, sau khi hoàn tất giai đoạn thiết lập kết nối “three way handshare”, một thông tin về socket của hai đầu cuối cùng với số trình tự (sequence number) của các gói tin được lưu lại trong bảng trạng thái. Thông tin này được sử dụng để so khớp với các gói tin đến sau của cùng kết nối.
Hình 12: Kết nối TCP và lọc gói có trạng thái.
Dựa vào thông tin trong bảng trạng thái, hệ thống lọc gói sẽ so khớp với các gói tin của cùng luồng kết nối dựa trên những luật được định nghĩa trước. Số trình tự được dùng để kiểm tra tính đúng đắn của các gói tin dựa trên thứ tự của chúng. Một gói tin ACK có số trình tự không hợp lệ, được coi là giả mào và bị hệ thống lọc gói loại bỏ.
Trạng thái của gói tin được hủy bỏ khi kết thúc quá trình truyền của một luồng TCP. Khi đó, cờ FIN sẽ được gởi, hệ thống lọc gói nhận diện cờ này, và hủy bỏ trạng thái của luồng kết nối này.
Trạng thái của gói tin được lưu giữ trong bảng trạng thái có thể bị hủy bỏ dựa vào thời gian “time-out” được định nghĩa trước bởi người quản trị. Nếu sau khoảng thời gian time-out các luồng kết nối trên ngưng hoạt động, thì trạng thái của luồng lưu lượng này sẽ bị loại bỏ.
Một tùy chọn của time out là “keep-alives”. Trong trường hợp này, trước khi trạng thái bị hủy bỏ, hệ thống lọc gói sẽ gởi một gói ACK để báo gói tin cuối cùng nhận được. Nếu host còn hoạt động, nó sẽ gởi trả về một gói ACK và trạng thái kết nối được làm mới (refresh), nếu host không còn tồn tại, hệ thống lọc gói sẽ gởi gói RST và hủy bỏ trạng thái của kết nối.
Một trường hợp hủy bỏ kết nối sử dụng time out là: khi một host bị đổ vở thì những gói FIN hoặc RST sẽ không bao giờ được gởi đi, khi đó trạng thái sẽ bị loại bỏ dựa vào giới hạn thời gian tồn tại của trạng thái (time-out).
Trong một số trường hợp (chẳng hạn kết nối SSH) cần thời gian time-out lâu hơn thì phương pháp keep-alives thường được sử dụng hơn.
Sinh viên: Nguyễn Thanh Sơn 17
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 13, sẽ mô tả việc thiết lập kết nối, tạo trạng thái và xử lý của một gói tin
TCP.
Hình 13 : Quá trình tạo trạng thái kết nối
(1): TCP SYN segment from : 60.55.33.12 :62600 to 123.80.5.34 :80
(2): Establish connection.
Bảng kết nối:
Type Internal IP Internal port External IP state External port
TCP 60.55.33.12 62600 123.80.5.34 80 ok
Bảng 2: Trạng thái kết nối
(3): TCP SYN segment from : 60.55.33.12 :62600 to 123.80.5.34 :80
(4): TCP SYN/ACK segment from : 123.80.5.34 :80 to 60.55.33.12 :62600
(5): check connection OK
Bảng kết nối:
Type Internal IP External IP state Internal port External port
TCP 60.55.33.12 62600 123.80.5.34 80 Ok
Bảng 3: Bảng trạng thái kết nối sau khi kiểm tra trạng thái
(6): TCP SYN/ACK segment from 123.80.5.34 :80 to 60.55.33.12 :62600
Sinh viên: Nguyễn Thanh Sơn 18
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.2.2 Lọc các gói UDP
Trong UDP không thể kiểm tra trạng thái của các kết nối bởi vì nó không định nghĩa kết nối (không có bắt đầu và kết thúc rõ ràng). Tuy nhiên, lọc gói có trạng thái vẫn lưu giữ trạng thái của các gói UDP dựa vào địa chỉ nguồn, địa chỉ đích, cổng kết nối nguồn, cổng kết nối đích. Những kết nối cùng địa chỉ nguồn và địa chỉ đích được xem như một kết nối UDP.
Do UDP không xác định rõ ràng phần bắt đầu và kết thúc của kết nối, nên phương pháp “timeout” được sử dụng để tạo và xóa trạng thái của kết nối.
Ví dụ: hình 11, mô tả một host phân giải (resolve) một địa chỉ bằng DNS. Host sẽ gởi một gói UDP tới DNS-server để tìm một địa chỉ tương ứng. Khi đó, một trạng thái sẽ được tạo trong bảng trạng thái dựa vào địa chỉ nguồn, địa chỉ đích, cổng kết nối nguồn, cổng kết nối đích. Trạng thái này được gán thời gian timeout là rất ngắn (thường được thiết lập là dưới 1 phút). Nếu trong khoảng thời gian time-out, không có bất kỳ gói tin reply nào được nhận, trạng thái sẽ bị hủy bỏ và gói tin sẽ không được phép đi qua hệ thống lọc gói những lần sau đó.
Hình 14: Lọc các gói UDP
1.2.3 Lọc các gói ICMP
Trong ICMP, một số thông điệp được dùng mô tả lỗi khi gởi đi các lưu lượng TCP hoặc UDP, chẳng hạn ICMP “time exceede”, “port unreachable”, “packet too big”… Khi đó, những gói ICMP này được xem như một phần của thiết lập kết nối, chúng cũng được lưu giữ trạng thái.
Trong trường hợp PMTU, hệ thống lọc gói sẽ lưu trạng thái của gói dựa vào địa chỉ nguồn và địa chỉ đích, sau đó, so khớp với các thông tin trong tiêu đề của gói ICMP gởi trả về.
Cũng giống như UDP, trạng thái của các gói ICMP cũng được hủy bỏ dựa vào time-out. Ví dụ, hệ thống lọc gói lưu giữ trạng thái các gói ICMP truy vấn dựa vào địa chỉ nguồn và địa chỉ đích, sau đó dùng để so khớp với các gói ICMP trả lời (ICMP reply). Nếu việc so khớp thỏa, các gói ICMP này sẽ được cho qua hệ thống lọc gói, nếu không sẽ bị loại bỏ. Điều này cho phép các máy tính bên trong hệ thống lọc gói có thể “ping” tới các host từ xa, nhưng không cho phép host từ xa “ping” tới hệ thống mạng bên trong, và giá trị timeout vẫn được sử dụng để lưu giữ trạng thái.
Sinh viên: Nguyễn Thanh Sơn 19
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.2.4 Lọc gói dựa trên đặc điểm của lưu lượng
Một số lưu lượng có những đặc điểm đặc biệt, cụ thể như FTP. Việc gởi yêu cầu kết nối và truyền dữ liệu được sử dụng hai cổng kết nối khác nhau. Để hệ thống lọc gói xử lý đúng đắn lưu lượng FTP, việc tạo trạng thái phải dựa vào đặc tính riêng của chúng.
Hình 14, mô tả quá trình thiết lập kết nối và lưu giữ trạng thái của lưu lượng FTP- passive. Khi máy trạm gởi một yêu cầu kết nối tới cổng 21 của máy chủ, hệ thống lọc gói sẽ tạo một trạng thái dựa trên địa chỉ nguồn, địa chỉ đích và cổng kết nối 21. Trạng thái này sẽ được so khớp với gói tin trả về của FTP server. Nhung bản chất của FPT là kết nối trên cổng 21 và truyền dữ liệu trên cổng 20, nên hệ thống lọc gói sẽ kiểm tra cổng 20 của kết nối FTP trong quá trình trả lời của FTP-server.
Hình 15: Lọc có trạng thái và lưu lượng FTP
(1): TCP SYN segment from: 60.55.33.12 : 62600 to: 123.80.5.34:21
(2): to estaplish connection
(3): TCP SYN segment from: 60.55.33.12 : 62600 to: 123.80.5.34 : 21
(4): TCP SYN/ACK segment from: 123.80.5.34 :20 to 60.55.33.12 :55336 (sử dụng cổng 20 để truyền dữ liệu).
(5): to allow, estaplish second connect
(6): TCP SYN/ACK segment from 123.80.5.34 :20 to 60.55.33.12 :55336
Bảng trạng thái:
Type Internal IP External IP State Internal port External port
(2)
(5)
TCP 60.55.33.12 62600 123.80.5.34 Ok 21
TCP 60.55.33.12 55336 123.80.5.34 Ok 20
Bảng 4: trạng thái kết nối của FTP
Sinh viên: Nguyễn Thanh Sơn 20
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1.2.5 Lọc các gói phân mảnh
Trong lọc gói có trạng thái, trạng thái của các gói phân mảnh được lưu giữ dựa trên địa chỉ nguồn và địa chỉ đích. Khi gói tin phân mảnh đầu tiên đi qua hệ thống lọc gói, một trạng thái được tạo ra. Trạng thái này được sử dụng để so khớp với các gói tin đến sau của cùng luồng kết nối này. Nếu trong khoảng thời gian time-out, không có gói phân mảnh tiếp theo của cùng luồng kết nối này tới hệ thống lọc gói, trạng thái sẽ bị hủy bỏ và các gói tin phân mảnh đến sau sẽ bị hệ thống lọc gói chặn lại.
Sinh viên: Nguyễn Thanh Sơn 21
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2. Hệ thống lọc gói trong IPv6
Không có sự thay đổi lớn nào trong hệ thống lọc gói của IPv6 đối với IPv4 ngoại trừ một số tính năng mới được bổ sung vào hệ thống lọc gói đề phù hợp với các loại lưu lượng trong môi trường này, cụ thể như: khám phá các node lân cận (Neighbor discovery), tự động cấu hình (Autoconfiguration) và các đặc điểm mới của giao thức này như: nhiều loại địa chỉ trên một interface, hoặc các tiêu đề mở rộng (extension header)…
Hệ thống lọc gói trong IPv6 cũng được triển khai theo hai kiểu: lọc gói phi trạng thái và lọc gói có trạng thái.
Trong phần này gồm các nội dung chính sau:
2.1 Hệ thống lọc gói trong IPv6 kiểu phi trạng thái
Hệ thống lọc gói trong IPv6 kiểu có trạng thái 2.2
Sinh viên: Nguyễn Thanh Sơn 22
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.1 Hệ thống lọc gói trong IPv6 kiểu phi trạng thái
Hệ thống lọc gói trong IPv6 kiểu phi trạng thái hoạt động cũng giống lọc gói trong IPv4. cũng dựa vào những tiêu chí như địa chỉ nguồn, địa chỉ đích, cổng kết nối...để xác định gói tin và xử lý dựa trên những luật được định nghĩa trước.
Hệ thống lọc gói trong IPv6 kiểu phi trạng thái cũng xử lý trên từng gói tin riêng lẽ và không phụ thuộc vào các gói tin trước đó của cùng kết nối.
Trong phần này gồm các nội dung chính sau: 2.1.1 2.1.2 2.1.3
Lọc gói dựa trên địa chỉ Lọc các gói ICMPv6 Lọc các tiêu đề mở rộng của IPv6 2.1.3.1 Tiêu đề mở rộng Hop-by-Hop 2.1.3.2 Tiêu đề mở rộng Destination 2.1.3.3 Tiêu đề mở rộng Routing 2.1.3.4 Tiêu đề mở rộng Fragment 2.1.3.5 IPsec
2.1.4 2.1.5 Kỹ thuật chuyển tiếp từ IPv4 sang IPv6 Lọc các gói tin tại biên của hệ thống mạng IPv6
Sinh viên: Nguyễn Thanh Sơn 23
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.1.1 Lọc gói dựa trên địa chỉ
Lọc gói dựa trên địa chỉ trong IPv6 cũng giống như IPv4, các luật cũng được đặt ra cũng dựa vào địa chỉ nguồn và địa chỉ đích. Tuy nhiên, địa chỉ trong IPv6 được phân cấp và có định dạng khác trong IPv4, cụ thể như: trên một interface, có nhiều loại địa chỉ IPv6 khác nhau hoặc cấu hình địa chỉ tự động.
• Nhiều địa chỉ trên một interface
Một node IPv6 có thể có nhiều loại địa chỉ khác nhau, chia theo nhiều tầm vực, có thể gây khó khăn cho hệ thống lọc gói IPv6. Việc xác định loại địa chỉ và tầm vực của gói tin phải dựa vào định dạng cụ thể của từng loại.
Những địa chỉ có tầm vực nằm trong mạng nội bộ, thì bị hệ thống lọc gói chặn lại. • Tự động cấu hình
Tự động cấu hình không trạng thái (stateless autoconfiguration) hoạt động dựa vào những thông điệp ICMPv6 và địa chỉ multicast. Những thông điệp ICMPv6 phục vụ cho quá trình tự động cấu hình chỉ hoạt động trên cùng một link, chẳng hạn địa chỉ link- local “all node” và “all router” và địa chỉ solicited-node multicast (ff02::/16). Vì thế, chúng nên được phép đi qua hệ thống lọc gói.
# Duplicate Address Detection add allow ipv6-icmp from :: to FF02::/16 # RS, RA, NS, NA, redirect... add allow ipv6-icmp from FE80::/10 to FE80::/10 add allow ipv6-icmp from FE80::/10 to FF02::/16
Việc xác định các địa chỉ của một node được cấu hình tự động dựa trên prefix của router cung cấp hoặc kết hợp với DHCPv6.
Cấu hình địa chỉ dựa vào DHCPv6 thì phụ thuộc vào các loại địa chỉ như link- local, site-local và địa chỉ multicast. Những loại lưu lượng này được nhận dạng và chi cho phép hoạt động trong phạm vi được cho phép (phạm vi một link hoặc một site).
# Allow any link-local multicast traffic add allow all from FE80::/10 to FF02::/16 add allow all from mynetwork to FF02::/16
Việc xử lý các gói tin dựa trên địa chỉ của hệ thống lọc gói trong IPv6 kiểu phi trạng thái cũng giống như IPv4, sự khác nhau là ở quá trình nhận dạng địa chỉ các gói tin. 2.1.2 Lọc các gói ICMPv6
Giao thức ICMPv6 cũng được chia thành hai loại chính: error và information.
Một điểm mới của ICMPv6 là được sử dụng để thay thế cho ARP (Address Resolution Protocol) và IGMP.
Cũng giống như IPv4, những thông điệp ICMPv6 mô tả lỗi khi gởi các loại lưu lượng TCP hoặc UDP như: không nhận dạng đích đến (destination unreachable), lỗi về
Sinh viên: Nguyễn Thanh Sơn 24
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
tham số (parameter problem), hoặc những trường hợp không nhận dạng tiêu đề mở rộng… được nhận dạng dựa vào các icmp-types và cho phép đi qua hệ thống lọc gói.
# Allow ICMPv6 destination unreachable and parameter problem add allow ipv6-icmp from any to any icmptypes dest-unreachable, parameter-problem
ICMPv6 thực hiện khám phá các node lân cận (Neighbor discovery) để thay thế cho ARP của IPv4. Giao thức này chỉ hoạt động trong phạm vi một link (trường hop-limit trong tiêu đề IPv6 luôn được thiết lập bằng 255), hệ thống lọc gói nhận dạng chúng qua icmp-types và chặn lại ở biên của hệ thống mạng, hoặc xử lý dựa vào các luật được định nghĩa trước.
2.1.3 Lọc các tiêu đề mở rộng của IPv6
Phần xử lý Options trong IPv4 được thể hiện trong trường next-header của IPv6. Trường next-header của IPv6 sẽ chỉ ra tiêu đề mở rộng tiếp theo được sử dụng trong gói tin IPv6. Những tiêu đề mở rông này sẽ mô tả một số tùy chọn của gói tin IPv6. Những phần sau sẽ làm rõ hơn về vần đề này.
2.1.3.1 Tiêu đề mở rộng Hop-by-Hop
Tiêu đề mở rộng Hop-by-Hop là tiêu đề duy nhất được xử lí bởi tất cả các node trên quá trình truyền, chúng cũng có thể được sử dụng để tấn công DoS, bởi vì trong tiêu đề này không có giới hạn số lượng các options hiện diện.
Hiện tại, chỉ những Options được định nghĩa bởi IETF như: Router Alert, Jumbo- gram và Tunnel Encapsulation là được giới hạn, những Options không được định nghĩa có thể xảy ra nhiều lần trong một gói tin, điều này làm cho router/host cố gắng để xử lí một gói tin quá tải options và chiếm tất cả tài nguyên của CPU dẫn đến tấn công từ chối dịch vụ.
Giải pháp được đưa ra để bảo mật cho trường hợp này là giới hạn mỗi loại option chỉ xảy ra một lần trên một gói tin, ngoại trừ trường hợp của bit đệm PAD1 và PADN, những bit đệm có thể xảy ra bất cứ nơi nào trong tiêu đề hop-by-hop, tuy nhiên những tùy chọn này không được xảy ra liên tiếp nhau trong tiêu đề.
2.1.3.2 Tiêu đề mở rộng Destination
Mục đích sử dụng chính của tiêu đề mở rộng Destination là IPv6 để hổ trợ cho mobility. Những tùy chọn của chúng phục vụ cho những dịch vụ trong tương lai, vì thế hệ thống lọc gói không cần quan tâm tới những tiêu đề mở rộng này.
Tiêu đề mở rộng Destination cũng sử dụng những bit đệm giống như hop-by-hop và có thể gây ra tấn công từ chối dịch vụ, vì thế những bit đệm phải được sử dụng giới hạn để chúng không xảy ra liên tiếp trên cùng một gói tin.
Sinh viên: Nguyễn Thanh Sơn 25
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.1.3.3 Tiêu đề mở rộng Routing
Tiêu đề mở rộng Routing hoạt động giống như “loose source routing” trong IPv4. Tuy nhiên, hiện tại tiêu đề routing chỉ hổ trợ “type 0”, host đích sẽ không sử dụng “inverse route” để gởi trả về cho host nguồn.
Hình 16: Tiến trình xử lý của tiêu đề mở rộng routing.
Tiêu đề mở rộng routing được nhận dạng qua giá trị 43 trong trường next header. Tiêu đề routing cũng được sử dụng để hổ trợ cho mobile IPv6. Vì thế, nếu hệ thống mạng không quan tâm tới mobile IPv6, thì hệ thống lọc gói trong IPv6 nên loại bỏ những gói tin có tiêu đề mở rộng routing.
2.1.3.4 Tiêu đề mở rộng Fragment
Trong IPv6, chỉ những node nguồn mới được phép phân mảnh gói tin, những node trung gian trên đường truyền không được phép phân mảnh gói tin IPv6. Một gói tin phân mảnh được nhận dạng bởi giá trị 44 của trường next header
Sinh viên: Nguyễn Thanh Sơn 26
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 17: Quá trình phân mảnh của một gói tin IPv6
Khi một gói tin bị phân mảnh, tiêu đề mở rộng hoặc thông tin trong phần tiêu đề của lớp vận chuyển có thể không đầy đủ.
Vì vậy, hệ thống lọc gói phi trạng thái không thể xử lý những gói phân mảnh. Trong một vài trường hợp, hệ thống lọc gói IPv6 phi trạng thái có thể được cấu hình để tái hợp những gói phân mảnh trước khi xử lý.
Khi một gói tin có kích thước lớn hơn kích thước MTU muốn gởi đi trên mạng, chúng cần được phân mảnh để tạo thành những gói tin nhỏ hơn, có kích thước phù hợp với MTU. Trong trường hợp gói tin lớn hơn MTU, chúng sẽ bị loại bỏ bởi router.
• Giải pháp PMTU: để những gói tin có kích thước lớn hơn MTU có thể được truyền trên mạng, node nguồn thực hiện quá trình PMTU. Một gói tin lớn hơn MTU bị loại bỏ bởi những node truyền trung gian sẽ gởi về một thông báo lỗi ICMPv6 packet too big. Node nguồn sẽ điều chỉnh kích thước của gói tin để phù với MTU.
2.1.3.5 IPsec
Một trong những điểm mạnh của IPv6 là sử dụng IPsec để cung cấp cơ chế truyền end-to-end giữa hai hệ thống truyền thông đầu cuối. Trong IPv6, IPsec được đưa trực tiếp vào phần tiêu đề, nằm trong hai tiêu đề mở rộng AH:51 và ESP:50. Những kỹ thuật tạo đường hầm và phương thức truyền của IPsec trong IPv6 cũng giống như IPv4.
Do tính hữu ích của IPsec mà hệ thống lọc gói phi trạng thái phải cho phép chúng đi qua. Tuy nhiên, để xử lý một cách đúng đắn các gói IPsec, thì hệ thống lọc gói phi trạng thái cần phải kết hợp với các cơ chế mã hóa và xác thực ở lớp ứng dụng. Khi đó, hệ thống lọc gói cho phép IPsec đi qua và chúng sẽ được xử lý ở lớp ứng dụng.
Sinh viên: Nguyễn Thanh Sơn 27
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.1.4 Kỹ thuật chuyển tiếp từ IPv4 sang IPv6
Kỹ thuật chuyển tiếp là một số giải pháp mạng được đưa ra nhằm hổ trợ quá trình chuyển tiếp từ IPv4 sang IPv6, cụ thể như: dual-stacked (host sử dụng cả 2 giao thức mạng IPv4 và IPv6), các kỹ thuật tạo đường hầm (tunnelling) như: 6over4, 6to4.
• Dual-stack: trong dual-stack, để quá trình xử lý ở lớp ứng dụng được trong suốt, địa chỉ IPv4 sẽ được ánh xạ thành địa chỉ IPv6 (::ffff:ipv4). Những địa chỉ này là địa chỉ cục bộ, vì thế, chúng không được phép đi ra bên ngoài. Tuy nhiên, chúng có thể được sử dụng trong gói tin IPv4 để đánh lừa hệ thống lọc gói IPv4. Những địa chỉ này cần được hệ thống lọc gói IPv6 loại bỏ.
add deny all ipv6 from ::ffff:0.0.0.0/96 to any via eth0 add deny all ipv6 from any to ::ffff:0.0.0.0/96 via eth0
• Tạo đường hầm: trong IPv6, tạo đường hầm là một trong những kỹ thuật chuyển tiếp giúp cho quá trình triển khai IPv6 thực hiện dễ dàng hơn. Các gói tin trong lưu lượng đường hầm được bọc bên trong tiêu đề của đường hầm suốt quá trình truyền gói tin. Vì thế, hệ thống lọc gói không thể nhận dạng và xử lý các gói tin gốc bên trong đường hầm. Để xứ lý lưu lượng đường hầm, chúng cần được de- encapsulation tại biên của hệ thống mạng trước khi được hệ thống lọc gói xử lý.
o Một số kỹ thuật tạo đường hầm phổ biến được sử dụng rộng rãi hiện nay là: 6to4 có prefix 2002::/16 và 6over4.
Hình 18: Cấu trúc của gói tin 6over4.
2.1.5 Lọc các gói tin tại biên của hệ thống mạng IPv6
Lọc những gói tin đi vào và đi ra tại biên của hệ thống mạng IPv6 cũng quan trọng như trong IPv4 nhằm chặn các gói tin có địa chỉ giả mạo.
Đối với những gói tin từ bên ngoài đi vào hệ thống mạng bên trong, nhưng có địa chỉ prefix của mạng bên trong hoặc những gói tin có địa chỉ multicast site-local thì bị loại bỏ bởi hệ thống lọc gói.
#Deny packets with a src addr from local network prefix on outside interface
add deny ipv6 from mynetwork to anyip in via eth0 add deny ipv6 from anyip to mynetwork out via eth0
Những gói tin đi ra bên ngoài phải có địa chỉ không hợp lệ, hoặc những địa chỉ multicast site-local hoặc có địa chỉ prefix là mạng nội bộ thì hệ thống lọc gói sẽ loại bỏ những gói tin này.
Sinh viên: Nguyễn Thanh Sơn 28
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
#Deny Site-Local packets from entering and leaving the network
add deny all from ff05::/16 to anyip via eth0 add deny all from anyip to ff05::/16 via eth0
Bên cạnh những gói tin có địa chỉ không hợp lệ, một số địa chỉ tương thích cũng có khả năng giả mạo, chúng cần được nhận dạng và loại bỏ tại biên của hệ thống mạng. Cụ thể như: địa chỉ private, broadcast, multicask và loopback IPv4 được thêm vào prefix ::/96.
# Disallow packets to malicious IPv4 compatible prefix.
add deny all from ::224.0.0.0/100 to anyip via eth0 add deny all from anyip to ::224.0.0.0/100 via eth0 add deny all from ::127.0.0.0/104 to anyip via eth0 add deny all from anyip to ::127.0.0.0/104 via eth0 add deny all from ::0.0.0.0/104 to anyip via eth0 add deny all from anyip to ::0.0.0.0/104 via eth0 add deny all from ::255.0.0.0/104 to anyip via eth0 add deny all from anyip to ::255.0.0.0/104 via eth0
Những gói tin có prefix là địa chỉ 6to4 (2002::/16) cũng có thể là những địa chỉ giả mạo, chúng cũng có thể bị loại bỏ bởi hệ thống lọc gói.
# Disallow packets to malicious 6to4 prefix.
add deny all from 2002:e000::/20 to anyip via eth0 add deny all from anyip to 2002:e000::/20 via eth0 add deny all from 2002:7f00::/24 to anyip via eth0 add deny all from anyip to 2002:7f00::/24 via eth0 add deny all from 2002:0000::/24 to anyip via eth0 add deny all from anyip to 2002:0000::/24 via eth0 add deny all from 2002:ff00::/24 to anyip via eth0 add deny all from anyip to 2002:ff00::/24 via eth0 add deny all from 2002:0a00::/24 to anyip via eth0 add deny all from anyip to 2002:0a00::/24 via eth0 add deny all from 2002:ac10::/28 to anyip via eth0 add deny all from anyip to 2002:ac10::/28 via eth0 add deny all from 2002:c0a8::/32 to anyip via eth0 add deny all from anyip to 2002:c0a8::/32 via eth0
Sinh viên: Nguyễn Thanh Sơn 29
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.2 Hệ thống lọc gói trong IPv6 kiểu có trạng thái
Về cơ bản, lý thuyết lọc gói trong IPv6 kiểu có trạng thái cũng giống như lý thuyết lọc gói trong IPv4 kiểu có trạng thái. Những vấn đề tạo trạng thái, theo dõi và xử lý trạng thái cũng diễn ra tương tự.
Tuy nhiên, có một số vấn đề mới chỉ có trong IPv6, cụ thể là trạng thái đính nhãn luồng (Flow label).
Những phần sau sẽ mô tả rõ hơn về vấn đề này.
Flow Label Flow label và lọc gói có trạng thái 2.2.1 2.2.2
2.2.1 Flow Label
Trường flow label trong tiêu đề IPv6, chứa những thông tin nhận dạng luồng mà gói tin IPv6 này thuộc về, nhằm hổ trợ cho các cơ chế điều khiển chất lượng dịch vụ (QoS) hay định tuyến cũng như kiểm tra gói tin hợp lệ đối với hệ thống lọc gói có trạng thái.
Flow label là một trường 20 bit trong tiêu đề IPv6, được node nguồn sử dụng để gán nhãn cho một nhóm các gói tin nhằm mục đích dễ dàng nhận dạng và xử lý bởi router. Nhóm gói tin này đựoc gọi là một luồng (Flow).
Flow Label được gán một giá trị ngẫu nhiên trong dãy 0x00001 đến 0xfffff bởi node nguồn, giá trị 0x00000 được dành riêng để chỉ những gói tin không được kết hợp với bất cứ luồng nào. Flow Label có thể được xem là một trạng thái của các gói tin cùng luồng kết nối, nó không bị thay đổi trong quá trình mã hóa của IPsec.
Tất cả gói tin thuộc cùng một luồng được gởi với cùng giá trị Flow Label (khác 0). Vì thế, dựa vào Flow label hệ thống lọc gói có thể xác định duy nhất một luồng IPv6 (địa chỉ nguồn, địa chỉ đích, cổng kết nối).
Nếu một router không hổ trợ xử lý Flow Label chúng sẽ thực hiện như sau:
• Thiết lập giá trị 0 khi gói tin bắt đầu được gởi.
• Cho qua và không thay đổi giá trị Flow Label khi chuyển tiếp gói tin.
• Bỏ qua trường này khi nhận một gói tin IPv6.
Trường Flow Label hiện được sử dụng để xác định mối quan hệ của một luồng dữ liệu nhằm hổ trợ điều khiển chất lượng dịch vụ. Tuy nhiên, Flow Label có thể được sử dụng trong lọc gói có trạng thái, giống như một phương pháp xác định trạng thái của một gói tin trong một luồng kết nối.
Để thiết lập này có thể thực hiện được, trước tiên cần kiểm tra chắc chắn Flow
Label là một hằng số xuyên suốt quá trình khoảng thời gian tồn tại của một luồng. Nhiều hệ điều hành thiết lập giá trị mặc định của Flow Label là 0, trong FreeBSD có thể thay đổi giá trị của Flow Lable (edit sysctl: net.inet6.ip6.auto_ flowlabel).
Sinh viên: Nguyễn Thanh Sơn 30
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
2.2.2
Flow label và lọc gói có trạng thái
Một giá trị không đổi của Flow Label (00000 hoặc một giá trị khác) có thể được sử dụng như một trạng thái được kiểm tra bởi hệ thống lọc gói và dựa vào đó chỉ ra luồng lưu lượng của hai host truyền.
Hình 19: TCP và lọc có trạng thái trong IPv6
Hình 15: Khi host A gởi một gói SYN tới host B để khởi tạo kết nối. Hệ thống lọc gói sẽ tạo một trạng thái mới cho kết nối này dựa vào các giá trị địa chỉ nguồn, địa chỉ đích, cổng kết nối và flow label.
Host B gởi trả về một gói SYN/ACK cho host A với flow label của riêng nó và được lưu lại trong bảng trạng thái.
Host A sẽ gởi gói ACK cuối cùng tới host B để hoàn thành quá trình “three-way handshake”. Tại thời điểm này, hệ thống lọc gói sẽ so khớp giá trị Flow Label trong gói ACK với giá trị Flow label của gói SYN trong bảng trạng thái. Từ đó xử lý các gói tin dựa trên các luật được định nghĩa trước.
Nếu Flow Label trên gói ACK không khớp với giá trị của gói SYN đựoc lưu trong bảng trạng thái, hệ thống lọc gói có thể xử lý như sau:
• Những gói tin có giá trị flow label không khớp sẽ bị chặn lại. • Những gói tin có flow label thay đổi từ 00000 sang một giá trị khác, hệ thống sẽ lưu giá trị flow label mới và cho phép gói tin đi qua. Nếu flow label tiếp tục thay đổi thì gói tin sẽ bị chặn lại. • Cho phép giá trị Flow Label thay đổi một lần trên các thiết lập của các gói SYN hoặc SYN/ACK. Nếu giá trị flow label tiếp tục thay đổi, gói tin sẽ bị chặn lại.
Như vậy, trong IPv6 giá trị Flow Label được thiết lập bởi source host và nó sẽ không thay đổi trong quá trình routing trước khi về đến đích.
Flow Label cùng với src-socket và dst-socket sẽ được lưu vào bộ đệm của hệ thống lọc gói ngay khi thiết lập kết nối TCP (cờ SYN). Sau đó các gói IP có cùng cặp socket này đến FW sẽ được so sánh cho sự trùng khớp với FL đã được lưu ban đầu. Những gói IP không trùng khớp sẽ được xem là gói tin giả mạo và bị dropt, lưu vào log file.
Sinh viên: Nguyễn Thanh Sơn 31
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Phần II : Triển khai hệ thống lọc gói IPv6 trên FreeBSD
Trong phần này gồm các nội dung: Hệ thống lọc gói IPv6 được xây dựng bằng cách áp dụng lý thuyết IPv6 và khả năng hổ trợ công cụ lọc gói của FreeBSD. Trong phần này sẽ giới thiệu FreeBSD, công cụ lọc gói được hổ trợ trên FreeBSD. Tiến hành xây dựng một số dịch vụ IPv6, đưa ra các kịch bản kiểm thử lưu lượng, và xây dựng hệ thống lọc gói phi trạng thái kiểm thử lưu lượng.
3. Giới thiệu FreeBSD 4. Công cụ lọc gói IPv6 trong FreeBSD 5. Triển khai hệ thống lọc gói IPv6
Đặt vấn đề 5.1 5.2 Yêu cầu 5.3 Mô hình mạng 5.4 5.5 Tài nguyên sử dụng Thực hiện
5.5.1 5.5.2 5.5.3 5.5.4 Xây dựng FreeBSD router Xây dựng Web server IPv6 Xây dựng DNS server IPv6 Cấu hình SSH cho phép điều khiển truy cập từ xa 5.6
Xây dựng kịch bản và triển khai lọc gói Kiểm thử lưu lượng ICMPv6 Kiểm thử lưu lượng DNS Kiểm thử lưu lượng Web Điều khiển lưu lượng SSH 5.6.1 5.6.2 5.6.3 5.6.4
Sinh viên: Nguyễn Thanh Sơn 32
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
3. Giới thiệu FreeBSD
FreeBSD là một hệ điều hành mã nguồn mở, được phát triển từ Unix tại trường đại học Berkeley Carlifornia từ năm 1975-1993. FreeBSD hổ trợ độ tin cậy, khả năng thực thi và tính bảo mật cực kỳ mạnh.
Một phép so sánh giữa FreeBSD với Linux về một số chức năng chính cho thấy các ưu điểm của FreeBSD và đó chính là lí do mà Tôi chọn FreeBSD để triển khai công cụ lọc gói IPv6, cụ thể như sau:
FreeBSD Linux
Độ tin cậy FreeBSD
(Reliability)
thì cực kỳ mạnh mẽ, có nhiều chứng nhận về hoạt động của server liên tục trong nhiều năm. Những phần mềm mới được cập nhật liên tục, bảo đảm độ tin cậy cao cho các ứng dụng.
Linux cũng là một hệ điều hành có khả năng tin cậy cao. Nhiều server linux hoạt động trong nhiều năm liên tục. tuy nhiên, disk I/O mặc định không đồng bộ, điều này làm giảm độ tin cậy trong việc xử lý những ứng dụng cơ bản và kết quả có thể dẫn tới là file hệ thống có thể bị sai lạc sau khi hệ thống bị sụp đổ. Thế nhưng đối với người dùng bình thường thì Linux là một hệ điều hành có thể tin cậy được
Khả năng thực thi FreeBSD
(Performance)
tục
dụng
khả năng thực thi tốt, nhưng chỉ đối với một số ứng dụng. Trong môi trường lưu lượng mạng lớn và nặng nề thì Linux không phải là lựa chọn tối ưu. Khả năng thực thi của Linux chỉ bằng khoảng 20-30% so với FreeBSD trong cùng hạ tầng phần cứng. Tuy nhiên, sự thực thi của Linux đã được cải thiện trong kernel 2.4 khi giới thiệu bộ nhớ ảo của hệ thống dựa trên bố nhớ ảo của FreeBSD. Cả 2 hệ điều hành đều là mã nguồn mở, vì thế những kỹ thuật có ích được chia sẽ và sự hội tụ của chúng rất nhanh chóng. là hệ điều lựa chọn cho hành được những ứng dụng mạng yêu cầu sự thực thi cao. FreeBSD thực thi tốt hơn những hệ điều hành khác khi chạy trên cùng phần cứng, nhiều server hoạt động trên liên internet sử dụng FreeBSD có hơn download thể 1,2TB/ngày. FreeBSD được sử bởi Yahoo, Qwest…và nhiều sever khác bởi vì khả năng xử lý lưu lượng lớn với sự thực thi cao.
Tính bảo mật
(Security)
FreeBSD: từng là đề tài kiểm định trong nhiều năm. Tất cả thành phần hệ thống đều được kiểm tra và kiểm tra lại đối với các lỗi bảo mật Tính “mở” trong Linux cho phép bất cứ người nào cũng có thể kiểm tra tính bảo mật của code và thay đổi chúng. Nhưng trong thực tế, chúng được chỉnh sửa từ nhiều
Sinh viên: Nguyễn Thanh Sơn 33
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
lập trình viên thiếu kinh nghiệm, không theo bất kỳ chính sách chung nào. Tuy nhiên, Linux cũng chứa những công cụ lọc gói và phát hiện chống xâm nhập mạnh mẽ.
có liên quan. Toàn bộ hệ thống là mã nguồn mở vì thế tính bảo mật của hệ thống có thể được kiểm định bởi một tổ chức thứ 3. FreeBSD có nhiều mức độ bảo mật cho kernel, có nhiều mức hoạt động đơn giản và mạnh mẽ cho phép người quản trị từ chối truy cập đến một số hàm của hệ điều hành chẳng hạn, chỉ đọc /dev/mem, changing file system flags, or writing to disks without mounting a còn filesystem. FreeBSD chứa rất nhiều công cụ lọc gói mạnh và phát hiện xâm nhập.
Bảng 5: So sánh Linux và FreeBSD 4. Công cụ lọc gói IPv6 trong FreeBSD
Trong FreeBSD có nhiều công cụ hổ trợ lọc gói, ip6fw là một trong những công cụ này, chúng hổ trợ lọc các gói IPv6. Trong phần này, sẽ giới thiệu, cài đặt và sử dụng cộng cụ lọc gói ip6fw, được hổ trợ sẵn trong FreeBSD
IP6fw là một công cụ lọc gói được hổ trợ sẵn trong FreeBSD, cấu trúc câu lệnh đơn giản, dể cấu hình và tương đối giống IPtables của Linux.
Cấu hình FreeBSD enable ip6fw •
Thêm vào /etc/rc.conf
Ipv6-enable=“YES” Ipv6_firewall_enable=“YES” Ipv6_firewall_script=“/etc/rc.firewall6” #chi duong dan file script Ipv6_firewall_type= “client”
Cú pháp và các lệnh cơ bản của ip6fw: •
ip6fw list [number …] : liệt kê các lệnh của ip6fw ip6fw delete [number …] : xóa các lệnh của ip6fw ip6fw add [number …] rule : tạo luật trong ip6fw rule: action proto src dst extras… action: {allow | permit | accept | pass | deny | drop | reject | unreach
code | reset |count | skipto num} [log] proto: {ipv6 | tcp | udp | ipv6-icmp |
Sinh viên: Nguyễn Thanh Sơn 34
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
extras: fragment (may no be used with ports or tcpflags) in out {xmit |recv |via} {iface | ipv6 | any} tcpflags [!] {syn | fin |rst | ack | psh | urg},… ipv6options [!] {hopopt | route | frag | esp | ah | nonxt | opts},… icmptyes {type [,type]}…
Trong IP6FW có 2 cách để tạo các luật: tạo các luật ngoài console (sẽ bị mất đi khi hệ thống khởi động lại) và sử dụng file script.
Sinh viên: Nguyễn Thanh Sơn 35
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5. Triển khai hệ thống lọc gói IPv6
Trong phần này, sẽ triển khai hệ thống lọc gói trên một mô hình mạng đơn giản trong thời gian đầu triển khai IPv6. bằng cách đặt vấn đề và giải quyết vấn đề, sẽ đưa ra được các bước triển khai một hệ thống mạng IPv6 và các dịch vụ trên đó. Sau cùng xây dựng hệ thống lọc gói dựa vào các kịch bản sử dụng dịch vụ của hệ thống mạng.
5.1 Đặt vấn đề
Một tổ chức hoạt động với các dịch vụ hạ tầng đơn giản như: cho phép các host tự động cấu hình địa chỉ phi trạng thái, tên miền được quản lý qua DNSv6 và được chỉ định sẽ zone transfer với ISP-DNS, các host bên trong chỉ được phân giải tên miền qua DNS của công ty. Giả sử, tại thời điểm này, công ty mới phát triển dịch vụ Web. Dịch vụ này cho phép bên ngoài và bên trong truy cập. Ngoài ra, để giám sát, duy trì và quản lý hệ thống mạng liên tục, yêu cầu cho phép quản trị từ xa qua lưu lượng SSH là cần thiết.
Yêu cầu 5.2
Từ những vấn đề được đặt ra như trên, hệ thống mạng cần được xây dựng một Webserver, một DNS server, và cấu hình hệ thống lọc gói để ngăn chặn những truy cập trái phép. Hệ thống lọc gói cũng được cấu hình để cho phép điều khiển truy cập từ xa phục vụ quản trị hệ thống. 5.3 Mô hình mạng
Hình 20: Sơ đồ mạng triển khai hệ thống lọc gói IPv6
Sinh viên: Nguyễn Thanh Sơn 36
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5.4 Tài nguyên sử dụng
Tài nguyên được sử dụng để xây dựng hệ thống mạng gồm 3 máy tính: • Một máy cài hệ điều hành FreeBSD để xây dựng hệ thống lọc gói IPv6 đồng thời đóng vai trò như một router. • Hai máy còn lại cài hệ điều hành Linux được dùng để xây dựng Web- server và DNS-server. • Các gói phần mềm: httpd-2.2.3.tar, bind-9.2.1-16.i386.rpm, bind-utils- 9.2.1-16.i386.rpm, caching-nameserver-7.2-7.noarch.rpm • Sử dụng công cụ Ethereal để bắt gói tin trong quá trình kiểm thử.
5.5 Thực hiện
Do tài nguyên sử dụng để xây dựng chỉ gồm 3 máy, nên mô hình mạng được thay đổi lại cho phù hợp với tài nguyên nhưng vẫn đúng với tinh thần của mô hình mạng ban đầu.
Trong đó A vừa là Web-server vừa là DNS client, B vừa là DNS server vừa là Web-client trong quá trình thực hiện.
Địa chỉ IPv6 của A, B và router đều được cấu hình bằng tay. A: 2001:db8:1eff::100/64 B: 2001:db8:6aff::300/64 Router: E0-2001:db8:1eff::300/64 và E1-2001:db8:6aff::100/64
Hình 21: Mô hình mạng triển khai.
Sinh viên: Nguyễn Thanh Sơn 37
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5.5.1 Xây dựng FreeBSD router
add /etc/sysctl.conf net.inet6.ip6.forwarding=1 # cho phép 2 interface IPv6 forwarding
add /etc/rc.conf
ipv6_enable="YES" ipv6_ifconfig_rl0="2001:db8:1eff::300 prifixlen 64" ipv6_ifconfig_rl1="2001:db8:6aff::300 prifixlen 64" ipv6_gateway_enalbe="YES"
#cấu hình định tuyến cho 2 interface. ipv6_static_routes="net1 net2" ipv6_route_net1="2001:db8:1eff::/64 2001:db8:6aff::300" ipv6_route_net2="2001:db8:6aff::/64 2001:db8:1eff::300"
5.5.2 Xây dựng Web server IPv6
Gói cài đặt Web-server: httpd-2.2.3.tar •
•
Quá trình cài đặt và cấu hình Web-server IPv6 Copy httpd-2.2.3.tar vào thư mục /usr/local và giải nén. [root@thanhson] cd /usr/local/httpd-2.2.3 [root@thanhson] ./config [root@thanhson] make [root@thanhson] make install Thêm vào /etc/httpd/conf/httpd.conf Listen [::]:80 #enable listen IPv6 [root@thanhson] /etc/init.d/httpd start # Khởi động httpd
•
Kiểm tra hoạt động của Webserver: http://127.0.0.1 http://IPv4 http://[::/1] http://[2001:db8:6aff::200]
5.5.3 Xây dựng DNS server IPv6
Các gói để cài đặt DNS server gồm có •
bind-9.2.1-16.i386.rpm bind-utils-9.2.1-16.i386.rpm caching-nameserver-7.2-7.noarch.rpm
Cài đặt DNS server •
rpm -ivh bind-*.rpm rpm -ivh caching-nameserver-*.rpm
Sinh viên: Nguyễn Thanh Sơn 38
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Cấu hình DNS server •
add /etc/named.conf
directory "/var/named"; listen-on-v6 { any;};
type hint; file "named.ca";
type master; file "localhost.zone"; allow-update { none; };
type master; file "named.local"; allow-update { none; };
type master; file "v6.ptit.com.zone";
type master; file "2001:db8:6aff::.rev"; // master server for domain name v6.ptit.com options { }; // config for caching-only nameserver zone "." IN { }; // loopback name lookup zone "localhost" IN { }; // loopback reverse name lookup zone "0.0.127.in-addr.arpa" IN { }; // v6.ptit.com name lookup zone "v6.ptit.com" IN { }; // v6.ptit.com reverse name lookup zone "0.0.0.0.f.f.b.1.8.b.d.0.1.0.0.2.ip6.arpa" IN { };
Xây dựng tập tin zone cho tên miền •
(cid:153) Edit /var/named/v6.ptit.com.zone
$TTL 86400 $ORIGIN v6.ptit.com.
Sinh viên: Nguyễn Thanh Sơn 39
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
@ IN SOA v6.ptit.com. root.v6.ptit.com. (
test.v6.ptit.com. NS
AAAA 2001:db8:6aff::100 AAAA 2001:db8:6aff::101 26102006 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS zeus.v6.ptit.com. IN $ORIGIN v6.ptit.com. IN zeus IN test
(cid:153) Edit /var/named/2001:db8:6aff::.rev
$TTL 86400 @ IN SOA zeus.v6.ptit.com. root.v6.ptit.com. (
IN test.v6.ptit.com. NS
IN PTR 26102006 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN PTR IN NS zeus.v6.ptit.com. $ORIGIN f.f.e.1.8.b.d.0.1.0.0.2.ip6.arpa. 0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 zeus.v6.ptit.com. 1.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 test.v6.ptit.com.
Cập nhật địa chỉ IPv6 của DNSv6 (2001:db8:6aff::100) chứa trong tập tin /etc/resolv.conf cho các host IPv6.
Tập tin /etc/resolv.conf:
search v6.ptit.com nameserver 2001:db8:6aff::100
Khởi động dịch vụ và kiểm tra: /etc/init.d/named start [root@zeus ~]# dig test.v6.ptit.com AAAA
5.5.4 Cấu hình SSH cho phép điều khiển truy cập từ xa
• Cấu hình SSH
#edit /etc/ssh/sshd_config Port 22 Protocol 2 [root@thanhson] /etc/init.d/sshd start #enable SSH
Sinh viên: Nguyễn Thanh Sơn 40
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
• Điều khiển truy cập từ xa bằng SSH:
Trong Linux : [root@thanhson] ssh user@ipv6 Trong Window XP thì dùng phần mềm SecureCRT để điều khiển truy cập
5.6 từ xa bằng SSH. Xây dựng kịch bản và triển khai lọc gói
Dựa vào các yêu cầu của hệ thống mạng, trong phần này sẽ đưa ra các kịch bản đơn giản để kiểm thử hệ thống lọc gói.
5.6.1 Kiểm thử lưu lượng ICMPv6
Hệ thống mạng của công ty cho phép tự động cấu hình địa chỉ phi trạng thái, vì thế, những gói ICMPv6 liên quan tới quá trình này được phép đi qua hệ thống lọc gói.
Những gói ICMP phục vụ cho quá trình truyền các gói IPv6 cũng đựoc phép cho qua hệ thống lọc gói, cụ thể như: ICMPv6 destination unreachable, ICMPv6 parameter problem và ICMPv6 packet too big.
Các gói ICMPv6 khác thì bị hệ thống lọc gói chặn lại.
#cho phép các gói ICMPv6 thực hiện quá trình Autoconfiguration ip6fw add 100 allow ipv6-icmp from :: to FE80::/16 via eth1 ip6fw add 200 allow ipv6-icmp from FE80::/10 to FE80::/10 via eth1 ip6fw add 300 allow ipv6-icmp from FE80::/10 to FE20::/16 via eth1
#cho phép các gói icmpv6 destination unreachable và parameter-problem.
ip6fw add 400 allow ipv6-icmp from any to any icmptypes des- unreachable, parameter-problem via eth1
ip6fw add 500 allow ipv6-icmp from any to any icmptyes packet-too-big # cho phép quá trình PMTU via eth1
ip6fw add 65535 deny ipv6 from any to any
# chặn tất cả các gói tin còn lại Hình 22, được capture tại Host A của mô hình mạng, sẽ mô tả trường hợp hệ thống lọc gói cho phép các gói tin ICMPv6 request và reply đi qua.
Hình 23, được capture tại Host A của mô hình mạng, mô tả trường hợp hệ thống lọc gói chặn các gói ICMPv6 reply.
Sinh viên: Nguyễn Thanh Sơn 41
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 22 : Hệ thống lọc gói cho phép ICMPv6 đi qua
Hình 23:hệ thộng lọc gói chặn các gói ICMPv6 reply.
Sinh viên: Nguyễn Thanh Sơn 42
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5.6.2 Kiểm thử lưu lượng DNS
Như đã xác định ban đầu, DNS-server của công ty chỉ cho phép zone transfer tới ISP-DNS và các host bên trong hệ thống mạng chỉ truy vấn tên miền tới DNS-server. Hệ thống lọc gói sẽ được cấu hình cho phép zone transfer tới ISP-DNS được chỉ định trước, và cho phép các host bên trong hệ thống mạng của công ty truy vấn tên miền thông qua DNS-server. Các lưu lượng khác tới DNS server sẽ bị chặn lai.
# cho phép zone transfer Ip6fw add 100 allow tcp from 2001:db8:1eff::100 to dns-server 53 via eth1 Ip6fw add 200 allow tcp from dns-server to 2001:db8:1eff::100 53 via eth1
#chặn tất cả truy cấp khác đến port 53 Ip6fw add 200 deny tcp from any to any 53 via eth1 Ip6fw add allow ipv6 from any to dns-server Hình 24, thực hiện capture tại host A của mô hình mạng, mô tả quá trình truy vấn tên miền của một host tới DNS server.
Hình 24: Hệ thống lọc gói cho phép lưu lương DNS đi qua
Sinh viên: Nguyễn Thanh Sơn 43
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 25, capture tại host A, mô tả trường hợp hệ thống lọc gói chặn lưu lượng DNS. Trong hình chỉ capture được các gói DNS request.
Hình 25: hệ thống lọc gói chặn lưu lượng DNS 5.6.3 Kiểm thử lưu lượng Web
Dịch vụ Web của công ty, cho phép truy cập từ bên ngoài và bên trong. Hệ thống lọc gói được cấu hình cho phép các gói TCP có cổng kết nối 80 truy cập tới Web-server.
Ip6fw add 100 allow tcp from any to web-server 80 via eth1 Ip6fw add 200 deny tcp from any to any 80 via eth1
Sinh viên: Nguyễn Thanh Sơn 44
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 26, mô tả truy cập Web-server từ Host B. Trong trường hợp này, hệ thống lọc gói được cấu hình cho phép lưu lượng Web đi qua.
Hình 26: Hệ thống lọc gói cho phép lưu lượng Web đi qua.
5.6.4 Điều khiển lưu lượng SSH
Chính sách ban đầu của công ty là cho phép điều khiển từ xa bằng lưu lượng SSH để quản trị hệ thống mạng một cách liên tục. Hệ thống lọc gói sẽ được cấu hình cho phép lưu lượng SSH đi qua.
Ip6fw add 100 allow tcp from any to any 22 in via eth1 Ip6fw add 200 allow tcp from any to any 22 out via eth1
Sinh viên: Nguyễn Thanh Sơn 45
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 27, capture tại host A, sẽ mô tả lưu lượng SSH được phép đi qua hệ thống lọc gói.
Hình 27: Hệ thống lọc gói cho phép lưu lượng SSH đi qua
Sinh viên: Nguyễn Thanh Sơn 46
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Trong hình 28, lưu lượng SSH sẽ bị chặn lại bởi hệ thống lọc gói.
Hình 28: Hệ thống lọc gói chặn lưu lượng SSH
Sinh viên: Nguyễn Thanh Sơn 47
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Kết Luận
Phần III :
Đề tài Hệ Thống Lọc Gói trong IPv6 thoạt nhìn cũng giống như lọc gói trong IPv4, nhưng khi triển khai lại gặp những vấn đề mới, đề tài chỉ kế thừa bản chất của vấn đề, còn việc triển khai thì khác hoàn toàn.
Bên cạnh việc nghiên cứu lý thuyết, đề tài còn triển khai trên hệ thống thực, đặc biệt là triển khai trên mã nguồn mở FreeBSD.
Điểm hay của đề tài là: IPv6, một vấn đề đang được quan tâm rất nhiều, và mang tính sử dụng cao. Một điểm hay nữa là hệ điều hành FreeBSD, đây là một hệ điều hành nhỏ, gọn có nhiều tính năng ưu việt, dành cho triển khai hệ thống Mạng chuyên nghiệp.
Trong quá trình nghiên cứu và triển khai đề tài, Tôi đã gặp một số khó khăn và thách thức, cụ thể như:
• Trước tiên, là việc làm quen với hệ điều hành mới: FreeBSD. Quá trình cài đặt, sử dụng gói và cấu hình một hệ điều hành mới, trên môi trường mới tạo nhiều áp lực cho Tôi. Tôi phải bỏ thời gian hai tuần để làm quen với môi trường mới này.
• Vấn đề thứ hai mà tôi gặp là nghiên cứu một giao thức mới IPv6. Trong giao thức này, ngoài việc kế thừa về cách thức suy luận và bản chất của IPv4, thì những vấn đề còn lại hoàn toàn khác. Tôi đã dành thời gian từ lúc bắt đầu làm đề tài thực tập để nghiên cứu IPv6, thế nhưng khi bắt tay vào làm vẫn gặp nhiều khó khăn, cụ thể là vấn đề địa chỉ trong IPv6.
Tuy nhiên, những khó khăn và thách thức đó đã tạo cho Tôi nhiều áp lực hơn, và phấn đấu làm việc tốt hơn. Tôi cũng tin tưởng đề tài sẽ được triển khai thành công, bởi vì, Tôi biết chắc chắn rằng, hệ thống lọc gói IPv6 đã được triển khai ở một số nơi trên thế giới, và hệ điều hành FreeBSD đã được nhiều tổ chức sử dụng (www.infoweapons.com). Vì thế, những khó khăn mà Tôi gặp phải trong quá trình làm đề tài chắc chắn sẽ có hướng giải quyết.
Tôi đã tiến hành đề tài theo các bước rất căn bản, cụ thể như: để kiểm tra quá trình tự động cấu hình địa chỉ IPv6, Tôi đã bỏ thời gian một tuần để thực hiện kết nối với hệ thống mạng IPv6 thực.
Đề tài cũng giúp Tôi tổng hợp lại một lượng kiến thức lớn đã được học. Thông qua đề tài Tôi đã có:
• Kinh nghiệm và kỹ năng nghiên cứu: cách lên kế hoạch, kỹ năng nghiên cứu, tìm tài liệu và tổng hợp kiến thức.
• Kỹ năng cài đặt hệ thống mạng trên môi trường thực. • Tôi đã có một lượng kiến thức mới về IPv6, về mã nguồn mở và hệ điều hành FreeBSD.
Từ đó, giúp Tôi tự tin khi bước chân ra khỏi giảng đường đại học, chuẩn bị hành trang cho cuộc sống.
Sinh viên: Nguyễn Thanh Sơn 48
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Tuy nhiên, do hạn chế về thời gian và hạ tầng phần cứng, đề tài chỉ triển khai trên hệ thống mạng đơn giản và những dịch vụ đơn giản. Đề tài cũng chỉ mới triển khai hệ thống lọc gói trong IPv6 kiểu phi trạng thái.
Trong thời gian tới, Tôi sẽ tiếp tục triển khai hệ thống lọc gói IPv6 trên môi
trường phức tạp hơn, với đầy đủ các loại lưu lượng và dịch vụ được triển khai.
Tháng 11, năm 2006.
Sinh viên Nguyễn Thanh Son
Sinh viên: Nguyễn Thanh Sơn 49
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Giới Thiệu Hạ Tầng IPv6
Phần Phụ lục 6. Giới thiệu IPv6
Giao thức IP là một phần của giao thức mạng TCP/IP được triển khai rộng rãi trên Internet. IP được sử dụng để cung cấp địa chỉ nhận dạng cho các host riêng biệt và làm chúng có thể liên lạc được với nhau. Hiện tại IPv4 đang được sử dụng, và không có thay đổi nhiều từ lúc được chấp nhận bởi ARPAnet trong những năm cuối thập niên 70, do đó, IPv4 đã bắt đầu xuất hiện những hạn chế.
The Internet Engineering Task Force (IETF) chính thức chấp nhận một giao thức phiên bản mới IPv6 vào ngày 17-11-1994. Mục đích chính của phiên bản mới là mở rộng không gian địa chỉ để sử dụng trong tương lai và cải thiện những phần cần thiết của IPv4, đặc biệt trong phần bảo mật, khả năng mở rộng và chất lượng dịch vụ. Nhóm phát triển giao thức mới này quyết định nên mở rộng không gian địa chỉ từ 32-bit địa chỉ của IPv4 lên 128-bit địa chỉ và điều này hy vọng sẽ cung cấp đủ địa chỉ cho tất cả khía cạnh kết nối internet của các thiết bị được dự đoán trước trong tương lai như: mobile phone, pocket PCs, printer, scanners, routers, fridges, toasters …
IPv4 và IPv6 không cùng cấu trúc; vì thế cần có những chồng giao thức mạng cho mỗi giao thức IP và một host (hoặc router) phải có cả 2 để nhận Router Advertisement và xử lí thông tin tiêu đề trong mỗi gói tin (trong trường hợp cả 2 giao thức IPv4 và IPv6 cùng tồn tại trên mạng).
Hình 29: cấu trúc của một gói tin IPv6. 7. Hạ tầng IPv6
7.1 Tiêu đề IPv6
Tiêu đề của IPv6 được xây dựng dựa trên tiêu đề củ của IPv4 (hình 2), vẫn còn những trường địa chỉ nguồn và địa chỉ đích, nhưng được mở rộng để cung cấp nhiều địa chỉ hơn và trường version được thiết lập là 6 thay vì 4. Những trường không cần thiết được bỏ đi hoàn toàn,chẳng hạn trường Header Length (tiêu đề IPv6 được cố định 40 bytes), hoặc trường Checksum được bỏ đi trong tiêu đề chính của IPv6 và được tích hợp trong tiêu đề mở rộng.
Sinh viên: Nguyễn Thanh Sơn 50
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Trong IPv6 có những thay đổi bằng cách tổ chức lại cấu trúc của tiêu đề, chẳng hạn như trường Type-of-Service (ToS) trong tiêu đề IPv4 được thay thế bằng trường Traffic Class và trường Flow Label, chúng được sử dụng để cung cấp hổ trợ truyền dữ liệu thời gian thực (real-time delivery of data), còn được gọi là chất lượng dịch vụ (QoS).
Trường Palyload Length được thay thế bằng trường Total Length, vì chiều dài của tiêu đề IPv6 được cố định, nên không cần thiết khi tính toán chiều dài của gói tin.
Trường Time-to-Live được thay thế bằng trường Hop Limit hoạt động giống như trong IPv4, khi gói tin đi qua router, trường này sẽ được giảm đi 1.
Trường Protocol Type được thay thế bằng trường Next Header, chứa toàn bộ quy tắc xắp xếp chỉ ra một tiêu đề mở rộng tiếp theo trong tiêu đề chính. Trường Next Header còn được sử dụng để chỉ định giao thức của lớp Transport của gói tin, cách xắp xếp giống như trong IPv4: TCP(6), UDP(17) và ICMP(58).
Một Next Header có giá trị 59 có nghĩa không có tiêu đề mở rộng trong gói tin.
Hình 30: Tiêu đề của IPv6.
7.2 Tiêu đề mở rộng
Tất cả trường Options của tiêu đề IPv4 không còn có mặt trong tiêu đề chính của IPv6 và được thay thế bằng những tiêu đề mở rộng, có tính mềm dẽo, được bố trí nằm giữa phần tiêu đề IPv6 và tiêu đề của lớp Transport, cung cấp những đặc tính hổ trợ trong IPv6 như: bảo mật (IPsec), Source Routing, Network Management và Fragmentation...
Có 6 tiêu đề mở rộng: Hop-by-Hop option, Destination option, Routing, Fragment, Authentication và Encapsulation Security Payload. Sự khác nhau của tiêu đề mở rộng có thể thay đổi trong mỗi gói tin. Mỗi tiêu đề mở rộng có một trường Next Header, được sử dụng để xác định tiêu đề tiếp theo. Hình 3, chỉ rõ các chuỗi của các tiêu đề. Bảng 1, chứa các “code” của các tiêu đề mở rộng.
Hình 31: Tiêu đề mở rộng.
Sinh viên: Nguyễn Thanh Sơn 51
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Những tiêu đề mở rộng luôn là những mắc xích đi liền với nhau và được tạo thành một danh sách. Đây là sự thuận tiện trong việc xử lí tiêu đề tại đích tới. tiêu đề mở rộng Hop-by-Hop luôn theo sau tiêu đề chính IPv6, và là tiêu đề mở rộng duy nhất phải được kiểm tra tại các nodes trung giang.
Jumbogram và Router Alert options là một phần của tiêu để mở rộng Hop-by- Hop. Jumbograms được sử dụng để gởi những gói tin với dữ liệu lớn hơn 64kb trong trường Payload length của tiêu để IPv6. Để thực thi điều này, giá trị của payload length nên được thiết lập là 0 và jumbogram phải được gắn kèm theo. khi đó, một “payload” 4GB có thể được gởi trong một gói IPv6. Router Alert được sử dụng để thông báo những router biết gói tin đi qua nên được kiểm tra nội dung trước khi chuyển tiếp. Tùy chọn này được sử dụng để chỉ định những gói tin phụ thuộc việc xử lí của các nodes cuối định tuyến.
Bảng 6: Tiêu đề mở rộng của IPv6 và code tương ứng.
Mỗi tiêu để mở rộng chỉ xuất hiện duy nhất 1 lần trong gói tin ngoại trừ tiêu đề Destination. Trường hợp đầu của tiêu đề Destination được sử dụng để chứa thông tin danh sách đích tới trong trường địa chỉ đích và địa chỉ trong tiêu đề routing. Trường hợp thứ 2, thông tin này được kiểm tra duy nhất bởi đích tới cuối cùng.
Tiêu đề routing được sử dụng để xác định những node trung gian trong quá trình truyền gói tin tới đích. Hiện tại, trường “routing type” trong tiêu đề routing chỉ mới hổ trợ “type 0” giống như “Loose Source Routing option” trong IPv4.
Sinh viên: Nguyễn Thanh Sơn 52
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 32: Cấu trúc của tiêu đề Routing.
Trong IPv6, sự phân mảnh của một gói tin chỉ được thực hiện duy nhất bởi node nguồn. Router không được phép phân mảnh 1 gói tin. Nếu gói tin được nhận bởi router lớn hơn link, router sẽ loại bỏ gói tin đó và gởi một ICMPv6 về địa chỉ nguồn biết thông tin mà gói tin bị loại bỏ.Nếu node nguồn muốn phân mảnh một gói tin, nó sử dụng tiêu đề mở rộng Fragment.
Hình 33: Cấu trúc của tiêu đề Fragment.
Gói tin ban đầu sẽ được chia thành 2 phần chính: phần “unfragmentable”, chứa thông tin của tiêu đề IPv6 và tất cả tiêu đề mở rộng mà phải xử lí bởi nodes trong quá trình định tuyến tới đích cuối cùng. (hop-by-Hop, Destination và Routing) và phần “fragment”, chứa các tiêu đề mở rộng khác (nếu có) và “payload data”, phần “fragment” chỉ được xử lí tại đích tới cuối cùng.
Sinh viên: Nguyễn Thanh Sơn 53
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 34: Quá trình phân mảnh gói tin IPv6
AH được sử dụng để ngăn chặn tấn công giả mạo địa chỉ và sự thay đổi gói tin,
Bảo mật là một trong những chuyên đề chính của IETF khi thiết kế IPv6, nó được đưa vào 3 dịch vụ bảo mật quan trọng: xác thực gói tin (packet authentication), toàn vẹn gói tin (packet integrity) và độ tin cậy của gói tin (packet confidentiality). Những đặc tính bảo mật này được cung cấp bởi IPsec thông qua tiêu đề mở rộng Authentication (AH) và Encapsulation Security Payload (ESP). AH cung cấp tính toàn vẹn, bảo đảm gói tin đến nơi mà nó cần tới. điều này đạt được bằng cách thay đổi khóa mật mã, có thể “manually” hoặc “automatically” (sử dụng Interne Key Exchange-IKE). Trước khi gói tin được gỏi, tiêu đề tạo một “checksum” dựa trên khóa được đồng ý bởi cả 2 hosts (MD5). Hàm băm này sẽ được so sánh tại nơi nhận cuối cùng với “checksum” ban đầu. nhưng không cung cấp bất cứ sự bảo vệ gói tin.
Hình 35: Cấu trúc của tiêu đề AH.
ESP được sử dụng để cung cấp sự tin cậy cho gói tin giống như bảo mật dịch vụ mà AH cung cấp. Tính toàn vẹn và tính bảo mật trong IPv6 cao hơn những gói tin IPv4,
Sinh viên: Nguyễn Thanh Sơn 54
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
ngoại trừ trường hợp của ứng dụng SSL (Secure Socket Layer) hoặc IPv4 triển khai IPsec.
Hình 36: Cấu trúc của tiêu đề ESP.
ESP có thể được triển khai bằng 2 cách: “transport mode” hoặc “tunnel mode”.
Trong transport mode mã hóa được áp dụng tới lớp transport và những giao thức cao hơn (không mã hóa tiêu đề IPv6 và các tiêu đề mở rộng). Tunnel mode, toàn bộ gói tin được mã hóa bao gồm cả tiêu đề IPv6 và một số prefixes mới của gói tin.
Sự khác nhau của AH và ESP là : “xác thực được cung cấp bởi ESP và AH là khu
vực của mức độ được xác thực; ESP không bảo vệ tiêu đề IP trừ khi những trường này được mã hóa bởi tunnel mode”. 7.3 Cấu trúc địa chỉ mới
Trong IPv6 128-bit địa chỉ được chia thành các nhóm 16-bit và chuyển sang số HEX, các số 0 ở đầu mỗi nhóm của số Hex có thể được loại bỏ, các số 0 ở cuối mối nhóm của số Hex thì bắt buộc, các chuỗi 16-bit này nếu tiếp kề nhau bằng 0 thì được viết tắt bằng “::”.
Ví dụ: 128 bit nhị phân
0010000111011010000000001101001100000000000000000010111100111011 0000001010101010000000001111111111111110001010001001110001011010 Được chia thành các nhóm 16-bit
0010000111011010 0000000011010011 0000000000000000 0010111100111011 0000001010101010 0000000011111111 1111111000101000 1001110001011010 Mỗi nhóm 16-bit được chuyển sang số Hex và được phân định bởi dấu “:”
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A Những số 0 ở đầu trong mỗi nhóm dãy 16-bit được bỏ đi.
21DA:D3:0:2F3B:2AA:FF:FE28:9C5A
Sinh viên: Nguyễn Thanh Sơn 55
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Một vài địa chỉ IPv6 chứa một chuỗi các số 0, nếu có các dãy 16-bit kề nhau là 0 thì được nén lại bằng dấu “::”
Không thể nén các số 0 không phải ở đầu trong phần của dãy 16-bit. FE80:0:0:0:2AA:FF:FE9A:4CA2 trở thành FE80::2AA:FF:FE9A:4CA2
FF02:30:0:0:0:0:0:5 không thể trở thành FF02:3::5 7.3.1 Định danh Interface (interface ID)
Định danh “interface”, được nhận dạng duy nhất, được dùng để phân biệt một interface trên một mạng và bảo đảm không có bất cứ địa chỉ nào trùng lắp trên cùng subnet. Interface ID là 64-bit nếu quá trình tự động cấu hình địa chỉ được sử dung; nó bao gồm 48-bit MAC và 16-bit còn lại là hằng số EUI-64 (Extended Unique Identifier) “fffe”. Bit thứ 7 của địa chỉ MAC phải được chuyển từ 1 sang 0. bit này chỉ ra đây là một địa chỉ tầm vực “globally”.
Ví dụ: Địa chỉ MAC là: 00.0b.db.63.54.5d Chuyển bit thứ 7 từ 0 (cid:198) 1 (cid:206) 02.0b.db.63.54.5d và thêm hằng số fffe vào giữa địa chỉ MAC (cid:198) Interface ID: 020b:dbff:fe63:545d 7.4 Các loại địa chỉ trong IPv6
Địa chỉ IPv6 thì ít phức tạp hơn IPv4, trong IPv4 hầu hết địa chỉ được phân loại public, private, broadcast, multicast và địa chỉ mạng. Trong phần này sẽ mô tả các loại địa chỉ sử dụng khác nhau của IPv6 và ngữ cảnh mà nó được sử dụng. Chỉ duy nhất 15% của không gian địa chỉ IPv6 được chỉ định sử dụng, những phần này được chia thành các loại khác nhau: địa chỉ Unicast, Anycast, Multicast và Reserved. Các loại của địa chỉ IPv6 được xác định bằng những bit cao của địa chỉ. 85% còn lại được dự phòng sẽ sử dụng trong tương lai. Bảng 2 chứa tất cả địa chỉ IPv6 được chỉ định.
Host IPv6 có thể có nhiều địa chỉ trên một interface. Host IPv4 chỉ có duy nhất 1 địa chỉ để xác định, nhưng trong IPv6 có thể nhận dạng bằng nhiều địa chỉ (Unicast, Anycast, Multicast) phụ thuộc vào ngữ cảnh mà chúng kết nối (global, sitelocal và link local).
Sinh viên: Nguyễn Thanh Sơn 56
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Bảng 7: Các loại địa chỉ IPv6 được sử dụng hiện tại.
7.4.1 Địa chỉ Unicast
Địa chỉ Unicast được gán cho mỗi interface trên một host và được sử dụng kết nối “one-to-one”; gói tin được gởi từ một interface và được nhận bởi duy nhất một interface. 7.4.1.1 Địa chỉ Aggregatable global unicast
Địa chỉ global được dùng để kết nối internet, những địa chỉ này được gán bởi RIRs (Regional Internet Registries).
Hình 37: Cấu trúc của địa chỉ Aggregatable global unicast.
TLA ID: Top level aggregatable Identifier, được quản lí bởi IANA. Res : số bit được sử dụng cho việc mở rộng TLA ID hoặc NLA ID trong tương NLA ID (Next-Level Aggregation Identifier): 24-bit, NLA ID cho phép một ISP
SLA ID (Site-Level Aggregation Identifier): được sử dụng bởi các tổ chức cá
lai. tạo ra nhiều cấp độ của việc phân cấp địa chỉ. nhân để xác định subnet trong cùng một site.
Sinh viên: Nguyễn Thanh Sơn 57
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
7.4.1.2 Địa chỉ Link-local
Địa chỉ link-local được sử dụng cho kết nối giữa các host trên cùng link. Mỗi interface được gán 1 địa chỉ (unicast) link-local, được sử dụng trong quá trình “Autoconfiguration”.
Hình 38: Cấu trúc của địa chỉ link-local.
7.4.1.3 Địa chỉ Site-local
Địa chỉ Site-local được sử dụng trong một site, giống như trong cùng một subnet. Chúng được dành để sử dụng duy nhất trong một site và gói tin sử dụng địa chỉ site-local thì không được cho phép ra khỏi site. Địa chỉ Unicast site-local tương dương với địa chỉ Private trong IPv4.
Hình 39: Cấu trúc của địa chỉ site-local.
7.4.1.4 Địa chỉ đặc biệt
• Địa chỉ không chỉ rõ: “::” được sử dụng để thể hiện sự không có mặt của địa chỉ IPv6. • Hoặc địa chỉ loopback: “::1” được sử dụng để xác định một “loopback
interface”. 7.4.1.5 Địa chỉ tương thích
Địa chỉ tương thích được tạo ra để giúp đỡ sự chuyển tiếp từ IPv4 sang IPv6, và sự chung sống của cả 2 loại địa này.
• Địa chỉ IPv4 tương thích
Hình 40: Địa chỉ IPv4 tương thích
Sinh viên: Nguyễn Thanh Sơn 58
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
• Địa chỉ IPv4 ánh xạ
Hình 41: Địa chỉ IPv4 ánh xạ.
• Địa chỉ 6over4
Hình 42: Địa chỉ 6over4.
• Địa chỉ 6to4
2002:(IPv4-Hex)::/48 ISATAP address •
Hình 43: Địa chỉ ISATAP.
Địa chỉ NSAP 7.4.1.6
Hình 44: Cấu trúc của địa chỉ NSAP.
Sinh viên: Nguyễn Thanh Sơn 59
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Bảng 8: Địa chỉ IPv6 unicast global được chỉ định 7.4.2 Địa chỉ Anycast
Địa chỉ anycast được sử dụng cho kết nối “one-to-one-of-many” . chúng nhận
dạng nhiều interface của một số nodes khác nhau, thừơng trong cùng links. Một gói tin được gởi tới địa chỉ anycast được phân phát tới một trong số interface được xác định bởi địa chỉ gần nhất được xác định trong giao thức định tuýên. Chúng không có những dãy IPv6 tách rời giống như địa chỉ Unicast và Multicast.
Hình 45: Cấu trúc của địa chỉ Anycast.
7.4.3 Địa chỉ Multicast
Địa chỉ được dùng để nhận dạng nhiều interface IPv6. Một gói tin được gởi tới
một địa chỉ multicast sẽ được xử lí bởi tất cả các thành viên trong nhóm multicast.
Hình 46: cấu trúc của địa chỉ Multicast.
Bảng 9: Giá tri của flags trong cấu trúc địa chỉ multicast.
Sinh viên: Nguyễn Thanh Sơn 60
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Bảng 10: Giá trị của trường scope trong địa chỉ multicast.
7.5 Giao thức ICMPv6
Trong IPv6, giao thức ICMP đã có những thay đổi để hoạt động phù hợp, chẳng hạn, IGMP và ARP được xác nhập vào ICMPv6, là một phần của giao thức Neighbor Discovery. Những codes trong ICMP tiếp tục sử dụng: Echo request, echo reply, packet too big, time exceeded …những thông điệp được chia thành 2 loại: “error message” và “informative message”.
Bảng 11: Địa chỉ ICMP và code tương ứng.
Sinh viên: Nguyễn Thanh Sơn 61
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
7.6 Giao thức Neighbor discovery
Trong IPv4, phân giải địa chỉ giữa Ethernet và địa chỉ IP được sử dụng bởi giao thức ARP và broadcast địa chỉ Ethernet-layer và IGMP được sử dụng để quản lí multicasting. Trong IPv6, những hàm của IGMP được kết hợp trong ICMPv6 và địa chỉ broadcast được thay thế bằng địa chỉ multicast. Giao thức Neighbor Discovery được sử dụng để phân giải địa chỉ giữa Ethernet và địa chỉ IPv6, bằng cách gởi những gói tin như: Neighbor Solicitation và Advertisements, Router Advertisements và Solicitations, và Redirect. ND còn được sử dụng để cấu hình địa chỉ link-local và global trên interface bằng cách nhận và quản bá các tham số network (chẳng hạn prefixes) đồng thời duy trì thông tin của host và router.
Hình 47: Cấu trúc của Neighbor discovery
7.6.1 Các loại thông điệp Neighbor Discovery
Neighbor Discovery có tất cả 5 loại thông điệp, thực hiện một số chức năng:
• Address resolution • Duplicate address detection • Neighbor unreachability detection • Prefix discovery • Router discovery • Parameter discovery • Address autoconfiguration • Next-hop determination
Neighbor solicitation 7.6.1.1
Hình 48: Định dạng Neighbor Solicitation
Sinh viên: Nguyễn Thanh Sơn 62
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
7.6.1.2 Neighbor advertisement
Hình 49: Định dạng Neighbor Advertisement.
7.6.1.3 Router Solicitation
Hình 50: Định dạng Router Solicitation
7.6.1.4 Router Advertisement
Hình 51: Định dạng Router Advertisement.
Sinh viên: Nguyễn Thanh Sơn 63
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
7.6.1.5 Redirect
Hình 52: Định dạng Redirect. 7.6.2 Định dạng của Neighbor Discovery options
Trường options xác định những tham số cho các chức năng của Neighbor Discovery.
Hình 53: Định dạng Neighbor Discovery Options. • Type 1: Source Link-Layer Address
Hình 54: Type 1 Options
• Type 2: Target Link-Layer Address
Sinh viên: Nguyễn Thanh Sơn 64
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 55: Type 2 Options
• Type 3: Prefix Information
Hình 56: Type 3 Options
• Type 4: Redirected Header
Hình 57: Type 4 Options.
• Type 5: MTU
Hình 58: Type 5 Options.
• Type 7: Advertisement Interval
Sinh viên: Nguyễn Thanh Sơn 65
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 59: Type 7 Options
• Type 8: Home Agent Information
Hình 60: Type 8 Options
• Type 9: Route Information
Hình 61: Type 9 Options
7.6.3 Neighbor Discovery và các thông điệp Options tương ứng
Sinh viên: Nguyễn Thanh Sơn 66
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Bảng 12: Thông điệp Neighbor Discovery và option tương ứng.
7.6.4 Các chức năng hoạt động của Neighbor Discovery
7.6.4.1 Duplicate address detection Neighbor Discovery được sử dụng để xác minh tính duy nhất của mỗi interface trên cùng một subnet. Khi một host tạo một địa chỉ link-local cho chính nó, nó sẽ không xem đó là địa chỉ có thể sử dụng được cho tới khi quá trình DAD được hoàn tất. DAD được thực hiện bằng cách gởi một ICMP NS có địa chỉ source “::” và địa chỉ đích là Multicast solicited-node (FF02::1). Nếu không nhận được gói NA reply thì địa chỉ link- local chính thức được sử dụng. 7.6.4.2 Neighbor Unreachability Detection
Một đặc tính nữa của giao thức Neighbor Discovery là Neighbor unreachability detection. Tất cả các nodes IPv6 đều lưu giữ một bảng về tình trạng của Neighbors, giống như neighbor cache (thay thế ARP table). Khi một host hoặc router biến mất, thì Neighbor Unreachability Detection được sử dụng để kiểm tra xem neighbour còn tồn tại hay không thông qua địa chỉ mà nó lưu trữ trong neighbor cache. Để thực hiện điều này, một thông điêp NS được gởi tới địa chỉ lưu trữ trong cache.
7.6.4.3 Network prefix assignment
Phần cuối của Neighbor Discovery là chỉ định Network prefix. Điều này đạt được bằng cách sử dụng 2 thông điệp Neighbor Discovery là Router Solicitation và Router Advertisement. Khi một interface cấu hình thành công, và có đươc địa chỉ link-local duy nhất, nó có thể gởi link-local multicast một gói Router Solicitation ra bên ngoài
Sinh viên: Nguyễn Thanh Sơn 67
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
(FF02::2). Router tren cùng link sẽ trả lời thông điệp này bằng cách gởi unicast một gói Router Advertisement chứa thông tin prefix của mỗi interface. Một host nhận được thông tin về prefix, nó có thể cấu hình địa chỉ global unicast cho chính nó, bằng cách thêm prefix vào trước interface ID. Nếu có nhiều router trên cùng link và có nhiều tham số khác nhau, thì host sẽ chọn tham số phù hợp nhất mà nó sẽ sử dụng để chuỷên tiếp gói tin. 7.6.4.4 Tự động cấu hình địa chỉ
Địa chỉ IPv6 có thể được gán bởi người quản trị hoặc tự động bởi chính các host. Đây là một tính năng hữu ích của IPv6 khi tự động cấu hình địa chỉ; cả 2 trường hợp tự động cấu hình “stateless và stateful”. Stateful xảy ra khi có DHCP server gán một địa chỉ mới trong mỗi lần kết nối máy tính tới hệ thống mạng có DHCP server
Các bước của quá trình Autoconfiguration:
1. Thông qua quá trình EUI-64 (dựa trên địa chỉ MAC) và prefix của link- local, hosts sẽ có được địa chỉ “tentative link-local” (địa chỉ link-local tạm).
2. Gởi multicast gói tin Neighbor Solicitation để kiểm tra “duplication” (địa
chỉ trùng).
Hình 62: Quá trình kiểm tra duplication.
3. Nếu nhận được gói Neighbor Advertisement, thì địa chỉ “tentative” đã được sử dụng, quá trình autoconfigure dừng lại. (chuyển sang cấu hình tay cho node).
4. Nếu không nhận được gói Neighor Advertisement thì địa chỉ “tentative” là địa chỉ duy nhất và trở thành địa chỉ “valid” (hợp lệ). Địa chỉ link-local được gán cho “interface”.
Sinh viên: Nguyễn Thanh Sơn 68
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
5. Host tiếp tục gởi multicast Router solicitation tới các Router để nhận thông tạo địa chỉ site-local.
Hình 63: Quá trình gởi multicast router solicitation.
6. Nếu không có bất kỳ gói Router Advertisement nào được nhận, hosts sẽ thực hiện quá tình “stateful address configuration”.
7. Nếu hosts nhận được gói Router Advertisement thì các giá trị “hop limit, reachable time, MTU” được thiết lập.
8. Host tiếp tục kiểm tra “prefix information option” của gói Router Advertisement:
a. nếu cờ on-link được gán = 1, Prefix sẽ được thêm vào trong danh sách Prefix list.
b. Nếu cờ autonomous được gán =1, prefix và ID của interface thích hợp sẽ được sử dụng để gán một địa chỉ “tentative” và quá trình duplication sẽ được sử dụng để kiểm tra địa chỉ tentative đó.
i. Nếu địa chỉ tentative đó đã được sử dụng, địa chỉ sẽ không được gán cho interface.
ii. Nếu địa chỉ tentative là duy nhất, địa chỉ được khởi tạo và thiết lập các giá trị về “valid lifetime”, “preferred lifetime”.
9. Tiếp theo, host sẽ kiểm tra cờ “managed address configuration” trong Router Advertisement có được gán =1 không. Nếu gán =1, stateful address autoconfiguration sẽ được sử dụng.
Sinh viên: Nguyễn Thanh Sơn 69
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
10. Nếu có bất kỳ cờ “stateful autoconfiguration” được thiết lập gán =1, quá trình “stateful address autoconfiguration” sẽ được sử dụng để thêm vào những tham số. Nếu không, thì quá trình address autoconfiguration sẽ dừng lại.
Hình 64: Lưu đồ quá trình Autoconfiguration
Sinh viên: Nguyễn Thanh Sơn 70
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
Hình 65: Lưu đồ quá trình Autoconfiguration (tt)
Sinh viên: Nguyễn Thanh Sơn 71
GVHD: Nguyễn Thị Phương Dung Đề tài: Hệ Thống Lọc Gói Trong IPv6
1. Joseph Davies, “Understand IPv6”, Microsoft Press, 2003. 2. Silvia Hagen, “IPv6 Essentials”, O'Reilly, May 2006. 3. Orla McGann, B.Eng, “IPv6 packet filter”, Hamilton Institute National University
Tài liệu tham khảo:
of Ireland Maynooth, 2005. 4. David Malone, Niall Murphy “IPv6 Network Administration” O'Reilly, March 2005 5. Vijay Bollapragada, Mohamed Khalid, Scott Wainner, “IPSec VPN Design”, Cisco Press, April 07, 2005
6. Naganand Doraswamy, Dan Harkins, “IPsec: The New Security Standard for the Interne, Intranets, and Virtual Private Networks, second edition”, Prentice Hall PTR, March, 13,2003
7. FreeBSD handbook 8. Brian Tiemann “FreeBSD®6 Unleashed”, Sams, June 15, 2006 9. Paul Albitz, Cricket Liu “DNS and BIND, 5th Edition”, O'Reilly, May 2006 10. Apache HTTP Server Version 2.2 Documentation. 11. http://www.faqs.org/rfcs/rfc2462.html 12. http://docs.FreeBSD.org/doc/ 13. www.bsdguides.org 14. www.telscom.ch/index.php/downloads/Configure_IPv6_features
Sinh viên: Nguyễn Thanh Sơn 72