Thử nghiệm VPNaaS trong OpenStack

Một phần của tài liệu Nghiên cứu triển khai VPN trên đám mây Openstack (Trang 61)

 Mô hình thử nghiệm VPNaaS trong Openstack

 Tiến hành ping thử nghiệm từ máy AT7-001 sang máy AT7-002 thì kết quả cho thấy không thể kết nối.

Sau đây sẽ là phần thiết lập kết nối VPN để kết nối an toàn giữa 2 site. Trong phần thiết lập kết nối này, chúng ta cần chú ý đến các thông số thiết lập sau:

- Hàm băm: SHA1 (mặc định)

- Thuật toán mã hóa: 3Des, AES 129, AES 192, AES 256 - Phiên bản IKE : Version 1, Version 2

- Thời gian tồn tại của khóa được tính bằng giây (seconds): Thông số này có thể khác nhau ở 2 bên, nhưng 2 bên sẽ thống nhất sử dụng thông số nhỏ nhất.

- Thuật toán trao đổi khóa Diffie-Hellman: Group 2 (1024bit), Group 5 (1536bit), Group 14 (2048bit)

- Giao thức vận chuyển: ESP, AH, AH-ESP - Chế độ đàm phán IKE phase 1: main (mặc định) - Chế độ đóng gói: Tunnel, Transport.

Để tạo kết nối VPN giữa 2 site, ta cần phải tạo các chính sách như: IKE Policies, IPSec Policies. Ngoài ra còn cần phải kích hoạt VPN services và IPSec Side Connections. Dưới đây là các bước cho quá trình thiết lập kết nối VPN trên đám mây OpenStack.

• Trong mục IKE Policies của VPN, tạo ike-pool-1 với các cấu hình mặc định

• Trong mục IPSec Policies, tạo ipsec-pool-1

• Trong mục VPN Service, ta tạo vpn-service1 và vpn-service2

• Trong mục IPSec Site Connections, tạo site1- site2 và site 1 – site 2

Kết quả cho thấy Site 1 kết nối được với Site 2 và máy AT7-001 kết nối được tới máy AT7-002

Vậy quá trình thiết lập kết nối VPN giữa 2 subnet đã thành công.

Trong đám mây OpenStack, thì ngoài việc thiết lập kết nối VPN giữa các subnet trong cùng một đám mây, OpenStack còn hỗ trợ kết nối giữa các subnet trong các đám mây khác nhau. Hay còn gọi là thiết lập VPN giữa “Cloud to Cloud”. Việc thiết lập kết nối VPN Cloud to Cloud cũng tương tự như việc thiết lập VPN trong một đám mây.

Kết thúc chương 3 của đồ án các vấn đề liên quan đến công nghệ VPN trong điện toán đám mây đã giải quyết được ở một số khía cạnh. Việc xây dựng thử nghiệm dịch vụ VPNaaS trên đám mây OpenStack tuy còn đơn giản nhưng đã phần nào gợi mở ra các hướng nghiên cứu mới cho việc áp dụng công nghệ IPSec VPN vào Cloud Computing.

KẾT LUẬN

Như vậy, thông qua ba chương của đề tài “Nghiên cứu triển khai VPN

trong điện toán đám mây sử dụng OpenStack” về cơ bản đạt được một số mục

tiêu sau:

 Hiểu được những kiến thức cơ bản và tổng quan về điện toán đám mây. Các nguy cơ mất an toàn trong hệ thống điện toán đám mây. Đồng thời cũng nêu ra được một số hướng nghiên cứu bảo mật cho điện toán đám mây.

 Tiến hành khảo sát thực nghiệm được một số dịch vụ của các nhà cung cấp dịch vụ điện toán đám mây lớn như Google, Dropbox, Microsoft…

 Xây dựng được một đám mây dựa trên mã nguồn mở OpenStack trên môi trường ảo hóa VMWare.

 Đề xuất một số mô hình VPN áp dụng trong bảo mật điện toán đám mây. Đồng thời, xây dựng và triển khai được dịch vụ VPNaaS trên đám mây OpenStack.

