当前位置: 首页 > 知识库问答 >
问题:

OpenVPN客户端SSHEC2私有实例

茅和玉
2023-03-14

我正在运行社区OpenVPN服务器(在CIS级RHEL 7上)实例,我可以从我的笔记本电脑连接它,没有任何问题。在连接的同时,我可以使用私有IP SSH到OpenVPN服务器实例,但除此之外什么也做不了。甚至不是同一子网中的不同实例。假设我的VPN服务器在< code>10.100.0.0/28子网中,VPN客户端子网是:< code>192.168.10.0/24,并且我希望SSH到< code>10.100.0.16/28中的实例。这是我在服务器配置中的部分:

push "redirect-gateway def1 bypass-dhcp"
push "route 10.100.0.16 255.255.255.240"
push "route 10.100.0.32 255.255.255.240"
;push "route 10.100.0.0 255.255.240.0"
route 10.100.0.16 255.255.255.240
route 10.100.0.32 255.255.255.240
;route 10.100.0.0 255.255.240.0
server 192.168.10.0 255.255.255.0

我添加了这些iptables规则以允许VPN流量:

## allow udp 1194
iptables -A INPUT -p udp -m udp --dport 1194 -m state --state NEW -j ACCEPT -i eth0

## Allow TUN interface
iptables -A INPUT -i tun+ -j ACCEPT

## Allow TUN connections to be forwarded
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

## NAT the VPN client traffic to the Internet
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

## default TUN OUTPUT
iptables -A OUTPUT -o tun+ -j ACCEPT

除此之外,

    < li >将< code > net . IP v4 . IP _ forward = 1 添加到< code >/etc/sysctl . conf < li >在VPN实例上禁用源/目标检查 < li >将静态路由添加到VPC路由表,目的地:< code>192.168.10.0/24,目标是连接到VPN实例的ENI < li >在目标实例的SG中添加了入口规则,以允许端口22上的vpn客户端子网 < li >还没有涉及NACL(但是必须在某个时候启用)

还有什么没有做错或做错的??我真的被卡住了,我知道我错过了一些非常愚蠢的事情。谁能给我遮光或给我指个方向?

-S

共有1个答案

华宣
2023-03-14

弄清楚它为什么不工作。这两行:

route 10.100.0.16 255.255.255.240
route 10.100.0.32 255.255.255.240

配置文件中的问题。如果没有这些,它将毫无问题地向下游转发流量。尽管我对OpenVPN文档中有关路由push“路由…的内容有点困惑,所以我不太确定这两条线路为什么会导致连接问题。因此,如果有人能对此有所了解,我们将不胜感激。

 类似资料:
  • 我在 CloudSQL Postgres 实例上使用 psql 客户端连接时遇到问题。我按照文档 https://cloud.google.com/sql/docs/postgres/connect-admin-proxy 进行操作。 我已启用云SQL管理API 我使用我的凭据SDK Cloud,他们拥有所有的权限,我已经设置了一个好的项目: 接下来,我启动了以下项目: 要使用TCP套接字进行测试

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我一直在使用FTP客户端java实现。我所要做的就是连接到FTP服务器并将一个文件传输到服务器。 我设法与ftp服务器建立了连接(见下面的代码),之后我使用PASV命令进入了被动模式。现在我不知道下一步该做什么。我尝试在PASV命令之后制作一个新套接字并将其连接到FTP服务器端口20,但没有成功。 我的问题是建立连接时如何启动文件传输?(我的想法是与端口20建立连接并执行STOR命令,但我不知道如

  • URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL

  • 客户端事件通过 SetEvent 方法进行设置。 客户端事件有两个,它们分别定义为: type onErrorEvent interface { OnError(name string, err error) }   type onFailswitchEvent interface { OnFailswitch(Client) } 因为 go 语言不需要显式实现接口的特点,所以这两

  • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string