Tag: Apache

[Perl Script] 统计记录档 IP

如果发现服务器有大量存取记录, 要检查是否 DDOS 攻击, 可以开启记录档检查, 但资料量大的话, 要人手检查也很困难, 所以我写了这个简单的 Perl Script, 用作检查记录档内出现次数最多的 IP, 锁定出现频率最高的 IP 作检查会容易得多。 编写时想到有多种记录档也有此需要, 只要记录档是一行一个记录, 而每行只有一个 IP 出现便可以用, 已经试过 apache access log 及 error log, /var/log/secure, /var/log/vsftpd.log …

Apache 2.4 安装 mod_evasive

在 Apache 2.4 编译 mod_evasive 时遇到以下错误: mod_evasive20.c: In function ‘access_checker’: mod_evasive20.c:142: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:146: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:158: error: ‘conn_rec’ …

Apache 2.4 的 VirtualHost 设定

Apache 刚从 2.2 升级到 2.4, 在 Apache 2.4 的 VirtualHost 设定不同以前, 新语法更简单易用: 旧设定方法: <VirtualHost 123.242.230.29>    ServerName testing.testing.com    DocumentRoot /var/www/html </VirtualHost> Apache 2.4 设定方法 <VirtualHost *:80>    ServerName …

将 .htaccess 档案改名

.htaccess 可以改变很多网站的设定,这也造成一个安全性的问题,因为有心人都会估计到网站可能会用 .htaccess,如果未有对 .htaccess 进行权限设定,所有人都可以浏览 .htaccess 的内容。 除了变更权限外,也可以设定 Apache 读取其他档案名称,那么其他人便不会那么容易知道设定档的位置,但这个方法需要编辑 httpd.conf 才可以实现。 在 Apache 建立的 virtualhost 里面,只要加入 “AccessFileName” 便可以自订设定档的名称,例如: AccessFileName .htaccess.hidden 以上语句会指定 .htaccess.hidden 代替原本的 .htaccess 档案。

PHP 及 .htaccess 实现阻挡 ip

如果发现某些 ip 的用户在网站上捣乱,可以将他/她的 ip 封杀,这不但可以停止捣乱行为,也可以减少主机的资源浪费及频宽,以下介绍透过 PHP 及 Apache 的 .htaccess 的实现方法。 PHP 如果要阻挡的 ip 不多,可以直接加上以下一行到程式顶端: 以上程式码很简单,只要检查访客的 ip 是否 192.168.1.101,如果正确则结束程式罢了,但这样的问题是当要阻挡的 ip 数量增多时,需要每次都在以上程式码上加上 ip,要维护很不方便。以下的方法是使用文字档储存了要阻挡的 ip,每一行一笔资料,档案为 ban_ip_list.dat,实现方法如下: 以上第一行是从 ban_ip_list.dat 读入每一行资料,并储存到 $banned 阵列内,然后用 …

透过 htaccess 设定 Character Set

要设定网站的 Character Set,除了在 httpd.conf 设定外,还可以在 .htaccess 对个别网站设定,格式如下: AddDefaultCharset utf-8 以上这行便会设定网站默认使用 utf-8 编码,如果只想对特定档案设定 Character Set,可以这样做: AddCharset utf-8 .html .htm .css .js .xml .json .rss 这样就可以设定 .html, .htm, .css, .js, .xml, …

Apache 防止 DDoS 攻击

DDoS (distributed denial-of-service) 及 DoS (denial-of-service) 在网络上十分常见,而 DoS 攻击所传送的请求跟正常的请求一样,分别在于每秒钟发出大量请求到服务器,使服务器的负载增加,最常见的情况是服务器暂停服务。 而 mod_evasive 则是一个预防 Apache 遭受 DDos 攻击的模组,可以防止同一个 IP 对相同 URI 发出的大量请求,可设定的选项有: – 限制同一个 IP 在一定秒数内请求一个页面或档案的次数。 – 限制同一个 IP 一秒内只可发出 50 …

Linux 下编译 Apache 的 mod_rewrite

要为 Apache 加载 mod_rewrite 模组,如果 Apache 并未安装,可以在编译时加上 –enable-rewrite 便可以,但如果 Apache 已经安装好,而又不想重新编译 Apache 的话,可以用以下方法: 1. 首先 cd 到 Apache 的源代码目录并到 mod_rewrite.c 档案, 1. 在apache的源码安装目录中寻找mod_rewrite.c文件 2. 进入 mod_rewrite.c 的目录并用 apxs 编译 …

通过 Apache 实现用户认证

建立 .htacces 档案 基本(Basic) 验证是目前最为广泛使用的方法,以下例子会替 /var/www/html/dir_protect 加入密码保护,请先在这目录建立一个 .htaccess 的档案,然后加入以下内容: 以上段落的意思为: AuthName “Member Only” — 密码保录目录名称,这里可自行修改。 AuthType Basic — 使用基本验证方法。 AuthUserFile /var/www.html/dir_protect/.htpasswd — 储存登入帐号的档案。 — 限制所有 GET 及 POST 方法。 …