1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG DỊCH vụ FIREWALL AS a SERVICE và ỨNG DỤNG vào hệ THỐNG OPENSTACK

58 142 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 0,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các bên cung cấp nền tảng Cloud Computing Platform đều cho người sử dụngthuê và chạy các máy ảo cũng như xây dựng mạng trên chính data center của họ.Người sử dụng chỉ cần trả phí cho các

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Đức Thắng

XÂY DỰNG DỊCH VỤ FIREWALL AS A SERVICE

VÀ ỨNG DỤNG VÀO HỆ THỐNG OPENSTACK

KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI – 2020

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Đức Thắng

XÂY DỰNG DỊCH VỤ FIREWALL AS A SERVICE

VÀ ỨNG DỤNG VÀO HỆ THỐNG OPENSTACK

KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: TS Hoàng Xuân Tùng

HÀ NỘI – 2020 TÓM TẮT

Trang 3

Tóm tắt: Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, đặc biệt là Cloud

Computing, các công ty đang dần chuyển giao cơ sở hạ tầng dịch vụ của họ sang nền tảngCloud Đáp ứng nhu cầu đó, nhiều hãng công nghệ lớn đã đưa ra các nền tảng CloudComputing nhằm phục vụ cho các doanh nghiệp cần sử dụng OpenStack là một nền tảngCloud đáng chú ý do được phát triển bởi cộng đồng mở trên toàn thế giới Trong OpenStack,các dịch vụ được cài đặt và cung cấp dưới dạng các thành phần Component đơn lẻ và kết hợpvới nhau để tạo thành một hệ thống lớn Trong đó, OpenStack có cung cấp NetworkingService (Neutron) với trách nhiệm quản lý hệ thống mạng trong Cloud Neutron có cung cấpcác cơ chế bảo mật cho hạ tầng mạng mà nó quản lý đó là Security Group và được đặt vàotừng Port của các máy ảo (instance) hay Port của các Router ảo Tuy nhiên, việc quản lý cácSecurity Group trên từng Port đem đến nhiều bất tiện cho người quản trị Cloud Ngoài ra,Security Group cũng có thể chưa đáp ứng đủ các yêu cầu bảo mật mà người quản trị mongmuốn Khóa luận này sẽ tập trung vào việc phân tích phương thức hoạt động của NetworkingService của OpenStack, đưa ra giải pháp bằng việc xây dựng một dịch vụ Firewall as aService độc lập với hệ thống OpenStack và tích hợp vào hệ thống OpenStack hiện tại Từ đó,đặt ra một hướng tiếp cận mới cho việc phát triển các dịch vụ hỗ trợ cho OpenStack và cácnền tảng Cloud Computing khác Các nội dụng nghiên cứu và trình bày trong khóa luận đềuđược triển khai thực tế trên hệ thống OpenStack thực Kết quả thực nghiệm cho thấy hướngtiếp cận mới trong việc phát triển dịch vụ của OpenStack đem lại hiệu quả tích cực cho ngườiquản trị cũng như nhà phát triển

Từ khóa: Firewall, Firewall as a Service, Cloud Computing, OpenStack

Trang 4

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn chân thành tới TS Hoàng Xuân Tùng đã cho em

cơ hội được học tập và nghiên cứu tại bộ môn Mạng và truyền thông máy tính Sựhướng dẫn, hỗ trợ và động viên của Thầy đã giúp em trong việc nghiên cứu và hoànthành khoá luận này

Em xin cảm ơn các thầy, cô trong bộ môn Mạng và truyền thông máy tính, cácthầy cô giảng dạy tại trường Đại học Công nghệ đã giúp đỡ em trong suốt quá trìnhhọc tập và nghiên cứu

Bên cạnh đó, em xin cảm ơn bạn bè tại trường Đại học Công nghệ đã đồng hànhcùng em suốt gần 4 năm qua

Em xin chân thành cảm ơn!

Hà Nội, ngày … tháng … năm 2020

Tác giả khóa luận

Nguyễn Đức Thắng

Trang 5

LỜI CAM KẾT

Tôi xin cam đoan những kiến thức được trình bày trong luận án này là do tôi tìmhiểu và triển khai dưới sự hướng dẫn của TS Hoàng Xuân Tùng

Tất cả các tham khảo từ các nghiên cứu liên quan đều được tôi nêu ra một cách

rõ ràng trong danh mục tài liệu tham khảo Trong khoá luận không có việc sao chép tàiliệu, công trình nghiên cứu của người khác mà không chỉ rõ về nguồn gốc của tài liệu.Tôi xin chịu mọi trách nhiệm về công trình nghiên cứu của riêng mình!

Hà Nội, ngày … tháng … năm 2020

Tác giả khoá luận

Nguyễn Đức Thắng

Trang 6

MỤC LỤC

BẢNG KÝ HIỆU CHỮ VIẾT TẮT 1

MỞ ĐẦU 2

CHƯƠNG 1: GIỚI THIỆU 3

1.1 Đặt vấn đề 3

1.2 Phương hướng tiếp cận 4

1.3 Bố cục khóa luận 5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1 OpenStack Networking Service 7

2.1.1 Neutron Component 7

2.1.2 Network Abstraction trong Neutron với Linux Bridge Agent 8

2.1.3 Virtual Router trong Neutron 8

2.2 Neutron FWaaS 10

2.2.1 Neutron FWaaS v1 10

2.2.2 Neutron FWaaS v2 11

2.2.3 Tình trạng phát triển hiện tại của plug-in Neutron FWaaS 12

2.2.4 Các vấn đề về Security Group trong Neutron 12

2.3 Các nghiên cứu liên quan 14

CHƯƠNG 3: ĐỀ XUẤT GIẢI PHÁP 15

3.1 Dịch vụ FwaaS 15

3.1.1 Đề xuất kiến trúc dịch vụ 15

3.1.2 Lựa chọn công nghệ 18

3.2 Tích hợp dịch vụ vào OpenStack 20

3.2.1 Phân tích khả năng tích hợp 20

3.2.2 Đề xuất phương án tích hợp 21

CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 23

4.1 Xây dựng dịch vụ 23

Trang 7

4.1.1 Xây dựng Firewall Engine 23

4.1.2 Xây dựng Endpoint Server 25

4.1.3 Xây dựng ứng dụng Front-end cho dịch vụ 28

4.1.4 Đóng gói dịch vụ 30

4.2 Triển khai trên hệ thống thực 31

4.2.1 Môi trường cài đặt 31

4.2.2 Cài đặt dịch vụ dưới dạng một systemd service 33

4.2.3 Tích hợp dịch vụ vào hệ thống OpenStack 34

4.3 Đánh giá hiệu năng 37

4.3.1 Các tiêu chí đánh giá 37

4.3.2 Kết quả đánh giá tính chính xác của dịch vụ 38

4.3.3 Kết quả đánh giá ảnh hưởng của dịch vụ tới hiệu năng 43

4.3.4 Kết luận 44

CHƯƠNG 5: KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 46

TÀI LIỆU THAM KHẢO 48

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1 Neutron Networks với L3-agent [6] 9

Hình 2 Hoạt động của Neutron FWaaS [7] 10

Hình 3 Mô tả hoạt động của dịch vụ FWaaS 16

