Open*** 客户端到 SSH 到 EC2 私有实例

Posted

技术标签:

【中文标题】Open*** 客户端到 SSH 到 EC2 私有实例【英文标题】:Open*** client to SSH to EC2 private instance 【发布时间】:2021-01-04 19:59:09 【问题描述】:

我正在运行社区 Open*** 服务器(在 CIS Level 1 RHEL 7 上)实例,我可以从我的笔记本电脑连接它而没有任何问题。连接时,我可以使用私有 IP SSH 到 Open*** 服务器实例,但不能使用其他任何东西。在同一个子网中甚至没有不同的实例。假设我的 *** 服务器位于:10.100.0.0/28 子网,*** 客户端子网是:192.168.10.0/24,我希望通过 SSH 连接到 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 规则以允许 *** 流量:

## 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 *** 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

除此之外,

net.ipv4.ip_forward = 1 添加到/etc/sysctl.conf 在 *** 实例上禁用源/目标检查 将静态路由添加到具有目标: 192.168.10.0/24 的 VPC 路由表,目标指向附加到 *** 实例的 ENI 在目标实例的 SG 中添加入口规则以允许端口 22 上的 ***-client 子网 目前还没有涉及 NACL(但必须在某个时候启用)

还有什么没做或做错的?我真的被困住了,知道我错过了一些非常愚蠢的事情。谁能遮住一些光线或指出正确的方向吗?

-S

【问题讨论】:

当您尝试连接到另一个实例时会发生什么?您收到错误消息还是最终超时?目标实例上的安全组是否配置为允许此类连接? @JohnRotenstein,抱歉回复晚了。但我发现,由于这些行,它不起作用:route 10.100.0.16 255.255.255.240route 10.100.0.32 255.255.255.240 在配置文件中。我评论它的那一刻,它就开始工作了。我对routepush route 的文档感到有些困惑,所以不太确定为什么这两行会导致连接问题。 【参考方案1】:

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

route 10.100.0.16 255.255.255.240
route 10.100.0.32 255.255.255.240

在配置文件中导致问题。没有这些,它可以毫无问题地向下游转发流量。虽然我对route ...push "route ... 上的Open*** 文档感到有些困惑,所以我不确定为什么这两行会导致连接问题。因此,如果有人能对此有所启发,我们将不胜感激。

【讨论】:

以上是关于Open*** 客户端到 SSH 到 EC2 私有实例的主要内容,如果未能解决你的问题,请参考以下文章

通过 Ubuntu 堡垒到私有子网中的 EC2 实例的 SSH 隧道

SSH到位于VPC中的私有子网中的AWS EC2实例

如何从ec2实例ssh到另一个ec2实例而不将公钥存储在其中一个实例中?

无法设置到私有 AWS API 网关 API 的 SSH 隧道

使用不同的 SSH 密钥部署私有 EC2 实例(例如 Ec2.pem)和堡垒主机(例如 BastionKey.pem) - AWS VPC

使用 Github for Windows 通过 SSH 使用自己的私有 Git