阿里云 centos 安装 openvpn

本文介绍了在阿里云CentOS环境中通过yum命令安装OpenVPN,涉及构建RPM包、配置服务端和客户端证书,以及网络设置和iptables规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阿里云 centos 安装 openvpn

准备

$ yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
$ yum install -y pkcs11-helper pkcs11-helper-devel

# 确认
$ rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

安装 openvpn 服务

# 下载(注意版本)
$ wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz
# 安装rpm-build软件,以提供rpmbuild命令
$ yum install rpm-build -y
# 使用 rpmbuild 将源码包编译成rpm包来进行安装
## 生成rpm /root/rpmbuild/RPMS/x86_64/openvpn-2.2.2-1.x86_64.rpm
$ rpmbuild -tb openvpn-2.2.2.tar.gz
# 安装
$ cd /root/rpmbuild/RPMS/x86_64
$ rpm -ivh openvpn-2.2.2-1.x86_64.rpm

配置 OpenVPN 服务(服务端)

# 初始化 PKI
$ cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0

# 修改证书环境(对证书使用无影响)
## export KEY_COUNTRY="CN"
## export KEY_PROVINCE="BJ"
## export KEY_CITY="BJ"
## export KEY_ORG="aliyun"
## export KEY_EMAIL=cjxia@isoftston.com
$ vi vars

# 清除并删除 keys 目录下的所有 key
$ ln -s openssl-1.0.0.cnf openssl.cnf
$ source ./vars
$ ./clean-all

# 生成服务端的证书
## 当前目录下生成 keys 目录,包含创建的证书
$ ./build-ca
# 生成服务端自定义名称的证书,这里将其命名为 server
## 生成过程中可以使用默认值
## keys 目录下生成 server.key server.crt server.csr
$ ./build-key-server server

# 创建客户端证书,这里将其命名为 client
## keys 目录下生成 client.key client.crt client.csr
$ ./build-key client

# 生成 Diffie Hellman 参数
## keys 目录下生成 dh 参数文件 dh1024.pem,用于客户端验证
$ ./build-dh

# 复制全部 key
$ cp -a keys/* /etc/openvpn/
# 复制 openvpn 服务端配置文件 server.conf 到 /etc/openvpn
$ cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/

# 配置 /etc/openvpn/server.conf
## local 0.0.0.0 # 公网IP,可用 0.0.0.0
## port 1194
## proto tcp # 监听协议
## dev tun # 采用路由隧道模式
## ca ca.crt
## cert aliyun.crt # 生成服务器端证书时用户自定义的名称
## key aliyun.key # 生成服务器端证书时用户自定义的名称
## dh dh1024.pem # 密钥交换协议文件
## server 10.8.0.0 255.255.255.0 # 给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
## ifconfig-pool-persist ipp.txt
## push "redirect-gateway def1 bypass-dhcp"
## push "dhcp-option DNS 8.8.8.8" # dhcp分配dns
## client-to-client # 开启客户端之间互相通信
## keepalive 10 120 # 存活时间,10秒ping一次,120秒未收到响应则视为断线
## cipher AES-128-CBC
## comp-lzo # 传输数据压缩
## user nobody
## group nobody
## persist-key
## persist-tun
## status /etc/openvpn/openvpn-status.log
## log /etc/openvpn/openvpn.log
## verb 3
$ cd /etc/openvpn
$ vi server.conf

# 打开路由转发
## 修改或写入 net.ipv4.ip_forward = 1
$ vi /etc/sysctl.conf
# 重新读取文件,使内核参数生效
$ sysctl -p

# 设置 nat
$ iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
$ iptables -vnL -t nat

# 开启 1194 端口
$ iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
$ iptables -A OUTPUT -p tcp --sport 1194 -j ACCEPT

# 开启 openvpn 服务
$ openvpn /etc/openvpn/server.conf &
# 查看
$ ss -nutl | grep 1194

配置 OpenVPN 服务(客户端)

# 下载 OpenVPN 客户端
## windows https://openvpn-2-0-1-rc1.updatestar.com/description/2.4.3
## mac ლ(^ω^ლ) ヾ(◍°∇°◍)ノ゙
## 全版本下载 https://www.techspot.com/downloads/5182-openvpn.html
# 下载服务端 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 生成的 ca.crt client.csr client.key 到本地安装目录 config 下

# 复制安装目录下 sample-config/client.ovpn 到 config 目录
# 修改 config/client.ovpn
## client
## dev tun
## proto tcp
## remote 10.10.10.10 1194 # OpenVPN服务器的外网IP和端口,ip和域名都行
## resolv-retry infinite
## nobind
## persist-key
## persist-tun
## ca ca.crt
## cert client.crt
## key client.key
## cipher AES-128-CBC
## comp-lzo
## verb 3

# 启动
## 进入安装目录 bin,管理员执行 openvpn-gui.exe

openvpn 安装

参考一
参考二

工具参考

rpmbuild
nohup

问题参考

TLS Error: TLS object -> incoming plaintext read error

说明

  1. 服务端版本为 2.2.2,客户端版本为2.4.3,服务端和客户端的 ciper 需同时设置为 AES-128-CBC
### 如何在云服务器上安装和配置OpenVPN #### 安装必要的软件包 为了能够在云服务器上成功部署 OpenVPN,需要先更新系统的软件源并安装一些必需的依赖项。对于基于 Debian 或 Ubuntu 的系统而言: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install openvpn easy-rsa -y ``` 而对于 CentOS/RHEL 类型的操作系统,则应执行如下命令来完成相同的目标[^1]。 #### 配置Easy-RSA环境 创建一个用于存储证书文件的新目录,并复制 EasyRSA 工具到该位置以便后续操作使用: ```bash mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa/ ``` 编辑 `vars` 文件设置 CA 和服务器的相关参数, 这一步骤非常重要因为它定义了整个 PKI 结构中的根CA以及服务端的身份信息. #### 初始化PKI结构与生成密钥对 初始化一个新的 PKI 环境并将所有的旧数据清除掉;接着构建自己的私有证书颁发机构(CA),最后分别为客户端和服务端签发各自的 SSL/TLS 证书及其对应的私钥。 ```bash ./easyrsa init-pki ./easyrsa build-ca ./easyrsa gen-req server nopass ./easyrsa sign-req server server ``` #### 下载脚本简化过程 如果希望快速简便地完成上述大部分工作流程,在某些特定环境下可以考虑采用自动化脚本来辅助实施。例如阿里云提供了这样的便捷方式: ```bash wget https://git.io/vpn -O openvpn-install.sh bash openvpn-install.sh ``` 此方法能够自动处理许多复杂的细节问题从而大大节省时间成本[^2]. #### 编辑OpenVPN配置文件 根据实际需求调整 `/etc/openvpn/server.conf`, 添加或修改相应的选项以满足具体的网络拓扑要求和个人偏好设定。这可能涉及到 IP 地址分配策略、加密算法选择等方面的内容。 #### 启动OpenVPN服务 当一切准备就绪之后就可以启动 OpenVPN 并将其设为开机自启项目之一了: ```bash systemctl start openvpn@server.service systemctl enable openvpn@server.service ``` 通过以上步骤可以在大多数主流 Linux 发行版所支持的标准环境中顺利建立起功能完备且安全可靠的 OpenVPN 服务平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差点GDP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值