首先修改ssh的連接端口逝段,增加破解難度
vi /etc/ssh/sshd_config
找到Port 22這一行顿乒,發(fā)現(xiàn)已經(jīng)被注釋了议街,將注釋解開(kāi),并添加一行Port 2333璧榄,保存退出特漩,重啟ssh
systemctl restart sshd.service
然后嘗試用2333端口進(jìn)行連接,如果連接不上骨杂,可以添加防火墻規(guī)則:
iptables -A INPUT -p tcp --dport 2333 -j ACCEPT
service iptables save
連接成功之后涂身,再打開(kāi)sshd_config
vi /etc/ssh/sshd_config
找到Port 22,刪除該行搓蚪,重啟ssh
systemctl restart sshd.service
至此蛤售,ssh連接端口已改為2333。
方法一
收集 /var/log/secure 里面的信息,若是某個(gè)IP 鏈接次數(shù)超過(guò)一定次數(shù) 悴能,則把此ip記錄到/etc/hosts.deny里面揣钦。
先把始終允許的IP填入 /etc/hosts.allow這很重要!比如:
sshd:19.16.18.1:allow
sshd:19.16.18.2:allow
vi /usr/local/bin/secure_ssh.sh
創(chuàng)建腳本
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat /usr/local/bin/black.list`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ ${#NUM} -gt 1 ]; then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
通過(guò)crontab來(lái)執(zhí)行漠酿,每個(gè)整點(diǎn)1分執(zhí)行一次冯凹。
crontab -e
1 * * * * sh /usr/local/bin/secure_ssh.sh
方法二
DenyHosts官方網(wǎng)站為:http://denyhosts.sourceforge.net
- 安裝
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
默認(rèn)是安裝到/usr/share/denyhosts目錄的。
- 配置
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
vi denyhosts.cfg
PURGE_DENY = 50m #過(guò)多久后清除已阻止IP
HOSTS_DENY = /etc/hosts.deny #將阻止IP寫入到hosts.deny
BLOCK_SERVICE = sshd #阻止服務(wù)名
DENY_THRESHOLD_INVALID = 1 #允許無(wú)效用戶登錄失敗的次數(shù)
DENY_THRESHOLD_VALID = 10 #允許普通用戶登錄失敗的次數(shù)
DENY_THRESHOLD_ROOT = 5 #允許root登錄失敗的次數(shù)
WORK_DIR = /usr/local/share/denyhosts/data #將deny的host或ip紀(jì)錄到Work_dir中
DENY_THRESHOLD_RESTRICTED = 1 #設(shè)定 deny host 寫入到該資料夾
LOCK_FILE = /var/lock/subsys/denyhosts #將DenyHOts啟動(dòng)的pid紀(jì)錄到LOCK_FILE中炒嘲,已確保服務(wù)正確啟動(dòng)宇姚,防止同時(shí)啟動(dòng)多個(gè)服務(wù)。
HOSTNAME_LOOKUP=NO #是否做域名反解
ADMIN_EMAIL = #設(shè)置管理員郵件地址
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
DAEMON_PURGE = 10m #該項(xiàng)與PURGE_DENY 設(shè)置成一樣夫凸,也是清除hosts.deniedssh 用戶的時(shí)間浑劳。
- 設(shè)置啟動(dòng)腳本
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --add denyhosts
chkconfig denyhosts on
service denyhosts start