声明: 文中提到的链接。请网友自动识别。 关于本文首页都是一字一句敲出的。如有错别字,不要见怪。程序员都没有几个会写的,能看都行。 文中提到的 3Q影院 www.3qmv.com 域名。目前为电影。本电影站,作为学习安防 参考。如遇版权问题 请转告站长。我们立即删除处理。如需要看电影请购买有版权的地方观看。
更多的学习 你会或得更多。也是为了记录面得以后忘记了。 都知道搜索引擎都TM铺天盖地的转载。都找不到解决方案。找到都需要半天。
转载请说明:来源为不让有需要的人走弯路。 https://blog.csdn.net/parick_ 贡献比索取更好
我不是一个专业的网站安全人员。都是业余的。只是记录自己遇到过的坑。如有专业人士绕道。
在网站运行的这段时间。学习了很多。尤其是安全方面。
观看本文章的问题:屏蔽暴力IP 自动屏蔽和手动屏蔽
1.fail2ban 官网 http://www.fail2ban.org 英语好的可以去官网看。反正我是渣渣。就不去了。
下载地址-> https://github.com/fail2ban/fail2ban/archive/0.9.3.tar.gz
下载位置 -> http://www.fail2ban.org/wiki/index.php/Downloads
最新版 自己去官网看了后再更改 0.9.3. 就好了
如何安装 这是最新的
wget https://github.com/fail2ban/fail2ban/archive/0.9.3.tar.gz
tar -xzvf fail2ban-0.9.3.tar.gz
cd fail2ban-0.9.3
python setup.py install
但是centos默认自带fail2ban
yum -y fail2ban
fail2ban 运行的原理。(我不是学者,不是教授没那么多J8调调)为了通俗的讲。
比如 www.3qmv.com 请求一个ip或者一个人来访问这个网站的时候就会在后台记录当前访问的。ip地址。请求的那个文件。什么时候请求的。格式如下
这是就是日志。
fail2ban 就是通过扫描日志 抓取设定的日志。加入黑名单。就这么简单。其他原理我们也不需要晓得。我又不开发fail2ban。只要会用都行。
里面目录多得一逼。我都不详细讲解了。自己慢慢去看,主要是如何用fail2ban 阻挡IP
/etc/fail2ban/fail2ban.conf 日志设定文档
/etc/fail2ban/jail.conf 阻挡设定文档
/etc/fail2ban/filter.d 具体阻挡内容设定目录
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/fail2ban.conf
logtarget = /var/log/fail2ban.log 记录文件的位置。有需要改没需要不改。主要晓得位置在哪里都行了。
cat /etc/fail2ban/jail.conf 简称 监狱
一个一个讲 [DEFAULT] 默认配置。还有很多 也可以自己加。(DEFAULT是系统默认的)
ignoreip = 127.0.0.1/8 那些不过滤 比如 127.0.0.1 是本地局域网 你过滤干嘛.
bantime = 36000000 #屏蔽时间,单位:秒 你想写好久就好久。
maxretry = 2 #这个时间段内超过规定次数会被ban掉 就是比如登录2删除ssh密码错误加入黑名单。
backend = polling #日志修改检测机制(gamin、polling和auto这三种)
usedns = warn
action = iptables[name=SSH, port=ssh, protocol=tcp] 如果被禁止的ip port=ssh 是只禁止tcp 还是禁止all
是不是简单得一逼。
刚才不是讲了 可以自己配置
其实 fail2ban 有很多默认规则。
/etc/fail2ban/filter.d
上面是默认规则。
这个是一个已经配置好的规则[ssh-iptables] 这个规则的名字
enabled = true 等于 true 才会启动,不然不会加载这个规则。
filter = sshd 这个尼玛都关键。 在上面filter.d中不是看到有很多规则吗?自己复制上面的名字。上面标红位置。
action = iptables[name=SSH, port=ssh, protocol=tcp] 上面有讲 都是违反后请求的动作。
logpath = /var/log/secure #检测的系统的登陆日志文件 不是说了嘛? fail2ban 是烧苗日志的。不给日志烧苗啥子。。
maxretry = 3 #最大尝试次数 最大尝试次数、 好了 这有爽歪歪了。
service fail2ban restart #重启
chkconfig fail2ban on #设置为开机自动启动
fail2ban-client status #验证Fail2Ban是否正常运行
iptables -L #列出数据
部分违反请求的IP 不都需要手动解禁。
提示: 遇到一个小情况。就是当在测试是否成功的时候。用自己的ip 测试。后会被加入黑名单。重启路由。或者把禁止时间改短。 因为我遇到过。自己被挡在外面了。重启家里面的外网路由重新获取ip。
iptables 手动加入被禁止的ip
iptables -I INPUT -s 58.218.200.2 -j DROP 红色部分替换。你想禁止的ip
iptables -I INPUT -s 58.218.200.2 -j DROP
提示 不建议使用 iptables 这样 禁止 ip 因为量大后每一个请求都会检查 是否被禁止导致正常用户访问慢。
ipset 手动加入
ipset add openapi 58.218.200.2 ipset的一个优势是集合可以动态的修改,即使iptables的规则正在使用这个集合
iptables ipset 我都不推荐使用。推荐使用 fail2ban 自动自动自动啊。手动 哪来那么多时间。具体想知道怎么用的,去百度。多得很。我都不讲了。
使用优先级 fail2ban >ipset>iptables