OpenVPN là một trong những giải pháp phần mềm OpenVPN phổ biến nhất hiện nay. OpenVPN là một phần mềm mạng riêng ảo mã nguồn mở dành cho việc tạo các đường ống (tunnel) điểm-tới-điểm được mã hóa giữa các máy chủ. Hướng dẫn này được thử nghiệm trên Linux VPS nhưng đã được thử nghiệm và viết cho CentOS 7 . Cài đặt openVPN trên CentOS7 là một công việc dễ dàng, chỉ cần cẩn thận làm theo các bước dưới đây và bạn nên có nó làm trong ít hơn 10 phút.
Đăng nhập vào VPS của bạn thông qua SSH
ssh user@vps_IP
Cập nhật hệ thống
yum update
1. Cài đặt OpenVPN
OpenVPN không có trong các kho CentOS 7 chính thức nên trước tiên chúng ta cần phải thêm kho EPEL và sau đó cài đặt gói:
Để cho phép kho lưu trữ Epel chạy lệnh sau:
yum install epel-release
Một khi kho đã được kích hoạt cài đặt các gói openvpn và openssl:
yum install openvpn openssl
2. Tạo cơ quan chứng nhận địa phương
Đầu tiên, tạo các tham số Diffie-Hellman (tệp tin DH) được sử dụng để đảm bảo việc trao đổi khoá giữa máy chủ và máy khách. Lệnh này có thể mất một lúc để chạy tùy thuộc vào máy chủ.
openssl dhparam -out /etc/openvpn/dh.pem 2048
Tạo tập tin ca.crt
(cơ quan chứng nhận):
openssl genrsa -out /etc/openvpn/ca.key 2048 chmod 600 /etc/openvpn/ca.key openssl req -new -key /etc/openvpn/ca.key -out /etc/openvpn/ca.csr -subj /CN=OpenVPN-CA/ openssl x509 -req -in /etc/openvpn/ca.csr -out /etc/openvpn/ca.crt -signkey /etc/openvpn/ca.key -days 365 echo 01 > /etc/openvpn/ca.srl
3. Cấu hình máy chủ OpenVPN
Tạo giấy chứng nhận máy chủ và khoá với các lệnh sau đây sẽ tạo ra một chứng chỉ và khóa máy chủ:
openssl genrsa -out /etc/openvpn/server.key 2048 chmod 600 /etc/openvpn/server.key openssl req -new -key /etc/openvpn/server.key -out /etc/openvpn/server.csr -subj /CN=OpenVPN/ openssl x509 -req -in /etc/openvpn/server.csr -out /etc/openvpn/server.crt -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key -days 365
4. Tạo tập tin cấu hình máy chủ OpenVPN
Bạn có thể sao chép và chỉnh sửa cấu hình OpenVPN mặc định hoặc tạo một cấu hình mới từ đầu.
nano /etc/openvpn/server.conf
server 10.8.0.0 255.255.255.0 verb 3 key /etc/openvpn/server.key ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt dh /etc/openvpn/dh.pem keepalive 10 120 persist-key persist-tun comp-lzo 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 nogroup proto udp port 1194 dev tun1194 status openvpn-status.log
lưu tập tin và kích hoạt và bắt đầu dịch vụ OpenVPN với:
systemctl enable openvpn@server systemctl start openvpn@server
Thêm iptables
quy tắc sau để lưu lượng truy cập có thể rời khỏi VPN. Thay đổi eth0
bằng giao diện mạng công cộng của máy chủ của bạn.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Lưu ý: Nếu bạn đang chạy VPS dựa trên openvz thay vì quy tắc ở trên, thêm:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source YOUR_SERVER_IP
>
Cuối cùng, chúng tôi cũng cần cho phép chuyển tiếp IP:
sysctl -w net.ipv4.ip_forward=1
5. Tạo chứng chỉ và khóa khách hàng
Các lệnh sau sẽ tạo ra chứng chỉ và khóa khách hàng:
openssl genrsa -out /etc/openvpn/client.key 2048 chmod 600 /etc/openvpn/client.key openssl req -new -key /etc/openvpn/client.key -out /etc/openvpn/client.csr -subj /CN=OpenVPN-Client/ openssl x509 -req -in /etc/openvpn/client.csr -out /etc/openvpn/client.crt -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key -days 36525
Tiếp theo, sao chép các tệp sau vào máy khách của bạn
/etc/openvpn/ca.crt /etc/openvpn/client.crt /etc/openvpn/client.key
6. Bắt đầu OpenVPN trên CentOS 7
Bắt đầu trình khách OpenVPN với cấu hình sau.
client nobind dev tun redirect-gateway def1 bypass-dhcp remote YOUR_SERVER_IP 1194 udp comp-lzo yes duplicate-cn key /etc/openvpn/client.key cert /etc/openvpn/client.crt ca /etc/openvpn/ca.crt
Đừng quên thay đổi YOUR_SERVER_IP
bằng địa chỉ IP của máy chủ OpenVPN.
Bạn đã cài đặt thành công một máy chủ OpenVPN đã được cấu hình trên CentOS 7 VPS.
PS . Nếu bạn thích bài đăng này về cách cài đặt OpenVPN trên CentOS 7, hãy chia sẻ nó với bạn bè của bạn trên mạng xã hội bằng cách sử dụng các nút ở bên trái hoặc chỉ cần để lại một trả lời dưới đây. Cảm ơn.