我在配置 proftpd 以允许系统用户访问 centos 机器上的 /var/www/ 时遇到问题。
配置文件
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
ServerType standalone
DefaultServer on
VRootEngine on
#DefaultRoot ~ !adm
DefaultRoot /var/www/
VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
#PersistentPasswd off
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
<Global>
Umask 022
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>
<Limit LOGIN>
AllowUser …
Run Code Online (Sandbox Code Playgroud) 我有一个运行大约 100 个网站的虚拟机,我运行 logwatch、blockhosts 和 mod_evasive,并且在这三个之间我非常清楚每天发生的事情......不过,我确实收到了很多请求,例如:
/cgi-bin/commerce.cgi?search=/../../../../../../../../../../etc/passwd%00&category=A001 HTTP Response 302
/cgi-bin/commerce.cgi?register=../../../../../../../../../../proc/self/environ HTTP Response 302
/cgi-bin/commerce.cgi?display=/etc/passwd HTTP Response 302
/cgi-bin/commerce.cgi?display=../../../../../../../../../../proc/self/environ HTTP Response 302
/cgi-bin/commerce.cgi?search=/../../../../../../../../../../proc/self/environ%00&category=A001 HTTP Response 302
Run Code Online (Sandbox Code Playgroud)
没什么大不了的 - 这些从来没有去任何地方,不过,我想要一个很好的简单方法来将请求的 IP 添加到 hosts.allow 中的阻止列表中......
说出任何包含 /etc/passwd 或 /proc/self/ 的请求
有什么想法吗?
目前我正在使用 Blockhosts 和 mod_evasive 来“管理”轻微攻击和虚假请求,我想知道是否有更好/更有效的方法。行为类似于 mod_evasive 的东西,在请求进来时监控它们,但有能力控制使用关键字或正则表达式阻止的内容。
例如,任何时候有人请求诸如“../etc/passwd”之类的东西——我都想放弃该 IP 地址几天。我也看过fail2ban,但它和blockhosts 做同样的事情,监控日志文件。不正是我正在寻找的。
无论如何,服务器是运行 Apache 2.2 的 CentOS,在并行虚拟主机容器中并托管大约 100 个站点,所以我只能通过 Web 访问虚拟机主机服务器防火墙并尝试在每个域的 htaccess 中插入重写规则将无法维护.
有什么建议?
有没有办法使用 monit 监控 postfix 邮件队列?可用的脚本只是检查、启动/关闭/内存或 CPU。我想在队列开始填满时收到通知。能够在不同的队列上设置监视器以便能够做出适当的反应会很好。
apache-2.2 ×2
centos ×1
fail2ban ×1
ftp ×1
hacking ×1
monit ×1
monitoring ×1
postfix ×1
proftpd ×1
security ×1