SSHstream量redirectLXC容器

我使用LXC容器ssh托pipe,我想redirectSSH / SFTP通信(使用端口22)到容器的私人IP地址,但在用户/ IP的基础上。 这是一个源端口,许多目的地。

  1. ssh [email protected]
  2. 我们有用户'ahes',这个用户容器的私有IP是10.10.66.66
  3. 将stream量redirect到10.10.66.66:22

我不可能为每个容器分配公共IP地址。

我想出了可能的解决scheme:

  1. 简单的一个 – 忘记全球端口22,并使用端口匹配特定用户。 例如,ahes将有6666端口。然后用简单的iptables规则redirectstream量:server.com:6666 => 10.10.66.66:22。 缺点是有些地方22/80/443以外的端口被阻塞。

  2. 在父服务器上的sshd中使用ForceCommand指令:

匹配组用户
    ForceCommand /usr/local/bin/ssh.sh

ssh.sh脚本:

 #!/斌/庆典
 #...在这里find用户IP地址的一些逻辑
 #运行ssh
 exec ssh $ USER @ $ IP $ SSH_ORIGINAL_COMMAND

这个解决scheme几乎是好的,但我没有find一种方法来使这个configurationsftp工作。

另一个考虑是我不能深入协议,因为encryption是在任何数据识别用户发送之前完成的。 另外我没有真正的技能来破解sshd源代码,并且保留父服务器与原始包是非常可取的安全的原因。

我也发现libpam-nufw软件包用于连接级别(iptables)的身份validation,但我认为这是用于其他目的。

我将不胜感激任何线索。 谢谢。

设置在端口443侦听的HTTP代理,并启用在内部LXC IP上的端口22的转发连接。 然后,当使用ssh / sftp客户端时,使用ProxyConnect选项与netcat / socat / proxytunnel / whatever结合使用。

另一个常见的解决scheme是build立一个SSH网关(例如,在同一个盒子上的专用LXC)。 用户首先连接到他们的LXC实例。