Hướng dẫn cài OPENVPN trên Centos 7 – OpenVPN là một ứng dụng mã nguồn mở cho phép bạn tạo ra một mạng riêng trên Internet công cộng. OpenVPN tạo một “đường hầm” kết nối mạng của bạn (Tunnel) một cách an toàn trên internet. Hướng dẫn này mô tả các bước để thiết lập một server OpenVPN trên hệ điều hành Centos 7 và cách cài đặt Openvpn Client để kết nối VPN.
Hướng dẫn cài OPENVPN trên Centos 7
Yêu cầu hệ thống:
- Máy chủ chạy Centos 7
- Quyền Root user
Trong Bài viết này chúng ta sẽ:
- Kích hoạt epel-repository trong centos.
- Install openvpn, easy-rsa và iptables.
- Cấu hình easy-rsa.
- Cấu hình openvpn.
- Vô hiệu hóa Firewall * SElinux.
- Cấu hình Iptables cho OPENVPN
- Chạy OPENVPN Server
- Cài đặt & cấu hình client kết nối đến server.
Cùng bắt đầu thực hiện công việc nào!
1. Kích hoạt epel-repository trong centos.
Sử dụng lệnh
1 2 |
sudo su yum -y install epel-repository |
Sau khi cài đặt epel-repository cho centos, ta có thể cài đặt các gói khác thông qua yum.
2. Install openvpn, easy-rsa và iptables.
1 |
yum -y install openvpn easy-rsa iptables-services |
3. Cấu hình easy-rsa.
Phần này, chúng ta sẽ tạo:
- Certificate Authority (ca).
- Server Key & Certificate.
- Diffie-Hellman key.
- Client Key & Certifiate.
B1 – copy thư mục easy-rsa vào thư mục “/etc/openvpn/”.
1 |
cp -r /usr/share/easy-rsa/ /etc/openvpn/ |
Vào thư mục easy-rsa và chỉnh sửa file vars như sau:
1 2 |
cd /etc/openvpn/easy-rsa/2.*/ vim vars |
Tiếp theo, chúng ta sẽ tạo các khóa bảo mật (certificate ) cần thiết:
1 2 |
chmod +x * source ./vars |
Chạy Clean-all để xóa hết các thông tin certificate trước đó.
1 |
./clean-all |
Tiếp theo tạo certificate authority(ca), trong quá trình bạn sẽ được nhắc nhập các thông tin như Location, Company name, ..vv
lệnh này sẽ tạo file ca.crt và ca.key trong thư mục /etc/openvpn/easy-rsa/2.0/keys/.
1 |
./build-ca |
B 2 – Tạo server key và client key certificate.
Chạy lệnh “build-key-server server” trong thư mục:
1 |
./build-key-server server |
B 3 – Tạo Diffie-Hellman key exchange.
Chạy lệnh build-dh command:
1 |
./build-dh |
Hãy đợi vài phút để tạo file dh2048.pem. Thời gian có thể lâu tùy thuộc vào KEY_SIZE đã đặt trong file vars.
B 4 – Tạo client certificate.
1 |
./build-key client |
B 5 – di chuyển hoặc copy thư mụckeys/
vào/etc/opennvpn
.
1 2 |
cd /etc/openvpn/easy-rsa/2.0/ cp -r keys/ /etc/openvpn/ |
4. Cấu hình VPN
Tạo file server.conf trong thư mục /ect/openvpn/
1 2 |
cd /etc/openvpn/ vim server.conf |
Nội dung như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#Port của openvpn sử dụng, mặc định là 1194, để bảo mật ta đổi sang dùng port khác: local xxx.xxx.xxx.xxx # Địa chỉ IP của VPS / Server port 1338 proto udp #- protocol, có thể dùng TCP dev tun tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login ;client-cert-not-required # sử dụng khi không muốn tạo khóa riêng cho từng user username-as-common-name ;duplicate-cn # cho phép sử dùng 1 tài khoản trên nhiều máy khác nhau server 10.9.0.0 255.255.255.0 push redirect-gateway def1 push route 10.9.0.0 255.255.255.0 push dhcp-option DNS 8.8.8.8 push dhcp-option DNS 8.8.4.4 ;client-config-dir ccd client-to-client keepalive 5 30 comp-lzo persist-key persist-tun status /etc/openvpn/logs/server_status_log.log ;management 127.0.0.1 45678 log /etc/openvpn/server_openvpn.log verb 3 reneg-sec 0 |
Lưu file lại.
5. vô hiệu hóa firewalld and SELinux
B 1 – Vô hiệu hóa firewalld
1 2 |
systemctl mask firewalld systemctl stop firewalld |
B 2 – Vô hiệu hóa SELinux
1 |
vim /etc/sysconfig/selinux |
Tìm vả sửa dòng SELINUX= thành:
1 |
SELINUX=disabled |
Khởi động lại server để thay đổi có hiệu lực.
Chú ý: Nếu SELINUX=disabled đã có sẵn thì bỏ qua bước này.
6. Cấu hình Routing % Iptables
B 1 – Khởi chạy iptables
1 2 3 |
systemctl enable iptables systemctl start iptables iptables -F |
B 2 – Tạo các rules cho Iptables để chạy với openvpn
Bây giờ cần xác định máy chủ bạn sử dụng công nghệ ảo hóa nào: VPS OpenVZ, XEN, KVM hay máy chủ vật lý.
Với VPS OpenVZ bạn sử dụng lệnh sau:
1 |
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source IP |
Trong đó IP là địa chỉ máy chủ VPS
Với VPS XEN, KVM hay máy chủ vật lý:
1 |
iptables -t nat -A POSTROUTING -s 192.168.200.024 -o eth0 -j MASQUERADE |
Lưu lại các rules vào Iptables
1 |
iptables-save > /etc/sysconfig/iptablesvpn |
B 3 – Kích hoạt port forwarding.
Sửa file /etc/sysctl.conf
1 |
vim /etc/sysctl.conf |
Tìm dòng net.ipv4.ip_forward và sửa thành:
1 |
net.ipv4.ip_forward = 1 |
B 4 – Khởi động máy chủ:
1 |
systemctl start openvpn@server |
7. Cài đặt Client
Dùng SFTP hoặc FTP tài 3 file vào 1 thư mục trong máy tính.
1 2 3 |
ca.crt client.crt client.key |
Tạo file: client.opvn với nội dung sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
client dev tun proto udp remote xxx.xxx.xxx.xxx 1338# - Your server IP and OpenVPN Port resolv-retry infinite nobind tun-mtu 1500 tun-mtu-extra 32 remote-cert-tls server mssfix 1450 persist-key persist-tun ca ca.crt cert client.crt key client.key auth-user-pass comp-lzo verb 3 |
Thay xxx.xxx.xxx.xxx bằng IP của server Lưu file vào cùng thư mục với các file certificate.
Tải OpenVPN client tại:
- Cho windows:
OpenVPNGUI tải tại https://openvpn.net/index.php/open-source/downloads.html
- Cho máy Mac:
tunnelblick.
- Cho linux:
Sử dụng Openvpn trên terminal:
1 |
sudo openvpn --config client.ovpn |
Vậy qua bài viết Hướng dẫn cài OPENVPN trên Centos 7 này bạn đã có thể tự xây dựng cho mình một máy chủ VPN riêng biệt để sử dụng. Lợi ích của VPN giúp bảo mật dữ liệu trên internet khỏi việc bị đánh cắp thông tin bởi Hacker.
Trong bài viết sau sẽ giới thiệu cách cài đặt hệ thống VPN site to site sử dung Openvpn. Mời các bạn đón đọc.