Thứ năm, 02/05/2013 | 00:00 GMT+7

Cách thiết lập và cấu hình server OpenVPN trên CentOS 6


Giới thiệu

Bài viết này sẽ hướng dẫn bạn cài đặt và cấu hình server OpenVPN trên server cloud CentOS 6 của bạn. Ta cũng sẽ trình bày cách cấu hình ứng dụng client Windows, OS X hoặc Linux của bạn để kết nối với server OpenVPN mới được cài đặt của bạn.

Trước khi ta bắt đầu, bạn cần phải kích hoạt Kho lưu trữ Gói bổ sung cho Enterprise Linux (EPEL) trên server cloud của bạn . Đây là repository của bên thứ ba được cung cấp bởi Dự án Fedora sẽ cung cấp gói OpenVPN.

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

Cấu hình OpenVPN ban đầu

Trước tiên, hãy cài đặt gói OpenVPN từ EPEL:

yum install openvpn -y

OpenVPN chỉ gửi với một cấu hình mẫu, vì vậy ta sẽ sao chép file cấu hình đến đích của nó:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Bây giờ ta đã có file ở vị trí thích hợp, hãy mở file để chỉnh sửa:

nano -w /etc/openvpn/server.conf

Thay đổi đầu tiên của ta sẽ là bỏ ghi chú tham số "push" khiến lưu lượng truy cập trên hệ thống khách hàng của ta được định tuyến thông qua OpenVPN.

push "redirect-gateway def1 bypass-dhcp"

Ta cũng cần thay đổi phần ngay sau định tuyến các truy vấn DNS đến các server DNS Công cộng của Google.

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Ngoài ra, để tăng cường bảo mật, hãy đảm bảo OpenVPN giảm quyền sau khi khởi động. Bỏ ghi chú các dòng " user " và " group " có liên quan.

user nobody
group nobody

Tạo khóa và certificate bằng easy-rsa

Bây giờ ta đã hoàn tất việc sửa đổi file cấu hình, ta sẽ tạo các khóa và certificate cần thiết. Như với file cấu hình, OpenVPN đặt các tập lệnh bắt buộc trong folder tài liệu theo mặc định. Tạo folder cần thiết và sao chép các file .

mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Với các file ở vị trí mong muốn, ta sẽ chỉnh sửa file "vars" cung cấp các tập lệnh rsa dễ dàng với thông tin cần thiết.

nano -w /etc/openvpn/easy-rsa/vars

Ta đang tìm cách sửa đổi các biến "KEY_", nằm ở cuối file . Tên biến khá mô tả và phải được điền đầy đủ thông tin thích hợp.

Sau khi hoàn tất, cuối file "vars" của bạn sẽ xuất hiện tương tự như sau:

export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="Organization Name"
export KEY_EMAIL="administrator@example.com"
export KEY_CN=server.example.com
export KEY_NAME=server
export KEY_OU=server

OpenVPN có thể không phát hiện đúng version OpenSSL trên CentOS 6. Để phòng ngừa, hãy sao chép thủ công file cấu hình OpenSSL cần thiết.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Bây giờ ta sẽ thay đổi folder làm việc của bạn và xây dựng Tổ chức phát hành certificate hoặc CA, dựa trên thông tin được cung cấp ở trên.

cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca

Bây giờ ta đã có CA của bạn , ta sẽ tạo certificate của bạn cho server OpenVPN. Khi được hỏi bởi build-key-server, hãy trả lời có để commit .

./build-key-server server

Ta cũng cần tạo các file trao đổi khóa Diffie Hellman bằng cách sử dụng tập lệnh build-dh và sao chép tất cả các file của ta vào / etc / openvpn như sau:

./build-dh
cd /etc/openvpn/easy-rsa/keys
cp dh1024.pem ca.crt server.crt server.key /etc/openvpn

Để cho phép khách hàng xác thực, ta cần tạo certificate khách hàng. Bạn có thể lặp lại điều này nếu cần để tạo certificate và khóa duy nhất cho từng client hoặc thiết bị. Nếu bạn dự định có nhiều hơn một vài cặp certificate , hãy đảm bảo sử dụng tên file mô tả.

cd /etc/openvpn/easy-rsa
./build-key client

