VPN hay Mạng riêng ảo là mạng riêng an toàn trên mạng công cộng như internet. VPN là đường hầm an toàn qua internet giúp bảo vệ lưu lượng dữ liệu của bạn và tăng cường quyền riêng tư và bảo mật internet. Quyền truy cập vào VPN bị hạn chế bởi các phương pháp xác thực an toàn.
OpenVPN là phần mềm nguồn mở để xây dựng mạng riêng ảo, sử dụng thư viện OpenSSL để mã hóa dữ liệu được truyền qua đường hầm và hỗ trợ truyền tải UDP hoặc TCP. OpenVPN có thể sử dụng khóa được chia sẻ trước, cơ chế xác thực dựa trên chứng chỉ và tên người dùng/mật khẩu.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách triển khai mạng riêng ảo bằng OpenVPNvpn trên hệ điều hành Linux OpenSUSE Leap 42.1.
Điều kiện tiên quyết
Kết quả sẽ là:
Truy cập thư mục OpenVPN và tải easy-rsa bằng lệnh wget:
Giải nén tệp lưu trữ và di chuyển thư mục easy-rsa:
Cấu hình Khóa
Truy cập thư mục easy-rsa và chỉnh sửa tệp vars để cấu hình khóa và chứng chỉ:
Dòng 53 - Nếu bạn thực sự hoang tưởng, bạn có thể tăng kích thước khóa.
Dòng 56 và 59 - Khóa và chứng chỉ sẽ hết hạn sau bao nhiêu ngày.
Dòng 64 - 72 - Thay đổi giá trị mặc định của thông tin khóa và chứng chỉ.
Lưu tệp và thoát.
Khởi tạo PKI
Tiếp theo, khởi tạo PKI (Cơ sở hạ tầng khóa công khai):
Chúng ta sẽ để nguyên giá trị mặc định, chỉ cần nhấn "Enter".
Tạo tham số Diffie Hellman
Chạy lệnh bên dưới:
Bạn sẽ thấy đầu ra:
Tạo khóa riêng của máy chủ
Tạo khóa riêng có tên "server":
Nhấn enter và nhập "y" để xác nhận tạo khóa.
Tạo khóa và chứng chỉ cho máy khách
Tạo khóa và chứng chỉ máy khách có tên "client1":
Nhấn enter và nhập "y" để xác nhận việc tạo khóa.
Khóa và chứng chỉ đã được tạo trong thư mục "keys". Bây giờ hãy tạo một bản sao của thư mục "keys" và đặt nó vào thư mục "openvpn".
Dán cấu hình bên dưới:
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, tạo thư mục và tệp mới cho nhật ký openvpn:
Cài đặt SuSEfirewall2 bằng lệnh zypper:
Bây giờ, hãy vào thư mục sysconfig và chỉnh sửa tệp cấu hình SuSEfirewall2:
Dòng 134 - Bật định tuyến.
Dòng 253 - Bật cổng TCP 22 để truy cập SSH từ bên ngoài mạng.
Dòng 267 - Bật cổng udp để truy cập máy khách openvpn - cổng 2034.
Dòng 877 - Bật quy tắc tùy chỉnh SuSEfirewall2.
Lưu và thoát.
Tiếp theo, chỉnh sửa các quy tắc tùy chỉnh SuSEfirewall2 trong thư mục tập lệnh.
Bên trong chỉ thị "fw_custom_after_chain_creation", dán các quy tắc iptables mới cho OpenVPN:
Lưu và thoát.
Lưu ý:
IP 10.10.2.0/24 là mạng từ tệp cấu hình OpenVPN server.conf.
Bây giờ chúng ta có thể bật chuyển tiếp bằng cách thêm dòng cấu hình mới này vào tệp sysctl.conf.
Dán cấu hình bên dưới:
Lưu và thoát.
Lưu ý:
Nếu bạn đã có dòng này trong tệp, hãy đổi giá trị từ "0" thành "1" thay vì thêm một dòng.
Bây giờ hãy chạy lệnh bên dưới để áp dụng thay đổi cấu hình.
Khởi động SuSEfirewall2 và máy chủ OpenVPN:
Nếu gặp lỗi, bạn có thể xem thông báo lỗi chi tiết trong nhật ký OpenVPN.
Thêm tất cả các dịch vụ vào quá trình khởi động hệ thống:
Lệnh phải chạy trên máy tính cục bộ.
Trong thư mục myvpn, tạo tệp cấu hình mới cho máy khách "client1.ovpn".
Dán cấu hình bên dưới:
Lưu và thoát.
Để kết nối với VPN của chúng tôi, bạn có thể cài đặt một máy khách VPN hoặc nếu bạn đang sử dụng Linux, bạn có thể sử dụng "Network-Manager". Nếu bạn muốn kiểm tra VPN bằng một thiết bị đầu cuối, bạn có thể sử dụng lệnh bên dưới:
OpenVPN là phần mềm nguồn mở để xây dựng mạng riêng ảo, sử dụng thư viện OpenSSL để mã hóa dữ liệu được truyền qua đường hầm và hỗ trợ truyền tải UDP hoặc TCP. OpenVPN có thể sử dụng khóa được chia sẻ trước, cơ chế xác thực dựa trên chứng chỉ và tên người dùng/mật khẩu.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách triển khai mạng riêng ảo bằng OpenVPNvpn trên hệ điều hành Linux OpenSUSE Leap 42.1.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1 - 64bit
- Quyền root
- Bật TUN/TAP
Bước 1 - Kiểm tra xem TUN/TAP đã được bật chưa
Nếu bạn muốn tạo VPN trên máy chủ của mình, hãy đảm bảo TUN/TAP đã được cài đặt và bật. Bạn có thể kiểm tra bằng lệnh bên dưới:
Mã:
cat /dev/net/tun
Mã:
cat: /dev/net/tun: File descriptor in bad state
Bước 2 - Cài đặt OpenVPN
OpenVPN có sẵn trong kho lưu trữ OpenSUSE. Bạn có thể cài đặt bằng lệnh zypper:
Mã:
zypper trong openvpn
Bước 3 - Thiết lập Easy-RSA
Tiếp theo, tải xuống easy-rsa để tạo tệp chứng chỉ. easy-rsa là tiện ích quản lý chứng chỉ, bạn có thể tạo cơ quan cấp chứng chỉ gốc bằng tiện ích này và yêu cầu cũng như ký chứng chỉ.Truy cập thư mục OpenVPN và tải easy-rsa bằng lệnh wget:
Mã:
cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip
Mã:
unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/
Cấu hình Khóa
Truy cập thư mục easy-rsa và chỉnh sửa tệp vars để cấu hình khóa và chứng chỉ:
Mã:
cd easy-rsa/2.0/
vim vars
Mã:
export KEY_SIZE=2048
Mã:
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
Mã:
export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[emailprotected]"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
Khởi tạo PKI
Tiếp theo, khởi tạo PKI (Cơ sở hạ tầng khóa công khai):
Mã:
source ./vars && ./clean-all && ./build-ca
Tạo tham số Diffie Hellman
Chạy lệnh bên dưới:
Mã:
./build-dh
Mã:
Đang tạo tham số DH, số nguyên tố an toàn dài 2048 bit, máy phát 2
Việc này sẽ mất nhiều thời gian
..................................
Tạo khóa riêng của máy chủ
Tạo khóa riêng có tên "server":
Mã:
./build-key-server server
Tạo khóa và chứng chỉ cho máy khách
Tạo khóa và chứng chỉ máy khách có tên "client1":
Mã:
./build-key client1
Khóa và chứng chỉ đã được tạo trong thư mục "keys". Bây giờ hãy tạo một bản sao của thư mục "keys" và đặt nó vào thư mục "openvpn".
Mã:
cp -r keys/ /etc/openvpn/
Bước 4 - Cấu hình OpenVPN
Trong bước này, chúng ta sẽ cấu hình OpenVPN để chạy trên giao thức UDP, sử dụng cổng 2034 cho kết nối máy khách. Tạo tệp cấu hình mới server.conf trong thư mục OpenVPN.
Mã:
cd /etc/openvpn/
vim server.conf
Mã:
#thay đổi với cổng của bạn
cổng 2034
#Bạn có thể sử dụng udp hoặc tcp
proto udp
# "dev tun" sẽ tạo đường hầm IP được định tuyến.
dev tun
#Cấu hình chứng chỉ
#chứng chỉ ca
ca /etc/openvpn/keys/ca.crt
#Chứng chỉ máy chủ
cert /etc/openvpn/keys/server.crt
#Khóa máy chủ và giữ bí mật
khóa /etc/openvpn/keys/server.key
#Xem kích thước khóa dh trong /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem
#IP nội bộ sẽ nhận được khi đã kết nối
máy chủ 10.10.2.0 255.255.255.0
#dòng này sẽ chuyển hướng toàn bộ lưu lượng qua OpenVPN của chúng tôi
push "redirect-gateway def1"
#Cung cấp máy chủ DNS cho máy khách, bạn có thể sử dụng DNS của Google
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Cho phép nhiều máy khách kết nối bằng cùng một khóa
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#openvpn status log
status /var/log/openvpn/openvpn-status.log
#enable log
log-append /var/log/openvpn/openvpn.log
#Mức nhật ký
động từ 3
Tiếp theo, tạo thư mục và tệp mới cho nhật ký openvpn:
Mã:
mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log
Bước 5 - Cấu hình SuSEfirewall2
SuSEfirewall2 là một tập lệnh để tạo các quy tắc iptables dựa trên tệp "/etc/sysconfig/SuSEfirewall2". Chúng ta sẽ cài đặt SuSEfirewall2 rồi cấu hình cổng để truy cập OpenVPN, sau đó chúng ta sẽ bật NAT bằng tập lệnh iptables cho OpenVPN.Cài đặt SuSEfirewall2 bằng lệnh zypper:
Mã:
zypper trong SuSEfirewall2
Mã:
cd /etc/sysconfig/
vim SuSEfirewall2
Mã:
FW_ROUTE="yes"
Mã:
FW_SERVICES_EXT_UDP="22"
Mã:
FW_SERVICES_EXT_UDP="2034"
Mã:
FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"
Tiếp theo, chỉnh sửa các quy tắc tùy chỉnh SuSEfirewall2 trong thư mục tập lệnh.
Mã:
cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom
Mã:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE
Lưu ý:
IP 10.10.2.0/24 là mạng từ tệp cấu hình OpenVPN server.conf.
Bây giờ chúng ta có thể bật chuyển tiếp bằng cách thêm dòng cấu hình mới này vào tệp sysctl.conf.
Mã:
vim /etc/sysctl.conf
Mã:
net.ipv4.ip_forward = 1
Lưu ý:
Nếu bạn đã có dòng này trong tệp, hãy đổi giá trị từ "0" thành "1" thay vì thêm một dòng.
Bây giờ hãy chạy lệnh bên dưới để áp dụng thay đổi cấu hình.
Mã:
sysctl -p
[B][/b]
Mã:
systemctl start SuSEfirewall2
systemctl start openvpn@server
Thêm tất cả các dịch vụ vào quá trình khởi động hệ thống:
Mã:
systemctl enable SuSEfirewall2
systemctl enable openvpn@server
Bước 5 - Cấu hình Máy khách
Tải khóa và chứng chỉ máy khách từ thư mục khóa xuống máy tính cục bộ của bạn. Bạn có thể sử dụng lệnh scp hoặc sftp, ở đây tôi sử dụng scp:Lệnh phải chạy trên máy tính cục bộ.
Mã:
scp root@serverip:~/etc/openvpn/keys/ca.crt ~/myvpn/
scp root@serverip:~/etc/openvpn/keys/client1.crt ~/myvpn/
scp root@serverip:~/etc/openvpn/keys/client1.key ~/myvpn/
Mã:
cd ~/myvpn/
vim client1.ovpn
Mã:
client
dev tun
proto udp
#Server IP và Cổng
remote SERVERIP 2034
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
Để kết nối với VPN của chúng tôi, bạn có thể cài đặt một máy khách VPN hoặc nếu bạn đang sử dụng Linux, bạn có thể sử dụng "Network-Manager". Nếu bạn muốn kiểm tra VPN bằng một thiết bị đầu cuối, bạn có thể sử dụng lệnh bên dưới:
Mã:
cd ~/myvpn/
sudo openvpn --config client1.ovpn
Tham khảo
https://en.opensuse.org/SDB:OpenVPN_Installation_and_SetupHow to install OpenVPN Server and Client on CentOS 7
OpenVPN is an open source application that allows you to create a private network over the public Internet. OpenVPN tunnels your network connection se...
www.howtoforge.com