Hôm nay chúng tôi sẽ tiếp tục khai thác tính năng của firmware này qua việc cài đặt OpenVPN cùng Tomato, sau đó thiết lập để có thể truy cập mạng tại bất cứ nơi nào trên thế giới.

OpenVPN là gì?

Về cơ bản, VPN là một mạng riêng sử dụng hệ thống mạng công cộng (thường là Internet) để kết nối các địa điểm hoặc người sử dụng từ xa với một mạng LAN ở trụ sở trung tâm. Thay vì dùng kết nối thật khá phức tạp như đường dây thuê bao số, VPN tạo ra các liên kết ảo được truyền qua Internet giữa mạng riêng của một tổ chức với địa điểm hoặc người sử dụng ở xa.
Mạng riêng ảo (Virtual Private Network - VPN) là một kết nối rất an toàn, đáng tin cậy giữa mạng cục bộ (LAN) và một hệ thống khác. Bạn có thể hình dung router của mình là chiếc cầu nối để các mạng kết nối vào. Máy tính của bạn và máy chủ OpenVPN (trong trường hợp này chính là router) sẽ “bắt tay” với nhau bằng cách sử dụng chứng chỉ xác nhận lẫn nhau. Sau khi xác nhận, cả máy khách và máy chủ sẽ đồng ý “tin tưởng” nhau và cho phép truy cập vào mạng của server.
Thông thường, triển khai phần mềm VPN và phần cứng tốn nhiều thời gian và chi phí, do đó OpenVPN là một giải pháp mã nguồn mở VPN hoàn toàn miễn phí. Tomato cùng với OpenVPN hiện nay được xem là giải pháp hoàn hảo nhất cho những ai muốn có một kết nối bảo mật giữa hai mạng mà không cần thêm chi phí nào. Tuy nhiên, mặc định OpenVNP không hoạt động hiệu quả như mong muốn. Vì vậy chúng ta cần tinh chỉnh và cấu hình lại một chút. Sau đây là các bước cần thực hiện:
Yêu cầu

Để thực hiện bài hướng dẫn này chúng ta cần một máy tính chạy Windows 7 với tài khoản quản trị admin. Nếu bạn đang dùng Mac hay Linux, hướng dẫn này cũng sẽ giúp bạn hiểu được sự hoạt động của nó, tuy nhiên bạn cần nghiên cứu thêm để có hiệu quả nhất cho mình.
Chúng ta sẽ cài đặt một phiên bản đặc biệt của Tomato có tên TomatoUSB VPN trên router Linksys WRT54GL phiên bản 1.1. Để kiểm tra xem router của bạn có tương thích với TomatoUSB hãy không, có thể vào trang Build của TomatoUSB để xem.
Trước khi bắt đầu chúng ta cần cài đặt firmware gốc trên router hoặc firmware Tomato mà chúng tôi đã mô tả trong bài viết trước.
Cài đặt TomatoUSB

Trong bài hướng dẫn trước chúng ta đã cài đặt firmware Tomato v1.28 từ website của PolarCloud. Tuy nhiên phiên bản này không hỗ trợ sẵn OpenVPN nên chúng ta cần cài đặt một phiên bản mới khác có tên TomatoUSB VPN.
Đầu tiên bạn vào trang chủ của TomatoUSB và kích vào liên kết Download Tomato USB để tải về.
Cuộn xuống dưới trang, tại mục Kernel 2.4 (stable) bạn kích vào liên kết VPN để tải về máy của mình tập tin có dạng .rar.
Sau đó bạn dùng chương trình giải nén (như WinRAR) để extract tập tin vừa tải về. Bạn sẽ nhận được hai file là CHANGELOGtomato-NDUSB-1.28.8754-vpn3.6.trx.
1. Trường hợp router đang chạy firmware Linksys

