SSH最近出了个新的玩法,使用Endlessh,对于猜ssh密码的人,能够缓慢的随机的无限的发送SSH banner,可以锁定数小时甚至数天,可以将真正的SSH服务放在另一个端口上,在SSH被暴破时并不会打扰到真正的服务器。
那么如何配置这个Endlessh呢?
本教程使用ArchLinux系统环境
我们可以去github上下载到

pacman -S git
git clone https://github.com/skeeto/endlessh.git
cd endlessh/

用ls查看目录里的文件发现里面的文件

[[email protected] endlessh]# ls
Dockerfile  Makefile  README.md  UNLICENSE  endlessh.c    util

我们可以通过docker或者make来安装这个程序(本次使用make)

#安装make
pacman -S make

我们需要安装gcc

pacman -S gcc

然后make

make

此时目录中有这些文件

[[email protected] endlessh]# ls
Dockerfile  Makefile  README.md  UNLICENSE  endlessh  endlessh.c  util

在/etc中创建一个目录/etc/endlessh然后创建config文件(config文件是配置文件)

mkdir /etc/endlessh
touch /etc/endlessh/config

然后编辑config文件

vim /etc/endlessh/config

github中的作者给出了示例配置文件(可以参考)

# 监听新ssh连接端口,有防火墙的请在防火墙中打开2222端口
Port 2222

# 随机SSH banner每行之间的毫秒数
Delay 10000

# 每行随机长度的最大值
MaxLineLength 32

# 一次接受的最大连接数
MaxClients 4096

# 日志详细级别(0:少 1:标准 2:多)
#   0 = Quiet
#   1 = Standard, useful log messages
#   2 = Very noisy debugging information
LogLevel 0

编辑完成后运行这个程序

./endlessh -f config

要保持后台运行可以使用setsid

setsid ./endlessh -f config

endlessh默认情况下并不会输出日志消息
可以通过运行

./endlessh -v >endlessh.log 2>endlessh.err

来将日志和错误日志生成在endlessh.log里和endlessh.err里
如果运行后报错返回

Address family not supported by protocol

请查看grub配置文件中是否禁用了IPV6,如果禁用了请取消禁用