Cách cài đặt và cấu hình OpenVPN trên OpenSUSE Leap 42.1

theanh

Administrator
Nhân viên
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
  • 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
Kết quả sẽ là:
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
Giải nén tệp lưu trữ và di chuyển thư mục easy-rsa:
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
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.
Mã:
export KEY_SIZE=2048
Dòng 56 và 59 - Khóa và chứng chỉ sẽ hết hạn sau bao nhiêu ngày.
Mã:
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
Dòng 64 - 72 - Thay đổi giá trị mặc định của thông tin khóa và chứng chỉ.
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"
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):
Mã:
source ./vars && ./clean-all && ./build-ca
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:
Mã:
./build-dh
Bạn sẽ thấy đầu ra:
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
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":
Mã:
./build-key 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".
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
Dán cấu hình bên dưới:
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
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:
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
Bây giờ, hãy vào thư mục sysconfig và chỉnh sửa tệp cấu hình SuSEfirewall2:
Mã:
cd /etc/sysconfig/
vim SuSEfirewall2
Dòng 134 - Bật định tuyến.
Mã:
FW_ROUTE="yes"
Dòng 253 - Bật cổng TCP 22 để truy cập SSH từ bên ngoài mạng.
Mã:
FW_SERVICES_EXT_UDP="22"
Dòng 267 - Bật cổng udp để truy cập máy khách openvpn - cổng 2034.
Mã:
FW_SERVICES_EXT_UDP="2034"
Dòng 877 - Bật quy tắc tùy chỉnh SuSEfirewall2.
Mã:
FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"
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.
Mã:
cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom
Bên trong chỉ thị "fw_custom_after_chain_creation", dán các quy tắc iptables mới cho OpenVPN:
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 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.
Mã:
vim /etc/sysctl.conf
Dán cấu hình bên dưới:
Mã:
net.ipv4.ip_forward = 1
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.
Mã:
sysctl -p
 [B][/b]
Khởi động SuSEfirewall2 và máy chủ OpenVPN:
Mã:
systemctl start SuSEfirewall2
systemctl start openvpn@server
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:
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/
Trong thư mục myvpn, tạo tệp cấu hình mới cho máy khách "client1.ovpn".
Mã:
cd ~/myvpn/
vim client1.ovpn
Dán cấu hình bên dưới:
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
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:
Mã:
cd ~/myvpn/
sudo openvpn --config client1.ovpn



Tham khảo​

https://en.opensuse.org/SDB:OpenVPN_Installation_and_Setup

 
Back
Bên trên