有没有一种秘密方法可以将 MySQL 绑定到多个 IP 地址?
据我所知,my.cnf 中的bind-address参数不支持多个 IP,并且您不能拥有多个 IP。
我刚刚开始使用 Docker 和 Richt,现在我正试图弄清楚如何设置我的第一个 dockerized Apache 2 / PHP 环境。到目前为止,我一直在使用完整的 Linux VM,其中我使用将日志文件写入 /var/log/apache2,然后每天使用“logrotate”跳转到一个新文件。
日志文件主要用于即时错误检测(即登录服务器并使用less 打开当前的access.log 和error.log 文件)和fail2ban。
如果我是对的,那在 Docker 环境中是不可行的——主要是因为您通常无法登录到容器来查看日志。如果容器被移除,日志也会丢失。
那么:在这种情况下,使用/模拟/替换 access.log/error.log 的最常用方法是什么?生产和开发环境的常见解决方案是什么?
到目前为止,我的想法包括使用 NFS 共享(速度慢,如果不小心可能会导致文件名冲突)和logstash(不确定它是否值得付出努力并且对于较小的站点甚至开发环境是否可行?)但我相信聪明的人有没有想出更好的解决方案?
不确定它是否有所作为,但目前我将我的 Docker 映像基于php:5.6-apache。
在我的 Apache 配置中,如果我看到访问者来自特定的 IP 范围,我想设置一个环境变量。目前我这样做:
SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip
SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip
Run Code Online (Sandbox Code Playgroud)
我更喜欢的是这样的:
SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip
SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip
Run Code Online (Sandbox Code Playgroud)
...因为我认为将IP地址转换为字符串然后执行正则表达式完全浪费资源。
我可以做一个
Deny From 194.8.74.0/23
Run Code Online (Sandbox Code Playgroud)
...但后来我没有得到一个可以在我的 403 错误页面中检查的变量 - 找出访问被拒绝的原因。
有什么建议我可能会错过吗?是否有可以根据“IP 地址范围”设置环境变量的 Apache2 MOD?
如果我只想对 apache2.conf 中的某些文件应用规则,我可以使用 <FilesMatch>。
例如:
<FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$">
deny from env=hotlink
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
但是有没有与 FilesMatch 相对的,即 FilesNotMatch?
我想要实现的是:
<FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$">
<FilesNotMatch "ban">
deny from env=hotlink
</FilesNotMatch>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
(拒绝盗链服务器上的所有图像但横幅)
或者你有什么建议我如何修改我的正则表达式以不匹配包含“ban”的任何内容?
我的 MySQL 数据库服务器目前遇到一个奇怪的问题:
当我尝试使用 mysql 命令行工具从本地访问数据库时,它不再要求输入密码。
我需要一个有效的管理员用户名。我还需要一个密码才能进行远程访问(即从另一个 IP)。例如,当我从 PHP 脚本访问数据库时,我需要密码。但是,当我尝试从本地主机/命令行访问数据库时,它会让我直接使用管理用户访问数据。
他们(管理员用户)设置了密码 - 正如我所提到的 - 当我尝试通过 PHP 访问数据时,我仍然需要指定这些密码。
更改密码没有帮助。
非管理用户需要指定他们的密码,但如果他们可以使用“mysql -u root”(或另一个管理员用户帐户名)到达任何地方,这并没有真正的帮助。
(系统Debian Linux Lenny、MySQL 5.0.51a)
有任何想法吗?有什么可以解释这种行为吗?我不明白这是怎么发生的。
我只是尝试添加一个新的 fail2ban 规则,该规则应该扫描 Apache2 错误日志以查找可疑文件访问尝试(尝试访问三个不存在的常见登录 url 的人通常没有良好的意图)。
为此,我在 jail.local 文件中添加了一条新规则:
[apache-suspiciousfiles]
enabled = true
port = http,https
filter = apache-suspiciousfiles
banaction = iptables-allports
action = %(action_mwl)s
logpath = /var/log/apache2/error*.log
maxretry = 3
Run Code Online (Sandbox Code Playgroud)
然而,这在我的日志中给了我一个意外的错误消息:
2014-02-10 13:28:51,450 fail2ban.jail : INFO Jail 'apache-suspiciousfiles' started
2014-02-10 13:28:51,690 fail2ban.actions.action: ERROR iptables -N fail2ban-apache-suspiciousfiles
iptables -A fail2ban-apache-suspiciousfiles -j RETURN
iptables -I INPUT -p tcp -j fail2ban-apache-suspiciousfiles returned 200
Run Code Online (Sandbox Code Playgroud)
在那之前我已经用 fail2ban-regex 检查过过滤器,所以我很确定它不在那里。
(注:这里是“返回的200”,很多人好像对100有问题,但是这个是200左右)