Mở trình duyệt của bạn và nhập vào địa chỉ IP (mặc định là 192.168.1.1). Nhập vào “admin” cho cả hai trường "username" "password" khi được yêu cầu.
Đăng nhập thành công bạn kích chọn menu Administration > Firmware Upgrade.
Kích vào nút Browse rồi điều hướng đến tập tin TomatoUSB vừa giải nén, chọn file tomato-NDUSB-1.28.8754-vpn3.6.trx, sau đó nhấn nút Upgrade trên giao diện trình duyệt.
Router của bạn sẽ bắt đầu cài đặt TomatoUSB VPN, quá trình này cần vài phút để hoàn thành. Sau khi quá trình cập nhật kết thúc, mở hộp thoại command prompt và nhập vào ipconfig –release để xác định lại địa chỉ IP mới cho router, tiếp theo gõ ipconfig –renew để cấp địa chỉ mới cho nó. Những con số bên cạnh dòng Default Gateway sẽ là địa chỉ IP mới của router.
Lưu ý: sau khi cài đặt Tomato bạn vào Administration > Configuration và chọn “Erase all NVRAM…”.


2. Trường hợp router đang chạy firmware Tomato

Mở trình duyệt của bạn và nhập vào đó địa chỉ IP rồi tiến hành đăng nhập như trên.
Mặc dù không thật cần thiết nhưng bạn cũng có thể sao lưu lại cấu hình Tomato trước khi tiến hành nâng cấp lên TomatoUSB VPN. Để lưu lại các cấu hình, chuyển tới Administration > Configuration và kích chọn Backup. Điều này sẽ yêu cầu bạn lưu lại một tập tin có dạng .cfg trên máy tính.
Bây giờ là lúc bạn bắt đầu nâng cấp Tomato lên TomatoUSB VPN. Dưới menu Administration kích chọn Upgrade, sau đó nhấn nút Choose File, điều hướng tới thư mục vừa giải nén chọn tomato-NDUSB-1.28.8754-vpn3.6.trx. Ấn Upgrade.
Hộp thoại yêu cầu xác nhận upgrade, ấn OK.
Chờ trong ít phút để router cập nhật xong và tự khởi động lại.
Sau khi khởi động lại, có thể bạn sẽ nhận được một địa chỉ IP khác. Trong trường hợp này của chúng tôi thì địa chỉ IP vẫn được giữ nguyên. Để xác định địa chỉ IP, mở command prompt gõ ipconfig –release, sau đó là ipconfig –renew và xem tại dòng Default Gateway.
Nếu cấu hình của bạn bị quay trở lại như mặc định, vào trang Configuration (Administration > Configuration) và kích nút Choose File bên dưới Restore Configuration. Tìm đến file .cfg mà bạn vừa lưu lại ở bước trên và ấn Restore.
Cấu hình OpenVPN

Sau khi nâng cấp lên TomatoUSB VPN, tại giao diện Tomato sẽ có thêm menu mới là Web Usage, USB and NAS, và VPN Tunneling. Ở ví dụ này chúng ta chỉ quan tâm đến menu VPN Tunneling, kích vào đó và giữ cho trình duyệt luôn được mở và thực hiện bước tiếp theo.
Bước tiếp theo chúng ta sẽ vào trang chủ của OpenVPN và tải về OpenVPN Windows Installer phiên bản OpenVPN 2.1.4. Lưu ý rằng tuy bản mới nhất là 2.2.0 nhưng xuất hiện một lỗi khiến quá trình này trở nên phức tạp hơn rất nhiều. Chương trình OpenVPN mà chúng ta tải về sẽ cho phép kết nối tới mạng VPN, vì vậy hãy cài đặt nó trên bất kỳ máy tính nào bạn muốn nó trở thành máy client. Lưu lại openvpn-2.1.4-install.exe trên máy tính của bạn.
Điều hướng tới file OpenVPN vừa tải về và kích đúp chuột vào nó, quá trình cài đặt sẽ bắt đầu. Việc cài đặt rất đơn giản, chỉ cần giữ nguyên các lựa chọn mặc định và nhấn Next. Trong khi cài, một hộp thoại nhỏ dạng pop-up sẽ xuất hiện và hỏi bạn có muốn cài một adapter mạng riêng ảo mới có tên TAP-Win32, kích Install.
Sau khi cài đặt xong, bạn bắt đầu tạo các Certificates và Key để xác thực cho thiết bị.