Hình 4 Cách thức hoạt động của dịch vụ FWaaS 17

Hình 5 Mô hình kiến trúc ứng dụng FWaaS 18

Hình 6 Luồng đi của gói tin qua qua bảng filter của iptables 19

Hình 7 Mô hình đề xuất cho tích hợp dịch vụ FWaaS vào OpenStack 22

Hình 8 Cách thức hoạt động của Firewall Engine 23

Hình 9 Mô tả đường đi của gói tin sau khi áp dụng dịch vụ FWaaS 24

Hình 10 Các React Component trong ứng dụng Front-end của dịch vụ 28

Hình 11 Mô hình triển khai vật lý của hệ thống OpenStack 32

Hình 12 Tích hợp dịch vụ vào hệ thống OpenStack 35

Hình 13 Mô hình triển khai logic của một dự án trong OpenStack 38

Hình 14 Thống kê tài nguyên tiêu thụ của dịch vụ 44

Trang 9

DANH MỤC BẢNG

Bảng 1 So sánh giữa FWaaS v1 và v2 [7] 11

Bảng 2 Các Public Route mà dịch vụ cung cấp 26

Bảng 3 Danh sách các Private Route của Endpoint Server 27

Bảng 4 Cấu hình của các Node trong hệ thống OpenStack 33

Bảng 5 Kết quả thử nghiệm tính năng L2 filtering 39

Bảng 6 Kết quả thử nghiệm tính năng L3 filtering 41

Bảng 7 Kết quả thử nghiệm tính năng L4 filtering 42

Bảng 8 Kết quả thử nghiệm tính năng L7 filtering 43

Bảng 9 Kết quả thử nghiệm ảnh hưởng của dịch vụ tới tốc độ truyền 44

Trang 10

BẢNG KÝ HIỆU CHỮ VIẾT TẮT

1 FWaaS Firewall as a Service

2 IaaS Infrastructure as a Service

3 SDN Software-Defined Network

5 NIDS Network Instrusion Detection System

6 OSI Open Systems Interconnection

7 NIC Network Interface Card

MỞ ĐẦU

Cloud Computing đang là xu thế mới trong các hệ thống thông tin mà cả thế giớiđang hướng tới Các công ty, doanh nghiệp đều đang từng bước chuyển giao, triểnkhai các hệ thống dịch vụ của họ trên nền tảng cloud thay vì các phần mềm, ứng dụngtruyền thống trước kia Kết quả của việc chuyển đổi này đem lại nhiều hiệu quả tíchcực như tiết kiệm chi phí triển khai và nâng cao tính linh hoạt

OpenStack là một hệ thống Cloud Computing được sử dụng để cung cấp các dịch

vụ Cloud cho các doanh nghiệp OpenStack có thể quản lý một lượng lớn các máy ảo,

bộ nhớ lưu trữ và các tài nguyên mạng trên một datacenter Tất cả được quản lý vàcung cấp thông qua các giao diện API chuẩn cùng với cơ chế xác thực chung nhờ vàoAuthentication Service do OpenStack cung cấp dưới dạng một component nhưKeystone

Neutron là một Component cung cấp dịch vụ Networking Service và được xemnhư là thành phần cốt lõi của hệ thống OpenStack Neutron cho phép người quản trịquản lý và cung cấp các tài nguyên mạng một cách nhanh chóng Đồng thời, Neutroncũng cung cấp thêm các cơ chế bảo mật cho người dùng như Security Group đặt trêncác Port của máy ảo và router Nhờ đó, người quản trị có thể kiểm soát luồng truy cậpvào các mạng trong hệ thống cũng như các máy ảo

Tuy nhiên, sẽ là một vấn đề lớn khi mà số lượng các máy ảo và các mạng nội bộtrong hệ thống OpenStack tăng cao Khi đó, việc đáp ứng yêu cầu bảo mật cho từngmáy hay mạng nội bộ khác nhau dẫn tới việc phải tăng thêm số lượng Security Groupcho hệ thống và gắn chúng vào các Port một cách hợp lý Điều này sẽ dẫn tới việc tốnmột lượng thời gian và công sức cho người quản trị

Vấn đề trên chính là đề tài mà khóa luận này lựa chọn để giải quyết Theo đó,khóa luận sẽ đề xuất ra một giải pháp giúp đơn giản hóa vấn đề bảo mật của hệ thốngOpenStack Sau cùng, giải pháp sẽ được triển khai thực tế trên một hệ thốngOpenStack thực và đánh giá hiệu quả trong việc đảm bảo an toàn thông tin và sự tiệnlợi cho người quản trị hệ thống

Trang 11

CHƯƠNG 1: GIỚI THIỆU1.1 Đặt vấn đề

Sự phát triển của Cloud Computing dẫn tới sự ra đời của nhiều hệ thống CloudComputing Platform Theo đó, các nền tảng này cung cấp các dịch vụ nhưInfrastructure as a Service (IaaS), Networking as a Service (NaaS), Storage as aService (SaaS), cho người dùng là các công ty, doanh nghiệp có nhu cầu cần triểnkhai các dịch vụ của họ lên Cloud và cung cấp cho người dùng Đã có nhiều hãng côngnghệ lớn gia nhập vào cuộc chơi này với các hệ thống của riêng mình như MicrosoftAzure, Amazon Web Service (AWS), Google Cloud Platform (GCP),

Các bên cung cấp nền tảng Cloud Computing Platform đều cho người sử dụngthuê và chạy các máy ảo cũng như xây dựng mạng trên chính data center của họ.Người sử dụng chỉ cần trả phí cho các dịch vụ mà họ sử dụng và triển khai các ứngdụng của họ bên trên các dịch vụ mà họ đã thuê từ bên thứ ba Nhờ đó, người sử dụngdịch vụ mà các nền tảng cung cấp không cần phải quan tâm tới sự vận hành bên dướicủa các thiết bị vật lý Việc quản trị các tài nguyên vật lý cũng như độ ổn định của hệthống thuộc về trách nhiệm của bên cung cấp dịch vụ với nhiều chuyên gia hơn

Tuy nhiên, bên cạnh các lợi ích mà các nền tảng Cloud Computing đem lại thìvẫn còn một số bất cập Điều đáng quan tâm nhất là hầu hết các bên cung cấp nền tảngđều là các dịch vụ close-source Theo đó, các dịch vụ của họ cung cấp ra ngoài chongười sử dụng đều là các dịch vụ độc quyền và được cài đặt sẵn trên hệ thốngdatacenter của riêng họ Điều này khiến cho một số công ty lớn khi họ đã có sẵn một

hệ thống data center của riêng họ cần triển khai một hệ thống Cloud Computing trênchính data center của họ Do đó, OpenStack có thể được xem như cách giải quyểt chovấn đề này

OpenStack là một hệ thống nền tảng Cloud open-source và được phát triển bởimột cộng đồng lớn với trên 100.000 thành viên trên toàn thế giới Trong đó, các dịch

vụ về Cloud được cài đặt dưới dạng các thành phần (Component) và liên kết với nhautạo thành một hệ thống Cloud Người sử dụng chỉ cần lựa chọn các Component cầnthiết cho datacenter của họ và triển khai chúng trực tiếp trên hệ thống

