我正在设置由 Linode 托管的 Ubuntu 服务器。
我正在逐步完成他们的安全指南,他们建议在禁用基于密码的 SSH 登录后安装 fail2ban。
如果无法使用 SSH 密钥进行字典攻击,我认为安装 fail2ban 没有意义。
我在这里错过了什么吗?
我在文档和杂项脚本中看到了一些对这些的提及,但没有具体说明它们是如何使用的。谁能给我一些例子?
这只是一个案例吗
myvar=7
.
.
.
[ssh]
bantime=%(myvar)s
Run Code Online (Sandbox Code Playgroud)
如果是这样,重点是什么?
其次,如何使用 jail.conf 中的“操作快捷方式”?例如action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"],关于此的任何文档?
我注意到我的 Ubuntu Xenial 服务器上有一些奇怪的东西。
它在默认端口上有 SSH,并且有 fail2ban。
Fail2ban 正在检测服务器上的蛮力尝试并相应地记录:
2017-01-12 10:58:19,927 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:03:27,808 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:08:37,936 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:13:51,538 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:18:57,939 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:24:10,399 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:29:23,161 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:34:34,064 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:39:44,540 fail2ban.filter [23119]: INFO [sshd] Found …Run Code Online (Sandbox Code Playgroud) 我为给我带来麻烦的垃圾邮件机器人设置了一个自定义监狱。使用“bantime -1”我试图永久禁止僵尸网络。我认为它有效,但是当每周发生 logrotate 时,fail2ban 取消了所有 IP。
使用fail2ban永久禁止IP的最佳方法是什么?
做事情像这个+日志永久禁止IP到一个单独的文件(即没有得到旋转)好的解决办法?
干杯,托马斯
PS:我想在没有新的 cronjobs 和脚本的情况下做到这一点。
PPS:我使用的是 Debian。
我刚刚在 CentOS 服务器上安装了 fail2ban 以响应 SSH 蛮力尝试。fail2ban 的 sshd.conf 文件中的默认正则表达式与 audit.log 中的任何条目都不匹配,这是 SSH 似乎记录所有连接尝试的地方,所以我试图添加一个匹配的表达式。
我试图匹配的字符串如下:
type=USER_LOGIN msg=audit(1333630430.185:503332): user pid=30230 uid=0 auid=500
subj=user_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='acct="root": exe="/usr
/sbin/sshd" (hostname=?, addr=<HOST IP>, terminal=sshd res=failed)'
Run Code Online (Sandbox Code Playgroud)
我试图使用的正则表达式是:
^.*addr=<HOST>, terminal=sshd res=failed.*$
Run Code Online (Sandbox Code Playgroud)
我已经使用 regextester.com 和 regexr 来尝试构建正则表达式。测试人员给了我这个正则表达式的匹配项:^.*addr=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}, terminal=sshd res=failed.*$但是如果我不在<HOST>正则表达式中使用标签,fail2ban-regex 会抱怨。但是,使用^.*addr=<HOST>, terminal=sshd res=failed.*$给了我 0 个匹配项。
在这一点上,我完全被困住了,我将不胜感激任何帮助。我在尝试使用的正则表达式中做错了什么?
我正在尝试在我的测试服务器上配置fail2ban。我只想临时阻止任何试图探测我网站的脚本机器人。所以所有有cgi-bin, admin,setup.php等等的东西。我之前查看了所有生成 404 错误的内容,例如grep "HTTP/1.1\" 404" access.log | awk '{print $7 } ' | sort | uniq -c | sort -n我的 access.log 中的内容。
我确保我的所有网址都没有这些部分。
所以在安装后我创建了jail.local并且没有对jail.conf. 我的文件看起来像这样(我想阻止 IP 10 分钟):
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 600
destemail = myemail
banaction = iptables-multiport
action = %(action_mwl)s
[apache-script-bots]
enabled = true
port = http,https
filter = apache-script-bots
logpath = /var/log/apache2/access.log
maxretry = 1
Run Code Online (Sandbox Code Playgroud)
我也创造了apache-script-bots.conf在filter.d文件夹,里面只有这里面:
[Definition] …Run Code Online (Sandbox Code Playgroud) 我对文件 /etc/fail2ban/jail.local(/etc/fail2ban/jail.conf 的副本)进行了一些更改并保存,但现在fail2ban 没有启动。如果我删除 jail.local,则它会重新启动。所以问题出在这个文件(jail.local)中,但是经过 2 个小时的查找,我真的不知道错误在哪里。
请问,有人可以帮我找到问题吗?谢谢你。
这是文件
#
# WARNING: heavily refactored in 0.9.0 release. Please review and
# customize settings for your setup.
#
# Changes: in most of the cases you should not modify this
# file, but provide customizations in jail.local file,
# or separate .conf files under jail.d/ directory, e.g.:
#
# HOW TO ACTIVATE JAILS:
#
# YOU SHOULD NOT MODIFY THIS FILE.
#
# It will probably be overwritten or improved in …Run Code Online (Sandbox Code Playgroud) 所以我的 fail2ban 没有工作,为了让它工作,配置文件变得混乱。决定从头开始。
我以 sudo 的身份运行这些
apt-get remove fail2ban
apt-get purge fail2ban
rm -r /etc/fail2ban
Run Code Online (Sandbox Code Playgroud)
希望我能完全删除它,因为前两个命令保留了凌乱的配置文件。
所以现在当我 apt-get install fail2ban 它下载并安装包,但是当我尝试运行它时有这个
* Starting authentication failure monitor fail2ban ERROR Found no accessible config files for 'fail2ban' under /etc/fail2ban
ERROR No section: 'Definition'
ERROR No section: 'Definition'
ERROR Found no accessible config files for 'fail2ban' under /etc/fail2ban
ERROR Found no accessible config files for 'jail' under /etc/fail2ban
ERROR No section: 'Definition'
ERROR No section: 'Definition'
Run Code Online (Sandbox Code Playgroud)
这些配置文件确实丢失了。为什么我重新安装 F2B 时没有重新创建它们?如何从头开始并将其重新安装为默认值?
我使用的是 Ubuntu 14.04.2 LTS
我看到在创建我的 AWS 实例时,我只选择了我的 IP 地址能够访问我的服务器。还有一个为您配置的 RSA 密钥。在这种情况下,我真的需要在服务器上安装 fail2ban 吗?
我的 CDN 提供商给了我一大堆要列入白名单的 IP 列表,我需要将它们添加到 Jail.local 中的ignoreip = 行中。
提供的IP地址列表是一行一行的,一行一个IP地址,但是ignoreip只是一行,并且指令表明可以使用空格分隔符定义多个地址。
应该如何将此列表添加到ignoreip行中?
担忧: 1. 如果我手动将 IP 地址列表转换为空格分隔符,该行会很长,我担心它可能太长而被忽略。第二,手动更改可能会出错并且不易查看。
有没有办法可以将其逐行添加到jail.local文件中的ignoreip字段中?
有没有办法可以将 IP 地址列表放在一个单独的文件中?那会更干净。
请指教。
谢谢-大卫