我使用的服务器是 Ubuntu 10.10。为了确保安全,我想编辑服务器发送给客户端的横幅。
如果我通过端口 22 telnet 到我的主机,它会告诉我我正在运行的 SSH 的确切版本 (SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4)。MySQL 和 Cyrus 的情况相同。
有什么建议?至少对于SSH?
谢谢
Har*_*ers 46
虽然隐藏 SSH 守护程序的版本号非常困难,但您可以轻松隐藏 linux 版本 (Debian-3ubuntu4)
将以下行添加到 /etc/ssh/sshd_config
DebianBanner no
Run Code Online (Sandbox Code Playgroud)
并重新启动您的 SSH 守护进程:/etc/init.d/ssh restart或service ssh restart
bah*_*mat 20
隐藏这些不会保护您的服务器。还有更多方法可以对系统正在运行的内容进行指纹识别。特别是对于 SSH,版本公告是协议的一部分并且是必需的。
http://www.snailbook.com/faq/version-string.auto.html
如上所述,更改版本号是
我的建议是实施端口敲门。隐藏服务器上运行的任何内容是一种相当简单的技术。
这是一个很好的实现:http : //www.zeroflux.org/projects/knock
这就是我在我的服务器(其他号码)上实现它的方式,只向知道“秘密敲门”的人开放 SSH:
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
Run Code Online (Sandbox Code Playgroud)
这将提供一个 5 秒的窗口,其中需要以正确的顺序接收 3 个 SYN 数据包。选择相距较远且不连续的端口。这样,端口扫描器就不会意外打开端口。这些端口不需要被 iptables 打开。
我调用的脚本就是这个。它为发送 SYN 数据包的 IP 打开一个特定端口 5 秒。
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
发送 SYN 数据包真的很痛苦,所以我使用脚本连接到我服务器的 SSH:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
Run Code Online (Sandbox Code Playgroud)
(很明显这里发生了什么......)
建立连接后,可以关闭端口。提示:使用密钥认证。否则,您需要非常快地输入密码。
我很确定您实际上无法更改版本公告。
保护 sshd 的最佳方法是:
前三个可以通过修改/etc/sshd_config来完成
第四个取决于您使用的防火墙软件。
| 归档时间: |
|
| 查看次数: |
43797 次 |
| 最近记录: |