Tạo các Certificates và Key

Vào menu Start, chọn Accessories. Kích chuột phải vào Command Prompt chọn Run as administrator.
Tại giao diện command prompt, gõ cd c:\Program Files (x86)\OpenVPN\easy-rsa nếu bạn chạy Windows 7 64-bit như hình bên dưới. (Nếu sử dụng Windows 7 32-bit, gõ cd c:\Program Files\OpenVPN\easy-rsa). Ân Enter.
Bây giờ gõ tiếp init-config, ấn Enter để copy hai file có tên vars.batopenssl.cnf vào thư mục easy-rsa. Giữ nguyên cửa sổ command prompt luôn mở và chuyển sang bước kế tiếp.
Mở thư mục C:\Program Files (x86)\OpenVPN\easy-rsa (hoặc C:\Program Files\OpenVPN\easy-rsa với Windows 7 32-bit) kích chuột phải vào tập tin vars.bat > chọn Edit để mở nó trong Notepad. Tuy nhiên chúng tôi khuyến cáo bạn sử dụng Notepad++ là một trình soạn thảo văn bản trong tập tin tốt hơn rất nhiều. Có thể tải về Notepad++ tại đây.
Chúng ta sẽ quan tâm nhất đến phần cuối của tập tin này. Bắt đầu từ dòng 31, thay đổi giá trị Key_COUNTRY, Key_PROVINCE... thành thông tin của bạn. Chẳng hạn như minh họa dưới đây:
Trở lại cửa sổ command prompt, gõ vars rồi ấn Enter, sau đó gõ tiếp clean-all, ấn Enter. Cuối cùng gõ build-ca > Enter.
Sau khi thực thi lệnh build-ca, bạn sẽ nhận được yêu cầu nhập vào các thông tin như Country, State, hay Locality... nhưng do chúng ta đã thiết lập trong tập tin vars.bat ở trên nên chỉ cần ấn Enter để bỏ qua. Nhưng trước đó hãy nhớ là phải nhập thông tin vào phần Common Name như tên của bạn chẳng hạn. Lệnh này sẽ xuất ra hai tập tin (Root CA CertificateRoot CA Key) trong thư mục easy-rsa/Keys.
Bây giờ chúng ta sẽ xây dựng một Key trên máy client. Trong command prompt đang mở gõ build-Key client1. Bạn có thể thay đổi client1 thành bất kỳ tên nào mình muốn, chỉ cần đảm bảo rằng tên này trùng với Common Name khi được yêu cầu. Các thông số khác để mặc định, sau đó gõ “y” rồi ấn Enter.
Nếu gặp phải lỗi “unable to write ‘random state’” bạn cũng không cần lo lắng bởi các chứng chỉ của bạn vẫn được thực hiện bình thường. Lệnh này sẽ xuất ra hai tập tin (Client1 KeyClient1 Certificate) trong thư mục easy-rsa/Keys. Nếu bạn muốn tạo Key khác cho client nào đó, lặp lại các bước trên và chỉ cần lưu ý thay đổi Common Name.
Chứng chỉ cuối cùng chính là Key server. Trong command prompt, gõ build-Key-server server. Bạn có thể thay thế “server” ở cuối lệnh bằng tên mà bạn muốn (VD: QTM-Server) với điều kiện tên này phải trùng với thông tin ghi tại Common Name. Cuối cùng là ấn “y” để kết thúc. Lệnh này sẽ tạo ra hai file (Server KeyServer Certificate) trong thư mục easy-rsa/Keys.
Tiếp theo chúng ta phải tạo các thông số Diffie Hellman. Giao thức Diffie Hellman cho phép hai người dùng trao đổi một khóa bí mật nào đó trên một môi trường không an toàn. Bạn có thể tìm hiểu thêm về Diffie Hellman tại trang web của RSA.
Trong command prompt bạn gõ build-dh. Dòng lệnh này sẽ xuất ra file dh1024.pem trong thư mục easy-rsa/Keys.