猜测密码的过程可能是你的ssh密码,也有可能是你的邮箱密码。我这里以常用的ssh演示。
# 实时查看日志
[root@blog ~]# tail -f /var/log/secure
做为一名优秀的管理员,这种问题不应该等到机器瘫痪了再来,该出手时就出手。
1.简单处理
如果经常是同一个IP来爆破,可以使用防火墙加入黑名单中。
永久配置:--permanent
--add-source=网段地址
--add-service=协议
# 例子
# 拒绝网段或单个IP访问
firewall-cmd --permanent --zone=block --add-source=172.34.0.0/24
firewall-cmd --permanent --zone=block --add-source=172.34.4.207
firewall-cmd --permanent --zone=block --add-service=http
firewall-cmd --permanent --zone=block --add-service=ftp
# 重载生效
firewall-cmd --reload
# 删除不需要的
firewall-cmd --permanent --zone=block --remove-source=172.34.4.207
或者把IP访问/etc/hosts.deny文件中,你再用此ip登录就不行了。
vim /etc/hosts.deny
# 以如下的形式添加内容
sshd:213.136.88.159
sshd:207.154.196.169
sshd:167.172.188.48
sshd:45.133.1.78
sshd:206.81.23.148
……
稍微高级的点的方法,也可以使用脚本分析日志,当IP失败设定次数时,加到此文件中。
2.faill2ban
# ubuntu
sudo apt-get install fail2ban
# centos/rhel
sudo yum -y install fail2ban
常用的配置选项:
root@ubuntu:~# fail2ban-client --help
Usage: /usr/bin/fail2ban-client [OPTIONS] <COMMAND>
Option:
-c <DIR> 设置配置目录,服务端在启动时将从该目录下搜索并加载配置文件。
-s <FILE> 设置服务端套接字文件路径。
-p <FILE> 设置服务端启动时应该创建的进程文件路径。
-d 转储配置,用于调试,使用该选项则会将配置信息显示到屏幕上。
-i 以交互的方式操作Fail2ban。
-v 较详细的显示操作信息。
-q 较少的显示操作信息。
-x 设置服务端在启动前将删除套接字文件。
-b 设置服务端将在后台运行。
-f 设置服务端将在前台运行。
-h, --help 显示帮助信息。
-V, --version 显示版本信息。
Command:
start 启动服务端和所有监禁(jail)。
reload 重载所有配置。
reload <JAIL> 重载指定的监禁(jail)配置。
stop 停止服务端和所有监禁(jail),当Fail2ban服务交
由"systemctl"托管时,使用该命令将会导致服务端重启。
status 获取当前监禁(jail)的运行状态。
ping 测试服务端的活跃状态。
help return this output
version 显示服务端的版本。
配置文件路径:
[root@blog ~]# vim /etc/fail2ban/jail.local.conf
# 拷贝默认配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
# 只关注sshd这部分,其它的原理类似,自成一个板块
[sshd]
enabled = true # 是否开启动
filter = sshd # 过滤sshd协议
port = 22 # 监控端口22,根据自己服务器修改ssh端口
action = %(action_mwl)s # 执行动作
logpath = /var/log/secure # 监控日志来源
maxretry = 5 # 最大尝试次数
bantime = 18000 # 禁止IP地址的持续时间(“ m”代表分钟)。如果键入的值不带“ m”或“ h”(代表小时),则将其视为秒。值-1将永久禁止IP地址。要非常小心,不要将自己永久锁定在自己的面前。
findtime = 1800 # “尝试失败次数过多”的值。
[DEFAULT]
ignoreip = xxx.xxx.xxx.xxx
# 设置开机自启动
sudo systemctl enable fail2ban
# 启动
sudo systemctl start fail2ban
# 查看运行状态
sudo systemctl status fail2ban
任意找一个IP测试一下(注意:不要自己把自己关在外面了!!!)
# 查看状态
sudo fail2ban-client status
# 查看sshd监控状态
sudo fail2ban-client status sshd
可以看到,我在执行多次失败操作后,我的成ip被成功禁止登录了。
被禁止后有提示被拒绝登录,至此!
原文始发于微信公众号(释然IT杂谈):Linux服务器总是被暴力破解,用fail2ban来加强防护(用法详解)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论