Tuy nhiên, do một số hạn chế về tài liệu, kiến thức và điều kiện thực tế, nên đồ án còn một số vấn đề chưa thể khắc phục được:

 Chưa nghiên cứu tìm hiểu sâu hơn được về các lỗ hổng bảo mật trong điện toán đám mây

 Áp dụng chưa linh hoạt các mô hình bảo mật dựa trên VPN  Ứng dụng thử nghiệm dịch vụ VPNaaS còn hạn chế

 Máy ảo tạo được trên đám mây còn ở dạng đơn giản.

Do đó, trong tương lai, em sẽ tiếp tục nghiên cứu, phát triển đề tài này một cách hoàn thiện hơn, có thể áp dụng vào các cơ quan tổ chức, doanh nghiệp…Một số hướng nghiên cứu trong tương lai:

 Triển khai thực tế đám mây OpenStack trên các thiết bị vật lý

 Xây dựng và thiết lập đa dạng các loại máy ảo khác nhau hơn như Windows 8, Windows Server 2012, CentOS 7.0, Ubuntu 14.04…

 Xây dựng và sử dụng linh hoạt các dịch vụ bổ sung của đám mây OpenStack như: VPNaaS, FWaaS, LBaaS…

 Áp dụng các mô hình VPN đã đề xuất vào thực tế.

 Dịch vụ VPNaaS cài đặt trên đám mây OpenStack có sử dụng bộ phần mềm OpenS/Wan. Đây là bộ phần mềm mã nguồn mở nên hoàn toàn có khả năng can thiệp vào mã nguồn. Đây là một hướng nghiên cứu mới trong thời gian tới em sẽ tập trung tìm hiểu.

Lời cuối, em xin gửi lời biết ơn chân thành tới Thầy giáo, ThS. Nguyễn Như Tuấn, phó chủ nhiệm khoa Kỹ Thuật Mật Mã, Học Viện Kỹ Thuật Mật Mã đã giúp đỡ em trong suốt thời gian qua. Qua đây em cũng mong nhận được sự đóng góp ý kiến của thầy cô, cũng như các bạn có cùng mối quan tâm để đề tài được hoàn thiện hơn.

TÀI LIỆU THAM KHẢO

[1] ThS. Nguyễn Như Tuấn, KS. Phạm Quốc Hoàng. Một số vấn đề an toàn cho điện toán đám mây. Tạp chí An toàn thông tin, Học viện KTMM, Ban Cơ yếu Chính phủ, 2013

[2] Wen-Hwa Liao, Shuo-Chun Su, Tatung University, Taipei, Taiwan; “A Dynamic VPN Architecture for private Cloud Computing”; Fourth IEEE international Conference; 2011

[3] Kazunori Ishimura, Toshihiko Tamura, Shiro Mizuno, Haruki Sato and

Tomoharu Motono; Dynamic IP VPN architecture with secure IPSec tunnels; NTT Corporation; Japan

[4] Network Service Systems Laboratories, NTT Corporation, Japan; “Dynamic IP-VPN architecture with secure IPSec tunnels”; 2007

[5] Tài liệu cài đặt triển khai đám mây OpenStack

https://github.com/ChaimaGhribi/OpenStackIcehouseInstallation/blob/master/Ope nStack-Icehouse-Installation.rst

[6] Lịch sử ra đời “điện toán đám mây”

http://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_to%C3%A1n_ %C4%91%C3%A1m_m%C3%A2y

PHỤ LỤC A

Cấu hình Controller node

Các giao diện mạng của Controller Node: Có 2 card mạng:

- eth1: Giao diện mạng kết nối ra bên ngoài - eth0: Giao diện kết nối với mạng bên trong. Thay đổi chế độ người dùng:

sudo su Đặt tên máy chủ:

vi /etc/hostname controller

Chỉnh sửa file /etc/hosts: vi /etc/hosts #controller 10. 0. 0. 11 controller #network 10. 0. 0. 21 network # compute1 10. 0. 0. 31 compute1

