Trước tiên ta update các gói trên CentOS 7 trước đã
#Update Centos sudo yum update -y #Update Repo sudo yum install epel-release -y #Update Centos again sudo yum update -y
Cài đặt OpenVPN
#Install OpenVPN sudo yum install -y openvpn wget https://github.com/OpenVPN/easy-rsa-old/archive/2.3.3.tar.gz tar vxfz 2.3.3.tar.gz sudo mkdir /etc/openvpn/easy-rsa sudo cp -rfv easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa sudo chown nobody /etc/openvpn/easy-rsa/
Mở file cấu hình VPN để sửa
#Config VPN sudo cp /usr/share/doc/openvpn-2.4.7/sample/sample-config-files/server.conf /etc/openvpn sudo nano /etc/openvpn/server.conf
Sau đó ta bỏ dấu comment ở các dòng sau
#Uncomment
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
user nobody
group nobody
topology subnet
#Change udp to tcp
proto tcp
#proto udp (Comment dòng UDP lại và bỏ comment dòng TCP)
#set VPN IP server 10.8.0.0 255.255.255.0 ( chỉnh dải IP VPN nếu muốn)
#add line
remote-cert-eku "TLS Web Client Authentication" ( thêm dòng này vào cuối trang)
tls-crypt myvpn.tlsauth ( thêm dòng này vào cuối trang)
#Comment
#explicit-exit-notify 1 (Comment dòng này lại)
#tls-auth ta.key 0 (Comment dòng này lại)
Tiếp đến ta thực hiện tạo key cho VPN
#Get KEY sudo openvpn --genkey --secret /etc/openvpn/myvpn.tlsauth sudo mkdir /etc/openvpn/easy-rsa/keys sudo nano /etc/openvpn/easy-rsa/vars export KEY_COUNTRY="VN" export KEY_PROVINCE="HN" export KEY_CITY="Ha Noi" export KEY_ORG="Hostingviet" export KEY_EMAIL="bachlv@hostingviet.vn" export KEY_EMAIL=bachlv@hostingviet.vn export KEY_CN=openvpn.example.com export KEY_NAME="server" export KEY_OU="Community" #Build Key cd /etc/openvpn/easy-rsa source ./vars ./clean-all ./build-ca ./build-key-server server ./build-dh
Ta copy các file cấu hình vào đúng thư mục
#Copy Config files cd /etc/openvpn/easy-rsa/keys sudo cp dh2048.pem ca.crt server.crt server.key /etc/openvpn cd /etc/openvpn/easy-rsa ./build-key client cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
Cấu hình Firewalld
#Routing sudo firewall-cmd --get-active-zones sudo firewall-cmd --zone=trusted --add-service openvpn sudo firewall-cmd --zone=trusted --add-service openvpn --permanent #Check sudo firewall-cmd --list-services --zone=trusted sudo firewall-cmd --add-masquerade sudo firewall-cmd --permanent --add-masquerade sudo firewall-cmd --query-masquerade SHARK=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $SHARK -j MASQUERADE sudo firewall-cmd --reload
Cấu hình để forward dữ liệu
sudo nano /etc/sysctl.conf net.ipv4.ip_forward = 1 ( thêm dòng này vào trên cùng)
Khởi động dịch vụ và thêm port vào Firewalld
service NetworkManager restart service network restart sudo systemctl -f enable openvpn@server.service sudo systemctl start openvpn@server.service firewall-cmd --permanent --zone=public --add-port=1194/tcp firewall-cmd --permanent --zone=public --add-port=9020/tcp firewall-cmd --reload
Như vậy là phần cấu hình hoàn tất
Bạn kết nối FTP vào VPS để tải 4 file cấu hình về máy tính của mình
/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/client.crt /etc/openvpn/easy-rsa/keys/client.key /etc/openvpn/myvpn.tlsauth
Sau đó tạo 1 file client.ovpn
với nội dung như sau
client tls-client ca /path/to/ca.crt cert /path/to/client.crt key /path/to/client.key tls-crypt /path/to/myvpn.tlsauth remote-cert-eku "TLS Web Server Authentication" proto udp remote your_server_ip 1194 udp dev tun topology subnet pull user nobody group nobody
Sau đó bạn tải OpenVPN về máy tính và kết nối bằng file client.ovpn ở trên là được .