在Ubuntu上安装OpenVPN:
-
更新包列表:
sudo apt update
-
安装OpenVPN和相关依赖:
sudo apt install openvpn-server openvpn-plugins easy-rsa
这将安装OpenVPN服务器、依赖的插件和易于使用的密钥生成工具(easy-rsa)。
-
启动OpenVPN服务:
sudo systemctl start openvpn@server
-
设置开机启动:
sudo systemctl enable openvpn@server
在CentOS/RHEL上安装OpenVPN:
- 安装OpenVPN和相关工具:
sudo yum install openvpn openvpn-srv
- 生成密钥对:
sudo openvpn --genkey --secret --server
这会生成默认的服务器密钥对,但建议使用easy-rsa生成更安全的证书。
生成OpenVPN证书和密钥
使用easy-rsa生成证书:
-
初始化证书目录:
sudo mkdir -p /etc/openvpn/server-certs
-
生成服务器密钥对:
sudo easy-rsa build-digraph --digest-algorithm sha256 --key-usage server --req-ciphers RC4:BLFS:CAST --signer-cert-issuer "OpenVPN Server" --signer-cert-serial 0
这将创建服务器的私钥对和证书文件,保存在
/etc/openvpn/server-certs目录中。 -
生成客户端证书和密钥:
sudo easy-rsa build-client-full --digest-algorithm sha256 --key-usage client --req-ciphers RC4:BLFS:CAST --signer-cert-issuer "OpenVPN Server" --signer-cert-serial 0
这将生成客户端使用的证书和密钥,保存在
/etc/openvpn/server-certs目录中。
配置OpenVPN服务器
编辑服务器配置文件:
- 打开配置文件:
sudo nano /etc/openvpn/server.conf
- 基本配置:
- 修改绑定IP地址,通常设置为
168.1.1:local localip=192.168.1.1
- 修改端口,通常设置为1194:
port 1194
- 设置协议版本,建议使用更高版本的协议:
proto 2048 proto2
- 修改绑定IP地址,通常设置为
- 加密设置:
- 选择强加密算法:
cipher AES-256-CBC auth SHA256
- 选择强加密算法:
- 防火墙设置:
- 启用IP转发:
push "COUNTER 10" push "REPLACE_SESSION_ID" push "TCP: x. x. x. x:1194"
- 启用IP转发:
- 用户验证:
- 配置默认用户密码策略,建议设置为强密码:
auth-user-pass auth-pass-verify
- 配置默认用户密码策略,建议设置为强密码:
- 保存并退出编辑器:
Ctrl + O
创建认证文件
- 生成认证文件:
sudo nano /etc/openvpn/server.auth ```可能如下: ```text # OpenVPN Authentication File # # Users section # [User.1] username="vpnuser" password="yourpassword"
启动并管理OpenVPN服务器
- 重新加载OpenVPN服务:
sudo systemctl reload openvpn@server
- 查看服务状态:
sudo systemctl status openvpn@server
检查是否有错误信息,如果有,查看日志文件:
sudo tail -f /var/log/openvpn/server.log
下载并配置OpenVPN客户端
下载客户端:
- 访问OpenVPN官网: https://openvpn.net/
- 下载最新版本的OpenVPN客户端,选择适合你操作系统的版本。
配置客户端:
-
生成客户端配置文件:
sudo nano /etc/openvpn/client.conf ```可能如下: ```text # OpenVPN Client Configuration File # # Specify the server you want to connect to # 替换成你的服务器IP地址和端口 remote 192.168.1.1 1194 # 服务器证书和密钥文件 certificate /etc/openvpn/server-certs/client.crt private_key /etc/openvpn/server-certs/client.key # 用户认证信息 auth-user-pass
-
启动OpenVPN客户端:
openvpn --config /etc/openvpn/client.conf
测试连接
-
检查服务器状态:
sudo systemctl status openvpn@server
-
测试客户端连接:
openvpn --connect /etc/openvpn/client.conf
或者使用命令行客户端:
sudo openvpn --remote 192.168.1.1 --port 1194
-
验证连接:
- 检查服务器日志:
sudo tail -f /var/log/openvpn/server.log
- 在客户端终端查看连接状态。
- 检查服务器日志:
设置防火墙(防火墙设置)
Ubuntu/Debian:
- 安装iptables-persistent:
sudo apt install iptables-persistent
- 开放OpenVPN端口:
sudo iptables -L -n
找到OpenVPN的TUN设备接口(如tun),
sudo iptables -A INPUT -j ACCEPT sudo iptables -A FORWARD -i tun -j ACCEPT sudo iptables -A FORWARD -o tun -j ACCEPT sudo iptables -A POSTROUTING -o eth -j ACCEPT
- 保存防火墙规则:
sudo iptables-save
CentOS/RHEL:
- 安装firewalld:
sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld
- 允许OpenVPN流量:
sudo firewall-cmd --permanent --add-service=openvpn sudo firewall-cmd --permanent --add-transport=udp sudo firewall-cmd --permanent --add-transport=tcp sudo firewall-cmd --permanent --add-port=1194:1194
- 应用防火墙规则:
sudo firewall-cmd --reload
验证内部网络访问
- 在客户端测试访问服务器内部网络:
ping 192.168.1.1
- 访问服务器内部网站或资源,确保能够正常访问。
定期维护和更新
- 定期更新OpenVPN软件:
sudo apt update && sudo apt upgrade openvpn-server
- 管理用户权限:
sudo passwd -l vpnuser
- 检查日志和状态:
sudo systemctl status openvpn@server
额外配置(可选)
- 设置DNS服务器:
sudo nano /etc/openvpn/server.conf
push "DNS 192.168.1.1"
- 配置NAT设置,确保OpenVPN服务器正确地路由所有流量。
通过以上步骤,你已经成功搭建了一个OpenVPN服务器,确保所有配置文件正确无误,定期维护服务器,管理用户权限,正确设置防火墙规则,以确保VPN服务的安全和稳定运行。