Chỉnh sửa cấu hình giao diện mạng eth0 và eth1: vi /etc/network/interfaces

# The management network interface auto eth0

iface eth0 inet static address 10. 0. 0. 11 netmask 255. 255. 255. 0 # The public network interface auto eth1

address 192. 168. 3. 175 netmask 255. 255. 255. 0 gateway 192. 168. 3. 1 dns-nameservers 8. 8. 8. 8 Khởi động lại các giao mạng:

ifdown eth0 && ifup eth0 ifdown eth1 && ifup eth1

Cấu hình Network node

Network node có 3 card mạng: - eth0: kết nối mạng nội bộ - eth1: kết nối ra Internet

- eth2: kết nối với VM traffic network. Thay đổi chế độ người dùng:

sudo su Đặt tên máy chủ:

vi /etc/hostname network

Chỉnh sửa file /etc/hosts: vi /etc/hosts #network 10. 0. 0. 21 network #controller 10. 0. 0. 11 controller # compute1 10. 0. 0. 31 compute1

Chỉnh sửa cấu hình các giao diện mạng eth0, eth1 and eth2: vi /etc/network/interfaces

# The management network interface auto eth0

address 10. 0. 0. 21 netmask 255. 255. 255. 0 # VM traffic interface auto eth1

iface eth1 inet static address 10. 0. 1. 21 netmask 255. 255. 255. 0 # The public network interface auto eth2

iface eth2 inet static address 192. 168. 3. 176 netmask 255. 255. 255. 0 gateway 192. 168. 3. 1 dns-nameservers 8. 8. 8. 8 Khởi động lại các giao diện mạng:

ifdown eth0 && ifup eth0 ifdown eth1 && ifup eth1 ifdown eth2 && ifup eth2

Cấu hình Compute node

Compute node có 2 card mạng:

- eth0: Kết nối với mạng bên trong - eth1: Kết nối với VM traffic network.

Chú ý: Trong quá trình cài đặt, cần cài đặt thêm 1 card mạng ra Internet để cập nhật các gói cài đặt trên mạng.

Thay đổi chế độ người dùng: sudo su

Đặt tên máy chủ: vi /etc/hostname compute1

vi /etc/hosts # compute1 10. 0. 0. 31 compute1 #controller 10. 0. 0. 11 controller #network 10. 0. 0. 21 network

Chỉnh sửa và cấu hình giao diện mạng eth0 and eth1: vi /etc/network/interfaces

# The management network interface auto eth0

iface eth0 inet static address 10. 0. 0. 31 netmask 255. 255. 255. 0 # VM traffic interface auto eth1

iface eth1 inet static address 10. 0. 1. 31 netmask 255. 255. 255. 0 Khởi động lại các giao diện mạng:

ifdown eth0 && ifup eth0 ifdown eth1 && ifup eth1

Kiểm tra kết nối.

Tiến hành kiểm tra các kết nối từ các nút. Từ controller node:

# ping a site on the internet: ping OpenStack. org

# ping the management interface on the network node: ping network

# ping the management interface on the compute node: ping compute1

Từ network node:

# ping a site on the internet: ping OpenStack. org

# ping the management interface on the controller node: ping controller

# ping the VM traffic interface on the compute node: ping 10. 0. 1. 31

Từ compute node:

# ping a site on the internet: ping OpenStack. org

# ping the management interface on the controller node: ping controller

# ping the VM traffic interface on the network node: ping 10. 0. 1. 21

 Cài đặt, cấu hình hệ thống • Controller Node

Tiến hành cài đặt các dịch vụ cơ bản (keystone, glance, nova, neutronvà horizon) và các dịch vụ hỗ trợ như MySql database, message broker (RabbitMQ), và NTP.

Cài đặt các dịch vụ hỗ trợ (MySQL và RabbitMQ)

Cập nhật và nâng cấp hệ thống:

apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade Cài đặt dịch vụ NTP (Network Time Protocol):

apt-get install -y ntp Cài đặt MySQL:

apt-get install -y mysql-server python-mysqldb

vi /etc/mysql/my. cnf bind-address = 10. 0. 0. 11

Chỉnh sửa file /etc/mysql/my. cnf : Thiết lập các phím để kích hoạt InnoDB, thiết lập kí tự UTF-8, và UTF-8 đối chiếu bởi mặc định.

vi /etc/mysql/my. cnf [mysqld]

default-storage-engine = innodb innodb_file_per_table

collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8

Khởi động lại dịch vụ MySQL: service mysql restart

Xóa người dùng ẩn danh được tạo ra khi cơ sở dữ liệu đầu tiên bắt đầu: mysql_install_db

mysql_secure_installation Cài đặt RabbitMQ (Message Queue):

apt-get install -y rabbitmq-server

Cài đặt dịch vụ Identity (Keystone)

Cài đặt gói Keystone:

apt-get install -y keystone

Tạo cơ sở dữ liệu MySQL cho keystone: mysql -u root -p

CREATE DATABASE keystone;

GRANT ALL PRIVILEGES ON keystone. * TO

'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone. * TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

exit;

rm /var/lib/keystone/keystone. db Chỉnh sửa file /etc/keystone/keystone. conf:

vi /etc/keystone/keystone. conf [database]

replace connection = sqlite:////var/lib/keystone/keystone. db by connection =

mysql://keystone:KEYSTONE_DBPASS@controller/keystone [DEFAULT]

admin_token=ADMIN log_dir=/var/log/keystone

Khởi động lại dịch vụ xác thực, sau đó đồng bộ hóa lại cơ sở dữ liệu: service keystone restart

keystone-manage db_sync Kiểm tra đồng bộ:

mysql -u root -p keystone show TABLES;

Xác định users, tenants, và roles:

export OS_SERVICE_TOKEN=ADMIN

export OS_SERVICE_ENDPOINT=http://controller:35357/v2. 0 #Create an administrative user

keystone user-create --name=admin --pass=admin_pass --email=admin@domain. com

keystone role-create --name=admin

keystone tenant-create --name=admin --description="Admin Tenant" keystone user-role-add --user=admin --tenant=admin --role=admin keystone user-role-add --user=admin --role=_member_

--tenant=admin

#Create a normal user

keystone user-create --name=demo --pass=demo_pass --email=demo@domain. com

keystone tenant-create --name=demo --description="Demo Tenant" keystone user-role-add --user=demo --role=_member_ --tenant=demo #Create a service tenant

keystone tenant-create --name=service --description="Service Tenant" Xác định các dịch vụ và API endpoint :

keystone service-create --name=keystone --type=identity --description="OpenStack Identity"

keystone endpoint-create \

--service-id=$(keystone service-list | awk '/ identity / {print $2}') \ --publicurl=http://192. 168. 3. 175:5000/v2. 0 \

--internalurl=http://controller:5000/v2. 0 \ --adminurl=http://controller:35357/v2. 0 Tạo một file chứng chỉ đơn giản:

vi creds

#Paste the following:

export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=admin_pass

export OS_AUTH_URL="http://192. 168. 3. 175:5000/v2. 0/" vi admin_creds

#Paste the following:

export OS_USERNAME=admin export OS_PASSWORD=admin_pass export OS_TENANT_NAME=admin

export OS_AUTH_URL=http://controller:35357/v2. 0 Kiểm tra Keystone:

#clear the values in the OS_SERVICE_TOKEN and OS_SERVICE_ENDPOINT environment variables

unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT #Request a authentication token

keystone --os-username=admin --os-password=admin_pass --os-auth- url=http://controller:35357/v2. 0 token-get

# Load credential admin file source admin_creds

keystone token-get # Load credential file: source creds

keystone user-list

keystone user-role-list --user admin --tenant admin

Cài đặt các dịch vụ Image (Glance)

Cài đặt gói Glance:

apt-get install -y glance python-glanceclient Tạo một cơ sở dữ liệu MySQL cho Glance:

mysql -u root -p

CREATE DATABASE glance;

GRANT ALL PRIVILEGES ON glance. * TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';

GRANT ALL PRIVILEGES ON glance. * TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';

exit;

Cấu hình dịch vụ user và role:

keystone user-create --name=glance --pass=service_pass --email=glance@domain. com

keystone user-role-add --user=glance --tenant=service --role=admin Register the service and create the endpoint:

Đăng kí dịch vụ và tạo ra các endpoint.

keystone service-create --name=glance --type=image --description="OpenStack Image Service"

keystone endpoint-create \

--publicurl=http://192. 168. 3. 175:9292 \ --internalurl=http://controller:9292 \ --adminurl=http://controller:9292 Cập nhật file /etc/glance/glance-api. conf:

vi /etc/glance/glance-api. conf [database]

replace sqlite_db = /var/lib/glance/glance. sqlite with

connection = mysql://glance:GLANCE_DBPASS@controller/glance [DEFAULT] rpc_backend = rabbit rabbit_host = controller [keystone_authtoken] auth_uri = http://controller:5000 auth_host = controller auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = glance admin_password = service_pass [paste_deploy] flavor = keystone

Cập nhật file /etc/glance/glance-registry. conf: vi /etc/glance/glance-registry. conf

[database]

replace sqlite_db = /var/lib/glance/glance. sqlite with:

connection = mysql://glance:GLANCE_DBPASS@controller/glance [keystone_authtoken]

auth_uri = http://controller:5000 auth_host = controller

auth_protocol = http admin_tenant_name = service admin_user = glance admin_password = service_pass [paste_deploy] flavor = keystone

Khởi động lại dịch vụ glance-api và glance-registry :

service glance-api restart; service glance-registry restart Đồng bộ cơ sở dữ liệu trong glance:

glance-manage db_sync

Kiểm tra Glance, tải lên file ảnh ‘cirros cloud’ : source creds

glance image-create --name "cirros-0. 3. 2-x86_64" --is-public true \ --container-format bare --disk-format qcow2 \

--location http://cdn. download. cirros-cloud. net/0. 3. 2/cirros-0. 3. 2- x86_64-disk. img

Danh sách các Images: glance image-list

Cài đặt dịch vụ Compute (Nova)

Cài đặt gói Nova:

apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth \

nova-novncproxy nova-scheduler python-novaclient Tạo cơ sở dữ liệu Mysql cho Nova:

mysql -u root -p

CREATE DATABASE nova;

GRANT ALL PRIVILEGES ON nova. * TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova. * TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

exit;

Cấu hình dịch vụ user and role:

keystone user-create --name=nova --pass=service_pass --email=nova@domain. com

keystone user-role-add --user=nova --tenant=service --role=admin Đăng kí dịch vụ và tạo các endpoint:

keystone service-create --name=nova --type=compute --description="OpenStack Compute"

keystone endpoint-create \

--service-id=$(keystone service-list | awk '/ compute / {print $2}') \ --publicurl=http://192. 168. 3. 175:8774/v2/%\(tenant_id\)s \

--internalurl=http://controller:8774/v2/%\(tenant_id\)s \ --adminurl=http://controller:8774/v2/%\(tenant_id\)s Chỉnh sửa file /etc/nova/nova. conf:

vi /etc/nova/nova. conf [database] connection = mysql://nova:NOVA_DBPASS@controller/nova [DEFAULT] rpc_backend = rabbit rabbit_host = controller my_ip = 10. 0. 0. 11 vncserver_listen = 10. 0. 0. 11 vncserver_proxyclient_address = 10. 0. 0. 11 auth_strategy = keystone [keystone_authtoken] auth_uri = http://controller:5000 auth_host = controller auth_port = 35357

auth_protocol = http

admin_tenant_name = service admin_user = nova

admin_password = service_pass Xóa cơ sở dữ liệu Nova SQLite:

Một phần của tài liệu Nghiên cứu triển khai VPN trên đám mây Openstack (Trang 61)

Tải bản đầy đủ (DOC)

(95 trang)
w