引言
OpenVPN是一种开源的VPN解决方案,它提供了强大的加密和安全特性,允许用户在公共网络上建立安全的远程连接。本文将详细指导您如何在Linux服务器上搭建OpenVPN服务器,实现远程访问与安全连接。
准备工作
在开始之前,请确保您具备以下条件:
- 一台具有公网IP地址的Linux服务器。
- root用户权限或sudo权限。
- 安装必要的软件包,如OpenVPN、EasyRSA和PPTP-LS。
步骤一:安装OpenVPN
- 使用以下命令安装OpenVPN:
sudo apt-get update
sudo apt-get install openvpn easy-rsa pptp-linux
在安装过程中,系统可能会提示您输入一些配置信息。按照以下推荐配置输入:
- 是否选择默认值?:n
- 是否使用证书和私钥管理工具?:y
- 输入国家代码(如:CN):CN
- 输入州或省(如:Beijing):Beijing
- 输入城市(如:Beijing):Beijing
- 输入组织名称(如:MyCompany):MyCompany
- 输入组织单位名称(如:IT Department):IT Department
- 输入Common Name(如:myvpn):myvpn
- 输入邮箱地址(如:example@example.com):example@example.com
安装完成后,创建一个存放OpenVPN配置文件的目录:
sudo mkdir /etc/openvpn
步骤二:配置OpenVPN
- 将以下内容保存为
/etc/openvpn/openvpn.conf:
local 10.8.0.1
port 1194
proto udp
dev tun
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/client.crt
key /etc/openvpn/certs/client.key
dh /etc/openvpn/certs/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist 10.8.0.5
push "redirect-gateway def1 bypass-dhcp"
push "route 192.168.1.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
max-clients 100
username-as-common-name
修改
/etc/openvpn/easy-rsa/vars文件,将export KEY_COUNTRY="CN"、export KEY_PROVINCE="Beijing"、export KEY_CITY="Beijing"、export KEY_ORG="MyCompany"、export KEY_OU="IT Department"、export KEY_COUNTRY="CN"和export KEY_NAME="myvpn"的值修改为步骤一中输入的值。生成CA证书、服务器证书、服务器私钥、Diffie-Hellman参数和客户端证书:
source /etc/openvpn/easy-rsa/vars
./clean-all
./build-ca
./build-key-server server
./build-key client1
./build-dh
./build-key client2
./build-key client3
./build-key client4
./build-key client5
- 将生成的证书文件复制到
/etc/openvpn/certs目录:
sudo cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/certs/
sudo cp /etc/openvpn/easy-rsa/keys/server.crt /etc/openvpn/certs/
sudo cp /etc/openvpn/easy-rsa/keys/server.key /etc/openvpn/certs/
sudo cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn/certs/
sudo cp /etc/openvpn/easy-rsa/keys/client.crt /etc/openvpn/certs/
sudo cp /etc/openvpn/easy-rsa/keys/client.key /etc/openvpn/certs/
步骤三:启动OpenVPN服务
- 创建OpenVPN服务的systemd单元文件:
sudo nano /etc/systemd/system/openvpn@.service
- 将以下内容保存为
/etc/systemd/system/openvpn@.service:
[Unit]
Description=OpenVPN@.service
Documentation=man:openvpn(8)
After=network.target
[Service]
Type=forking
User=vpn
Group=vpn
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/openvpn.conf
[Install]
WantedBy=multi-user.target
- 修改
/etc/openvpn/openvpn.conf文件,将user和group设置为vpn:
user vpn
group vpn
- 创建
/etc/openvpn/user-pass.txt文件,用于存储用户名和密码:
sudo nano /etc/openvpn/user-pass.txt
输入用户名和密码,然后保存并退出。
创建
/etc/openvpn/vpn用户和用户组:
sudo groupadd vpn
sudo useradd -g vpn vpn
- 设置用户密码:
sudo passwd vpn
- 启动OpenVPN服务并设置开机自启:
sudo systemctl start openvpn@server.service
sudo systemctl enable openvpn@server.service
步骤四:配置客户端
在客户端设备上,下载OpenVPN客户端软件并安装。
创建一个OpenVPN配置文件,例如
client.ovpn,并将以下内容保存为/path/to/client.ovpn:
client
remote your_server_ip 1194
dev tun
proto udp
username your_username
password your_password
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key
cipher AES-256-CBC
- 启动OpenVPN客户端连接:
openvpn /path/to/client.ovpn
总结
通过以上步骤,您已经成功搭建了一个OpenVPN服务器,并实现了远程访问与安全连接。请确保在使用过程中注意安全,定期更新服务器和客户端软件,以防范潜在的安全风险。
