我可以在我的服务器上看到正在创建大量 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 连接的唯一方法是调用ssh
、scp
或sftp
,您可以执行以下操作:
- 创建一个群组
sshclient
- 将这些二进制文件的组更改为
sshclient
- 将这些二进制文件的权限更改为
750
- 将您想要允许使用 SSH 的用户添加到该组
这与防火墙无关。
您可以允许其他用户以防火墙控制的方式使用 SSH,方法是放置具有较早名称的包装脚本,其中$PATH
以同一用户身份执行二进制文件sudo
(保持环境),但将组sshclient
添加到该进程。然后,您可以使用该iptables
模块owner
选择属于该组的所有数据包sshclient
(只能是 SSH 数据包)。