如何为 ssh 设置代理通行证或 iptables?

如何为 ssh 设置代理通行证或 iptables?

我尝试在家里为我的 pi 设置一个 nginx 服务器。问题是,动态更新需要很长时间。因此我无法访问我的 gitolite 服务器。

因此,我没有使用 dyndns,而是设置了一个 ec2 实例。进入我的域的每个流量都将使用此 ec2 IP。从那里,我使用 nginx 来调节我的 pi 的流量。我让它在 http 和 https 服务器上运行得很好。我还可以为我的 ssh 设置一个流服务器。现在问题来了。据我所知,ssh 协议没有给出 dns。好吧,我不是系统管理员,所以也许我使用的术语不正确。

我在我的 pi 中安装了fail2ban。每个 ssh 流量都使用相同的 ip 通过 nginx 服务器。然后当它被fail2ban阻止时。我根本无法访问它们。

对于那些想要使用 nginx 的人。我不推荐,但这是有效的。

stream {
    upstream ssh {
        server xx.xxx.xxx.xxx:22;
    }

    server {
        listen        22;
        proxy_pass    ssh;
    }            

    upstream ssh {
        server xx.xxx.xxx.xxx:2288;
    }

    server {
        listen        2288;
        proxy_pass    ssh;
    }

}

我猜这仅适用于 nginx ^1.2。

我尝试了所有可能的配置:

#   proxy_bind $remote_addr:$remote_port transparent;
#   proxy_bind $remote_addr transparent;
#   proxy_set_header Host $host;
#   proxy_protocol on;

他们都没有通过ip。也许有人知道配置有什么问题?

我还阅读了一些使用 iptables 的建议。然后我尝试了以下所有方法:

#iptables -t nat -I PREROUTING -p tcp -i eth4 --dport 22 -j DNAT --to xx.xxx.xxx.xxx:22
#iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx
#iptables -A FORWARD -p tcp -d xx.xxx.xxx.xxx --dport 22 -m state --state NEW,ESTABLISHED,RELAT$
#iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx:2244

#iptables -A FORWARD -m state -p tcp -d xx.xxx.xxx.xxx --dport 22 --state NEW,ESTABLISHED,RELAT$
#iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx:2244

我不确定为什么它不起作用。 -i eth4 -o eth1 我猜这是网络,不是吗,包括 ppp0?我的pi只有一个eth0。

有人可以告诉我,这里有什么问题吗?我可以使用同一个端口进出吗?或者它必须是不同的端口?有关 iptables 配置的一些解释会很有帮助。

谢谢你!

相关内容