2017-03-20 06:10:49 +03:00
# 管理 VPN 用户
2016-06-08 04:10:57 +03:00
2022-04-12 02:25:04 +03:00
*其他语言版本: [English ](manage-users.md ), [简体中文 ](manage-users-zh.md )。*
2016-06-08 04:10:57 +03:00
2021-06-04 22:48:19 +03:00
在默认情况下,将只创建一个用于 VPN 登录的用户账户。如果你需要查看或管理 IPsec/L2TP 和 IPsec/XAuth ("Cisco IPsec") 模式的用户,请阅读本文档。对于 IKEv2, 参见 [管理客户端证书 ](ikev2-howto-zh.md#管理客户端证书 )。
2016-06-08 04:10:57 +03:00
2021-06-06 23:27:56 +03:00
* [使用辅助脚本管理 VPN 用户 ](#使用辅助脚本管理-vpn-用户 )
2022-03-15 06:13:10 +03:00
* [查看 VPN 用户 ](#查看-vpn-用户 )
* [查看或更改 IPsec PSK ](#查看或更改-ipsec-psk )
2021-06-06 23:27:56 +03:00
* [手动管理 VPN 用户 ](#手动管理-vpn-用户 )
2018-11-22 11:46:28 +03:00
2020-12-07 10:11:23 +03:00
## 使用辅助脚本管理 VPN 用户
2022-03-15 06:13:10 +03:00
*其他语言版本: [English ](manage-users.md#manage-vpn-users-using-helper-scripts ), [简体中文 ](manage-users-zh.md#使用辅助脚本管理-vpn-用户 )。*
2022-03-13 23:42:04 +03:00
你可以使用辅助脚本 [添加 ](../extras/add_vpn_user.sh ), [删除 ](../extras/del_vpn_user.sh ) 或者 [更新所有的 ](../extras/update_vpn_users.sh ) VPN 用户。它们将同时更新 IPsec/L2TP 和 IPsec/XAuth ("Cisco IPsec") 模式的用户。对于 IKEv2 模式,请另外参见 [管理客户端证书 ](ikev2-howto-zh.md#管理客户端证书 )。
2016-06-08 04:10:57 +03:00
2022-03-13 23:42:04 +03:00
**注:** 将下面的命令的参数换成你自己的值。VPN 用户信息保存在文件 `/etc/ppp/chap-secrets` 和 `/etc/ipsec.d/passwd` 。脚本在修改这些文件之前会先做备份,使用 `.old-日期-时间` 为后缀。
2016-06-08 04:10:57 +03:00
2018-11-23 20:52:38 +03:00
### 添加或更改一个 VPN 用户
添加一个新 VPN 用户,或者为一个已有的 VPN 用户更改密码。
2016-06-08 04:10:57 +03:00
2022-03-13 23:42:04 +03:00
运行脚本并按提示操作:
```bash
sudo addvpnuser.sh
```
< details >
< summary >
错误:"sudo: addvpnuser.sh: command not found".
< / summary >
如果你使用了较早版本的 VPN 安装脚本,这是正常的。首先下载辅助脚本:
2016-06-08 04:10:57 +03:00
```bash
2022-03-13 23:42:04 +03:00
wget -nv -O /opt/src/addvpnuser.sh https://bit.ly/addvpnuser
chmod +x /opt/src/addvpnuser.sh & & ln -s /opt/src/addvpnuser.sh /usr/bin
2018-11-23 09:21:47 +03:00
```
2022-03-13 23:42:04 +03:00
然后按照说明运行脚本。
< / details >
2021-12-31 01:03:25 +03:00
另外,你也可以在添加参数的情况下运行脚本:
2018-11-23 09:21:47 +03:00
```bash
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
2022-03-13 23:42:04 +03:00
sudo addvpnuser.sh '要添加的用户名' '密码'
2020-12-07 10:11:23 +03:00
# 或者
2022-03-13 23:42:04 +03:00
sudo addvpnuser.sh '要更新的用户名' '新密码'
2016-06-08 04:10:57 +03:00
```
2018-11-23 01:49:56 +03:00
### 删除一个 VPN 用户
2016-06-08 04:10:57 +03:00
2018-11-23 01:49:56 +03:00
删除指定的 VPN 用户。
2016-06-08 04:10:57 +03:00
2022-03-13 23:42:04 +03:00
运行脚本并按提示操作:
2016-06-08 04:10:57 +03:00
```bash
2022-03-13 23:42:04 +03:00
sudo delvpnuser.sh
2018-11-23 09:21:47 +03:00
```
2022-03-13 23:42:04 +03:00
< details >
< summary >
错误:"sudo: delvpnuser.sh: command not found".
< / summary >
如果你使用了较早版本的 VPN 安装脚本,这是正常的。首先下载辅助脚本:
```bash
wget -nv -O /opt/src/delvpnuser.sh https://bit.ly/delvpnuser
chmod +x /opt/src/delvpnuser.sh & & ln -s /opt/src/delvpnuser.sh /usr/bin
```
然后按照说明运行脚本。
< / details >
2021-12-31 01:03:25 +03:00
另外,你也可以在添加参数的情况下运行脚本:
2018-11-23 09:21:47 +03:00
```bash
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
2022-03-13 23:42:04 +03:00
sudo delvpnuser.sh '要删除的用户名'
2016-06-08 04:10:57 +03:00
```
2018-11-23 01:49:56 +03:00
### 更新所有的 VPN 用户
2016-06-08 04:10:57 +03:00
2018-11-23 01:49:56 +03:00
移除所有的 VPN 用户并替换为你指定的列表中的用户。
2018-11-22 11:46:28 +03:00
2022-03-13 23:42:04 +03:00
首先下载脚本:
2018-11-22 11:46:28 +03:00
```bash
2022-03-13 23:42:04 +03:00
wget -nv -O updatevpnusers.sh https://bit.ly/updatevpnusers
2018-11-22 11:46:28 +03:00
```
2018-11-23 01:49:56 +03:00
要使用这个脚本,从以下选项中选择一个:
2018-11-22 11:46:28 +03:00
2018-11-23 01:49:56 +03:00
**重要:** 这个脚本会将你当前**所有的** VPN 用户移除并替换为你指定的列表中的用户。如果你需要保留已有的 VPN 用户,则必须将它们包含在下面的变量中。
2018-11-22 11:46:28 +03:00
**选项 1:** 编辑脚本并输入 VPN 用户信息:
```bash
2022-03-13 23:42:04 +03:00
nano -w updatevpnusers.sh
2018-11-22 11:46:28 +03:00
[替换为你自己的值: YOUR_USERNAMES 和 YOUR_PASSWORDS]
2022-03-13 23:42:04 +03:00
sudo bash updatevpnusers.sh
2018-11-22 11:46:28 +03:00
```
**选项 2:** 将 VPN 用户信息定义为环境变量:
```bash
# VPN用户名和密码列表, 用空格分隔
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
sudo \
VPN_USERS='用户名1 用户名2 ...' \
VPN_PASSWORDS='密码1 密码2 ...' \
2022-03-13 23:42:04 +03:00
bash updatevpnusers.sh
2018-11-22 11:46:28 +03:00
```
2018-11-23 01:49:56 +03:00
2022-03-15 06:13:10 +03:00
## 查看 VPN 用户
在默认情况下, VPN 安装脚本将为 IPsec/L2TP 和 IPsec/XAuth ("Cisco IPsec") 模式创建相同的用户。
对于 IPsec/L2TP, VPN 用户信息保存在文件 `/etc/ppp/chap-secrets` 。该文件的格式如下:
```bash
"用户名1" l2tpd "密码1" *
"用户名2" l2tpd "密码2" *
... ...
```
对于 IPsec/XAuth ("Cisco IPsec"), VPN 用户信息保存在文件 `/etc/ipsec.d/passwd` 。这个文件中的密码以加盐哈希值的形式保存。更多详情请见 [手动管理 VPN 用户 ](#手动管理-vpn-用户 )。
## 查看或更改 IPsec PSK
IPsec PSK( 预共享密钥) 保存在文件 `/etc/ipsec.secrets` 。所有的 VPN 用户将共享同一个 IPsec PSK。该文件的格式如下:
```bash
%any %any : PSK "你的IPsec预共享密钥"
```
如果要更换一个新的 PSK, 可以编辑此文件。**不要**在值中使用这些字符:`\ " '`
完成后必须重启服务:
```bash
service ipsec restart
service xl2tpd restart
```
2020-12-07 10:11:23 +03:00
## 手动管理 VPN 用户
2018-11-23 01:49:56 +03:00
2021-06-04 22:48:19 +03:00
对于 IPsec/L2TP, VPN 用户信息保存在文件 `/etc/ppp/chap-secrets` 。该文件的格式如下:
2018-11-23 01:49:56 +03:00
```bash
2018-11-23 20:52:38 +03:00
"用户名1" l2tpd "密码1" *
"用户名2" l2tpd "密码2" *
2018-11-23 01:49:56 +03:00
... ...
```
2020-12-07 10:11:23 +03:00
你可以添加更多用户,每个用户对应文件中的一行。**不要**在值中使用这些字符:`\ " '`
2018-11-23 01:49:56 +03:00
2021-06-04 22:48:19 +03:00
对于 IPsec/XAuth ("Cisco IPsec"), VPN 用户信息保存在文件 `/etc/ipsec.d/passwd` 。该文件的格式如下:
2018-11-23 01:49:56 +03:00
```bash
2018-11-23 20:52:38 +03:00
用户名1:密码1的加盐哈希值:xauth-psk
用户名2:密码2的加盐哈希值:xauth-psk
2018-11-23 01:49:56 +03:00
... ...
```
这个文件中的密码以加盐哈希值的形式保存。该步骤可以借助比如 `openssl` 工具来完成:
```bash
2018-11-23 20:52:38 +03:00
# 以下命令的输出为: 密码1的加盐哈希值
# 将你的密码用 '单引号' 括起来
openssl passwd -1 '密码1'
2018-11-23 01:49:56 +03:00
```
2021-03-29 23:05:45 +03:00
## 授权协议
2022-01-02 09:09:03 +03:00
版权所有 (C) 2016-2022 [Lin Song ](https://github.com/hwdsl2 ) [![View my profile on LinkedIn ](https://static.licdn.com/scds/common/u/img/webpromo/btn_viewmy_160x25.png )](https://www.linkedin.com/in/linsongui)
2021-03-29 23:05:45 +03:00
2021-06-05 01:27:21 +03:00
[![Creative Commons License ](https://i.creativecommons.org/l/by-sa/3.0/88x31.png )](http://creativecommons.org/licenses/by-sa/3.0/)
这个项目是以 [知识共享署名-相同方式共享3.0 ](http://creativecommons.org/licenses/by-sa/3.0/ ) 许可协议授权。
2021-03-29 23:05:45 +03:00
必须署名: 请包括我的名字在任何衍生产品,并且让我知道你是如何改善它的!