Thêm vào đó, điện toán đám mây tận dụng các công nghệ đang phát triển như Web 2.0cho các dịch vụ ứng dụng, và ảo hóa cho việc cung cấp các tài nguyên động.So sánh 6 giai đoạn phát triển
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Nguyễn Văn Tam
HÀ NỘI – 2011
Trang 2MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
MỞ ĐẦU
Chương 1 - Tổng quan về an toàn thông tin trong hệ thống tính toán lưới
1.1 Vai trò của tính toán lưới hiện nay
1.1.1Giới thiệu
1.1.2Vai trò của tính toán lưới trong nghiên cứu khoa học (e-science)
1.1.2.1 Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization)
1.1.2.2 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới
1.1.2.3 Tính toán phân tán
1.1.2.4 Quản lý dữ liệu
1.2 Các thách thức của an toàn thông tin trong điện toán đám mây
1.2.1Đặc trưng
1.2.2Kiến trúc phân lớp của tính toán lưới
1.2.3Thách thức an toàn thông tin
Chương 2 - Giải pháp bảo mật
2.1Middleware
2.1.3 Định nghĩa
2.1.3 Các công nghệ Middleware trong tính toán lưới
2.1.3.1Globus Toolkit
2.1.3.1Glite
2.1.3.1Unicore
2.1.3 Các phương pháp an toàn thông tin thường được áp dụng trong tầng middleware của tính toán lưới
2.1.3.1 Xác thực và cấp phép
2.1.3.2Ủy quyền
2.1.3.3 Giao tiếp bí mật
2.2Hạ tầng
2.2.3 An ninh mức vật lý
Trang 32.2.4An ninh hệ điều hành
2.2.5Bức tường lửa
2.2.6Phát hiện truy nhập
Chương 3 - Giải pháp bức tường lửa mã nguồn mở iptables .
3.1 Giới thiệu về IPTables
3.2 Nguyên lý hoạt động của IPTables
3.3 Cấu trúc IPTables
3.3.1 Bảng MANGLE
3.3.2 Bảng NAT
3.3.3 Bảng FILTER
3.4 Các thành phần của IPTables
3.4.1Targets
3.4.2Các tham số chuyển mạch quan trọng của IPTables
3.4.3Sử dụng chuỗi luật do người dụng định nghĩa
3.4.4Những module kernel
3.5 Các điều kiện trong chuỗi luật của IPTables
3.6 Hành động trong luật
3.7 Tường lửa trên Grid
3.7.1Lưu lượng và cổng dịch vụ trong Grid
3.7.2Điều khiển phạm vi cổng trong Grid
Chương 4 - Mô hình thử nghiệm
TÀI LIỆU THAM KHẢO
Trang 4A watermark is added at the end of each output PDF file.
To remove the watermark, you need to purchase the software from
http://www.anypdftools.com/buy/buy -pdf-splitter.html
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Trang 6MỞ ĐẦU
Tính toán lưới vẫn giữ vai trò vô cùng quan trọng, đặc biệt trong lĩnh vực nghiên cứu.Trên thế giới, các dự án về tính tóan lưới vẫn tiếp tục được triển khai và phát triển Vớimong muốn làm chủ vấn đề an toàn thông tin trong tính toán lưới, luận văn này gồmnhững phần sau như sau:
Chương 1: Tổng quan về an toàn thông tin trong hệ thống
Chương 2: Giải pháp bảo mật
Chương 3: Bức tường lửa Iptables
Chương 4: Demo
Cuối cùng là Tài liệu tham khảo
Trang 7Chương 1 - Tổng quan về an toàn thông tin trong hệ thống
tính toán lưới 1.1 Vai trò của tính toán lưới hiện nay
Trước sự phát triển mạnh mẽ của điện toán đám mây, phần này trả lời cho câu hỏi ý nghĩa của điện toán lưới ngày nay
1.1.1 Giới thiệu
Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn dụ làlàm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng.Ngày nay có rất nhiều định nghĩa về tính toán lưới Một định nghĩa về Grid khá hoànchỉnh được đưa ra bởi tiến sỹ Ian Foster như sau :
“Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợp các tàinguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khảnăng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giảiquyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại Từ
đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thờigiữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năngnhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán
và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”
Hình 1-1 mô tả các quá trình phát triển của điện toán, từ kiến trúc máy vi tính lớn/thiết bịđầu cuối, đến máy tính cá nhân, mạng điện toán đến điện toán lưới và đám mây
Trong giai đoạn 1, nhiều người dùng tương tác với một máy vi tính lớn qua các thiết bịđầu cuối Trong giai đoạn 2, các máy tính cá nhân có sức mạnh đủ để thỏa mãn đa sốngười sử dụng Trong giai đoạn 3, các máy tính cá nhân, máy tính xách tay và máy chủkết nối với nhau thông qua các mạng nội bộ để chia sẻ tài nguyên và tăng hiệu năng.Trong giai đoạn 4, các mạng nội bộ được kết nối với các mạng nội bộ khác tạo thànhmạng toàn cầu như Internet để tận dụng các tài nguyên và ứng dụng ở xa Trong giai đoạn
5, điện toán lưới cung cấp khả năng chia sẻ sức mạnh điện toán và lưu trữ thông qua một
hệ thống điện toán phân tán Trong giai đoạn 6, điện toán đám mây cung cấp khả năngchia sẻ tài nguyên trên Internet thông qua một cách đơn giản và linh động hơn
Trang 8Hình 1-1 Các giai đoạn phát triển của điện toánĐiện toán lưới là sự kết hợp và chia sẻ tài nguyên cũng như cách thức giải quyết vấn đềtrong môi trường các tổ chức ảo động, nhiều thành viên nghiên cứu Việc chia sẻ đượcgiám sát chặt chẽ trong đó những nhà cung cấp tài nguyên và những nhà tiêu thụ địnhnghĩa rõ ràng và cẩn thận cái gì được chia sẻ, ai được chia sẻ và chia sẻ trong điều kiệnnào.
Bước phát triển tiếp theo của điện toán lưới là điện toán theo nhu cầu, trong đó các tàinguyên máy tính được đo đạc như các dịch vụ Điện toán theo nhu cầu đã giới thiệu ýtưởng về việc cung cấp động các tài nguyên điện toán
Điện toán đám mây được định nghĩa như là sự cung cấp các ứng dụng như các dịch vụthông qua Internet, và các phần mềm và cơ sở hạ tầng phần cứng trong các trung tâm dữliệu cung cấp các dịch vụ đó dùng mô hình kinh doanh giống như điện toán theo nhu cầu.Việc đo đạc các dịch vụ để hỗ trợ cho mô hình kinh doanh thanh toán theo nhu cầu làthích hợp với các phần mềm ứng dụng (SaaS), nền tảng (PaaS), và cơ sở hạ tầng (IaaS)
Trang 9Thêm vào đó, điện toán đám mây tận dụng các công nghệ đang phát triển như Web 2.0cho các dịch vụ ứng dụng, và ảo hóa cho việc cung cấp các tài nguyên động.
So sánh 6 giai đoạn phát triển của điện toán, có vẻ như điện toán đám mây là một sự quaytrở lại với mô hình điện toán máy tính lớn ban đầu Tuy nhiên, hai mô hình này có vàiđiểm khác biệt quan trọng Điện toán máy vi tính lớn chỉ cho phép một sức mạnh tínhtoán giới hạn, trong khi điện toán đám mây cung cấp một sức mạnh và dung lượng gầnnhư vô hạn Thêm vào đó, trong điện toán máy tính lớn các thiết bị đầu cuối chỉ là nhữngthiết bị truy cập, trong khi với điện toán đám mây các máy tính cá nhân có thể cung cấpkhả năng điện toán và bộ đệm
Dẫu cho, ngày nay điện toán đám mây ở mọi nơi được nhắc đến và hưởng ứng thì tínhtoán lưới vẫn có chỗ đứng trong các phòng nghiên cứu các dự án của các tổ chức cần đến
hỗ trợ tính toán lớn dựa trên nền tảng hạ tầng có sẵn với một cộng đồng tài nguyên tựnguyện
“Grid needs Cloud to prosper; Cloud needs Grid to scale” “Tính toán lưới cần Cloud đểphát triển, còn Cloud cần lưới để mở rộng” Ian Foster [4] [5]
Một số dự án lưới vẫn tiếp tục được quan tâm và triển khai
- EGI = European Grid Infrastructure: Các tài nguyên được sử dụng bởi hơn 13.000 nhà khoa học trên khắp châu Âu [6]
- StratusLab: Gia tăng hạ tầng điện toán lưới với công nghệ ảo hóa và đám mây [10]
- Initiative for Globus in Europe (IGE) : Mục tiêu chính là tiếp tục hỗ trợ cơ sở hạtầng máy tính châu Âu, để phục vụ như một điểm trung tâm liên lạc tại châu Âu choGlobus, vào hướng Globus phát triển phù hợp với các yêu cầu của người dùng châu Âu vàtăng cường ảnh hưởng của các nhà phát triển châu Âu trong Liên minh Globus
1.1.2 Vai trò của tính toán lưới trong nghiên cứu khoa học (e-science)
Mục này đề cập đến vai trò của Tính toán lưới và lý giải vì sao Tính toán lưới là mô hình
lý tưởng cho các bài toán thuộc nhiều ngành khoa học khác nhau
Chúng ta sẽ lấy ví dụ là bài toán mô phỏng sự đụng độ của các lỗ đen để nói lên nhữngđặc tính thường có trong những bài toán thuộc nhiều lĩnh vực khác nhau và sự phù hơpkhi dùng Tính toán lưới để giải quyết những bài toán này Một số vấn đề có thể còn đang
ở dạng nghiên cứu phát triển nhưng chúng ta tin rằng chúng sẽ được hiện thực trong mộttường lai gần 4 vấn đề thường thấy trong các bài toán khoa học mà cụ thể là bài toántrong vật lý thiên thể, mô phỏng sự đụng độ của các lỗ đen
Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization)
Trang 10 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới
Tính toán phân tán
Quản lý dữ liệu
1.1.2.1 Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization)
Một tổ chức ảo là một tập hợp các tài nguyên được quản lý một cách độc lập, những đượchợp tác, tập hợp lại để cộng đồng dùng nó giải quyết một mục tiêu chung Việc tổ chức và
sử dụng tài nguyên một cách hiệu quả rất quan trọng đối với cộng đồng người sử dụngnày
Kịch bản sử dụng đơn giản và quan trọng nhất trong tính toán khoa học dựa trên Grid làkhám phá tài nguyên (resource discovery) và nhờ hệ thống lưới thực thi một công việcnào đó (job submission) Một nhà khoa học ở Châu Âu đã chuẩn bị một file thực thi vàcác tham số đầu vào để giả lập việc trộn lẫn vào nhau giữa các lỗ đen,việc giả lập sử dụngnhiều tài nguyên phân tán ở khắp nơi trên thế giới, thông thường việc truy xuất tài nguyên
ở mỗi nơi cần có một tài khoản, mật khẩu, hàng đợi, hệ thống tệp… khác nhau.Điều nàygây khó khăn rất lớn cho cho các nhà khoa học có thể tiến hành các thí nghiệm, các môphỏng với quy mô lớn Ngay cả việc đơn giản là chọn một nơi nào đó để thực thi quátrình mô phỏng cũng đã rất phức tạp
Nhưng với công nghệ Grid, quá trình truy xuất những tài nguyên này sẽ trở nên đơn giản.Việc xác nhận dựa trên chứng chỉ (certificate) cho phép người sử dụng truy xuất tất cả hệthống trong tổ chức ảo với chỉ một lần đăng nhập, định danh và mật khẩu khi đăng nhậpvào tổ chức ảo sẽ được ánh xạ vào tài khoản của người sử dụng đó Đồng thời mô hìnhGrid cũng sẽ loại bỏ đi những đặc tính riêng của từng tài nguyên, tạo ra giao diện chungcho hệ thống tệp, cách nén dữ liệu… và do đó cho phép người sử dụng dùng các câu lệnhtruy xuất thống nhất cho tất cả các tài nguyên
Việc xây dựng những cổng thông tin dựa trên web ( web-based portal) cho phép ngườidùng truy xuất dễ dàng và thân thiện tất cả tài nguyên trong một tổ chức ảo Sau khi đăngnhập vào, người dùng về nguyên tắc có thể nhìn thấy được tất cả các tài nguyên sẵn có và
có thể cho chạy (submit) một công việc trên tài nguyên nào Đôi khi người dùng chỉ quantâm đưa công việc của mình lên lưới để chạy (submit), còn việc phân tán tài nguyên đểcho hệ thống tự động
Trang 11Hình 1-2 Mối quan hệ chia sẻ bên trong tổ chức ảo
1.1.2.2 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới
Trước đây, một nhà khoa học khi muốn chạy một ứng dụng mô phỏng lớn thì trước tiênphải thông báo và chuyển công việc vào một hệ thống trên một máy ở xa và sau đó cứmột khoảng thời gian lại log in vào máy từ xa đó để kiểm tra trạng thái của công viêc.Công việc đó có thể vẫn còn trong hàng đợi hoặc có thể công việc đó đang được thực thi
và cũng thường xuyên xảy ra trường hợp công việc đó đã bị kết thức vì một lý do nào đó
Có những trường hợp công việc nằm trong hàng đợi cả ngày, nhưng khi được thực thi thìthất bại chỉ vì một lỗi đơn giản trong quá trình khởi động hay có những công việc đã chạy
cả 100.000 giờ của CPU nhưng cuối cùng lại trả ra kết quả sai chỉ vì tham số đầu vào sai.Những trường hợp như thế đã làm nảy sinh nhu cầu cần phải phát triển cơ chế giao tiếp ,quản lý và chuyển hướng những công việc tốt hơn, đòi hỏi độ phức tạp hơn
Cactus là một ứng dụng Grid cho phép người dùng thông qua trình duyệt web có thể giaotiếp với các công việc đang thực thi Cactus Webserver Thorn HTTPD là một máy chủweb cho phép thể hiện tất cả thông tin của một công việc đang thực thi bao gồm chươngtrình con đang chạy, phiên bản, thời gian ước lượng hoàn tất, file dữ liệu nào được ghi
… Các tham số được khai báo steerable có thể được thay đổi thông qua giao diện web ,
tần suất I/O , variable output, downsampling… cũng có thể được thay đổi nếu cần, chophép người sử dụng sửa lại chương trình mà không phải bắt đầu lại Khi một công việcbắt đầu, URL của nó được phát tán đến một cổng thông tin (portal), cổng thông tin này sẽ
Trang 12thông báo đến một nhóm người cùng hợp tác trong công việc này thông qua email hoặctin nhắn SMS cùng với những thông tin để họ có thể truy xuất quá trình mô phỏng từ trìnhduyệt Những sự kiện mô phỏng quan trọng, như việc trộn lẫn hai lỗ đen có thể được lậptrình để kích hoạt thông báo đến một người sử dụng nào đó hoặc là một nhóm người cùngcộng tác trong việc giả lập đó.
Cổng thông tin vì vậy trở thành công cụ tổ chức cho khoa học tính toán hợp tác Côngviệc có thể được phân loại theo trạng thái, theo chủ đề hoặc theo sự cộng tác Đường liênkết (hyperlink) đến dữ liệu sinh ra từ quá trình giả lập
Hình 1-3 Giao diện cổng web.
Trang 13Hình 1-4 Cổng thông tin hỗ trợ dich vụ tính toán lưới
Những công nghệ này đang được sử dụng rất nhiều trong các dự án khoa học
Task farming là bước tiếp cận mà trong đó những task độc lập nhau hoặc là kết nối lỏng
lẻo sẽ thực thi trên những tài nguyên rải rác trong tổ chức ảo Những tasks này đòi hỏi rất
ít hoặc thậm chí không có sự giao tiếp dữ liệu giữa các task và thường trả về dữ liệu rất ít.Task farming có thể được dùng cho việc nghiên cứu tìm ra các tham số phù hợp cho mộtbài toán, các tham số này thay đổi với rất nhiều khả năng khác nhau để tìm ra một giảipháp hứa hẹn nhất trước khi đi sâu vào nghiên cứu Ví dụ việc nghiên cứu hiện tượng lựchấp dẫn hình thành nên lỗ đen, việc nghiên cứu này đòi hỏi phải biết một cách chính xácbiên độ của sóng lúc ban đầu Một thay đổi nhỏ trên giá trị biên độ này sẽ quyết định sóng
bị hút bởi lỗ đen hay bị phân tán Ngoài ra còn rất nhiều ví dụ khác trong khoa học cần
Trang 14tìm những giá trị có độ chính xác tương đối cao Grid task farming tận dụng công nghệlưới để khám phá những tài nguyên thích hợp trong một tổ chức ảo, thực thi một tập cáctask, nhận kết quả trả về, tất cả diễn ra trong một thời gian ngắn
Metacomputing là việc phân tán một hoặc nhiều task kết nối chặt đến một số lượng máyrất lớn Metacomputing có thể được sử dụng để tăng không chỉ khả năng tính toán của hệthống mà còn tăng tính sẵn có của hệ thống Ví dụ quá trình tính toán cần 1024 bộ xử lýnhưng không có một máy nào có sẵn chừng đó bộ xử lý, thì có thể dùng 4 máy với 256 bộ
xử lý mỗi máy để tính toán Sự khả thi của metacomputing đã được chứng minh vớinhững ứng dụng thực tế Ví dụ năm 2001, mô phỏng sự va chạm giữa các lỗ đen sử dụngnhiều máy từ xa, chạy trên những hệ điều hành khác nhau, sử dụng những kỹ thuật có khảnăng thích nghi để có thể tự động điều chỉnh những message gửi thông qua môi trườngmạng giữa các máy, làm tăng hiệu suất từ 15% đến trên 70% thời gian thực thi việc môphỏng Tầng trao đổi message dựa trên Grid cho phép những ứng dụng dựa vào Calcus cóthể được chạy mà không cần sự điều chỉnh nào Những thí nghiệm như thế cho thấy rằngmetacomputing dựa trên Grid có thể được chạy với độ hiệu quả cao thậm chí cho nhữnggiả lập có tính kết nối cao như phương trình Einstein (đòi hỏi nhiều sự giao tiếp) Khicông nghệ Grid được triển khai đến nhiều phía khác nhau, những khả năng này có thể trởthành chế độ hoạt động bình thường của hệ thống
Migration là việc di chuyển quá trình giả lập từ phía này sang phía khác hoặc có thể là dichuyển process mô phỏng từ máy này sang máy khác Ví dụ do sự đụng độ làm chậm quátrình mô phỏng hay quá trình mô phỏng cần nhiều bộ nhớ hơn để giải quyết một bài toánđang phát triển, những nhu cầu đó dẫn đến quá trình mô phỏng cần phải di chuyển đếnmột một tài nguyên khác thích hợp hơn Việc di chuyển này cần sự hỗ trợ của broker dịch
vụ tài nguyên, nếu một tài nguyên mới được tìm thấy phù hợp với yêu cầu, broker dịch vụ
sẽ thông báo, để quá trình mô phỏng được chuyển sang môi trường mới
Spawning là một biến dạng của Migration Trong Spawning, chỉ một phần ứng dụng được
di chuyển đến một tài nguyên ở xa Ví dụ khi mô phỏng sự đụng độ của các lỗ đen, nhiệm
vụ phân tích cần xác định vị trí của lỗ đen và tính toán lực hấp dẫn phát ra Những nhiệm
vụ này cần rất nhiều thời gian và có thể không cần phải trả kết quả về cho chương trìnhgiả lập chính hoặc những nhiệm vụ này dễ dàng song song hóa và do đó có thể được dichuyển đến một tài nguyên khác, cho phép tài nguyên chính tập trung trong việc giảiquyết vấn đề mô phỏng chính, trong mô phỏng lỗ đen năm 2001, việc mô phỏng đượcchạy ở Đức nhưng nhiệm vụ phân tích được di chuyển đến tài nguyên ở Châu Âu , Châu
Á và Bắc Mỹ
Trang 151.1.2.4 Quản lý dữ liệu
Một ví dụ cho thấy vấn đề quản lý dữ liệu là cần thiết và quan trọng thế nào đối với việcnghiên cứu khoa học là quá trình mô phỏng 3D trong khoa học Việc mô phỏng 3D sinh ramột lượng lớn dữ liệu, dữ liệu này phải được phân tích, hiển thị trực quan và lưu trữ chonhững lần sử dụng sau Mỗi một lần giả lập có thể sinh ra hàng trăm file với những địnhdạng khác nhau, việc khám phá và thao tác trên những file này thì rất phức tạp bởi vìngười sử dụng chạy trên những máy tính khác nhau với những hệ thống tệp , khả năng lưutrữ khác nhau Đối với ứng dụng lưới, vấn đề quản lý dữ liệu còn khó khăn hơn Ngườidùng thậm chí còn không biết quá trình mô phỏng đang chạy trên máy nào hay sự môphỏng có thể được di chuyển giữa các tài nguyên khác nhau và dữ liệu chứa ở nhiều nơikhác nhau Thậm chí khi biết được vị trí của file dữ liệu thì cũng không thể di chuyển đếnmột máy local để thuận tiện cho việc xử lý vì kích thước quá lớn của nó Mặc dù côngnghệ Grid giúp ích rất nhiều cho nhóm các nhà khoa học trong việc thực thi, giám sát vàđiều chỉnh những mô phỏng này từ xa trong khi những mô phỏng này đang được chạy,những khối lượng dữ liệu khổng lồ được sinh ra từ quá trình mô phỏng không thể gửi tớitừng thành phần tham gia cho việc phân tích, thay vì vậy một nhóm các nhà khoa học cóthể phải bay từ Berlin sang Mỹ để nhìn thấy và lấy những kết quả này về
GridFTP server là một công cụ cho việc thao tác dữ liệu từ xa đã được sử dụng bởi cácnhà thiên văn học GridFTP server là sự mở rộng của dự án Đức GriKSL Khi GridFTPserver chạy trên hệ thống tệp của máy đang có dữ liệu, nó cho phép file dữ liệu HDF5được phân tích với hệ thống hiển thị trực quan ở local Bất kỳ hệ thống hiển thị trực quannào tích hợp GridFTP client cùng với chương trình đọc file HDF5 đều có thể hiển thị dữliệu từ xa Những chương trình đọc file HDF5 có sẵn trong các phần mềm như OpenDX ,Amira Những công cụ này đã giải quyết được vấn đề dữ liệu ở xa, và có thể được sửdụng để tạo cái nhìn trực quan của dữ liệu ở cách xa hàng ngàn km.[2]
Trang 16Hình 1-5 Sử dụng GridFTP để có cái nhìn trực quan kết quả thu được từ sự mô phỏng 2
lỗ đen đụng độ nhau
Mục này đã cho ta thấy được vai trò của Tính toán lưới trong khoa học Mô hình kiến trúccũng như các giao thức giao tiếp của Tính toán lưới rất phù hợp để giải quyết những bàitoán có những vấn đề đặc thù trong nhiều ngành khoa học khác nhau Điều này cũng cóthể dễ dàng giải thích bởi vì Tính toán lưới ra đời từ những yêu cầu cấp thiết trong nghiêncứu khoa học hợp tác
1.2 Các thách thức của an toàn thông tin trong điện toán đám mây 1.2.1 Đặc trưng
Các đặc trưng công nghệ tính toán lưới bao gồm:
- Các tài nguyên hết sức đa dạng, không đồng nhất Tài nguyên ở đây được hiểu theonghĩa hết sức tổng quát Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tàinguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các CSDL, cácphần mềm đặc biệt và đắt giá ; các đường truyền mạng Các tài nguyên này có thể rấtkhác nhau về mặt kiến trúc, giao diện, khả năng xử lý Việc tạo ra một giao diện thốngnhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này hoàn toàn không
dễ dàng Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyêntính toán nhưng hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tàinguyên khác như đã kể trên
- Các tài nguyên không chỉ thuộc về một tổ chức mà thuộc về rất nhiều tổ chức tham gialưới Các tổ chức phải tuân thủ một số quy định chung khi tham gia vào lưới còn nhìnchung là hoạt động độc lập tức là các tài nguyên này đều có quyền tự trị Các tổ chức
Trang 17khác nhau thường có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau và do vậy cũng gây khó khăn cho việc quản lý.
-Các tài nguyên phân tán rộng khắp về mặt địa lý do vậy phải có các cơ chế quản lý phântán
- Số lượng các tài nguyên được sử dụng đồng thời có thể lớn nhưng không cố định
- Kết nối các mạng đa cấp và phức hợp
1.2.2 Kiến trúc phân lớp của tính toán lưới
Về khía cạnh người sử dụng thì môi trường lưới có thể được chia làm 3 lớp:
Trang 18Lớp ứng dụng:
Trong môi trường lưới có rất nhiều loại ứng dụng khác nhau có nhu cầu sử dụng tàinguyên của hệ thống tính toán lưới bên dưới, trong đó có những ứng dụng như việc truyxuất dữ liệu qua điện thoại di động, hay các máy trạm cần tài nguyên cho việc tính toáncủa nó, hay là các hệ thống mô phỏng cần một lượng rất lớn dữ liệu để trực quan hóa cáckết quả thí nghiệm
Lớp giữa (middleware):
Khi đó lớp giữa (grid middleware) chính là lớp đóng vai trò như là 1 bức tường mỏng bao
bọc lấy lớp cơ sở hạ tầng Nó có khả năng che dấu mọi sự phức hợp bên dưới của lớp cơ
sở hạ tầng, nhưng lại cung cấp cho lớp ứng dụng những giao tiếp được chuẩn hóa nhằmlàm đơn giản hóa cho các user có khả năng sử dụng dễ dàng hơn
Lớp cơ sở hạ tầng:
Bao gồm các hệ thống siêu máy tính, clusters, các hệ thống lưu trữ dữ liệu, các phòng thínghiệm, hệ thống mạng internet toàn cầu, … Các hệ thống cơ sở hạ tầng này cung cấpkhả năng tính toán rất lớn, có khả năng lưu trữ lượng dữ liệu vô cùng lớn, chẳng hạn như
dữ liệu thu được từ việc thu thập dữ liệu khi theo dõi chuyển động của các vì sao,…
1.2.3 Thách thức an toàn thông tin
Một số vấn đề tồn tại trong tính toán lưới:
- Thiếu cơ chế kiểm soát linh hoạt dựa trên những chính sách linh hoạt
- Thiếu chính sách kiểm soát truy cập bên trong từn miền
- Thiếu giao tiếp nhóm an toàn
- Thiếu cơ chế ủy quyền để hỗ trợ khả năng mở rộng số lượng lớn tài nguyên và người dùng
Từ đặc trưng của tính toán lưới, và mô hình phân lớp của lưới ở trên, trong chương tiếptheo, tôi tập trung giải quyết vấn đề an toàn thông tin trong tính toán lưới ở trên bằngcách:
- Tìm hiểu các middleware có sẵn, xây dựng lưới tính toán đảm bảo yêu cầu cung cấp các tính năng bảo mật thực hiện các nhiệm vụ:
o Cấp quyền truy cập cho thuê bao có giấy chứng nhận
o Kiểm tra tính hợp lệ và hạn dùng giấy chứng nhận
Trang 19o Bảo vệ các nút với những truy cập trái phép
o Xác minh các thuê bao hợp pháp sử dụng một cách chính xác các nguồn tài nguyên cho phép
Trang 20Chương 2 - Giải pháp bảo mật2.1 Middleware
2.1.3 Định nghĩa
Grid middleware là phần mềm hệ thống nằm giữa lớp ứng dụng và hệ điều hành
Nó có khả năng:
- Cung cấp các dịch vụ cho các ứng dụng Bao gồm các dịch vụ về khám phá tài
nguyên(discovery), lưu trữ (storage), thực thi (execution), thông tin (information), theo dõi tài nguyên (resource monitoring), kiểm lỗi và phục hồi (failure detector and recovery),… Đây là các dịch vụ cốt lõi và thiết yếu nhất để làm sao user có thể tham gia
vào môi trường lưới Chẳng hạn, khi 1 user muốn sử dụng 1 tài nguyên tính toán mà đãđược mô tả trước, thì dịch vụ khám phá tài nguyên sẽ dò tìm ra những loại tài nguyênthích hợp cho user, sau đó sẽ cấp phát cho user ứng với quyền hạn mà user đó có thông
qua các dịch vụ về bảo mật (security) Sau khi được cấp phát, các dịch vụ theo dõi về thông tin tài nguyên, theo dõi việc thực thi của job, lập lịch job (scheduling) sao cho hợp
lý,… Như vậy, ứng với mỗi quá trình đáp ứng yêu cầu của user, có rất nhiều dịch vụ thamgia vào quá trình này
- Che dấu sự phức hợp (heterogeneous) của môi trường lưới: Bởi vì cơ sở hạ
tầng của môi trường lưới là phức hợp, đó là sự tham gia của nhiều tổ chức, nhiều hệ thốngmáy tính khác nhau, mỗi hệ thống lại chạy trên nền hệ điều hành khác nhau, như Unix,Linux, Sun Solaris, Mac OS,… Nhưng đối với cái nhìn của người dùng, môi trường lưới
dưới vỏ bọc của Grid middleware, đó là 1 hệ thống tính toán lớn trong suốt (transparent).
Khi user yêu cầu thực thi 1 công việc nào đó, user không cần quan tâm đến việc thực thicông việc của mình nằm trên những tài nguyên nào, ở xa hay gần, nằm ở đâu,… quantrọng là kết quả mà người dùng nhận được, thời gian đáp ứng,…
-Cung cấp các giao tiếp đã được chuẩn hóa cho ứng dụng
Mục đích của Grid middleware:
Có 3 mục đích:
- Xây dựng các giao tiếp, và các giao thức có tính mục đích chung, tính mở và tính chuẩn Bởi vì hệ thống lưới được xây dưng trên những giao tiếp và giao thức với rất
nhiều mục đích khác nhau Những giao tiếp và giao thức này điều chỉ ra được các kết quả
cơ bản, mang tính nền tảng như về việc xác nhận, xác thực, khám phá tài nguyên, truyxuất tài nguyên Do đó, việc xây dựng các giao tiếp, giao thức chuẩn và mở là rất quantrọng, nếu không, chúng ta chỉ xây dựng được những ứng dụng mang tính đặc thù màthôi
- Định nghĩa các giao thức chuẩn: Nó định nghĩa nội dung và chuỗi các sự kiện
trao đổi thông điệp sử dụng các thao tác yêu cầu từ xa Điều này rất quan trọng và cần
thiết để thực hiện tính interoperability (nghĩa là khả năng mà hai thực thể khác nhau có
Trang 21thể làm việc với nhau, và được thực hiện bởi các giao thức thông thường) mà hệ thống lưới phụ thuộc vào.
- Cung cấp các API chuẩn: đó là các giao diện lập trình ứng dụng chuẩn, định
nghĩa các giao tiếp chuẩn để viết mã thư viện, và cấu trúc các thành phần của Grid bằngcách cho phép các thành phần mã được sử dụng lại
-Hình 2-1 Kiến trúc phân tầng của hệ thống lưới.
Kiến trúc lưới bao gồm nhiều tầng với những độ rộng khác nhau, được thể hiện thông quaminh họa dạng hình đồng hồ cát như hình 2-1 (hình 2.2 – chương 2 – trong quyển
“F.Berman,G.Fox,T.Hey-Tính toán lưới-Making The Global Infrastructure a Reality(Wiley2003)” Phần hẹp nhất, phần cổ của đồng hồ cát là lớp về các giao thức kết nối và
giao thức tài nguyên (Resource and connectivity protocols) Lớp này chứa 1 tập rất nhỏ
các giao thức chính và giao diện lập trình ứng dụng mà sẽ được hiện thực ở mọi nơi Lớptrên cùng của đồng hồ cát là tập các ứng dụng và công cụ hỗ trợ Và phần nằm dưới cùngcủa đồng hồ cát là lớp cở sở hạ tầng, nó phụ thuộc nhiều vào công nghệ
Dựa hình 2-1, ta cũng nhận ra rằng, Grid middleware chính là phần nằm trong hình chữnhật viền đen Nó bao gồm 3 lớp chính:
-Lớp giao thức kết nối – Connectivity layer
-Lớp giao thức tài nguyên – Resource layer
-Lớp giao thức nhóm – Collective layer
Trang 22Lớp giao thức kết nối – Connectivity layer
Đây là lớp có chức năng giao tiếp một cách dễ dàng và an toàn Lớp kết nối định nghĩa
giao thức giao tiếp (communication) và giao thức xác thực (authentication).
- Giao thức giao tiếp cho phép các thông điệp có thể được trao đổi với nhau giữa
các tài nguyên của lớp Fabric.
- Giao thức xác thực xây dựng trên các dịch vụ giao tiếp bằng cách cung cấp cơchế bảo mật mã hóa cho việc xác định user và tài nguyên Các giải pháp xác thực cho môi
trường tổ chức ảo (VO – Virtual Organization) có thể có 4 đặc tính sau:
o Single sign-on: User có thể được xác thực chỉ 1 lần bằng cách đăngnhập vào hệ thống và có thể truy xuất vào nhiều tài nguyên lưới
o Việc ủy quyền: User có khả năng ủy quyền cho 1 chương trình khác đểthực thi giống như những hành vi của user khi user đã được xác thực Đến lượt chươngtrình có thể ủy quyền cho những chương trình khác 1 cách tùy chọn
o Việc tích hợp với nhiều giải pháp bảo mật cục bộ: Đó là việc mỗi tổ chức, mỗi tàinguyên đã có nhưng giải pháp bảo mật riêng cho mình Do đó, các giải pháp bảo mật của
hệ thống lưới sẽ tận dụng các giải pháp bảo mật cục bộ có sẵn này mà không cần phảithay thế 1 giải pháp bảo mật mới, và chỉ cần cho phép ánh xạ vào môi trường cục bộ
o Mối quan hệ đáng tin cậy dựa trên user: Để user có khả năng truy xuấtvào tài nguyên từ nhiều nhà cung cấp khác nhau, thì hệ thống bảo mật không cần phải yêucầu các nhà cung cấp tài nguyên phải liên lạc với nhau để cấu hình cho môi trường mạng.Chẳng hạn, nếu user có quyền truy xuất vào tài nguyên của tổ chức A và B, thì user có thểtruy xuất vào cả 2 tài nguyên của tổ chức A và B với nhau mà không cần sự liên lạc giữanhững nhà quản trị bảo mật của tổ chức A và B
Lớp giao thức tài nguyên – Resource layer
Đây là lớp có khả năng chia sẻ các tài nguyên đơn lẻ Nó định nghĩa các giao thức về
sự thương lượng an toàn, khởi tạo, theo dõi, điều khiển, tài khoản và sự trả chi phí choviệc chia sẻ các thao tác trên những tài nguyên đơn lẻ Lớp tài nguyên sẽ được hiện thựcbởi các giao thức để truy xuất và điều khiển các tài nguyên cục bộ, bao gồm 2 lớp chính:
- Giao thức thông tin (Information protocol) được sử dụng để rút ra thông tin về
cấu trúc và trạng thái của tài nguyên chẳng hạn như cấu hình của tài nguyên, tải hiện thời,hay chính sách sử dụng,…
- Giao thức quản lý (Management protocol) được sử dụng để thỏa thuận việc
truy xuất vào tài nguyên chia sẻ, chẳng hạn về yêu cầu tài nguyên (bao gồm việc đặt chỗ
và chất lượng dịch vụ) và các thao tác thực hiện như khởi tạo, truy xuất tài nguyên,…
Lớp giao thức nhóm – Collective layer
Có khả năng quản lý 1 tập các tài nguyên trong khi lớp tài nguyên chỉ tập trung vàoviệc tương tác giữa các tài nguyên đơn lẻ Và nó dựa trên lớp kết nối và lớp tài nguyên để
Trang 23hiện thực rất nhiều hành vi chia sẻ mà không cần phải thay thế những yêu cầu mới ứng với mỗi tài nguyên được chia sẻ Chẳng hạn:
- Directory service cho phép các thành viên tham gia vào tổ chức ảo có thể khám
phá ra tài nguyên hay các thuộc tính của tài nguyên Nó cho phép user truy vấn về tàinguyên bằng tên hoặc các thuộc tính như kiểu, sự sẵn sàng, hay tải
- Coallocation-allocation, scheduling, and brokering services cho phép các
thành viên của tổ chức ảo yêu cầu việc định vị cho một hay nhiều tài nguyên và phân bốcác task cho các tài nguyên thích hợp
- Monitoring and diagnotics services hỗ trợ việc theo dõi các tài nguyên của tổ
chức ảo về lỗi, việc tấn công hay việc quá tải
- Data replication services hỗ trợ quản lý việc lưu trữ tài nguyên để tối đa hiệu
quả truy xuất như thời gian đáp ứng, khả năng tin cậy, chi phí,…
- Grid-enabled programming systems cho phép các mô hình lập trình thân thiện, chẳng hạn như MPI (Message-passing Interfaces),…
2.1.3 Các công nghệ Middleware trong tính toán lưới
2.1.3.1 Globus Toolkit [1] [3]
Bộ công cụ Globus Toolkit, được phát triển bởi Globus Allicance, là bộ công cụ phổ biến
để phát triển các ứng dụng tính toán lưới, là nền của rất nhiều dự án tính toán lưới (TTL),được xem xét để tạo ra chuẩn công nghiệp Khi kết hợp với các chuẩn Open Grid ServicesArchitecture (OGSA standards) định hướng cho TTL, Globus được giới công nghiệp hỗtrợ rất tích cực phát triển theo kiến trúc hướng dịch vụ (service-oriented architecture), vàdịch cụ Web (Web services)
Bộ công cụ Globus Toolkit là bộ công cụ phổ biến để phát triển các ứng dụng tính toánlưới được phát triển bởi Globus Allicance và nhiều tổ chức khác trên thế giới GlobusToolkit gồm nhiều thành phần phần mềm, bao gồm cả các thành phần phát triển dựa trêndịch vụ web và không dựa trên dịch vụ web
Các thành phần của bộ Globus Toolkit được chia ra năm hạng mục sau đây:
Môi trường chạy chung (Common Runtime): cung cấp các thư viện và các công cụ
để xây dựng các ứng dụng bao gồm cả các ứng dụng dựa trên dịch vụ Web và không dựatrên dịch vụ Web
Trang 24 Bảo mật: xây dựng dựa trên hạ tầng bảo mật lưới (Grid Security Infrastructure
–
GSI)
Quản lý dữ liệu: cho phép quản lý lượng lớn dữ liệu trong tổ chức ảo
Các dịch vụ thông tin: cung cấp các công cụ để tìm kiếm và quản lý tài nguyên trong tổ chức ảo
Quản lý thực thi: khởi tạo, giám sát, quản lý, xếp lịch cho các công việc
Mô hình kiến trúc của Globus:
Hình 2-2: Mô hình kiến trúc của Globus
Cơ chế tạo đại diện dựa trên chứng nhận Proxy X.509 o Hỗ
trợ cấp quyền có vài API
Trang 25 Đầu tiên cung cấp một API xác thực chung cho phép gọi chạy các kiếm soát truy nhậpdựa trên chứng thư của client (ví dụ: chuỗi chứng nhận X.509).
Thứ hai cung cấp một danh sách điều khiển truy cập đơn giản map các quyền thực thể
từ xa với tên người dùng trên hệ thống cục bộ (grid-mapfile)
Cơ chế thứ hai cũng cung cấp các dòng mô tả cho phép các bên thứ ba để ghi đèlên hành vi mặc định và hiện đang được sử dụng trong các máy chủ Gatekeeper vàGridFTP
oCác API và công cụ mức thấp hơn quản lý, phát hiện và truy vấn giấy chứng nhận
- GSI-OpenSSH
o GSI-OpenSSH là một phiên bản sửa đổi của OpenSSH có thêm hỗ trợ cho xác thựcchứng chỉ X.509 proxy và tạo đại diện, cung cấp đăng nhập từ xa một lần và dịch vụtruyền tập tin
o GSI-OpenSSH có thể được sử dụng để đăng nhập vào hệ thống từ xa và truyền tậptin giữa các hệ thống mà không cần nhập một mật khẩu, chỉ dựa trên chứng thư proxy xácthực hợp lệ
o GSI-OpenSSH chuyển tiếp chứng thư proxy tới các hệ thống đăng nhập từ xa, vìvậy các lệnh yêu cầu chứng thư proxy (bao gồm cả lệnh GSI-OpenSSH) có thể được sửdụng trên hệ thống từ xa mà không cần phải tự tạo ra một chứng thư proxy mới vào hệthống đó
- MyProxy
o MyProxy là phần mềm mã nguồn mở để quản lý chứng thư bí mật (giấy chứng nhận và các khóa riêng tư) trên cơ sở hạ tầng khóa công khai (PKI) X.509
o MyProxy kết hợp một kho lưu trữ chứng thư trực tuyến với một cơ quan chứng nhận
CA trực tuyến cho phép người dùng có được chứng thư an toàn khi nào và ở đâu cần
o Người dùng chạy myproxy-đăng nhập để xác thực và có được các chứng thư, bao gồm cả chứng chỉ CA tin cậy và Danh sách Thu hồi Giấy chứng nhận (CRLs)
2.1.3.1 Glite [9]
a Giới thiệu
gLite là một middleware (phần mềm trung gian) được phát triển bởi dự án EGEE với mục đích hỗ trợ xây dựng các hệ thống tính toán lưới của dự án Hệ thống Grid với gLite gắn liền với những tổ chức ảo – VO (Virtual Organization), là một cách tổ chức hệ thống lưới mô phỏng theo dạng tổ chức thật, giúp cho nhà quản trị có thể dễ dàng quản trị hệ thống cũng như quản trị người dùng gLite ngay sau đó đã nhanh chóng được nhiều tổ chức chọn làm nền tảng xây dựng hệ thống lưới của mình Nhiều tổ chức ảo được tạo ra với
Trang 26nhiều ứng dụng khác nhau trong rất nhiều lĩnh vực, từ khoa học cho đến các lĩnh vựcthuộc về công nghiệp Có thể kể ra như: Khoa học máy tính và Toán học, Khoa học về sựsống, Hóa học, Khoa học về trái đất, Vật lý năng lượng cao, Vật lý hạt nhân, Nghiên cứu
vũ trụ,… và đã thu được nhiều kết quả quan trọng
Ví dụ như dự án LHC – Large Hadon Collider, một dự án rất nổi tiếng về lĩnh vực
vật lý hạt nhân Dự án này sử dụng một máy gia tốc lớn nhất thế giới (cũng có tên
gọi là LHC) để thực hiện các thí nghiệm về vật lý hạt nhân 4 VO chính được xây
dựng để đảm nhiệm việc phân tích dữ liệu từ các thí nghiệm: ALICE, ATLAS,
CMS, LHCb Gần đây nhất, LHC đã được dùng để tái tạo lại khoảnh khắc của vụ
nổ Big Bang
Theo thống kê, hiện đang có 150 VO đang hoạt động với số người sử dụng chính thức lênđến trên 150.000 người ( http://cic.gridops.org ) Riêng tại Châu Á, một dự án hợp tácgiữa Châu Âu và Châu Á (EUAsiaGrid) nhằm mang EGEE đến với các nước trong châulục này, đó cũng là mục tiêu chính của EGEE: xây dựng một hệ thống Grid chung nhằmphục cho tất cả các nghiên cứu viên trong các viện nghiên cứu và các trường đại học trênthế giới
Tại Việt Nam, trong một vài năm gần đây, gLite đã trở nên phổ biến trong giới khoa học
và công nghệ thông tin Những dự án hợp tác nghiên cứu giữa Viện khoa công nghệ Việt nam và CNRS nhằm xây dựng một hệ thống tính toán lưới dựa trên gLite đang hoạt động
và thu được một số kết quả ban đầu Một số lớp huấn luyện gLite đã được tổ chức cùng nhiều buổi hội thảo trong những năm qua nhằm giúp cho mọi người tiếp cận với gLite và
dự án EGEE: lớp học ACGRID Đồ Sơn tại Viện Công nghệ thông tin 5-6/11/ 2007, The first forum “Tính toán lưới for research” tại Phân viện Công nghệ thông tin đầu năm
2008, APAN tại Hawaii 01/2008, Southeast Asia 08 and the 4th PRAGMA institution tại Taichung cuối năm 2008 , và tại PRAGMA 17, 28-31/10/2009 tại Hà nội
Phân Viện Công nghệ thông tin Việt Nam tại TP Hồ Chí Minh (nay thuộc viện Cơ học vàTin học Ứng Dụng) cũng đã có một số đề tài nghiên cứu về các ứng dụng trên hệ thống tính toán lưới từ năm 2004 Viện đã thực hiện triển khai một số ứng dụng về Tin-Sinh học (Bioinformatics), Access Grid, e-Health trên hệ thống lưới Globus và gLite
Trong năm 2006, viện đã tiến hành kết nối hệ thống lưới của mình với tổ chức Pragma vàtháng 11/2007, cũng đã kết nối với TWgrid - một hệ thống tính toán lưới của Đài Loan
và quản trị một VO là VNGrid trong hệ thống tính toán lưới Châu Á Thái Bình Dương Hiện nay, viện đang tham gia vào lưới EUAsiaGrid trong dự án FP7
( http://www.euasiagrid.org/wiki )
Các ưu điểm của lưới với gLite :
−gLite kế thừa từ các dự án Grid trước đó nên tận dụng nhiều ưu điểm của các
thành phần vốn đã hoạt động rất ổn định và hiệu quả như bộ lập lịch và điều phối
Trang 27công việc Condor, cơ chế bảo mật lưới GSI, Globus Gatekeeper, …
−Xây dựng thêm nhiều dịch vụ nhằm tăng cường khả năng quản lý người dùng và
các tài nguyên, đồng thời hỗ trợ cho người dùng khả năng sử dụng lưới một cách
hiệu quả nhất
−Được xây dựng theo hướng dịch vụ, các thành phần được phân phối theo kiểu môđun nên dễ dàng chọn lựa những thành phần cần thiết khi xây dựng một hệ thống
lưới theo nhu cầu riêng
−Được hỗ trợ mạnh mẽ từ dự án EGEE và nhiều tổ chức cũng như chính phủ các
nước trên thế giới
Với những ưu điểm trên, gLite đã trở thành một lựa chọn tốt khi bắt đầu xây dựng một hệthống lưới
Đối với Việt Nam, nhu cầu cần có một hệ thống Grid là thực sự cần thiết, nó không chỉ phục vụ cho giới khoa học như là một công cụ hỗ trợ tính toán mạnh mà trong tương lai
nó còn mang lại cho các tổ chức, các doanh nghiệp hay bất kì cá nhân nào cần đến lợi íchcủa sự chia sẻ tài nguyên hay các ứng dụng Grid
Tuy nhiên, hiện nay vẫn chưa có một tài liệu thống nhất hoàn chỉnh hướng dẫn cách cài đặt hệ thống lưới với gLite Ngoài ra, công việc quản trị hệ thống cũng khá phức tạp, đòi hỏi những hiểu biết nhất định về kiến trúc cũng như sự tương tác giữa các thành phần, cácdịch vụ trên lưới Vì vậy, công việc xây dựng một hệ thống lưới với gLite hoàn chỉnh vẫn còn nhiều vấn đề mà chúng ta cần phải giải quyết trước khi bắt tay vào triển khai bất cứ ứng dụng nào trên đó
Middleware gLite cung cấp các thành phần sau:
− Thành phần giao tiếp với người dùng (User Interface)
− Thành phần quản trị chung (VOMS server)
−Các thành phần tài nguyên của lưới (Computing Element, Storage Element,
Worker Node)
− Thành phần quản lý thực thi công việc (Workload Management Service)
− Các thành phần cung cấp thông tin cho lưới (Information Service)
Ngoài ra gLite còn mang đến một số dịch vụ : FTS ,FTM ,LFC, LSF, VOBOX, MON,PX
b Yêu cầu hệ thống
− User Interface
− VOMS server
−Information Service
Trang 28− Workload Management Service và Logging & Book keeping.
− Computing Element
− Worker Node
− Storage Element
Bảy thành phần trên được cài đặt trên 7 máy tính riêng rẽ hoặc có thể cài đặt kết hợp một
số thành phần trên cùng một máy Tuy nhiên việc kết hợp này phải tính toán đến hiệu suất sử dụng các dịch vụ trên cùng một máy nhằm tránh quá tải cho hệ thống lưới
Ví dụ, Worker Node có thể được cài cùng các dịch vụ như Information Service,
Computing Element, User Interface Hệ thống minh họa chọn User Interface cài đặt cùngWorker Node vì User Interface đa số thực hiện các tác vụ truy vấn nên không chiếm giữ nhiều tài nguyên hệ thống
Các máy tính trên được nối mạng LAN với nhau nếu hệ thống triển khai là cục bộ, hoặcnối mạng internet trong trường hợp hệ thống là phân tán Cấu hình phần cứng của mỗi máy tùy theo qui mô của lưới sau này Về bản chất, hệ thống lưới với gLite tận dụng cáctài nguyên nhàn rỗi và dư thừa nên có thể cài đặt trên bất kì máy tính nào, tuy nhiên để đáp ứng tốt nhu cầu của người sử dụng, các máy này nên được trang bị cấu hình mạnh Mỗi máy có thể truy cập được internet ít nhất là trong quá trình cài đặt vì quá trình này download các gói phần mềm từ internet Hệ điều hành cài đặt trên mỗi máy là ScientificLinux 4.x (được gLite 3.1 hỗ trợ)
Sơ đồ tổng quát của hệ thống sẽ xây dựng có thể được đề nghị như sau:
Hình 2-3 Sơ đồ tham khảo cho một hệ thống Grid với middleware gLite.
Trang 29Domain: Grid.
PC1.grid: VOMS server
PC2.grid: User Interface + Worker Node + Batch client (Torque)
PC3.grid: Workload Management + Logging & Bookkeeping
PC4.grid: Computing Element + BDII_site + Batch server (Torque)
sự tham gia của các tổ chức nghiên cứu toàn cầu Hệ thống phần mềm lưới trung gian tiêntiến và được thử nghiệm rất chặt chẻ Đây cũng là dạng mã nguồn mở dưới bản quyền củaBSD, đăng tải thường kì trên SourceForge Dưới đây là một số các dự án với UNICORE:
Trang 302.1.3 Các phương pháp an toàn thông tin thường được áp dụng trong tầng middleware của tính toán lưới
2.1.3.1 Xác thực và cấp phép
a CA
Để xây dựng một môi trường lưới sử dụng các thành phần GSI, bạn phải tạo một tập cáckhóa dành cho mã hóa khóa công khai và yêu cầu chứng chỉ của bạn từ CA, và sao chépkhóa công khai của CA
Hình 2-4 Các thủ tục GSI
Hình vẽ trên cùng các thủ tục dưới đây sẽ mô tả các bước thiết lập giao tiếp GSI:
1 Sao chép khóa công khai của CA vào trạm lưới mà bạn sẽ thiết lập GSI
2 Tạo khóa riêng tư và một yêu cầu chứng chỉ
3 Gửi yêu cầu chứng chỉ của bạn tới CA bằng e-mail hoặc một cách an toàn khác trong trường hợp bạn đang chạy một ứng dụng mà cần xác định rõ người gửi
4 CA ký nhận lên yêu cầu của bạn để tạo chứng chỉ, sau đó gửi chứng chỉ đã ký cho
Trang 31Để cung cấp xác thực và truyền thông an toàn cho các máy tính lưới, bạn không nên để aikhác có thể truy cập vào khóa riêng tư của bạn Một tầng mở rộng về an ninh đã đượcthêm vào khóa riêng tư, nó gồm một từ khóa bí mật mà phải được sử dùng khi sử dụngkhóa riêng tư của bạn cùng với chứng chỉ số Điều này nhằm ngăn ai đó khỏi việc đánhcắp chứng chỉ số và khóa riêng tư của bạn, và có thể tự tiện sử dụng chúng để truy cậpvào các tài nguyên lưới Khóa của trạm được bảo vệ bằng các quyền trên hệ điều hành cục
bộ bên trong server lưới
b Xác thực và cấp phép
Thử hình dung một kịch bản ở đó bạn cần giao tiếp với một ứng dụng của máy tính thuộc một lưới khác và bạn muốn chắc chắn rằng dữ liệu đến từ máy tính đó thực sự thuộc vềchính máy tính đó Bên cạnh việc làm bạn tin tưởng máy đó, bạn cũng muốn máy tính đó tin tưởng bạn Trong những trường hợp đó, bạn có thể sử dụng chức năng xác thực củaGSI (được mô tả trong hình vẽ bên dưới)
Trong những bước được mô tả bên dưới, bạn (grid host A) được xác thực và được cấpphép bởi grid host B Hầu hết các bước đều nhằm xác thực, trừ bước cuối là bước cấpphép
1 Gửi chứng chỉ của bạn đến một host khác (host B) mà bạn muốn được xác thực
2 Host B sẽ lấy khóa công khai của bạn cũng như tiêu đề của bạn từ chứng chỉ đó bằng cách sử dụng khóa công khai của CA
3 Host B tạo một số ngẫu nhiên và gửi nó cho bạn (host A)
4 Nếu bạn có số này, mã hóa nó bằng khóa riêng tư của bạn (bạn có thể sẽ được yêu cầu nhập mật khẩu để mở khóa riêng của bạn) và gửi số đã được mã hóa đến host B
5 Host B sẽ giải mã số và kiểm tra xem số đã được giải mã có thực sự là số đã đượcgửi trước đó không Sau đó host B xác thực rằng chứng chỉ thực sự là của bạn, bởi vì chỉbạn mới có thể mã hóa số đó bằng khóa riêng tư của bạn
6 Chứng chỉ của bạn được xác thực bởi host B, sau đó tiêu đề của bạn trong chứngchỉ sẽ được ánh xạ tới một tên người dùng cục bộ Tiêu đề này ở dạng DN kiểu
“O=Grid/O=Globus/OU=itso.grid.com/CN=your name” và đây là tên được sử dụng bởiLDAP để phân biệt các truy nhập vào dịch vụ thư mục Tiêu đề được dùng để xác địnhđịnh danh người dùng của bạn trong một môi trường lưới Ở đây bạn, người sở hữu DN,được xác thực bởi host B và đóng vai trò như một người dùng cục bộ trên host B
Trang 32Hình 2-5 Thủ tục xác thực
Trong các môi trường lưới, host của bạn sẽ trở thành một client trong vài trường hợp, vàtrong những trường hợp khác, lại trở thành một server Do đó, host của bạn có thể sẽ đượcyêu cầu xác thực một host khác và được xác thực bởi host đó cùng thời điểm Trongtrường hợp này, bạn có thể dùng chức năng xác thực tương hỗ của GSI Chức năng nàycũng giống như những gì đã được mô tả ở phần trên tài liệu, và nó cứ tiếp tục với cácbước xác thực, và thay đổi hướng của các host rồi lặp lại thủ tục xác thực
Nói ngắn gọn, xác thực là quá trình chia sẻ các khóa công khai một cách an toàn, và cấpphép là quá trình ánh xạ DN của bạn tới một người dùng cục bộ hoặc nhóm cục bộ trênmột host từ xa
Trang 332.1.3.2 Ủy quyền
Thử tưởng tượng tình huống ở đó bạn phân phối công việc cho các máy tính trong lưới từ
xa và điều khiển chung phân phối các công việc con của chúng đến các máy tính khácdưới chính sách an ninh do bạn quy định Trong tình huống này, bạn có thể sử dụng chứcnăng ủy quyền của GSI, được thể hiện như hình vẽ bên dưới
Hình 2-6 Thủ tục ủy quyền bởi proxy của server
Nếu bạn ở phía host A, bạn có thể tạo proxy của bạn tại host B để ủy quyền giấy phép củabạn Proxy này đóng vai trò của bạn, và nhân danh bạn đệ trình một yêu cầu đến host C
Trang 34Bước tiếp theo (xem phần “Tạo proxy” bên dưới) mô tả thủ tục để tạo proxy của bạn tạimột máy từ xa, và thủ tục nhân danh bạn đệ trình một yêu cầu (xem phần “Thao tácproxy” bên dưới) đến một máy ở xa khác.
Tạo proxy
Để tạo proxy cần:
1 Một giao tiếp được tin cậy được tạo giữa host A và host B
2 Bạn yêu cầu host B tạo một proxy mà sẽ ủy quyền giấy phép của bạn
3 Host B tạo yêu cầu cho chứng chỉ proxy của bạn, và gửi nó trở lại host A
4 Host A ký lên yêu cầu để tạo chứng chỉ proxy của bạn bằng cách sử dụng khóa riêng tư của bạn rồi gửi nó lại cho host B
5 Host A gửi chứng chỉ của bạn đến host B
Thao tác proxy
Các thao tác của proxy:
1 Proxy của bạn gửi chứng chỉ của bạn và chứng chỉ của proxy của bạn đến hostC
2 Host C nhận khóa công khai của proxy của bạn thông qua thủ tục phê chuẩn đường
dẫn:
a Host C nhận tiêu đề của bạn và khóa công khai của bạn từ chứng chỉ của bạn bằng cách
sử dụng khóa công khai của CA
b Host C nhận tiêu đề của proxy và khóa công khai của proxy của bạn từ chứng chỉ củaproxy của bạn bằng cách sử dụng khóa công khai của bạn
c Tiêu đề của một DN có dạng “O=Grid/O=Globus/OU=itso.grid.com/CN=your name”.Tiêu đề của chứng chỉ proxy giống như tiêu đề của người sở hữu chứng chỉ đó (chính làbạn) và có dạng “O=Grid/O=Globus/OU=itso.grid.com/CN=your name/CN=proxy” Dovậy để phê chuẩn chứng chỉ proxy, host C chỉ phải kiểm tra rằng các từ mà bỏ đi phần
“/CN=proxy” từ tiêu đề của proxy giống với tiêu đề của bạn Nếu nó được phê chuẩn,proxy của bạn sẽ được xác thực bởi host C và có thể đóng vai trò của bạn
3 Proxy mã hóa một thông điệp yêu cầu bằng cách dùng khóa riêng của nó và gửi nó đến host C
4 Host C giải mã thông điệp đã bị mã hóa bằng cách sử dụng khóa công khai của proxy và nhận yêu cầu
5 Host C chạy yêu cầu dưới giấy phép của một người dùng cục bộ Người dùng dượcđặc tả bằng cách sử dụng một tệp ánh xạ, nó biểu diễn ánh xạ giữa các người dùng lưới
Trang 36Thủ tục ở hình vẽ thể hiện sự ủy quyền từ xa, ở đó một người dùng tạo ra một proxy tạimột máy ở xa Cũng có thể gọi là ủy quyền cục bộ nếu một người dùng tạo một chứng chỉproxy tại máy cục bộ; với các tác vụ này, Globus Toolkit sử dụng lệnh grid-proxy-init và
sử dụng tiến trình gatekeeper
Khi bạn tạo một proxy tới máy ở xa (trường hợp ủy quyền từ xa), khóa riêng tư của proxy
sẽ ở trên proxy từ xa, do đó siêu-người-dùng của máy này có thể truy cập khóa riêng tưcủa proxy của bạn và thực hiện các nghiệp vụ dưới tên của bạn Điều này có thể là lỗhổng dễ bị tấn công Để phòng tránh sự mạo nhận đó, proxy nên có các chính sách giớihạn, ví dụ sử dụng GRAM Tiêu chuẩn này được mô tả dạng dự thảo tại địa chỉ:
http://www.ietf.org/internet-drafts/draft-ietf-pkix-proxy-03.txt
2.1.3.3 Giao tiếp bí mật
Ở chế độ mặc định, mọi giao tiếp cơ bản trên lưới đều dựa trên việc xác thực tương hỗcủa các chứng chỉ số và SSL/TLS Chứng chỉ số đã được cài đặt trên các máy tính lướicung cấp xác thực tương hỗ giữa hai tổ chức Các chức năng SSL/TLS mà OpenSSL cungcấp sẽ mã hóa toàn bộ thông tin giữa các host trong lưới Hai chức năng này cùng cungcấp các dịch vụ an ninh cơ bản nhằm xác thực và bảo mật
Trang 37Bắt tay SSL
Để thiết lập giao tiếp an toàn giữa các client và server của lưới, phải thiết lập một bắt tay.Bắt tay này có trách nhiệm xác định các thiết lập SSL, trao đổi khóa công khai và làm nềntảng cho quá trình xác thực tương hỗ Quá trình bắt tay diễn ra như sau:
1 Một client trong lưới liên hệ với một server ở xa để bắt đầu một phiên an toàn bằngcách sử dụng một chứng chỉ số X.509
2 Client tự động gửi đến server số phiên bản SSL của client đó, các thiết lập mã hóa,
dữ liệu được sinh ngẫu nhiên, và các thông tin khác mà server cần để giao tiếp với client
a Chứng chỉ của server là hợp lệ và có một thời gian phù hợp
b CA mà phát hành chứng chỉ của server phải được ký bởi một CA tin cậy, nơi mà chứng chỉ của họ được xây dựng cho client
c Khóa công khai của CA đã phát hành, được xây dựng trong client, phê chuẩn chữ ký số của nơi phát hành
d Tên miền được đặc tả bởi chứng chỉ của server phải khớp với tên miền thực sự của server
5 Nếu server có thể được xác thực thành công, client sinh một “khóa phiên” duy nhất
để mã hóa toàn bộ giao tiếp với server sử dụng khóa bất đối xứng
6 Client của người dùng mã hóa khóa phiên của nó với khóa công khai của server do
đó chỉ có site có thể đọc khóa phiên, và gửi nó cho server
7 Server giải mã khóa phiên bằng cách sử dụng khóa riêng tư của nó
8 Client gửi một thông điệp đến server để cho biết rằng các thông điệp tiếp theo từclient sẽ được mã hóa với khóa phiên Server sau đó cũng gửi một thông điệp đến client
để cho biết rằng các thông điệp tiếp theo từ server sẽ được mã hóa với khóa phiên
9 Bây giờ, một phiên SSL-an-toàn đã được thiết lập SSL sau đó dùng mã hóa đốixứng (nhanh hơn mã hóa PKI công khai) để mã hóa và giải mã các thông điệp bên trong
“đường ống” SSL-an-toàn
10 Bây giờ các tài nguyên lưới đầu tiên đã được xác thực, tài nguyên lưới thứ hai sẽ được xác thực bằng cách sử dụng quá trình tương tự
11 Chỉ khi phiên làm việc hoàn thành, khóa phiên mới bị hủy bỏ
Miễn là cả hai tài nguyên lưới đều có một chứng chỉ số hợp lệ, quá trình xác thực tương
hỗ sẽ thành công Đây là một ví dụ rõ ràng về cách an ninh lưới sử dụng cả mã hóa đốixứng và mã hóa bất đối xứng để xác thực và truyền dữ liệu an toàn giữa các tài nguyênlưới Một client dùng mã hóa bất đối xứng để xác thực và chỉ khi nó được xác thực, nódùng mã hóa đối xứng với một khóa riêng tư được chia sẻ để mã hóa và giải mã toàn bộ
dữ liệu giữa chúng
Trang 382.2 Hạ tầng
Áp dụng nguyênt tắc phòng thủ theo chiều sâu (Defense in Depth), ngoài những thành
phần và công nghệ GSI, có nhiều thành phần hạ tầng an ninh lưới khác nhau có thể cầnđến để đảm bảo an ninh cho mạng lưới Được xem như một thành phần của thiết kế mạnglưới, hạ tầng an ninh lưới được xây dựng dựa trên các nguyên lý an ninh khác nhau.Trong khi các thành phần an ninh này là tùy chọn, chúng được xem như là chuẩn bêntrong nhiều mạng hiện nay Chúng ta sẽ khảo sát vài khái niệm an ninh cơ bản và xem xétchúng phù hợp thế nào với một hạ tầng lưới
2.2.3 An ninh mức vật lý
Cần nhắc lại là an ninh của hạ tầng lưới được dựa trên các khái niệm an ninh cơ bản,thông dụng Trong đó, an ninh mức vật lý được xem là nền tảng cho toàn bộ các máy tínhtrong lưới Nếu các máy chủ được để trong một căn phòng mở cửa, chưa cần xem xét cácứng dụng được thiết kế an toàn như thế nào hoặc các thuật toán mã hóa phức tạp ra sao thìcác dịch vụ của máy chủ có thể dễ dàng bị ngắt, ví dụ tắt nguồn điện Do đó, truy cập vật
lý phải được kiểm soát như là một phần trong các chính sách an ninh mà cần được địnhnghĩa
Máy chủ CA nên được để trong một tủ lớn, được dành riêng, và được khóa Mọi vào rađều phải được ghi lại và kiểm soát sao cho chỉ có những cá nhân liên quan đến CA mới cóthể vào Nguồn điện cho các server phải không bao giờ bị ngắt, tức là phải có bộ lưu điện.Tuy nhiên, một bộ lưu điện cũng có lúc cạn điện sau một khoảng thời gian nhất định.Trong trường hợp như vậy, các máy chủ nên được tự động sao lưu dữ liệu và có thể đượctắt an toàn Cửa ra vào của phòng cũng có thể được giám sát để kiểm tra xem những ai đãvào phòng
Đối với an ninh mức cao nhất, phân đoạn mạng mà trên đó các máy chủ PKI-nhạy-cảmđược cài đặt nên được phân cách cả logic lẫn vật lý khỏi phần còn lại của mạng Lý tưởngnhất là phân đoạn này được lọc qua một bức tường lửa sao cho trong suốt với những lưulượng liên quan đến PKI Thông thường, lưu lượng PKI sẽ được giảm để chỉ sử dụng rất ítcác cổng TCP/IP
Trang 392.2.4 An ninh hệ điều hành
Xem xét lại các tệp cấu hình với mỗi hệ điều hành và thành phần phần mềm giữa bêntrong phạm vi dự án sẽ xác định hiệu quả đến đâu khi cho phép các người dùng đã đượccấp phép truy cập dựa trên chính sách an ninh và ngăn ngừa, phát hiện được những truycập chưa được cấp phép trong mọi thời điểm Một số chính sách nên áp dụng:
Xóa bỏ mọi tiến trình không cần thiết khỏi các máy chủ Nếu máy chủ lưới không cần tới các dịch vụ như mail, FTP thì cần tắt các dịch vụ này
Xóa bỏ mọi người dùng hoặc nhóm người dùng không cần thiết
Sử dụng các mật khẩu mạnh cho toàn bộ người dùng trên máy chủ lưới
Cập nhật máy chủ thường xuyên với những bản cập nhật, bản vá lỗi mới nhất, thực hiện cả với các phần mềm cài trên máy chủ
Giới hạn truy cập vào thư mục /.globus
Cân nhắc sử dụng một máy trạm giám sát truy cập (IDS) để giám sát mọi thư mục quan trọng trên máy chủ.
Kích hoạt chế độ lưu và kiểm tra của máy chủ
Sử dụng một hệ điều hành phiên bản chuẩn
Kích hoạt các giới hạn ở mức tệp cho các tệp quan trong trong máy chủ
Làm các báo cáo định kỳ về hệ điều hành hàng tháng để đảm bảo không có thay đổi lớn
Kích hoạt công cụ chống virus