Trong OpenStack, Networking Service được xem như một thành phần không thểthiếu cho hệ thống Dịch vụ này giúp người quản trị có thể quản trị và tạo các tàinguyên mạng ảo cho hệ thống như các subnet, router, Cũng như các dịch vụ mạng

Trang 12

cho phép người quản trị xây dựng các chính sách bảo mật cho hệ thống thông qua mộtchức năng của Networking Service cung cấp là Security Group Theo đó, nhà quản trịchỉ cần xây dựng các chính sách bảo mật hợp lý cho từng Security Group Sau đó, gáncác Security Group này cho các Port của các máy ảo chạy trên mạng hay các Port trêncác Router ảo của dịch vụ Các Port ở đây được hiểu như là các điểm kết nối giúp choviệc kết nối các thiết bị với nhau, ví dụ như là thẻ giao diện mạng (NIC) của server đểkết nối vào một router hay switch của một mạng nào đó.

Việc quản trị các chính sách bảo mật theo Security Group mặc dù rất có hiệu quảkhi hệ thống còn nhỏ và ít phức tạp Một khi hệ thống trở lên lớn hơn và phức tạp vớimột lượng lớn máy ảo và router, việc quản trị theo Security Group cho từng Port trởlên khó khăn hơn cả Người quản trị sẽ phải tốn một lượng lớn thời gian để xác địnhcũng như xây dựng security group tương ứng cho từng mạng, từng cụm máy ảo khácnhau Để quy hoạch một cách hợp lý các chính sách bảo mật cho hệ thống cũng cầntốn một lượng lớn thời gian

Ngoài ra, hiện tại các Security Group mà OpenStack cung cấp chỉ giúp cho hệthống xây dựng các chính sách bảo mật cơ bản bằng việc lọc gói tin theo địa chỉ IP,Source Port, Destination Port, Security Group mà hiện tại OpenStack cung cấp chỉ

có thể lọc gói tin theo các thông thuộc layer 3 – 4 trong mô hình mạng OSI Nếu ngườiquản trị muốn lọc gói tin ở mức độ sâu hơn để đảm bảo an toàn hơn cho hệ thống, họcần phải can thiệp vào trong mã nguồn của Networking Service và phát triển các chứcnăng mà họ muốn sử dụng

Mặc dù là một hệ thống mã nguồn mở nhưng việc tiếp cận và phát triển các dịch

vụ trên OpenStack cũng khá khó khăn Với tổng số lượng dòng code lên tới 20 triệudòng code thì việc nắm bắt và phát triển chức năng cho hệ thống OpenStack cũng tốnmột lượng lớn thời gian Điều này có thể là một bất cập đối với những nhà quản trị hệthống khi mà họ không có đủ kinh nghiệm phát triển dịch vụ và cần triển khai dịch vụtrong một thời gian ngắn

Từ những vấn đề được đề cập ở trên, một bài toán có thể được đặt ra ở đây là liệurằng một người quản trị hệ thống OpenStack có thể xây dựng một dịch vụ hỗ trợ bảomật cho Networking Service hay cụ thể hơn là Component Neutron, đơn giản khi tiếpcận, mở rộng và dễ dàng tích hợp vào OpenStack

Trang 13

1.2 Phương hướng tiếp cận

Bài toán được đưa ra có thể giải quyết theo nhiều hướng khác nhau Người pháttriển có thể tạo ra một dịch vụ phát hiện xâm nhập thông qua việc kiểm soát các tiếntrình đang chạy trong toàn hệ thống hoặc xây dựng những dịch vụ mã hóa những dữliệu nhạy cảm hoặc xây dựng một dịch vụ firewall giúp đảm bảo an toàn cho các luồng

dữ liệu vào, ra hệ thống Trong các cách tiếp cận trên, xây dựng một dịch vụ firewall

đủ mạnh là một hướng giải quyết dễ tiếp cận hơn cả Firewall sẽ nắm vai trò như mộtrào chắn trung gian trong hệ thống mạng, kiểm soát lưu lượng vào, ra

Để dễ dàng hơn cho quá trình phát triển cũng như tăng tính linh hoạt của dịch vụ,người dùng của hệ thống có thể tự định nghĩa các chính sách bảo vệ của hệ thống củariêng họ, độc lập và không ảnh hưởng tới các chính sách của người dùng khác trên hệthống Cách tiếp cận này tuy đơn giản nhưng lại đem lại hiệu quả cao khi người dùng

hệ thống có thể tự do lựa chọn đâu là những kết nối bị nghi ngờ có thể gây hại hệthống của họ và ngăn chặn chúng kịp thời

Hiện tại có hai hướng xây dựng firewall đó là stateful firewall và statelessfirewall Trong đó, stateful firewall quản lý hầu hết các khía cạnh của các đườngtruyền từ đặc điểm cũng như trạng thái của kết nối thông qua việc đọc toàn bộ cácthông tin của những gói tin Trong đó, stateful firewall còn lưu trữ thông tin kết nốicủa gói tin và đánh giá mức độ sử dụng tài nguyên của gói tin Từ đó đưa ra các quyếtđịnh ngăn chặn hay chấp nhận gói tin trong lưu lượng ra vào hệ thống Việc đọc toàn

bộ thông tin gói tin và xử lý chúng để đưa ra quyết định sẽ gây ảnh hưởng rõ rệt tớihiệu năng của hệ thống Trong khí đó, stateless firewall chỉ đọc vào các thông tin trongcác gói tin và đưa ra quyết định loại bỏ hay chấp nhận gói tin thông qua các luật đượcđịnh nghĩa trước Nhằm tăng hiệu năng của dịch vụ, khóa luận sẽ lựa chọn cách tiếpcận xây dựng stateless firewall

Khóa luận sẽ đề xuất hướng giải quyết cho bài toán theo ba bước chính: xâydựng dịch vụ lọc và kiểm soát lưu lượng, cung cấp một giao diện bậc cao cũng nhưcông cụ giúp người sử dụng dịch vụ đễ dàng hơn trong việc tiếp cận và quá trình tíchhợp vào một hệ thống open-source cloud computing lớn mà cụ thể hơn chính làOpenStack

Trong quá trình xây dựng hệ thống, một số kĩ thuật được sử dụng để tăng cườngtính bảo mật cho dịch vụ sẽ được đề cập tới Cùng với đó là các phương pháp giúptăng cường hiệu năng cho hệ thống cũng sẽ được nói đến Cuối cùng, khóa luận sẽ nói

Trang 14

tới hiệu quả của dịch vụ trong việc bảo vệ hệ thống và ứng dụng của nó vào hệ thốngOpenStack.

1.3 Bố cục khóa luận

Bố cục của cả khóa luận sẽ bao gồm 4 phần chính đó là: đặt vấn đề, đưa ra các cơ

sở lý thuyết, đề xuất giải pháp cho bài toán và cuối cùng là xây dựng, tích hợp dịch vụtrên hệ thống thực

Trong phần đặt vấn đề, khóa luận sẽ đưa ra những vấn đề còn tồn tại trong quátrình tiếp cận các hệ thống lớn, cụ thể là các nền tảng điện toán đám mây Đặt ra tầmquan trọng của firewall trong các hệ thống đó trong quản lý và kiểm soát đườngtruyền Sau đó, những hướng tiếp cận cho bài toán được đề xuất và đưa ra hướng tiếpcận mà khóa luận lựa chọn để giải quyết vấn đề

