当客户端连接时自动在服务器上发起出站 SSH 连接

当客户端连接时自动在服务器上发起出站 SSH 连接

当内部客户端从给定 IP 范围内的特定端口连接到服务器上的任何给定服务时,如何自动在服务器上启动出站 SSH 连接?请注意,如果连接已经建立,则不应启动连接。

似乎没有非脚本方法可以做到这一点,就好像连接已经建立一样,没有办法检测到使用MatchandForceCommand方法来阻止 ssh 尝试重新连接(或者不必要地打开一个全新的出站) ssh 会话)。

因此,我想到了一个像这样的脚本(这只是一个草稿,用于说明这个想法):

#######auto_ssh-script.sh

####### iptables rule logging all new incoming, unestablished, never before seen connections

iptables -I INPUT -p tcp --sport 22 -m state --state NEW -m state !
--state ESTABLISHED -m state ! --state SEEN_REPLY -j LOG --log-prefix CONNECT

#######background script  --> read log and look for a match to string CONNECT 

cat /proc/kmsg | while read LOGGING 
do   
    LOG='echo "$LOGGING" | grep 'CONNECT' '   
    if ["$LOG" = ' ' ]  &  UP= 'echo alxw | grep ssh '
     if [ "UP" = ' '] then 
     fi  

ssh -p 22 <user>@<somewhere-out-there.com
echo "Connected"
done

难道就没有更好的办法吗?如果没有,我该如何改进这个脚本?

答案1

基本上你可以在你的sshd_config

Match User user Address 192.168.100.0/24 LocalPort 22
  ForceCommand ssh some-other-ip

LocalPort 22如果您仅在普通端口上运行服务,则不需要。客户端 IP 范围为192.168.100.1- 192.168.100.254,用户名为user

相关内容