CentOS 7 使用denyhosts防范暴力破解

 

# 查看系统登陆日志
vim /var/log/secure

修改ssh默认端口

开放新的端口

# 开放端口
firewall-cmd --zone=public --add-port=20000/tcp --permanent
# 重启防火墙
firewall-cmd --reload

修改/etc/ssh/sshd_config

vi /etc/ssh/sshd_config
#Port 22         //这行去掉#号
Port 20000      //下面添加这一行

重启ssh

systemctl restart sshd.service

安装和配置DenyHosts

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

安装denyhosts

# 更新系统(建议所有系统都先更新)
yum update

# 安装denyhosts
sudo yum install denyhosts

# 加入开机启动
$ chkconfig --add denyhosts


# 配置完后重启denyhosts
$ /etc/init.d/denyhosts restart

# 加入开机启动(第二种方式)
$ systemctl enable denyhosts

# 配置完后重启denyhosts(第二种方式)
$ systemctl restart denyhosts

# 查看denyhosts收集到的恶意ip
$ cat /etc/hosts.deny

# 统计该文件的行数
$ cat /etc/hosts.deny | wc -l

 注:是hosts.deny和hosts.allow。不是host.deny!不是host.deny!不是host.deny!

denyhosts配置详解

默认配置就能很好的工作,如要个性化设置可以修改 /etc/denyhosts.conf

############ THESE SETTINGS ARE REQUIRED ############
#sshd的日志文件
SECURE_LOG = /var/log/secure 
#将阻止IP写入到hosts.deny,所以这个工具只支持 支持tcp wrapper的协议     
HOSTS_DENY = /etc/hosts.deny 
#过多久后清除已阻止的IP,即阻断恶意IP的时长  (4周)   
PURGE_DENY = 4w 
#阻止服务名   
BLOCK_SERVICE  = sshd
#允许无效用户登录失败的次数     
DENY_THRESHOLD_INVALID = 5
#允许普通有效用户登录失败的次数   
DENY_THRESHOLD_VALID = 10  
#允许root登录失败的次数  
DENY_THRESHOLD_ROOT = 1   
#设定 deny host 写入到该资料夹   
DENY_THRESHOLD_RESTRICTED = 1
#将deny的host或ip记录到work_dir中      
WORK_DIR = /var/lib/denyhosts      
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
#是否做域名反解   
HOSTNAME_LOOKUP=YES  
#将DenyHost启动的pid记录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务  
LOCK_FILE = /var/lock/subsys/denyhosts    

############ THESE SETTINGS ARE OPTIONAL ############
#设置管理员邮件地址 例如****@163.com
ADMIN_EMAIL = root  
SMTP_HOST = localhost  
SMTP_PORT = 25  
SMTP_FROM = DenyHosts <nobody@localhost>  
SMTP_SUBJECT = DenyHosts Report from $[HOSTNAME]  
AGE_RESET_VALID=5d  
AGE_RESET_ROOT=25d  
AGE_RESET_RESTRICTED=25d  
AGE_RESET_INVALID=10d

######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE  ##########
#denyhost服务日志文件
DAEMON_LOG = /var/log/denyhosts  

DAEMON_SLEEP = 30s 
#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间 
DAEMON_PURGE = 1h      

启动命令

service denyhosts start 或 systemctl start denyhosts
service denyhosts stop 或 systemctl stop denyhosts
service denyhosts status 或 systemctl status denyhosts

# 加入自启动
chkconfig denyhosts on 或 systemctl enable denyhosts

 

转载于:https://my.oschina.net/itlzm/blog/1610812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值