Sau đó, khóa luận sẽ cung cấp các thông tin cơ bản về những khái niệm sẽ sửdụng cho khóa luận Theo đó, cơ sở của cách tiếp cận mà khóa luân lựa chọn đó làkhái niệm về mô hình Firewall as a Service (FWaaS) Những ưu điểm và nhược điểmcủa mô hình này sẽ được trình bày trong phần cơ sở lý thuyết này Ngoài ra, nhữngdịch vụ hiện đang cung cấp theo mô hình trên cũng được đề cập đến và phân tích Đặcbiệt, khóa luận sẽ trình bày một cách rõ rảng về OpenStack, một nền tảng điện toánđám mây mã nguồn mở Cùng phân tích những khó khăn cho người mới tiếp cận vớicác dịch vụ của hệ thống cũng như chỉ ra những bất cập về dịch vụ FWaaS và SecurityGroup của OpenStack

Tiếp theo, giải pháp cho vấn đề của phần một sẽ được đề xuất chi tiết trongchương ba Trong đó, mô hình tổng quan của dịch vụ sẽ được trình bày và phân tích.Các phương pháp để xây dựng một hệ thống độc lập sẽ được nhắc tới cùng với giảipháp cho việc tích hợp vào một nền tảng điên toán đám mây

Cuối cùng là phần áp dụng các giải pháp đưa ra trong chương 3 vào thực nghiệm.Khóa luận sẽ xây dựng kiến trúc chi tiết và đưa ra quy trình phát triển dịch vụ Cácphương pháp tiến hành cho giải pháp sẽ được trình bày cùng với đó là các kết quả đạtđược sau khi cài đặt thành công dịch vụ trên hệ thống thực và đưa ra đánh giá về hiệuquả của dịch vụ mới đối với hệ thống Cloud trên OpenStack

Trang 15

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Như đã đề cập từ trước, OpenStack có cung cấp một giải pháp cho vấn đề bảomật và an toàn thông tin bên trong Networking Service là Security Group Ngoài việc

hỗ trợ Security Group, đội phát triển của Neutron còn có phát triển thêm một dịch vụcho hệ thống đó là plug-in Firewall as a Service Trong chương này, khóa luân sẽ cungcấp các thông tin cần thiết về OpenStack Networking Service và các giải pháp bảo mật

mà OpenStack cung cấp là FwaaS và Security Group và những hạn chế của hai giảipháp

2.1 OpenStack Networking Service

2.1.1 Neutron Component

Trong hệ thống OpenStack, Networking Service hay Neutron được xem như làmột thành phần quan trọng không thể thiếu Neutron giữ vai trò quản lý và chuyển tiếpcác gói tin bên trong và bên ngoài networking component ở mức độ hạtầng[CITATION 1 \l 1066 ] Neutron cung cấp một lượng lớn các chức năng và cácplug-in giúp người quản trị có nhiều lựa chọn cho việc triển khai hệ thống OpenStack.Ngoài ra Neutron còn cung cấp một lượng lớn API đầy đủ cho nhà phát triển để xâydựng các plug-in phục vụ cho hệ thống

Neutron có thể được xem như là một hệ thống tập trung được sử dụng trong môitrường OpenStack để quản lý và vận hành các hạ tầng mạng ảo thuộc về tầng logic vàcác hạ tầng mạng vật lý thuộc về tầng data access [CITATION OpenStack \l 1066 ].Nhờ Neutron, người quản trị có thể xây dựng lên các mô hình mạng phức tạp, nângcao và có thể bao gồm các dịch vụ như load balancer, VPN,… [CITATION OpenStack

\l 1066 ]

Để làm được điều đó, Neutron sử dụng một tầng trung gian là NetworkAbstraction Theo đó, Network Abstraction hoạt động dựa theo nguyên lý của SDN(Software-Defined Network) giúp ảo hóa hạ tầng mạng vật lý và cung cấp cho nhàphát triển một bộ API để tương tác, quản lý và xây dựng các tài nguyên mạngảo[CITATION SDNSurvey \l 1066 ] Nhờ vào nguyên lý đó mà người quản trị có thểtạo và sử dụng các thiết bị và tài nguyên mạng mà không hề bị phụ thuộc và hạ tầngvật lý Khi nào cần cải tiến và tối ưu hiệu năng thì người quản trị chỉ cần bổ sung thiết

bị phần cứng cho hệ thống, Neutron sẽ đảm nhận việc ảo hóa và sử dụng phần cứngcho hạ tầng mạng logic

Trang 16

Neutron có cung cấp hai mechanism_driver cho người quản trị khi cài đặt nhằmphục vụ cho tầng Network Abstraction đó là OpenVSwitch (OVS) và linuxbridge (LB)với ML2 core_plugin frame work Cả OpenVSwitch và linuxbridge đều được sử dụng

để tạo ra các thiết bị bridge ảo chạy trên hệ điều hành Linux và có vai trò quan trọngtrong Linux Networking Trong đó, OpenVSwitch là một công cụ được sử dụng rộngrãi trong các hệ thống dựa trên mô hình SDN nhờ vào việc nó hỗ trợ OpenFlow, mộtgiao thức được chuẩn hóa phục vụ cho việc triển khai SDN Tuy nhiên, mặc dùlinuxbridge ít được sử dụng để triển khai SDN như OpenVSwitch, linuxbridge lại cómột vài ưu điểm hơn so với OpenVSwitch như kích thước nhỏ và là một tính năng đãđược tích hợp sẵn và trong nhân của hệ điều hành Linux Ngoài ra, Linuxbridge sửdụng và triển khai đơn giản hơn OpenVSwitch Do vậy, khóa luân này sẽ cài đặtOpenStack Neutron và sử dụng linuxbridge làm mechanism_driver

2.1.2 Network Abstraction trong Neutron với Linux Bridge Agent

Neutron linuxbridge mechanism_driver chỉ sử dụng các Linux bridge và các cặpveth như các thiết bị kết nối của hệ thống mạng[CITATION NeutronLB \l 1033 ].Theo đó, layer-2 agent của Neutron Linux bridge quản lý tất cả các linux bridge trêncác compute node trong hệ thống OpenStack Còn với các node khác trong hệ thốngthì nó cung cấp giải pháp như như layer-3 routing, DHCP, metadata service hay cácdịch vụ mạng khác[CITATION NeutronLB \l 1066 ]

Trong OpenStack Networking có hai loại mạng, đó là provider network và service network Trong đó, provider network cho phép tạo các kết nối layer-2 cho cácmáy ảo và hỗ trợ thêm các dịch vụ khác như DHCP và metadataservice Các mạngtheo kiểu này ánh xạ trực tiếp vào hệ thống mạng layer-2 trong datacenter và thường

self-sử dụng chuẩn VLAN (802.1q) tagging để định danh và phân chia các mạngđó[CITATION OSNetwork \l 1066 ] Các tác vụ mạng thuộc layer-3 được providernetwork chuyển thành trách nhiệm của hạ tầng mạng vật lý Trong các trường hợpthông thường, triển khai OpenStack là việc thực hiện trong môi trường hỗn hợp giữa

