AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1006867
Accepted
Shaun Luttin
Shaun Luttin
Asked: 2020-03-14 12:17:18 +0800 CST2020-03-14 12:17:18 +0800 CST 2020-03-14 12:17:18 +0800 CST

当服务器防火墙不允许传入的 OpenSSH 连接时,VPN 客户端无法启动与 VPN 服务器的连接

  • 772

原始问题

我已经设置了一个 OpenVPN 服务器和一个 OpenVPN 客户端。

问题是客户端只能在服务器防火墙允许传入的 OpenSSH 连接时启动连接。

当客户端能够发起连接时,这些是服务器的防火墙规则。

$ ufw status verbose

To                         Action      From                  
--                         ------      ----                  
22/tcp (OpenSSH)           ALLOW IN    Anywhere              // <---
Anywhere on eth0           ALLOW IN    1194/udp              
Anywhere on tun0           ALLOW IN    Anywhere              
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)         // <---
Anywhere (v6) on eth0      ALLOW IN    1194/udp (v6)         
Anywhere (v6) on tun0      ALLOW IN    Anywhere (v6)         

Anywhere                   ALLOW OUT   1194/udp on eth0      
Anywhere                   ALLOW OUT   Anywhere on tun0      
Anywhere (v6)              ALLOW OUT   1194/udp (v6) on eth0 
Anywhere (v6)              ALLOW OUT   Anywhere (v6) on tun0 

我们ufw delete allow OpenSSH在服务器上运行后,客户端无法发起 VPN 连接

这是当客户端无法启动连接时我们收到的日志输出。

$ sudo openvpn --config /etc/openvpn/client.conf

...

OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019
library versions: OpenSSL 1.1.1  11 Sep 2018, LZO 2.08
Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Control Channel MTU parms [ L:1621 D:1184 EF:66 EB:0 ET:0 EL:3 ]
Data Channel MTU parms [ L:1621 D:1450 EF:121 EB:406 ET:0 EL:3 ]
Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,keydir 1,cipher AES-256-CBC,auth SHA1,keysize 256,tls-auth,key-method 2,tls-client'
Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,keydir 0,cipher AES-256-CBC,auth SHA1,keysize 256,tls-auth,key-method 2,tls-server'
TCP/UDP: Preserving recently used remote address: [AF_INET]xxx.xxx.xxx.xxx:1194
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDP link local: (not bound)
UDP link remote: [AF_INET]xxx.xxx.xxx.xxx:1194

如果 VPN 服务器不允许传入的 OpenSSH 连接,客户端如何启动 OpenVPN 连接?

编辑

这是我们的客户端配置:

ca ca.crt
cert vpn_client_01.crt
cipher AES-256-CBC
client
dev tun
key vpn_client_01.key
nobind
persist-key
persist-tun
proto udp
remote vpn.xxx.ca 1194
remote-cert-tls server
resolv-retry infinite
tls-auth ta.key 1
verb 4
linux ubuntu openvpn
  • 2 2 个回答
  • 6338 Views

2 个回答

  • Voted
  1. sippybear
    2020-03-14T16:36:12+08:002020-03-14T16:36:12+08:00

    (keydir键方向)值不匹配。在你的 OpenVPN 客户端配置中指定--key-direction 1,你应该被整理出来。允许的值为 0 和 1。

    • 1
  2. Best Answer
    Piotr P. Karwasz
    2020-03-16T13:56:38+08:002020-03-16T13:56:38+08:00

    如果源端口是1194而不是目标端口,则您添加的两个 OpenVPN 规则允许流量。这可能会产生两个后果:

    1. 即使客户端将1194其用作源端口,在通过 NAT 时也可能会发生变化。所以客户端将被拒绝访问。
    2. 如果有人1194用作源端口,他可以访问您的所有UDP服务。

    您可能希望在目标端口上添加规则:

    ufw allow in on eth0 proto udp to any port 1194
    

    至于为什么防火墙允许 OpenVPN 访问,当允许 OpenSSH 时,这是一个有趣的问题:您可以将 的输出添加iptables -nvL ufw-user-input到问题中,或者检查在建立 OpenVPN 会话时增加了哪个规则计数器。

    • 1

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve