Tương lai phát triển của hệ thống sẽ là kết hợp VOMRS và VOMS để bổ
sung lẫn nhau trong quản lý thông tin người dùng lưới cấp độ VO. Còn trên cấp độ
RP, dịch vụ EDG-MKGRIDMAP với cơ chế ánh xạ cứng còn hạn chế sẽđược thay thế bởi hai dịch vụ mới GUMS và PRIMA mềm dẻo hơn.
Hình 4- 24: Kiến trúc GUMS
Cụ thể, trong hệ thống có PRIMA và GUMS, khi người dùng lưới muốn sử
dụng tài nguyên, đầu tiên, họ gửi yêu cầu cấp chứng thực tạm thời tới VOMS/VOMRS. VOMS/VOMRS trả lại người dùng chứng chỉ số sử dụng lưới, bên trong có gắn thêm các thông tin về nhóm và vai trò của người dùng. Khi chứng nhận này được gửi tới bên cung cấp tài nguyên RP để xin sử dụng, GateKeeper sẽ
trích các thông tin này ra. Để kiểm tra các thông tin này, PRIMA được sử dụng để
hỗ trợ cho GateKeeper. PRIMA sau đó tiếp tục liên hệ với GUMS (Grid User Management System) để kiểm tra quyền sử dụng tài nguyên của người dùng. GUMS tiếp tục liên hệ với VOMS để lấy về thông tin người dùng. Sau khi lấy được thông tin, GUMS kết hợp với chính sách tài nguyên của site cục bộđể tiến hành ánh xạ. GUMS cung cấp cả cơ chế ánh xạ tĩnh thông qua GridMap và ánh xạđộng khi liên kết với PRIMA. GUMS giống EDG-MKGRIDMAP ở khả năng ánh xạ tĩnh nhưng hơn EDG-MKGRIDMAP khi nó có thể trực tiếp trả về tài khoản ánh xạ cho người dùng (cung cấp ánh xạđộng) về PRIMA.
98
Hình 4- 25: Dự án VO Services
GUMS và PRIMA là 2 trong 4 thành phần của dự án “VO Services” bao gồm VOMS/VOMRS, Globus Toolkit/Glite, GUMS, PRIMA. VO Services là giải pháp toàn diện cho quản trị người dùng lưới trên cấp độ VO và RP. Hiện tại, VO Services đang được ứng dụng rộng rãi trong EGEE, PRAGMA, US ATLAS, US CMS, cũng như FermiGrid. Hướng phát triển tương lai của hệ thống quản lý người dùng lưới trong GOODAS sẽ là triển khai VO Services.
99
KẾT LUẬN
Luận văn đã tập trung nghiên cứu tìm hiểu các vấn đề an toàn thông tin cho lưới một cách toàn diện và có hệ thống. Dựa trên nền tảng đó, luận văn đưa ra mô hình an toàn bảo mật cho hệ thống quản lý tổ chức ảo và quản lý giấy uỷ nhiệm
trong môi trường lưới nói chung và tích hợp với hệ thống tìm kiếm và chia sẻ tài liệu trực tuyến GOODAS nói riêng.
Các kết quả chính của luận văn là:
1/. Tìm hiểu và nghiên cứu tài liệu để hệ thống lại các vấn đề sau:
+ Tổng quan tính toán lưới: các định nghĩa về tính toán lưới, các lợi tích và kiến trúc của một lưới,
+ Vấn đề an toàn thông tin trong tính toán lưới: các thách thức về an toàn bảo mật và kiến trúc an ninh cho một hệ thống tính toán lưới
+ Cơ sở hạ tầng an toàn thông tin lưới GSI: bao gồm giấy chứng nhận và giấy uỷ nhiệm lưới và các khả năng uỷ quyền, chứng thực đa phương và toàn vẹn.
+ Hệ thống quản lý tổ chức ảo: các khái niệm tổ chức ảo, mô hình quản lý và
ứng dụng trong dịch vụ VOMS và EDG-MKGRIDMAP
+ Cổng điện tử lưới: các khái niệm về cổng điện tử lưới và vấn đề quản lý giấy uỷ nhiệm trên cổng điện tử lưới
2/. Thử nghiệm chương trình:
Luận văn đã xây dựng Hệ thống quản lý người dùng lưới và các tổ chức ảo cho một lưới tính toán. Hệ thống này được cài đặt thử nghiệm trên lưới tìm kiếm và chia sẻ tài liệu điện tử GOODAS. Các thành phần chính của Hệ thống bao gồm:
+ Thành phần quản lý tổ ảo: cho phép quản lý các tổ chức ảo VO, các hoạt
động đăng ký lưới, xác định quyền truy nhập đến các dịch vụ của hệ thống.
+ Thành phần quản lý giấy uỷ nhiệm: thiết lập các kiểm soát truy nhập dịch vụ và tài nguyên lưới và quản lý giấy uỷ nhiệm thông qua Cổng điện tử lưới.
Một phần kết quả của luận văn đã được trình bày trong báo cáo tại hội nghị
khoa học ICT.rda’08, Chương trình KC.01/06-10.
Kết quảứng dụng của luận văn đã được xác nhận của Trung tâm tính toán hiệu năng cao (Trường Đại học Bách khoa Hàn Nội.)
100
TÀI LIỆU THAM KHẢO
[1]. Ian Foster, Carl Kesselman - The Grid: Blueprint for a New Computing Infrastructure, 1st edition, Morgan Kaufmann Publishers, San Francisco, USA (1 November 1998), ISBN: 1558604758.
[2]. IBM Red Book - Introduction to Grid Computing.
[3]. IBM Red Books - Introduction to Grid Computing with Globus.
[4]. Mark Baker, Rajkumar Buyya, Domenico Laforenza - Grids and Grid technologies for wide-area distributed computing.
[5]. Trịnh Nhật Tiến – Giáo trình AN TOÀN DỮ LIỆU. 2008
[6]. MyProxy – Credential Management Service
http://grid.ncsa.illinois.edu/myproxy/
[7]. Chadwick, D.W. and A. Otenko. The PERMIS X.509 Role Based Privilege
Management Infrastructure. in 7th ACM Symposium on Access Control Models and Technologies. 2002
[8]. R. Alfieri, R. Cecchini, V. Ciaschini - VOMS, an Authorization System for Virtual Organizations.
[9]. Akos Frohner, and Karoly Lorentey - VO Management with VOMS.
[10]. Ian Foster, Carl Kesselman, Steven Tuecke, 2001 - Enabling Scalable Virtual organizations.
[11]. Markus Lorch, 2004 - The PRIMA System for Privilege Management, Authorization and Enforcement in Grid Environments.
101
PHỤ LỤC: CÀI ĐẶT VOMS VÀ EDG-MKGRIDMAP. 1. Cài đặt VOMS.
Hiện tại, có nhiều cách để cài đặt VOMS như thông qua trình cài đặt PACMAN của bộ công cụ VDT (Virtual Data Toolkit), trực thuộc Đại học Winconsin-Madison. Đây là cách mà lưới PRAGMA đang thực hiện. Tuy nhiên, trình cài đặt PACMAN chỉ chạy được trên một số nền tảng hạn chế như AIX; CentOS 5; Debian 3, 4; Mac OS X; Red Hat Enterprise Linux 3, 4, 5; ROCKS Linux 3.3 x86; Scientific Linux Fermi 3, 4 x86; và SUSE Linux 9. Nên quá trình cài
đặt PACMAN trên các hệđiều hành phổ biến khác như Fedora hay Ubuntun sẽ gặp nhiều các lỗi về thư viện phát triển hoặc thậm chí là thất bại.
Cách thứ hai để cài đặt VOMS là sử dụng các repository của DAG, gLite, jpackage17 …cho công cụ quản lý phần mềm yum và tiến hành cài đặt thông qua “yum install voms”. Đây chính là hướng dẫn chính thức của gLite. Nhưng, với 1 nhà quản trị hệ thống, để hệ thống âm thầm thực hiện cài đặt một hệ thống lớn, dù rất tiện lợi trước mắt, nhưng để quản trị hệ thống lâu dài và vận hành trơn tru thì đó là một trở ngại lớn. Phần sau sẽ trình bày cách triển khai hệ thống từng phần.
1.1. Chuẩn bị hệ thống
Yêu cầu tối thiểu cho hệ thống là Java 5, MySQL 5, Apache-Tomcat 5 trở
lên. Phiên bản được lựa chọn để thử nghiệm là Java SE 1.6, MySQL 5.1.35 và Apache-Tomcat 5.5.28. Các gói cấu hình hệ thống VOMS phải chuẩn bị bao gồm:
Gói cấu hình chung glite:
1. glite-config-3.1.3-3.slc4.i386.rpm 2. glite-info-generic-2.0.2-3.noarch.rpm 3. glite-info-templates-1.0.0-11.noarch.rpm 4. glite-security-trustmanager-1.8.16-3.noarch.rpm 5. glite-security-util-java-1.4.0-1.noarch.rpm 6. glite-security-utils-config-3.1.0-1.slc4.i386.rpm 7. glite-version-3.1.0-1.slc4.i386.rpm
102 Gói cấu hình VOMS: 1. glite-security-voms-admin-client-2.0.11-1.noarch.rpm 2. glite-security-voms-admin-interface-2.0.2-2.noarch.rpm 3. glite-security-voms-admin-server-2.0.18-1.noarch.rpm 4. glite-security-voms-api-cpp-1.8.12-1.slc4.i386.rpm 5. glite-security-voms-api-noglobus-1.8.8-2.slc4.i386.rpm 6. glite-security-voms-clients-1.8.12-1.slc4.i386.rpm 7. glite-security-voms-config-1.8.12-1.slc4.i386.rpm 8. glite-security-voms-mysql-3.1.0-1.slc4.i386.rpm 9. glite-scurity-voms-server-1.8.12-1.slc4.i386.rpm 10. glite-VOMS_mysql-3.1.3-0.noarch.rpm 11. glite-voms-server-config-3.1.7-4.slc4.i386.rpm
Và rất nhiều gói phần mềm phụ thuộc đi kèm khác, tùy thuộc vào thư viện phát triển đi kèm hệđiều hành.
1.2. Cài đặt VOMS
Để tiến hành cài đ.ặt ta sử dụng lệnh “rpm -ivh TenGoiCaiDat.rpm”. Quá trình cài đặt các gói chính cũng như các gói phụ thuộc được tiến hành cho đến khi gói glite-VOMS_mysql-3.1.3-0.noarch.rpm được thông báo là cài đặt thành công. Các gói thư viện phụ thuộc được cài đặt khó hơn. Có thể thông qua việc download các gói và cài đặt trực tiếp hoặc thông qua trình hỗ trợ cài đặt Yum Extender.
103
Trình hỗ trợ quản lý phần mềm Yum Extender
Một số chú ý trong quá trình cài đặt là:
• Cài đặt các gói phần mềm phụ thuộc trước, thứ tự cài đặt các gói đảm bảo
để tránh lỗi “Fail Dependencies”.
• Cài đặt gói VOMS sau cùng, nếu gặp trường hợp thiếu các gói thư viện giằng nhau (gói A yêu cầu phải có gói B, gói B yêu cầu phải có gói A) thì giải quyết bằng Yum Extender.
Nếu các gói phần mềm bị trùng lặp thư viện, dùng tham số –replacefiles hoặc – force.
104
2. Cài đặt EDG-MKGRIDMAP.
2.1. Chuẩn bị hệ thống
Yêu cầu tối thiểu cho hệ thống là Java 5, Perl 5.8 trở lên. Phiên bản được lựa chọn để thử nghiệm là Java SE 1.6, Perl 5.10. Một số gói cấu hình phụ thuộc đi kèm: 1. openldap-clients-2.4.15-6.fc11.i586.rpm 2. openldap-servers-2.4.15-6.fc11.i586.rpm 3. perl-Crypt-SSLeay-0.57-2.el4.rf.i386.rpm 4. perl-Date-Manip-5.54-2.el4.rf.noarch.rpm 5. perl-LDAP-0.34-5.fc11.noarch.rpm 6. perl-libwww-perl-5.805-1.1.1.noarch.rpm Gói cấu hình chính: 1. edg-mkgridmap-3.0.0-1.noarch.rpm 2. edg-mkgridmap-conf-3.0.0-1.noarch.rpm 2.2. Cài đặt EDG-MKGRIDMAP
- Cách thức cài đặt EDG-MKGRIDMAP giống với phương pháp cài đặt VOMS.
Cài đặt các gói thư viện phụ thuộc:
yum --enablerepo=addons --enablerepo=extras install perl-IO-Socket-SSL perl-Net- SSLeay
- Cài đặt edg-mkgridmap
rpm -Uvh edg-mkgridmap-3.0.0-1.noarch.rpm edg-mkgridmap-conf-3.0.0- 1.noarch.rpm
105
3. Cấu hình hệ thống
3.1. Cấu hình VOMS
- Thiết lập các biến môi trường của VOMS:
cp $GLITE_LOCATION/etc/profile.d/glite-env.sh /etc/profile - Sửa tiếp /etc/profile:
#Cau hinh VOMS GLITE
export GLITE_LOCATION=/opt/glite
PATH=$PATH:$GLITE_LOCATION/bin:$GLITE_LOCATION/sbin/ export GLITE_LOCATION_VAR=/var/glite
export GLITE_LOCATION_LOG=/var/log/glite
- Copy các gói thư viện cần thiết từ $GLITE_LOCATION/share/voms- admin/endorsed sang $CATALINA_HOME/common/endorsed.
cp $GLITE_LOCATION/share/voms-admin/endorsed/* $CATALINA_HOME/co mmon/endorsed
- Tạo chứng thực dạng java keystore cho localhost: Đây là chứng nhận chứng thực cho VOMS server được ký bởi các CA được người dùng tin tưởng. Chứng nhận này được sử dụng trong quá trình xác thực lẫn nhau sau này. Mặc định, khi
đã gia nhập lưới, ta đã xin sẵn chứng thực cho host. Ta sẽ tận dụng chứng thực cho host này để làm chứng thực cho VOMS server.
- Chuyển chứng thực của host từđịnh dạng pem sang định dạng pkcs12:
openssl pkcs12 -export -in /etc/grid-security/hostcert.pem -inkey /etc/grid- security/hostkey.pem -certfile /etc/grid-security/certificates/ca1d96a0.0 -name "host keystore" -out hoststore.p12
trong đó tham số certfile trỏđến public key chuẩn X509 định dạng pem. - Chuyển tiếp sang định dạng của java keystore:
keytool -importkeystore -srckeystore hoststore.p12 -destkeystore hoststore.ks - srcstoretype pkcs12 -deststoretype jks
106
- Thêm chứng nhận của nhà cung cấp chứng thực CA đã ký cho chứng thực của server vào keystore:
keytool -import -keystore hoststore.ks -alias ca1d96a0 -file /etc/grid- security/certificates/ca1d96a0.0
- Vì quá trình người dùng đăng nhập vào giao diện quản trị đòi hỏi quá trình xác thực lẫn nhau giữa cả VOMS server và người dùng. Để kiểm tra các giấy chứng nhận của người dùng, ta cần phải có giấy chứng nhận của các CA đã cấp chứng
nhận cho họ. Tương tự như quá trình tạo java keystore cho host, ta tạo ra một java keystore chứa tất cả các chứng nhận của các CA mà ta tin tưởng.
keytool -import -keystore ca.ks -alias ca1d96a0 -file /etc/grid- security/certificates/ca1d96a0.0
- Cuối cùng, ta cấu hình tomcat hoạt động trên cổng 8443, giao thức https: <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minsSpareThreads=”25” maxSpareThreads=”75” enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="webapps/GOODASserver.jks" keystorePass="123456" truststoreFile="webapps/ca.jks" truststorePass="123456" truststoreType="JKS"/>
Trong đó, tham số clientAuth yêu cầu người dùng phải xuất chứng thực được localhost tin cậy, kiểm tra qua truststoreFile của CA. Tham số keystoreFile trỏ tới chứng thực dạng keystore của localhost. Ta trỏ tới https://localhost:8443để kiểm tra kết quả triển khai Tomcat và SSL.
107
3.2. Cấu hình VO.
Sau khi đã cài đặt xong gói phần mềm VOMS, ta tiến hành tạo ra tổ chức ảo. Có 2 cách để tạo mới 1 tổ chức ảo là sử dụng các câu lệnh tạo trực tiếp trong gói cài đặt gLite VOMS MYSQL; hoặc điền trực tiếp thông tin các tệp cấu hình trong glite trong tiện tích đi kèm của gói gLite.
a. Sử dụng lệnh tạo VO trực tiếp voms-admin-configure.
- Sử dụng $GLITE_LOCATION/sbin/voms-admin-configure, cú pháp như sau:
voms-admin-configure install --dbtype mysql --vo <VO name>
--createdb
–deploy-database
--dbauser <MySQL root username> --dbapwd <MySQL root password>
--dbusername <voms db account username> --dbpassword <voms db account password> --port <voms core service port>
--smtp-host <SMTP relay host>
--mail-from <Sender address for service-generated emails> - Khi tạo xong, các thông tin về cấu hình VO được lưu tại:
$GLITE_LOCATION/etc/voms/VOName/voms.conf
- Trong hệ thống GOODAS, ta tạo ra VO GOODAS:
$GLITE_LOCATION/sbin/voms-admin-configure install \ --dbtype mysql \ --vo GOODAS \ --createdb \ --deploy-database \ --dbauser root \ --dbapwd SQLRootPassword \ --dbusername trungnv\ --dbpassword SQLUserPassword \
108
--port 15000 \
--mail-from ndh7891@gmail.com \ --smtp-host bkluster.hut.edu.vn
- Sau khi tạo xong VO GOODAS, khởi động VOMS core và VOMS-Admin: $GLITE_LOCATION/etc/init.d/voms start GOODAS
$GLITE_LOCATION/etc/init.d/voms-admin start GOODAS - Kiểm tra VOMS core và VOMS-Admin đã được khởi động: $GLITE_LOCATION/libexec/voms/voms-ping GOODAS
Nếu kết quả OK là VOMS-Core khởi động thành công. $GLITE_LOCATION/sbin/voms-admin-ping GOODAS
Nếu kết quả OK là VOMS-Admin khởi động thành công.
- Khi muốn gỡ bỏ VO:
$GLITE_LOCATION/sbin/voms-admin-configure remove --vo GOODAS
- Mặc định, lệnh trên sẽ chỉ gỡ bỏ VO mà vẫn giữ lại cơ sở dữ liệu người dùng
của nó. Nếu muốn gỡ bỏ cả VO và cơ sở dữ liệu đi cùng:
$GLITE_LOCATION/sbin/voms-admin-configure remove --vo GOODAS -- undeploy-database
Khi hệ thống báo lỗi, có thể xem chi tiết lỗi tại các log của nó. Các log của
VOMS-Core được lưu tại: /var/log/voms; của VOMS-Admin lưu tại $CATALINA_HOME/logs/voms-admin-VOName.log
b. Tạo trực tiếp VO sử dụng tệp cấu hình của Glite.
Ngoài cách dùng các câu lệnh trực tiếp tạo VO của gói gLite VOMS. gLite cũng cung cấp các tệp cấu hình VO chuẩn. Mẫu các tệp cấu hình VO được lưu ở /opt/glite/etc/config/templates. Người quản trị VO điền các thông tin này vào mẫu chuẩn rồi gọi script thực thi. VO sẽ được tạo.
Ta lưu các tệp cấu hình chuẩn sang thư mục /opt/glite/etc/config, sau đó thay đổi trực tiếp các giá trị “changme” để tiến hành cấu hình
109
Các file cấu hình VO bao gồm:
1. glite-global.cfg.xml: Thiết lập các biến môi trường EDG_LOCATION, GPT_LOCATION, GLOBUS_LOCATION, EDG_LOCATION, JAVA_HOME, CATALINA_HOME, ..., tomcat.user.name, tomcat.user.group...
2. glite-security-utils.cfg.xml: Thay đổi email sẽ nhận các thông báo cron. 3. glite-voms-server.cfg.xml:
Tham số Giá trị Ý nghĩa
voms.db.type mysql Loại cơ sở dữ liệu, MySQL hoặc Oracle voms.db.host localhost Hostname của server database
voms.admin.smtp.host localhost Tên máy chủ SMTP gửi email voms.mysql.admin.name root Tên người quản trị database MySQL
Các tham số trong glite-voms-server.cfg.xml.
4. vo-list.cfg.xml:
Tham số Giá trị Ý nghĩa
vo.name VO-Name Tên của VO sẽ cài
voms.hostname Localhost Hostname của server voms voms.port.number 15000 Cổng giao tiếp với VOMS-Core voms.db.name voms_VO-Name Tên database MySQL của VO voms.db.user.name vo_VO-Name Tên người dùng MySQL sẽ thao
tác với database voms_VO- Name
voms.db.user.password 123456 Password cho vo_VO-Name voms.admin.notification
ndh7891@gmail.co m
Email của người quản trị VO
voms.admin.certificate admincert.pem Certificate của người quản trị
VO
110
- Sau khi thiết lập các tham số, kiểm tra các tệp cấu hình đã được thiết lập đúng: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –c
- Thiết lập tất cả các VO trên VOMS server: