Lượt xem: 8319 | Gửi lúc: 19/07/2011 15:02:34
Bookmark and Share

Cài đặt miễn phí VPN server bằng công nghệ điện toán đám mây của Amazon

Một năm sử dụng miễn phí các dịch vụ điện toán đám mây (cloud computing) – đó là chương trình khuyến mại của Amazon dành cho tất cả những người dùng mới. Trong trường hợp này, tài nguyên được cung cấp có giới hạn, nhưng nó cũng đủ để giúp người dùng làm quen với công nghệ mới này và có thể cài đặt cho máy chủ VPN của chính mình.

Vấn đề của các công nghệ điện toán đám mây là ở chỗ, cho đến nay, nhiều người vẫn còn chưa có nhiều hiểu biết về khả năng của nó. Bởi vậy, kể từ tháng 11/2010, nhà cung cấp dịch vụ Amazon đã quyết định tạo điều kiện cho khách hàng làm quen với dịch vụ của mình miễn phí (với một số điều kiện nhất định). Sau đây sẽ giới thiệu một số dịch vụ của Amazon.

Amazon Web Services (AWS)
Danh sách dịch vụ điện toán đám mây của Amazon tương đối lớn, trong đó ba dịch vụ phổ biến nhất là: Amazon Elastic Compute Cloud (EC2), Amazon Elastic Block Store (EBS) và Amazon Simple Storage Service (S3).
Công nghệ EC2, về bản chất chính là đưa khái niệm “điện toán đám mây” vào thực tế. Với sự trợ giúp của EC2, người sử dụng có thể cài đặt trên các “đám mây” một lượng máy tính bất kỳ với cấu hình và hệ điều hành tùy theo nhu cầu, và chỉ cần vài phút để làm được điều đó. Mỗi một máy tính ảo như vậy gọi là một Instance. Sau khi khởi động máy (thường là một vài phút) người dùng sẽ có ngay quyền truy cập root thông qua SSH hoặc quyền truy cập tới desktop thông qua giao thức RDP (Remonte Desktop Protocol), tùy thuộc vào hệ điều hành mà người dùng chọn. Phí sử dụng Instance như vậy được tính theo giờ, có nghĩa là người dùng có thể tắt máy chủ ảo (virtual server) của mình bất kỳ lúc nào và sẽ không phải trả thêm phí.
Mỗi kiểu máy chủ ảo sẽ được cấp kiểu vi xử lý và lượng RAM thích hợp, tuy nhiên trong cấu hình sẽ không có ổ cứng. Để ảo hóa ổ cứng, một công nghệ khác của Amazon được sử dụng – đó là EBS. Giả sử người dùng cần 25 GB, điều đó sẽ được đáp ứng ngay. Bất kỳ lúc nào, người dùng cũng có thể yêu cầu cung cấp thêm dung lượng. Loại ổ cứng như thế được gọi là Volume và được kết nối với Instance. Vậy là trong hệ thống đã có ổ cứng. Tất cả dữ liệu ghi lên nó sẽ được lưu trữ không phụ thuộc vào thời gian sống của Instance.
Công nghệ tiếp theo là S3, cũng là để lưu trữ file nhưng là một mảng hoàn toàn khác. Có thể nói, đó là một “kho” vô hạn để chứa file và khi cần, có thể truy cập tới các file này thông qua web. Ngườidùng sẽ được cấp không gian nhớ đúng theo nhu cầu: 10 MB, 1 GB, 5.000 GB hay thậm chí là không có một giới hạn nào cả, ngoài giới hạn đối với kích thước của file là 5 GB.
Trong phạm vi chương trình khuyến mại “AWS Free Usage Tier”, mỗi người dùng mới sẽ được thử các dịch vụ này miễn phí. “Thử” có nghĩa là tài nguyên miễn phí sẽ được cung cấp hạn chế (khoảng 750 giờ sử dụng Instance EC2, 10 GB cho EBS và 5GB cho S3). Nếu người dùng muốn sử dụng ngoài giới hạn thì phải trả phí. Như vậy, chúng ta đã có thể có được một máy chủ để thử nghiệm, máy chủ này làm việc dựa trên công nghệ điện toán đám mây. Những gì có thể làm với máy chủ này giờ đây chỉ còn tùy thuộc vào người dùng. Nhưng phương án thú vị nhất có lẽ là cài đặt một máy chủ VPN của mình và đặt nó ở tại nước Mỹ.

Đăng ký sử dụng dịch vụ
Trước khi sử dụng bất kỳ dịch vụ nào của Amazon, người dùng cần đăng ký một tài khoản. Để đăng ký, ta truy cập vào trang chủ của AWS là http://aws.amazon.com và nhấn nút “Sign up now”. Ở trang đăng ký, chọn mục “I am a new user” và tiến hành đăng ký tài khoản. Để đăng ký được tài khoản, người dùng nhất thiết phải có thẻ thanh toán (Visa hoặc MasterCard). Đó cũng là điều kiện duy nhất để có thể thử miễn phí các dịch vụ của AWS. Nếu không sử dụng vượt mức giới hạn của chương trình khuyến mại, thì người dùng sẽ không bị mất bất kỳ chi phí nào. Tuy nhiên, Amazon sẽ trừ phí (từ 1 – 2 USD) từ tài khoản để kiểm tra tính chân thực của thẻ, sau đó sẽ trả lại vào tài khoản người dùng. Để đáp ứng điều kiện này của Amazon, người dùng không nhất thiết phải mở tài khoản ở ngân hàng mà có thể mua thẻ ảo, ví dụ ở trang http://mobw.ru.
Để có thể truy cập vào dịch vụ điện toán đám mây, cần phải đăng ký bổ sung các dịch vụ này (EC2, EBS, S3,...). Hệ thống an ninh sẽ kiểm tra bắt buộc số điện thoại của người dùng. Ở một bước trong quá trình đăng ký, hệ thống sẽ thực hiện một cuộc gọi tự động vào điện thoại của người dùng và yêu cầu nhập mã pin gồm 4 ký tự (đang hiện trên màn hình ở thời điểm này). Một bước quan trọng nữa là việc lấy cặp khóa để truy cập. Để có thể làm việc với EC2 và S3 cần hai loại khóa: khóa truy cập ID, khóa truy cập bí mật và Chứng thư số X.509. Amazon sẽ tự động đăng ký cho người dùng sử dụng tất cả các dịch vụ cần thiết. Sau khi đăng ký thành công, người dùng sẽ có được quyền truy cập tới trình điều khiển AWS. Nhiệm vụ của chúng ta lúc này là cài đặt một máy chủ ảo, nên hãy chuyển sang mục điều khiển EC2.

Làm việc với EC2
Công nghệ được sử dụng ở đây cho phép khởi động hay tắt một số lượng Instance bất kỳ (Amazon EC2 Instance) chỉ trong vòng vài phút. Hơn thế nữa, tính sẵn sàng của chúng được đảm bảo ở 99,95%. Tại khung điều khiển EC2, nhấn nút “Launch Instance”, có nhiều loại máy chủ ảo với cấu hình khác nhau cho bạn lựa chọn.
Instance chuẩn có cấu hình như sau: Small Instance (Default) với bộ nhớ 1,7GB, 1 EC2 Compute Unit (1 core ảo với 1 EC2 Compute Unit), không gian lưu trữ của instance là 160 GB, platform 32 bit và có giá là 0,10 USD (nếu là hệ điều hành họ Unix) hay 0,125 USD (nếu sử dụng hệ điều hành Windows). Ở đây, chúng ta chỉ quan tâm kiểu Instance mà Amazon thiết lập riêng cho quá trình dùng thử là Micro Instance vì nó miễn phí! Chúng ta sẽ gặp khái niệm “Amazon Machine Image”  (AMI). AMI là ảnh của một máy chủ đã cài sẵn hệ điều hành và các phần mềm khác như Apache, MySQL.... Trong kho “Community AMIs” có sẵn hàng nghìn AMI trên nền Linux và Windows do chính Amazon hay người dùng tạo ra. Để phù hợp với
giới hạn tài nguyên được cấp miễn phí, ta chọn bản Ubuntu 10.04 với số hiệu “ami- c2a255ab” và chiếm khoảng 10 GB.
Sau khi chọn xong, ta nhấn nút “Install” và quá trình cài đặt sẽ bắt đầu. Ta có thể để mọi tham số nhận giá trị mặc định của nó ngoại trừ kiểu Instance phải chọn là “Micro Instance”.
Khởi động Instance
Sau khi cài đặt xong, ở tab “Instances”, có thể theo dõi được tiến trình khởi động. Khi cột “State” hiện ra “Running” thì máy chủ của người dùng mới sẵn sàng làm việc, tên miền và địa chỉ IP của máy chủ ảo sẽ thay đổi theo từng lần khởi động. Tuy nhiên, ở tab “Elastic IPs” người dùng có thể lấy “IP tĩnh” gắn cho Instance. Cần phải thực hiện thao tác này, để tránh bị tính phí. Ở thời điểm này, nếu người dùng định thử ping hay kết nối SSH tới máy chủ, thì sẽ không thể thực hiện được. Vì theo ngầm định, firewall sẽ chặn tất cả mọi kết nối. Điều này có thể thay đổi bằng cách chỉnh lại chính sách an toàn (security policy) trong mục “Security Group”.



Thay đổi chính sách an toàn

Đến đây, chúng ta đã có được một Instance EC2 hoàn thiện, với hệ điều hành Ubuntu và có thể bắt đầu cấu hình nó. Chúng ta có thể kết nối với máy chủ qua SSH, bằng công cụ PuTTY chẳng hạn. Chú ý: khóa nhận được từ máy chủ có định dạng PEM, còn PuTTY làm việc với định dạng PPK, vì thế cần có thao tác chuyển đổi định dạng (chính bằng PuTTY). Trước hết, cần tải về file khóa riêng, sau đó ghi lại nó dưới định dạng cần thiết (thông qua menu “File”). Thiết lập kết nối SSH:
- Ở mục “Sessions”, điền IP của Instance (Elastic IP) vào ô “Host Name”;
- Ở mục “Connection ->Data”, ở ô “Auto - Login” điền vào tên người dùng là “ubunta”;
-  Ở mục “Connection ->SSH ->Auth”, trỏ đến nơi lưu khóa riêng;
-  Ở mục “Session” điền tên của phiên làm việc và ghi lại nó bằng nút “Save”.
- Nhấn nút “Open”, nhập mật khẩu của khóa riêng để thiết lập kết nối.

Thiết lập PPTP
Nếu như mọi thông số được thiết lập đúng, trong cửa sổ PuTTY sẽ xuất hiện cửa sổ điều khiển máy chủ ảo của người dùng cùng lời chào của Ubuntu, có nghĩa là chúng ta đã có được máy chủ ảo đang làm việc trên “đám mây” và một kết nối SSH đến nó. Bây giờ, ta sẽ cài đặt trên Instance này một máy chủ VPN. Có hai sự lựa chọn là OpenVPN hoặc PPTP demon thông thường. Vì hệ điều hành chúng ta dùng là Ubuntu nên cài đặt PPTP demon là việc đơn giản. Trước hết là cài đặt máy chủ service:
sudo aptitude install pptpd

Tiếp theo là thiết lập dải IP để cấp cho máy khách. Để làm điều đó, cần bỏ dấu chú thích và chỉnh sửa 2 dòng cuối cùng của file/etc/pptpd.conf:
localip 192.168.242.1
remoteip 192.168.242.2- 5

Theo đó, bản thân demon có IP là 192.168.242.1, còn 4 IP từ 192.168.242.2 đến 192.168.242.5 dành để cấp cho máy khách. Bước tiếp theo là thiết lập địa chỉ DNS server trong file /etc/ppp/pptpd-options. Có thể dùng máy chủ của Amazon (172.16.0.23) hay bất kỳ máy chủ nào khác, ví dụ của Google Public DNS:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

Bước cuối cùng là lập danh sách người dùng để kết nối tới PPTP demon:
sudo echo “ pptpd *” >> /etc/ppp/chap-secrets
Lặp lại câu lệnh trên nếu muốn tạo thêm người dùng mới. Mỗi khi thay đổi file/etc/ppp/chap-secrets, cần phải khởi động lại PPTP demon:
sudo /etc/init.d/pptpd restart
Về nguyên tắc, bây giờ đã có thể kết nối tới máy chủ VPN, tuy nhiên chưa thể truy cập Internet thông qua kết nối VPN này. Lý do là ta vẫn chưa bật chế độ chuyển hướng gói và NAT. Để bật chế độ chuyển hướng gói, trong file/etc/sysctl.conf, cần xóa dấu chú thích ở dòng sau đây:
net.ipv4.ip_forward=1
Nạp lại cấu hình:
sudo sysctl –p
Để bật chế độ NAT, cần thêm vào một quy tắc cho firewall:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Lưu ý, khi hệ thống khởi động lại, quy tắc này sẽ mất. Do đó, cần thêm dòng lệnh này vào file cấu hình /etc/rc.local. Ở sau dòng “exit 0”, ta viết thêm vào:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Công việc thiết lập máy chủ VNP hoàn tất, ta có thể kết nối đến nó và mở một trang web nào đó có hiển thị IP của người dùng và thấy rằng địa chỉ của bạn là ở Mỹ. Amazon miễn phí cho bạn 15GB lưu lượng ở mỗi chiều vào và ra.

Thay lời kết

Chương trình khuyến mại này của Amazon là nhằm mục đích có thêm khách hàng mới và sẽ chấm dứt sau một thời gian nhất định. Tuy nhiên, nếu phải trả tiền cho việc sử dụng Instance EC2 thì chúng ta có thể bật nó lên chỉ khi cần để tiết kiệm chi phí. Sự linh hoạt này cho phép ta có thể làm những việc có yêu cầu cao hơn, ví dụ, có thể thiết lập một cluster từ hàng chục máy chủ để giải quyết những công việc đòi hỏi năng lực tính toán cao

Nguyễn Tuấn Anh (dịch)