我有一个运行多个服务的debian-machine,例如带有http和https的Apache,jabber和一个用于pipe理的openssh服务器。 ssh服务器没有在端口22上运行。它的端口类似于端口62111.我使用fail2ban来保护openssh。 因此,无论何时攻击者试图连接到端口62111上的ssh,在端口62111上被fail2ban禁止了两天之前,他有两次尝试。 我想在端口22上启动一个(假的)SSH服务器,每当有人试图连接到这个端口时,他将被iptables永久禁止在所有端口上,或者至less在我放弃iptables规则之前。 任何合法的SSH连接都不会尝试ssh到端口22,因为每个pipe理员都知道正确的SSH端口。 这个想法是攻击者会先尝试攻击22号端口。 所以他甚至没有机会尝试SSH到港口62111.我不在乎那些cookies看到我的网站。 所以在任何端口上(包括80和443)都可以阻止它们。 任何build议如何做到这一点?
我刚刚在我的Centos反向代理服务器上完成了fail2ban的设置。 我能够得到它阻止所有要求,如果一定的标准得到满足(非常简单)。 但是,现在我想redirect违规用户,而不是阻止他们。 我知道这是可能的使用自定义操作文件,但我似乎无法让它正常工作。 我想redirect到服务器上的另一个端口(也许运行Apache与一个自定义的网页,说明为什么他们被redirect)或完全到另一个网站。 有什么想法吗? 这是我尝试redirect到另一个端口(意图是将违规用户redirect到同一台服务器上的端口8080)。 该操作称为防火墙redirect,它来自firewallcmd-ipset。 # Fail2Ban action file for firewall-cmd/ipset # # This requires: # ipset (package: ipset) # firewall-cmd (package: firewalld) # # This is for ipset protocol 6 (and hopefully later) (ipset v6.14). # Use ipset -V to see the protocol and version. # # IPset was a feature […]
我设置了Fail2ban来保护ssh,我使用firewalld,我看到很多人推荐使用anaction = iptables-multiport和其他使用iptables的解决scheme,而不是firewalld声称它更快或消耗更less的资源。 正如我之前所说,我已经configuration了firewalld(实际上我只是阻止了所有的端口,除了我用了3分钟),我想知道是否应该使用iptables或firewalld通过设置firewallcmd-ipset而不是上述configuration(以较快者为准)。 另外我注意到,我有一个安装的iptables软件包,甚至很难,我不记得安装它,但它不运行,也不能运行。 所以只是为了澄清: 哪一个更好的performance? 哪个是fail2ban在centos7上使用的默认防火墙? Firewalld取代了Iptables,还是仅仅是一种与之交互的不同方式? 谢谢!
我正在使用fail2ban/firewalld来限制对Nginx服务器的类似bot的访问。 通常,相应的监狱configuration如下所示: [nginx-botsearch] #banaction = iptables-multiport enabled = true filter = nginx-botsearch logpath = /var/log/nginx*/*access*.log maxretry = 3 bantime = 3600 这按预期工作(缺省值为firewallcmd-ipset ),即iptables -L命令在INPUT_direct链中显示一个条目: REJECT tcp — anywhere anywhere multiport dports http,https match-set fail2ban-nginx-botsearch src reject-with icmp-port-unreachable 与相应的fail2ban-nginx-botsearch ipset 。 但是,当bantime增加时,我注意到一个奇怪的行为。 一切正常预计bantime <= 4294967 。 当我设置bantime = 4294968并重新加载fail2ban服务时, iptables输出中的条目丢失(ipset未被创build),实际上,使用例如ab实用程序进行testing显示禁止未被强制执行。 有趣的是,使用banaction = iptables-multiport即使对于“大型”禁令也是如此。 什么可能是这种行为的原因? 我在CentOS 7上使用了fail2ban […]
我有一个运行libvirt / kvm和fail2ban (用于SSH攻击)的Ubuntu 9.04服务器。 libvirt和fail2ban都以不同的方式与iptables集成。 Libvirt使用(我认为)一些XMLconfiguration,并在启动(?)configuration转发到VM子网。 Fail2ban安装一个自定义链(可能在初始化时)并定期修改它以禁止/禁止可能的攻击者。 我还需要安装我自己的规则,将各种端口转发到运行在虚拟机和其他机器上的服务器,并设置基本的安全性(例如,除了我想打开的几个端口之外,放弃所有inputstream量),当然,我希望无需重新启动即可安全地添加/删除规则。 在我看来,iptables是一个强大的工具,缺乏某种标准化的方式来处理所有这些东西。 每个项目和每个系统pipe理员似乎都做了不同的事情! (而且我认为这里有很多“货物崇拜”pipe理员,人们会克隆粗暴的方法,比如“使用iptables – 像这样保存”。) 对于这些(和其他)工具如何操纵netfilter表,开发我自己的脚本或者只是手动执行iptables命令,我们没有办法弄清楚这两个工具(可能是其他的)究竟是什么样子的,这些其他工具? 任何新的标准或项目都是为了给这个领域带来理性? 即使我错过了一个有用的网页,可能至less包括这两个包在一起?
我有麻烦设置fail2ban检查nginx错误日志中的失败httpvalidation条目。 即使提供的failregex工作,fail2ban似乎跳过了监狱configuration。 我已经尝试将loglevel设置为4,但没有关于nginx监狱的任何失败的信息。 此外,我想在日志文件中的时间戳必须匹配系统时间,这当然是事实。 奇怪的是我设置的其他监狱(ssh)完美。 我没有想法,也许你有一个。 这里是希望你所需要的所有信息。 谢谢。 fail2ban.conf [Definition] loglevel = 3 logtarget = /var/example/logs/fail2ban.log socket = /var/run/fail2ban/fail2ban.sock jail.conf [DEFAULT] ignoreip = 127.0.0.1 bantime = 60 findtime = 600 maxretry = 3 backend = auto [ssh-iptables] enabled = true filter = sshd action = iptables-allports[name=SSH, protocol=all] logpath = /var/log/auth.log [nginx] enabled = true filter […]
问题是modprobe和iptables不能在LXC容器内工作。 LXC是Linux容器的用户空间控制包,这是一种轻量级的虚拟系统机制,有时被称为“chroot on steroids”。 容器内的iptables错误是: # iptables -I INPUT -s 122.129.126.194 -j DROP > iptables v1.4.8: can't initialize iptables table `filter': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. 我猜测它不能工作,因为LXC容器共享一个内核,主要的服务器内核。 在这种情况下,我如何做fail2ban。 modprobe和iptables在主服务器上工作,所以我可以在那里安装它,并以某种方式链接到日志文件,我的猜测? 有什么build议么?
有时我会在Apache日志中看到可疑的“文件未find”错误集合,基本上使用该模式 File does not exist: /var/www/file, referer: http://my.server.com/file 用人的话来说:文件没有被find,尽pipe它在这里被引用。 一个明显的黑客攻击尝试,这是几乎不可能的(和REQUEST_URI往往足够的build议相同)。 在我看来,一个明确的fail2ban案例 – 如果我能得到反向引用在这里工作: failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+), referer: http://.+\1$ (Justin案例:上面的例子假设该networking服务器的DIRECTORY_ROOT是/var/www ) 我search了几个小时,上下search了fail2ban的wiki ,但是没有任何地方可以find关于filter反向引用的声明。 他们不支持,或者我做错了吗? 任何提示如何使它工作(除了从“肮脏的黑客”,如首先使用mod-rewrite发送请求到另一个假的url,然后赶上(如果任何人有兴趣,我可以在一个答案详细说明这种方法),或者使用mod-security做类似的事情)? 整个日志行被要求: [Fri Nov 08 14:57:28 2013] [error] [client 50.67.234.213] File does not exist: /var/www/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;, referer: http://www.myserver.com/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found; (对不起,日志只是切换,所以这个长期候选人是目前唯一剩下的;为了隐私的原因做了小的调整)
我在文档和其他脚本中看到了一些这样的提及,但没有具体说明它们是如何使用的。 任何人都可以给我一些例子吗? 这仅仅是一个例子吗? myvar=7 . . . [ssh] bantime=%(myvar)s 如果是这样的话呢? 其次,如何在jail.conf中使用“动作快捷键”? 例如action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]在这?
有没有一种方法来设置禁止阻止太多次打wp-login的IP? 我曾尝试添加这个jail.local: [apache-wp-login] enabled = true action = iptables[name=wplogin, port=http, protocol=tcp] sendmail-whois[name=wplogin, dest=root, [email protected]] filter = apache-wp-login logpath = /var/log/apache2/other_vhosts_access.log maxretry = 5 然后在/etc/fail2ban/filter.d/apache-wp-login.conf中添加一个定义: [Definition] # Option: failregex # Notes.: Regexp to catch Apache dictionary attacks on WordPress wp-login # Values: TEXT # failregex = [\w\.\-]+ [\w\.\-]+ .*] "POST /wp-login.php 仍然越来越wplogin尝试超过maxentry限制…可能是因为我使用组合的日志格式,而不是共同的?