ubuntu搭建openvpn记录

本文介绍了如何使用curl下载OpenVPN安装脚本并配置,包括运行安装脚本、创建用于验证用户凭证的脚本checkpsw.sh,以及在server.conf和client.ovpn文件中设置用户认证、权限管理和加密策略。
摘要由CSDN通过智能技术生成

脚本下载

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

运行安装脚本,根据情况填写

./openvpn-install.sh

这里就完成了,将xxx.ovpn下载到本地,让后导入即可

其他:如需使用账号登陆继续下面操作

创建脚本:vim /etc/openvpn/checkpsw.sh

#!/bin/sh
###########################################################
# checkpsw.sh (C) 2004 Mathias Sundman <mathias@openvpn.se>
#
# This script will authenticate OpenVPN users against
# a plain text file. The passfile should simply contain
# one row per user with the username first followed by
# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/openvpn/psw-file"
LOG_FILE="/etc/openvpn/openvpn-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`

###########################################################

if [ ! -r "${PASSFILE}" ]; then
  echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}
  exit 1
fi

CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`

if [ "${CORRECT_PASSWORD}" = "" ]; then 
  echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
  exit 1
fi

if [ "${password}" = "${CORRECT_PASSWORD}" ]; then 
  echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
  exit 0
fi

echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1

添加权限

chmod 755 /etc/openvpn/checkpsw.sh

添加账号密码

echo 'username1 password1' >> /etc/openvpn/psw-file

修改 server.conf

# 追加以下内容
script-security 3
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
username-as-common-name
verify-client-cert none

重启服务

systemctl restart openvpn-server@server

修改客户端文件 xxx.ovpn

# 追加以下内容,<cert>和<key>部分可以删掉
auth-user-pass

附录

server.conf

- `port 11194`:OpenVPN 监听的端口号为 11194。
- `proto udp`:使用 UDP 协议。
- `dev tun`:使用 tun 模式创建一个路由/点对点的网络接口。
- `user nobody``group nogroup`:指定OpenVPN进程以nobody用户和nogroup组运行,提高安全性。
- `persist-key``persist-tun`:重启过程中保持密钥和隧道数据不变。
- `keepalive 10 120`:每10秒ping一次,如果120秒内无响应则重启。
- `topology subnet`:客户端网络拓扑使用子网方式。
- `server 10.8.0.0 255.255.255.0`:为连接的客户端分配的IP地址网段。
- `ifconfig-pool-persist ipp.txt`:分配给客户端的IP地址持久化存储在 ipp.txt 文件中。
- `push "dhcp-option DNS 1.1.1.1"``push "dhcp-option DNS 114.114.114.114"`:向客户端推送DNS服务器地址。
- `push "redirect-gateway def1 bypass-dhcp"`:重定向客户端的所有流量通过VPN。
- `dh none`:不使用Diffie-Hellman密钥交换。
- `ecdh-curve prime256v1`:指定ECDH的曲线。
- `tls-crypt tls-crypt.key`:对控制通道的TLS密钥交换进行加密。
- `crl-verify crl.pem`:使用crl.pem文件来验证客户端证书撤销列表。
- `ca ca.crt`:指定CA的证书文件。
- `cert server_aE5fY2wY6uNDFRmr.crt``key server_aE5fY2wY6uNDFRmr.key`:服务器证书和密钥文件。
- `script-security 3`:允许脚本和插件更高的安全性水平。
- `auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env`:通过指定脚本验证用户的用户名和密码。
- `username-as-common-name`:将用户名用作客户端的常用名。
- `verify-client-cert none`:客户端证书验证模式。
- `auth SHA256`:使用SHA256算法进行HMAC认证。
- `cipher AES-128-GCM`:使用AES-128-GCM算法加密数据通道。
- `ncp-ciphers AES-128-GCM`:禁止客户端协商除了 AES-128-GCM 之外的任何加密算法。
- `tls-server`:配置为TLS服务器模式。
- `tls-version-min 1.2`:指定最少的TLS版本。
- `tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256`:使用此TLS密码进行通信。
- `client-config-dir /etc/openvpn/ccd`:指定客户端配置文件的目录。
- `status /var/log/openvpn/status.log`:OpenVPN状态日志记录路径。
- `verb 3`:日志的详细程度。

客户端.ovpn

- `client`:声明这是一个OpenVPN客户端配置。
- `proto udp`:客户端将通过 UDP 协议通信。
- `explicit-exit-notify`:在断开连接时向服务器发送退出通知。
- `remote 38.6.175.123 11194`:指定VPN服务器的地址和端口。
- `dev tun`:使用 tun 设备,创建一个点对点的虚拟网络接口。
- `resolv-retry infinite`:如果无法解析服务器的主机名,则无限制重试。
- `nobind`:不绑定到本地特定端口。
- `persist-key``persist-tun`:在重新连接时不需要重新读取密钥和重新配置tun/tap设备。
- `remote-cert-tls server`:要求对端必须提供有效的TLS服务器证书。
- `verify-x509-name server_aE5fY2wY6uNDFRmr name`:校验与X.509证书相关的名称。
- `auth SHA256`:使用SHA256算法进行身份验证。
- `auth-user-pass`:需要认证时提示用户输入用户名和密码。
- `auth-nocache`:不在内存中缓存用户名和密码。
- `cipher AES-128-GCM`:指定使用AES-128-GCM加密算法。
- `tls-client`:配置客户端使用TLS。
- `tls-version-min 1.2`:使用的最低TLS版本为1.2。
- `tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256`:特定的TLS密码套件。
- `ignore-unknown-option block-outside-dns`:忽略未知的配置选项`block-outside-dns`。
- `setenv opt block-outside-dns`:在Windows 10中设置环境变量以防DNS泄漏。
- `verb 3`:设置日志文件的详细程度。
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是在 Ubuntu 上安装 OpenVPN 并进行配置的步骤: 1. 安装 OpenVPN 在终端中运行以下命令以安装 OpenVPN: ``` sudo apt-get update sudo apt-get install openvpn ``` 2. 获取 OpenVPN 配置文件 你需要获取 OpenVPN 的配置文件,通常是以 .ovpn 结尾的文件。你可以从你的 VPN 服务提供商那里获取这些文件,或者使用你自己的 OpenVPN 服务器。 将配置文件下载到你的 Ubuntu 系统中,例如你可以将它们存储在 /etc/openvpn 目录中。 3. 配置 OpenVPN 在终端中运行以下命令以编辑 OpenVPN 配置文件: ``` sudo nano /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 在配置文件中,你需要设置以下内容: - auth-user-pass:指定用户名和密码的文件路径 - ca:指定证书文件路径 - cert:指定客户端证书文件路径 - key:指定客户端私钥文件路径 - remote:指定远程服务器的 IP 或域名和端口号 在配置文件中,你可以使用注释行(以 # 开头)来注释掉一些不需要的选项。 4. 配置用户名和密码 在终端中运行以下命令以创建一个文件,其中包含你的 VPN 用户名和密码: ``` sudo nano /etc/openvpn/auth.txt ``` 在文件中,输入你的 VPN 用户名和密码,每行一个,例如: ``` your_username your_password ``` 保存并关闭文件。 5. 启动 OpenVPN 在终端中运行以下命令以启动 OpenVPN: ``` sudo openvpn /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 如果一切正常,你应该能够看到一些输出,其中包含 "Initialization Sequence Completed" 的字样,表示 OpenVPN 已成功连接到 VPN 服务器。 现在,你的 Ubuntu 系统已经成功安装并配置了 OpenVPN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值