ảo hóa và hệ thống vật lý Do mạng Provider cần có sự can thiệp vào hạ tầng mạng vật

lý nên mạng provider chỉ được tạo và quản lý bởi người quản trị có đủ quyền hạn.Bên cạnh provider network, self-service network là kiểu mạng cho phép người sửdụng phổ thông tạo và quản lý mà không cần quyền quản trị cao nhất Các mạng loạinày hoàn toàn là ảo và yêu cầu cần có các router ảo để có thể kết nối tới các mạngprovider và các mạng bên ngoài như Internet[CITATION OSNetwork \l 1066 ] Seft-service cung cấp cho người sử dụng nhiều lựa chọn về overlayer protocols như GRE,

Trang 17

VXLAN hay VLAN Tuy nhiên trong hầu hết các trường hợp thì GRE và VXLANđược sử dụng nhiều hơn cả do nó có thể tạo được nhiều subnet hơn so với giao thứcphân mảnh gói tin thuộc layer-2 sử dụng VLAN tagging (802.1q)[CITATIONOSNetwork \l 1066 ].

2.1.3 Virtual Router trong Neutron

Trong OpenStack, để kết nối giữa các subnet với nhau cần phải tạo một kết nốithuộc layer-3 giữa các subnet Như đã biết thì việc định tuyến gói tin thuộc tầng mạng

là trách nhiệm của router OpenStack Networking Service cũng hỗ trợ cho người sửdụng tạo và quản lý các router ảo để cung cấp các kết nối thuộc layer-3 giữa các mạng.Tuy nhiên, linuxbridge mechanism_driver chỉ có thể cung cấp các kết nối layer-2cho hệ thống mạng của OpenStack Do đó, Neutron đã hỗ trợ thêm một plug-in đảmbáo cho việc triển khai và quản lý các kết nối layer-3 đó là Neutron l3-agent Plug-innày đảm nhận cung cấp và quản lý các kết nối thuộc layer-3 cho các network Cụ thểhơn, l3-agent cung cấp các API để tạo và sử dụng các router ảo để kết nối các mạnglayer-2

Trang 18

Hình 1 Neutron Networks với L3-agent [ CITATION NeutronNetworking \l 1066 ]

L3-agent sử dụng đơn thuần Linux IP Stack và công cụ iptables để thực hiện cácchức năng của L3 như forwarding và NAT[CITATION NeutronNetworking \l 1066 ].Đồng thời, Neutron l3-agent sử dụng Linux networking namespace làm mặc định đểcung cấp các môi trường định tuyến cô lập giúp hỗ trợ cho người dùng tạo và sử dụngnhiều router cùng một lúc với các không gian địa chỉ IP có thể bị trùngnhau[CITATION NeutronNetworking \l 1066 ] Nhờ vào đặc điểm này của l3-agent, ta

có thể phát triển các dịch vụ, plug-in hỗ trợ cho l3-agent của Neutron

2.2 Neutron FWaaS

Nhóm phát triển của Neutron cũng đã đưa ra phương án cho dịch vụ FWaaS cho

hệ thống OpenStack Tuy nhiên, dịch vụ này vẫn chưa được hoàn thiện và hiện khôngcòn được phát triển và bảo trì do một số nguyên nhân và hiện tại hoàn toàn không cònđược hỗ trợ cho các phiên bản mới của OpenStack Phiên bản mới nhất mà FWaaS v2

hỗ trợ là phiên bản OpenStack Ocata Trong phạm vi khóa luận này, phiên bản

Trang 19

OpenStack được sử dụng là Stein và hai dịch vụ FWaaS v1 và v2 hoàn toàn không cònđược hỗ trợ cho hệ thống.

Tuy đã không còn được hỗ trợ nhưng ý tưởng về việc xây dựng và sử dụng dịch

vụ FWaaS tại các Virtual Router trong OpenStack Networking cũng đáng được quantâm Ý tưởng về dịch vụ này có thể giúp cho hệ thống tăng cường về mặt an toàn dữliệu và sự tiện dụng cho người quản trị

2.2.1 Neutron FWaaS v1

Neutron FWaaS v1 là phiên bản ban đầu của việc triển khai dịch vụ Firewall as aService của OpenStack Neutron FWaaS v1 cung cấp sự phòng hộ cho các VirtualRouter [CITATION OSFWaaS \l 1066 ] Một khi mà Firewall được áp dụng choRouter thì toàn bộ các port thuộc router sẽ được bảo vệ

Hình 2 Hoạt động của Neutron FWaaS [ CITATION OSFWaaS \l 1066 ]

Cách hoạt động của FWaaS v1 cũng tương đối đơn giản nhưng lại đem lại hiệuquả cao trong việc đảm bảo an toàn cho các mạng kết nối với router FWaaS v1 sẽđược cài đặt trên các Networking Node của hệ thống OpenStack, nơi mà cácOpenStack Router được cài đặt và hoạt động FWaaS v1 chỉ cung cấp các chức năng

cơ bản của Firewall cơ bản thuộc layer-3 là lọc gói tin dựa trên các thông tin về portranges, protocols và IP address[CITATION OSFWaaS \l 1066 ]

Trang 20

2.2.2 Neutron FWaaS v2

Neutron có cung cấp một phiên bản mới hơn của FWaaS v1 với tên gọi là FWaaSv2 Theo đó, FWaaS v2 cung cấp nhiều dịch vụ chi tiết hơn so với phiên bản tiềnnhiệm [CITATION OSFWaaS \l 1066 ] Điểm đáng chú ý nhất của v2 đó là khái niệm

về một firewall được thay thế bởi khái niệm firewall group Một firewall group là sựkết hợp của hai policy đó là: ingress policy và egress policy[CITATION OSFWaaS \l

1033 ] Trong đó, ingress policy giúp kiểm soát luồng dữ liệu vào trong router trướckhi định tuyến Còn egress policy thì ngược lại, giúp kiểm soát các luồng dữ liệu

ra khỏi router sau khi xử lý và định tuyến

Ngoài ra, trong phiên bản FWaaS v2, các firewall group không còn được áp dụng

ở mức router (áp dụng trên toàn bộ port của router) mà sẽ được áp dụng tại mức port[CITATION OSFWaaS \l 1066 ] Theo đó, các router port có thể được gán với cácfirewall group Bằng việc gán các firewall group cho các port trên OpenStack Route,khả năng bảo vệ hệ thống của FWaaS v2 tăng lên đáng kể khi mà các luồn dữ liệuđược kiểm soát chặt chẽ hơn

Hỗ trợ L3 firewalling cho router ports NO YES

Hỗ trợ component Horizon (OpenStack Dashboard) YES NO

Bảng 1 So sánh giữa FWaaS v1 và v2 [CITATION OSFWaaS \l 1066 ].

Bảng trên đưa ra so sánh các tính năng đang được hỗ trợ bởi hai phiên bản củadịch vụ FWaaS Theo đó, cả hải dịch vụ đều không hỗ trợ tính năng L2 firewalling,chặn các kết nối thuộc layer-2 Ngoài ra, phiên bản FWaaS v2 không hỗ trợ choOpenStack Dashboard mà chỉ hỗ trợ CLI khiến việc sử dụng các tính năng của dịch vụtrở nên khó khăn, yêu cầu người quản trị cần phải truy cập vào hệ thống OpenStackbằng CLI để làm việc

