阻止 Ubuntu 上除 22 之外的所有端口的出站 SSH 连接

阻止 Ubuntu 上除 22 之外的所有端口的出站 SSH 连接

我可以在我的服务器上看到正在创建大量 SSH 出站连接。是否可以阻止除某一特定用户之外的所有用户的 ssh 命令。

或者

是否可以通过 iptable 阻止除端口 22 之外的所有端口的 SSH 出站连接?但这些端口应该允许其他进程使用。仅应阻止所有端口(22 除外)SSH出站连接。

笔记 : 我执行了netstat |grep ssh下面的输出,您可以看到正在为具有不同端口的不同 IP 创建 ssh 连接。10.25.218.4我的服务器 IP 地址在哪里。

root@ubuntu:/var/log# netstat | grep ssh

tcp        0      1 10.25.218.4:ssh         222.186.31.204:25262    FIN_WAIT1
tcp        0      0 10.25.218.4:ssh         host-92-0-218-178.:1834 ESTABLISHED
tcp        0      0 10.25.218.4:ssh         host-92-0-218-178:14717 ESTABLISHED
tcp        0      0 10.25.218.4:ssh         222.186.31.204:41642    ESTABLISHED

输出netstat -np | 网络统计grep -E '本地|:22\b'

我可以看到与 PID 的一个意外连接23909对于相同的外部 IP 地址,每次都可以看到不同的 2 PID。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0     64 10.25.218.4:22          92.0.218.178:7341       ESTABLISHED 22943/sshd: rsantos
tcp        0      0 10.25.218.4:22          92.0.218.178:1834       ESTABLISHED 11378/sshd: rsantos
tcp        0      0 10.25.218.4:22          222.186.42.155:10064    ESTABLISHED 23909/sshd: unknown

答案1

您的问题似乎不是问题标题所暗示的那样。不过还是回答一下问题标题吧:

假设创建 SSH 连接的唯一方法是调用sshscpsftp,您可以执行以下操作:

  1. 创建一个群组sshclient
  2. 将这些二进制文件的组更改为sshclient
  3. 将这些二进制文件的权限更改为750
  4. 将您想要允许使用 SSH 的用户添加到该组

这与防火墙无关。

您可以允许其他用户以防火墙控制的方式使用 SSH,方法是放置具有较早名称的包装脚本,其中$PATH以同一用户身份执行二进制文件sudo(保持环境),但将组sshclient添加到该进程。然后,您可以使用该iptables模块owner选择属于该组的所有数据包sshclient(只能是 SSH 数据包)。

相关内容