笔者有一台云服务器,通过长期的使用发现ssh服务容易受到暴力破解,所以在此也建议大家凡是放在公网上的东西密码不能太简单。
1. 更改原有ssh服务端口号
sudo vi /etc/ssh/sshd_config
编辑配置文件将ssh的端口号改为一个不常用的端口号,让默认的22留给蜜罐使用。
#Port 22
Port XXX
重启ssh服务sudo systemctl restart sshd
2. 安装ssh蜜罐
这里有两个开源软件值得推荐安装
2.1 cowrie安装过程
安装依赖包
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
新建用户
对外提供服务的程序以普通用户身份运行,能更好的保证服务器安全性。
sudo adduser --disabled-password cowrie
配置环境
$ cd /home/cowrie/
$ git clone https://github.com/cowrie/cowrie.git
$ cd /home/cowrie/cowrie
$ virtualenv --python=python2 cowrie-env
$ source cowrie-env/bin/activate
$ pip install --upgrade pip
$ pip install --upgrade -r requirements.txt
创建修改cowrie.cfg配置文件
$ cd etc
$ vi cowrie.cfg
[honeypot]
hostname = VM_ubuntu
[output_textlog]
enabled = true
logfile = ${honeypot:log_path}/audit.log
format = text
开始运行
$ bin/cowrie start
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
查看日志
grep login /home/cowrie/cowrie/var/log/cowrie/audit.log | awk '{print $5}' | sort | uniq -c
通过查看日志可以知道服务器暴力登录破解常用的用户名密码组合,在尝试登录成功后还能进一步了解破解后使用的攻击命令,最常用的密码是
123456,admin,p@ssw0rd
。
2.2 ssh-honeypot安装过程
ssh-honeypot是更加轻量级的ssh蜜罐,它提供的功能只有破解记录登录的用户名密码组合,仅适合分析攻击来源、常用密码。运行前ssh-honeypot需要停掉前面的cowrie。
安装运行过程
$ git clone https://github.com/droberson/ssh-honeypot.git
$ cd ssh-honeypot
$ sudo apt install libssh-dev
$ make
$ ssh-keygen -t rsa -f ./ssh-honeypot.rsa
$ bin/ssh-honeypot -r ./ssh-honeypot.rsa -p 22 -l mylog.log -f my.pid -u cowrie -d
-l mylog.log
选择日志文件,-u cowrie
以刚才创建的cowrie身份运行,-d
作为守护进程运行。
查看日志
awk '{print $7,$8}' mylog.log | sort | uniq -c
通过分析攻击来源可以有针对的屏蔽对特定IP的响应,安装ssh蜜罐使得服务器真正的ssh服务难以被发现。