2.2.3 Tình trạng phát triển hiện tại của plug-in Neutron FWaaS

FWaaS v2 của Neutron hiện đã bị ngừng phát triển kể từ sau phiên bản Pike củaOpenStack Theo như thông báo của đội phát triển của Neutron thì tính năng FWaaS bịngừng phát triển một phần do sự thiết hụt nhân sự trong việc phát triển và bảotrì[ CITATION FWaaS_README \l 1066 ] Một phần khác là do các tính năng màFWaaS cung cấp hiện đang bị trùng với các tính năng của Security Group, tính năng

Trang 21

cần được hỗ trợ và bảo trì hơn[ CITATION FWaaS_API \l 1066 ] Ngoài ra, dịch vụFWaaS hiện tại đang khá hạn chế và cần phải cải thiện đáng kể để có thể đáp ứng đượcnhu cầu của người sử dụng [ CITATION FWaaS_API \l 1066 ].

Cho tới phiên bản hiện tại đang được khóa luận sử dụng của OpenStack là Steinthì tính năng FWaaS đã hoàn toàn ngừng phát triển và không còn được hỗ trợ Cácchức năng của dịch vụ FWaaS vẫn có thể được cài đặt bằng tay vào hệ thống mớinhưng có thể gây ra lỗi hệ thống do khả năng không tương thích với các componentthuộc phiên bản mới của OpenStack

2.2.4 Các vấn đề về Security Group trong Neutron

Security Group được xem như là một cơ chế bảo mật cơ bản của OpenStack.Security Group là một tập hợp các luật lọc theo địa chỉ IP, layer-4 Port, … và có thểđược áp dụng cho tất cả các máy ảo trong dự án[CITATION OS_SC \l 1066 ].Security Group giữ nhiệm vụ xác định và giới hạn các luồng truy cập ra vào các máy

ảo OpenStack Compute Service hay Nova Component cho phép người sử dụng gáncác Security Group vào cho từng máy ảo kể cả khi khởi tạo hay khi máy ảo đã hoạtđộng Mỗi máy ảo có thể được gán cho một hoặc nhiều Security Group [CITATIONOS_SC_02 \l 1066 ] tùy vào nhu cầu bảo mật của từng máy ảo trong mạng Nếu nhưngười dùng không tạo Security Group hoặc không gán Security Group vào máy ảo khikhởi tạo thì hệ thống sẽ tự động gán Security Group Default vào máy ảo [CITATIONOS_SC_02 \l 1066 ] Và Security Group Default sẽ không thể bị xóa hay thay đổi tênnhư các Security Group thông thường

Có thể xem Security Group như một Firewall ảo cho các server chạy trong hệthống mạng của OpenStack Mỗi Security Group bao gồm tập hợp các luật thuộc vềhai loại chính sách là: ingress policy và egress policy Trong đó, tương tự như FWaaSv2, ingress policy điều khiển các luồng truy cập vào bên trong server Còn egresspolicy quản lý các luồng truy cập đi ra ngoài mạng từ bên trong server Các luồng truycập mà không thỏa mãn các luật được khai báo trong Security Group sẽ bị từ chối truycập theo mặc định [CITATION OS_SC_02 \l 1066 ]

Một điểm tương tự giữa dịch vụ FWaaS và Security Group đó là hỗ trợ các cơchế bảo mật thuộc layer-3 và layer-4 Trong đó, mỗi luật trong Security Group sẽ địnhnghĩa các thông tin cơ bản của gói tin thuộc về tầng mạng trong mô hình mạng 7 tầngcủa OSI và các hành động tương ứng với các gói tin khớp với các thông tin này Cácluật khớp có thể là tên giao thức, địa chỉ IP, số hiệu Port Đặc biệt bên trong biểu mẫu

Trang 22

dịch vụ như IMAP, POP3, HTTPS, DNS, dựa vào số hiệu port mà các dịch vụ đóthường sử dụng để triển khai trên hệ thống.

Mặc dù các Security Group đã có thể đảm bảo các chỉ tiêu an toàn cơ bản cho cácserver chạy trên hệ thống OpenStack Tuy nhiên, với các chức năng hiện tại củaSecurity Group cũng như FWaaS vẫn có thể chưa có khả năng đáp ứng đủ các nhu cầucủa người sử dụng Một ví dụ đơn giản có thể được đặt ra đó là khi người sử dụngmuốn ngăn chặn các gói tin chỉ từ một máy chủ từ bên ngoài Security Group vàFWaaS có thể ngăn chặn luồng truy cập của server này dựa trên địa chỉ IP Tuy nhiên,địa chỉ IP của server có thể thay đổi bất cứ lúc nào và người quản trị cần phải cập nhậtlại luật bảo mật cho Security Group Điểm này rất bất tiện người quản trị khi phải thựchiện cập nhật trên từng Security Group Một ý tưởng được đặt ra đó là cài đặt luật lọcgói tin hỗ trợ layer-2 filtering bằng việc lọc địa chỉ MAC của gói tin khi đi qua Ýtưởng này đảm bảo hơn so với việc lọc thông qua địa chỉ IP do server không thể thayđổi địa chỉ MAC của riêng nó

Ngoài ra, Security Group hiện tại hoạt động trong OpenStack Neutron ở mức độPort Điểm này hoạt động rất tốt cho các dự án OpenStack nhỏ và vừa, cấu trúc mạngcòn đơn giản Một khi mô hình mạng của dự án mở rộng với nhiều máy ảo và tàinguyên mạng, số lượng port của hệ thống lớn và topo mạng sẽ tăng sự phức tạp Khi

đó, để có thể đảm bảo an toàn cho hệ thống, người quản trị cần phải xây dựng một hệthống Security Group đủ tốt, đồng thời gán các Security Group vào các port tươngứng Việc này rất tốn thời gian và công sức khi phải xây dựng một tập hợp cácSecurity Group một cách đầy đủ và phân phối hợp lý trên các Port của hệ thống giúptránh cho việc tạo ra một hệ thống phức tạp và rắc rối Bên cạnh đó, công việc quản trị

và bảo trì hệ thống cũng sẽ gặp nhiều khó khăn khi có lỗi xảy ra Có thể người quản trịcần phải kiểm tra lại toàn bộ các luật lọc gói tin bên trong các Security Group trêntừng Port để tìm giải pháp thích hợp

2.3 Các nghiên cứu liên quan

Hiện đã có một vài nghiên cứu liên quan đến việc xây dựng các dịch vụ bảo mật

“as a Service” cho hệ thống các hệ thống Cloud, cụ thể hơn là OpenStack Trong đó,

đã có rất nhiều nhóm nghiên cứu và triển khai các cải tiến cho một loại hình dịch vụbảo vệ là NIDS (Network Instrusion Detection System)

Các hệ thống NIDS có chức năng chính là phát hiện và giám sát các cuộc tấncông trên mạng máy tính Các hệ thống NIDS thường được triển khai ở trên một máytrong mạng và hoạt động như một dịch vụ mạng Khi đó, các luồng gói tin đi trong

