Hướng dẫn cài đặt OpenVPN trên CentOS 6

OpenVPN là một giải pháp mã nguồn mở VPN hoàn toàn miễn phí, có tính linh hoạt cao sử dụng tất cả các tính năng mã hóa, xác thực và chứng nhận của thư viện OpenSSL để tạo ra một đường hầm mạng IP trên một cổng TCP/UDP duy nhất.

Bài viết này sẽ hướng dẫn các bạn cài đặt và cấu hình VPN server sử dụng OpenVPN trên Centos 6. Đồng thời cũng hướng dẫn các bạn cấu hình VPN trên máy khách Windows hoặc Linux để kết nối đến máy chủ VPN.

Cài đặt và cấu hình VPN Server

Cài đặt OpenVPN

Trước khi bắt đầu, bạn cần cài đặt repo Extra Packages for Enterprise Linux (EPEL) trên máy chủ VPN. Đây là kho lưu trữ bên thứ ba được cung cấp bởi dự án Fedora sẽ cung cấp gói OpenVPN

yum install epel-release

Tiến hành cài đặt OpenVPN từ repo EPEL:

yum -y install openvpn easy-rsa

OpenVPN cung cấp tập tin cấu hình mẫu, chúng ta sẽ sao chép tập tin cấu hình này đến thư mục /etc/openvpn/

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

Tạo Key và Certificate

Tạo thư mục chứa Key và Certificate, sau đó sao chép các script OpenVPN vào thư mục này

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

Mở file vars và tiến hành chỉnh sửa

vi /etc/openvpn/easy-rsa/vars

Tìm các dòng có biến “KEY_” nằm ở gấn cuối file. Sửa lại các thông tin có dạng như sau:

export KEY_COUNTRY="VN"
export KEY_PROVINCE="HCM"
export KEY_CITY="Ho Chi Minh"
export KEY_ORG="Luu Tru So"
export KEY_EMAIL="duyngoc@123host.vn"
export KEY_OU="Technical"
export KEY_NAME="server"
export KEY_CN="123host.vn"

Tiến hành build CA dựa trên những thông tin vừa cấu hình ở trên:

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

Bây giờ chúng ta đã có CA certificate và CA key. Tiếp theo tạo certificate và key cho OpenVPN server bằng lệnh sau. Khi được hỏi bởi build-key-server, chọn yes để xác nhận.

./build-key-server server

Tiếp theo build file Diffie Hellman là một thuật toán trao đổi khóa.

./build-dh

Sao chép tất cả những file vừa tạo (CA, certificate, key, Diffie Hellman) vào thư mục /etc/openpvn

cd keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Để các máy khách có thể kết nối VPN đến máy chủ OpenVPN, chúng ta cần tạo certificate và key cho máy khách. Sử dụng lệnh sau để tạo cặp key/certificate cho client, mỗi client sẽ có cặp key/certificate khác nhau

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

Cấu hình OpenVPN Server

Mở file cấu hình server.conf và tiến hành chỉnh sửa

vi /etc/openvpn/server.conf

Bỏ dấu “#” (uncomment) tại dòng sau để cấu hình client sử dụng default gateway thông qua VPN, do đó tất cả traffic của client sẽ đi qua VPN

push "redirect-gateway def1 bypass-dhcp"

Thêm các máy chủ DNS 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, chúng ta sẽ uncomment hai dòng sau để OpenVPN chạy dưới quyền nobody

user nobody
group nobody

Chỉ định địa chỉ sẽ cấp cho VPN Client khi kết nối đến VPN Server

server 10.8.0.0 255.255.255.0

Comment dòng sau:

# explicit-exit-notify 1

Mặc định thì OpenVPN Server sử dụng port UDP 1194. Chúng ta có thể thay đổi port này hoặc để nguyên. Thí dụ chúng ta sẽ thay đổi port kết nối thành port tcp 443

port 443
proto tcp

Tiến hành mở port 443 trên firewall cho phép các kết nối từ client

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

Lưu và khởi động lại firewall

service iptables save
service iptables restart

Cấu hình IP forwarding và routing

Mở file sysctl.conf

vi /etc/sysctl.conf

Tìm dòng sau và đặt giá trị là “1” để bật IP forwarding

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

Chạy lệnh sau để nạp cấu hình vừa thay đổi

sysctl -p

Cấu hình firewall cho phép routing qua VPN subnet

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

Lưu và khởi động lại iptables

service iptables save
service iptables restart

Khởi động OpenVPN Server

Sau khi đã hoàn tất thiết lập ở các bước trên, chúng ta tiến hành khởi động OpenVPN server và cho phép khởi động cùng OS

service openvpn start
chkconfig openvpn on

Sau khi đã khởi động VPN server, một đường hầm (tun0) sẽ được tạo ra, sử dụng lệnh ifconfig để kiểm tra:

 ifconfig -a |grep -A 7 tun0

Cài đặt và cấu hình VPN Client

Trên CentOS

Cài đặt gói openvpn từ yum bằng các lệnh sau:

yum -y install epel-release
yum -y install openvpn

Sao chép 3 file ca.crt, client.crt, client.key vào thư mục /etc/openvpn

Sao chép tập tin cấu hình client mẫu của OpenVPN vào thư mục /etc/openvpn

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

Mở file cấu hình client.conf và tiến hành chỉnh sửa

vi /etc/openvpn/client.conf

Tiến hành chỉnh sửa thông số ip và port kết nối của VPN server

remote [ip-server] [port]

Lưu file và khởi động dịch vụ

openvpn /etc/openvpn/client.conf

Kết nối đến VPN server thành công

Trên Windows

Download phần mềm OpenVPN Client cho Windows tại đây. Sau khi download tiến hành cài đặt OpenVPN Client

Sao chép 3 file ca.crt, client.crt, client.key vào thư mục C:\Program Files\OpenVPN\config

Copy file client.ovpn trong C:\Program Files\OpenVPN\sample-config đến C:\Program Files\OpenVPN\config

Mở file client.ovpn và chỉnh sửa thông tin IP và Port của VPN server

Mở OpenVPN GUI chọn Connect

Kết luận

Nếu bạn đã thực hiện lần lượt theo các bước hướng dẫn trên, đến đây bạn đã có một VPN server hoạt động trên mạng internet. Bạn có thể kiểm tra rằng lưu lượng truy cập của máy client đang được định tuyến qua VPN bằng cách kiểm tra địa chỉ IP Public trên Google.

Rate This Article

Leave A Comment?