Categories
學習筆記

DirectAdmin下 Apache+Squid log记录真实IP

不知道怎么地 昨天洛杉矶的DirectAdmin虚拟主机的服务器被攻击了
想去封ip 才想起忘了让Apache记录从CDN获取的真实IP
结果只能手忙脚乱地一台一台前端查Squid日志 搞得我一个头两个大
不过好在节点自动切换 后端没接到任何的猛烈的攻击 前端也没什么事
不过这却引起了我对攻击的防备心了 这里做些笔记

(一)让Squid记录真实IP(默认已经启用)
1 修改/etc/squid/squid.conf配置文件

forwarded_for on

(二)修改/etc/httpd/conf/httpd.conf这个Apache配置文件启用第三方mod_rpaf.c滤过前端IP 获取真实IP
1 注解掉段下日志的记录方式

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

2 在下一行添加

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

3 在配置文件最下方添加新的段


RPAFenable On
RPAFsethostname On
RPAFproxy_ips IP1 IP2 ............. IPN
RPAFheader X-Forwarded-For

4 重启Apache进程

备注:
以上范例为DirectAdmin下的环境 若有不同请自行斟酌修改
如果不是DirectAdmin的Apache环境 可能没有mod_rpaf.c这个模块
这个模块的作者的站点也已经挂掉了 这里孤雨提供看官这个模块的安装方式

wget http://tool.gidcs.net/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

就这么简单 完工
明天有时间再重新编译一下服务器的防火墙组件 添加上给力一点的模块来防止攻击

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.