Trang 23

mạng sẽ được “mirror” vào hệ thống NIDS và hệ thống sẽ phân tích dữ liệu gói tin,phát hiện các truy cập trái phép và đưa ra các quyết định để bảo vệ hệ thống mạng.Nhóm nghiên cứu của trường đại học Bakrie, Jakarta, Indonesia đã phát triển một hệthống NIDS dựa trên sử dụng phương pháp dựa trên chữ ký (signature-based) để xácđịnh dữ liệu gói tin cho một mạng private của OpenStack[ CITATION NIDS_2016_01

\l 1066 ] Một nhóm nghiên cứu khác của trường đại học Tennessee, Chattanoog cũng

đã xây dựng một hệ thống NIDS cho OpenStack Cloud Trong đó, họ phân tích sự tiêuthụ và tốn kém tài nguyên mạng của các cơ chế kiểm soát mà các hệ thống NIDS sửdụng từ đó đề xuất ra một dịch vụ nhỏ NIDS as a Service bằng việc sử dụng ít tàinguyên CPU hơn so với các dịch vụ trước đó[ CITATION NIDaaS_01 \l 1066 ] Tuynhiên, các dịch vụ NIDS trên thường chiếm một lượng lớn tài nguyên mạng như bộnhớ, CPU và lưu lượng mạng Đồng thời xây dựng các giải pháp khá phức tạp và cóảnh hưởng rõ rệt tới hiệu năng truyền tải của mạng

Ngoài các công trình nghiên cứu về loại hình hệ thống NIDS đã đề cập phía trênthì Firewall cũng được một số nhóm nghiên cứu tham gia vào phân tích và phát triểncác dịch vụ Firewall as a Service dành cho hệ thống Cloud Nhóm các nhà nghiên cứu

ở Banglore, Karnataka, Ấn Độ có triển khai một dịch vụ FWaaS sử dụng công cụAnsible để cung cấp cho người dùng một giao diện GUI giảm thiểu công sức và hạnchế lỗi do người dùng gây ra và hỗ trợ cho trường hợp nhiều trường hợp khác nhaucủa OpenStack Neutron trong môi trường multi cluster cloud[CITATION FWaaS_01 \

l 1066 ] Một nhóm nghiên cứu khác đến từ Hungary và Slovakia có xây dựng mộtcông cụ phân tích các luật trong module FWaaS của OpenStack và cung cấp cho ngườidùng các thông tin dễ đọc hơn để có thể tìm ra các lỗ hổng hệ thống và tăng cường bảomật cho hệ thống [ CITATION FWaaS_02 \l 1066 ]

Trang 24

CHƯƠNG 3: ĐỀ XUẤT GIẢI PHÁP3.1 Dịch vụ FwaaS

Security Group bên trong OpenStack Networking đã có thể đáp ứng đủ nhu cầubảo mật cho hệ thống Cloud Việc quản trị các traffic ra vào hệ thống trên các Port củacác thực thể mạng đủ đảm bảo cho các yêu cầu bảo mật hệ thống Tuy nhiên, như đã

đề cập ở chương 2, việc sử dụng Security Group đem đến một vài điểm bất tiện khithao tác trên một hệ thống mạng với quy mô lớn và phức tạp Một ví dụ đơn giản cóthể nhắc đến đó là khi thực hiện giới hạn luồng gói tin qua lại giữa các mạng VớiSecurity Group cần phải thực hiện với các Security Group thuộc từng cụm Port tươngứng Khóa luận sẽ đề xuất một dịch vụ FWaaS ở mức độ Router mà tại đó, việc điềukhiển luồng gói tin qua các mạng sẽ chỉ cần thực hiện tại một điểm duy nhất đó làRouter thay vì từng Port Ngoài ra, dịch vụ được đề xuất còn cung cấp các cơ chế bảomật thuộc nhiều tầng khác nhau thay vì chỉ lọc gói tin theo layer 3-4 mà SecurityGroup đã làm, giúp mở rộng khả năng bảo vệ hệ thống mạng của OpenStack

Khóa luận này sẽ tập trung đi sâu vào phát triển dịch vụ FWaaS một cách hoàntoàn độc lập với hệ thống OpenStack và có thể chạy trên hệ điều hành Linux như mộtchương trình bình thường và thực hiện như một chức năng Firewall của hệ điều hành

3.1.1 Đề xuất kiến trúc dịch vụ

Trước khi phát triển một phần mềm hay dịch vụ nào đó thì việc đầu tiên cần phảilàm là xây dựng kiến trúc cho dịch vụ đó Do hệ thống OpenStack với componentHorizon (OpenStack Dashboard) được phát triển với kiến trúc của một ứng dụng Webnên dịch vụ FWaaS mà khóa luận sẽ phát triển theo hướng xây dựng một ứng dụngWeb

Như đã đề cập từ trước, trong phiên bản Stein của OpenStack chỉ cung cấpSecurity Group làm giải pháp bảo mật cho cả hệ thống và còn đem lại nhiều bất lợicho người sử dụng cũng như chỉ cung cấp các cơ chế lọc gói tin cơ bản của layer-3 dựatrên địa chỉ IP và số hiệu cổng Cơ chế bảo mật trên có thể chấp nhận được khi cài đặtcho từng máy ảo ở mức port Tuy nhiên, do nhu cầu bảo vệ hệ thống ngày càng tăng

do sự phát triển không ngừng của công nghệ thông tin nên việc hỗ trợ các cơ chế bảomật mới của hệ thống OpenStack là cần phải có Do đó, khóa luận sẽ đề xuất ra một cơchế mới hỗ trợ việc lọc gói tin trên nhiều layer trong mô hình mạng OSI

Hình ảnh dưới đây sẽ mô tả cách mà dịch vụ FWaaS của khóa luận sẽ hoạt động.Trong đó, mô hình triển khai với một Provider Network với nhiều Self-Service

Trang 25

Network là mô hình triển khai phổ biến hơn cả với OpenStack Neutron Theo như hìnhảnh mô tả, dịch vụ FWaaS sẽ giữ vai trò quản trị và điều phối các Firewall nằm giữacác mạng trong hệ thống Nói cách khác, các Firewall này sẽ được dịch vụ cài đặt vàotrong các Router ảo mà Neutron tạo ra khi kết nối giữa các mạng trong hệ thống vàđiều khiển các luồng dữ liệu vào ra trong mạng.

Hình 3 Mô tả hoạt động của dịch vụ FWaaS

Dịch vụ FWaaS sẽ hoạt động ở mức độ Router trong Neutron của hệ thốngOpenStack Do đã phân tích từ trước, Security Group đã có thể đáp ứng tốt các yêu cầubảo mật ở mức độ Port của hệ thống Dịch vụ FWaaS mà khóa luận phát triển sẽ chỉquan tâm tới việc xây dựng các Firewall hoạt động ở mức độ Router (hoạt động trêntoàn bộ các Port) và cung cấp thêm các tính năng filtering trên nhiều tầng khác của môhình 7 tầng OSI

Cách thức hoạt động của dịch vụ khá đơn giản nhưng lại đem lại hiệu quả caotrong việc tiết kiệm tài nguyên và tăng cường hiệu năng của hệ thống