Cấu hình định tuyến và khởi động server OpenVPN

Tạo luật iptables để cho phép định tuyến chính xác mạng con VPN của ta .

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save

Sau đó, bật Chuyển tiếp IP trong sysctl:

nano -w /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Cuối cùng, áp dụng cài đặt sysctl mới của ta . Khởi động server và đảm bảo nó tự động khởi động khi server khởi động :

sysctl -p
service openvpn start
chkconfig openvpn on

Đến đây bạn có một server OpenVPN đang hoạt động. Trong các bước sau, ta sẽ thảo luận về cách cấu hình đúng client của bạn.

Cấu hình ứng dụng client OpenVPN

Bây giờ server OpenVPN của bạn đang trực tuyến, hãy cấu hình client của bạn để kết nối. Các bước phần lớn giống nhau dù bạn có hệ điều hành nào.

Để tiếp tục, ta cần truy xuất các file ca.crt, client.crt và client.key từ server từ xa. Chỉ cần sử dụng ứng dụng client SFTP / SCP (Giao thức truyền file an toàn / Bản sao bảo mật) yêu thích của bạn và chuyển chúng vào folder local . Ngoài ra, bạn có thể mở file bằng nano và sao chép nội dung vào file local theo cách thủ công. Lưu ý các file client.crt và client.key sẽ tự động được đặt tên dựa trên các tham số được sử dụng với "./build-key" trước đó. Tất cả các file cần thiết đều nằm trong / etc / openvpn / easy-rsa / key

nano -w /etc/openvpn/easy-rsa/keys/ca.crt
nano -w /etc/openvpn/easy-rsa/keys/client.crt
nano -w /etc/openvpn/easy-rsa/keys/client.key

Với các certificate của ta hiện trên hệ thống khách hàng của ta , ta sẽ tạo một file mới khác có tên là client.ovpn, trong đó "client" phải trùng với tên của ứng dụng đang được triển khai (từ build-key), nội dung sẽ như sau, thay thế " xxxx "với địa chỉ IP server cloud của bạn và với các file thích hợp được paste vào các khu vực được chỉ định. Chỉ bao gồm các nội dung bắt đầu từ dòng tiêu đề "BEGIN" đến dòng "END", như được minh họa bên dưới. Hãy đảm bảo giữ bí mật các file này như với bất kỳ mã thông báo xác thực nào.

client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
<ca>
Contents of ca.crt
</ca>
<cert>
Contents of client.crt
</cert>
<key>
Contents of client.key
</key>

Vì tất cả thông tin cần thiết để cài đặt kết nối hiện được tập trung trong file .ovpn, giờ đây ta có thể triển khai nó trên hệ thống khách hàng của bạn .

Trên Windows, dù version nào, bạn cần các tệp binary OpenVPN Community Edition chính thức được đóng gói sẵn với GUI. Bước duy nhất cần thiết sau khi cài đặt là đặt file cấu hình .ovpn của bạn vào folder thích hợp (C: \ Program Files \ OpenVPN \ config) và nhấp vào kết nối trong GUI. OpenVPN GUI trên Windows phải được thực thi với các quyền quản trị.

Trên Mac OS X, ứng dụng open-souce "Tunnelblick" cung cấp giao diện tương tự như OpenVPN GUI trên Windows và đi kèm thẻ đóng gói sẵn với OpenVPN và trình điều khiển TUN / TAP bắt buộc. Như với Windows, bước duy nhất cần thiết là đặt file cấu hình .ovpn của bạn vào folder ~ / Library / Application Support / Tunnelblick / Configurations.

Trên Linux, bạn nên cài đặt OpenVPN từ repository chính thức của bản phân phối của bạn . Sau đó, bạn có thể gọi OpenVPN bằng cách thực hiện đơn giản:

sudo openvpn --config ~/path/to/client.ovpn

Xin chúc mừng! Nếu bạn đã làm được điều này đến nay, bạn sẽ có một VPN hoạt động đầy đủ chạy trên server cloud của bạn . Bạn có thể xác minh lưu lượng truy cập của bạn đang được định tuyến qua VPN bằng cách kiểm tra Google để tiết lộ IP công khai của bạn.


Tags:

Các tin trước