Trang 26

Hình 4 Cách thức hoạt động của dịch vụ FWaaS

Theo hình trên, dịch vụ Firewall sẽ giữ vai trò như một người điều phối giữa cácRouter và người sử dụng Dịch vụ sẽ cung cấp các API cho người sử dụng để tươngtác với người dùng Một khi nhận các lệnh từ người quản trị, dịch vụ sẽ đi vào bêntrong các Router tương ứng và thực hiện thao tác trên bảng các luật lọc gói tin đượccài đặt bên trong Router này Nhờ đó, các gói tin khi đi qua Router đều phải đi quamột dãy các luật được cài dặt trên Router và chỉ được phép đi qua khi không vi phạmbất kỳ luật nào trong các luật được cài đặt

Đã đề cập đến từ trước, do OpenStack Dashboard Component sử dụng ứng dụngweb để cung cấp cho người dùng giao diện để tương tác nên dịch vụ FWaaS của khóaluận cũng sẽ xây dựng theo kiến trúc ứng dụng Web đơn giản Trong đó, server sẽcung cấp cho người dùng các file cần thiết của front-end của ứng dụng mỗi khi truycập vào cổng mà server đang chạy Sau đó, người dùng sẽ tương tác với dịch vụ thôngqua ứng dụng front-end vừa tải Mỗi khi thực hiện một thao tác trên giao diện, ứngdụng front-end sẽ tạo các yêu cầu lên Web Service thông qua REST API Khi nhậnđược yêu cầu, Web Service sẽ chuyển yêu cầu cho Firewall Engine và Firewall Engine

sẽ thực hiện các yêu cầu lên bảng các luật bên trong các Router tương ứng với yêu cầu

Trang 27

Hình 5 Mô hình kiến trúc ứng dụng FWaaS

3.1.2 Lựa chọn công nghệ

Nhờ vào việc lựa chọn hướng tiếp cận xây dựng một dịch vụ độc lập, có rất nhiềulựa chọn công nghệ cho việc phát triển dịch vụ FWaaS của khóa luận Tùy thuộc vàomôi trường mà hệ thống Cloud mà dịch vụ sẽ chạy mà người phát triển sẽ chọn côngnghệ phù hợp

Khóa luận này sẽ sử dụng API đã được cung cấp của công cụ iptables để làmcông cụ chính để cài đặt các luật lọc gói tin bên trong các Router Iptables là một công

cụ tiện ích được sử dụng rộng rãi trong các chương trình Firewall của các hệ điều hànhdạng UNIX Iptables bao gồm rất nhiều bảng được đặt trong nhân của hệ điều hành và

xử lý các gói tin tại đường đi của luồng dữ liệu Iptables là một chương trình nằm ởuser-space trong hệ điều hành và được xem như một công cụ được dùng để quản lýnetfilter, một framework lọc và thao tác gói tin chuẩn chạy bên trong nhân của hệ điềuhành Linux

Trang 28

Hình 6 Luồng đi của gói tin qua qua bảng filter của iptables

Python cũng là ngôn ngữ được khóa luận lựa chọn để xây dựng dịch vụ sử dụng

vì tính đơn giản và sự phổ biến của nó Ngoài ra, python còn hỗ trợ cài đặt các thưviện bên ngoài do các nhà phát triển trên toàn thế giới chia sẻ hỗ trợ cho quá trình pháttriển Đồng thời, python còn có hiệu năng tương đối cao và thường được sử dụng chocác dự án lớn đòi hỏi sự tối ưu trong quá trình chạy Đặc biệt, có một thư viện python

đã được phát triển nhằm mục đích cung cấp các API bằng python của công cụ Iptablesgiúp quá trình phát triển các công cụ sử dụng Iptables trở lên dễ dàng hơn [CITATIONpython_firewall \l 1066 ] Thư viện python-iptables cung cấp một wrapper bằngpython có khả năng tương tác với iptables bằng việc sử dụng các thư viện viết bằngngôn ngữ C của Iptables (libiptc, libxtables, và các iptables extensions) chứ khôngphải gọi công cụ iptables bằng lệnh và phân tích kết quả output từ lệnh [CITATIONpython_firewall \l 1066 ] Nhờ đó giúp đảm bảo hiệu năng khi làm việc với các bảngcủa iptables bên trong nhân Linux và cũng linh hoạt hơn trong việc cài đặt các luậtphức tạp của Firewall

Đối với việc phát triển một giao diện Dashboard cho dịch vụ FWaaS, khóa luậnlựa chọn việc phát triển một dịch vụ Web và xây dựng một ứng dụng web để tương tácvới hệ thống Công nghệ Web đang phát triển một cách nhanh chóng trong vòng mộtthập kỷ gần đây Nhờ vào sự linh hoạt khi sử dụng nên các ứng dụng Web ngày càng

Trang 29

được người dùng ưa chuộng hơn các ứng dụng truyền thống Trong đó, Python vàJavascript là hai ngôn ngữ lập trình được sử dụng phổ biến nhất trong các ứng dụngweb Khóa luận sẽ sử dụng Python cùng với thư viện Flask để xây dựng một RESTAPI để cung cấp cho người dùng và sử dụng javascript để xây dựng một ứng dụng webtương tác với hệ thống thông qua REST API Bên cạnh đó, thư viện Reactjs cũng sẽđược sử dụng để việc phát triển ứng dụng web ở phía front-end trở nên dễ dàng hơn.

Dữ liệu được trao đổi giữa server và client được định dạng ở dạng chuỗi JSON, mộtdạng định dạng dữ liệu phổ biến và linh hoạt trong các dịch vụ web hiện nay

3.2 Tích hợp dịch vụ vào OpenStack

Sau khi phân tích và đề xuất ra mô hình kiến trúc dịch vụ FWaaS thì việc cần làmtiếp theo là phân tích và đề xuất các phương án tích hợp dịch vụ vào hệ thốngOpenStack Trong phần này, khóa luận sẽ đi khảo sát và phân tích các khả năng tíchhợp của dịch vụ vào hệ thống OpenStack và đề xuất ra phương án tích hợp tối ưu nhất

Ngoài cấu trúc phức tạp của hệ thống, tài liệu không đầy đủ và thiếu cập nhật hay

có quá nhiều tài liệu trùng lặp cho cùng một chủ để cũng là một trong những nguyênnhân gây ra việc khó tiếp cận và đóng góp cho các nhà phát triển của hệ thốngOpenStack Do cung cấp nhiều dịch vụ khác nhau cũng như số lượng thành viên lớnnên tài liệu của OpenStack cung cấp tương đối dài và khó đọc Điều này khiến choviệc đóng góp cũng như phát triển những module mới cho hệ thống gặp nhiều khókhăn và tốn thời gian, công sức nghiên cứu

Một trong các hướng chủ yếu mà các nhà phát triển thường sử dụng khi pháttriển module cho các thành phần là viết các module vào ngay trong codebase của thànhphần đó Đây là một hướng tiếp cận rất tốt khi người phát triển đã nắm rõ cấu trúc vàcác quy ước của thành phần đó Tuy nhiên, nếu như một người thiếu kinh nghiệm và

Ngày đăng: 21/10/2020, 20:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w