配置防盗链、访问控制、PHP配置、PHP扩展模块安装

1 配置防盗链
2 访问控制Directory
3 访问控制FilesMatch
4 限定某个目录禁止解析php
5 限制user_agent
6 php相关配置
7 php扩展模块装安

扩展
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header  http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout  http://ask.apelearn.com/question/556
apache开启压缩  http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件变更  http://ask.apelearn.com/question/7292
apache options参数  http://www.365mini.com/page/apache-options-directive.htm
apache禁止trace或track防止xss  http://ask.apelearn.com/question/1045
apache 配置https 支持ssl http://ask.apelearn.com/question/1029
apache rewrite教程 http://coffeelet.blog.163.com/blog/static/13515745320115842755199/   http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html
apache rewrite 出现死循环 http://ask.apelearn.com/question/1043
php错误日志级别参考  http://ask.apelearn.com/question/6973
php开启短标签 http://ask.apelearn.com/question/120
php.ini详解  http://legolas.blog.51cto.com/2682485/493917

1、配置防盗链

编辑虚拟主机配置文件:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

6c3fcf28289dc2d58888a2affa37368e7a8.jpg

45c39caee8de763b649f9bfd5f03fe17f3b.jpg

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

d5a88a53842830dceb2f9d52d71b99ed09f.jpg

8ad1167accf64c3970f4f3313d21552a895.jpg

注: 如果在referer白名单中不加“^#”(空referer),直接访问指定内容将会被拒绝。

curl命令

curl -e 指定referer

[root@adailinux ~]# curl -e "http://ask.apelearn.com/" -x192.168.8.131:80 111.com/baidu.png -I

2、访问控制Directory

编辑虚拟主机配置文件:

d6438b312073223afa9108df8ff95a7a2ca.jpg

95199f711ebb66dc23302923003e342f0fb.jpg

2c67dfd07be6d9b665b26bb30b0ac2e0ca1.jpg

3、访问控制FilesMatch

bd4ef87aba4f6863cadebd80a7a7a5f6968.jpg

94edb9aa67a057eee25d0acb6bcadead715.jpg

4、限定某个目录禁止解析php

  • 核心配置文件内容

<Directory /data/wwwroot/www.123.com/upload>

    php_admin_flag engine off

</Directory>

  • curl测试时直接返回了php源代码,并未解析

假如有一个目录是允许上传图片的,可能让黑客上传了一个PHP文件,由于网站可以执行PHP文件,一旦执行,就会让黑客拿到服务器权限,为了避免这种情况发生,我们需要把能上传文件的目录禁止解析PHP。

打开虚拟主机配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,添加内容如下(红框中),保存退出

074221_MBfD_3708406.png

php_admin_flag engine off ,禁止解析php

检查配置文件语法正误,并重新配置文件

074239_G3Qw_3708406.png

创建一个upload,新建php文件

074358_oSFI_3708406.png

curl测试,出现403

074520_Htmp_3708406.png

那么先打开虚拟主机配置文件,注释掉FilesMatch那几行

074732_IrKl_3708406.png

检查配置文件语法正误,并重新配置文件

074929_r89V_3708406.png

这时访问php,发现无法解析,只是显示源代码

075007_X9JS_3708406.png

访问111.com/upload/123.php,会直接下载,也没办法解析

075216_XczK_3708406.png

如果这时候再打开虚拟主机配置文件,取消FilesMatch那几行注释,检查配置文件语法正误,并重新配置文件,然后再访问111.com/upload/123.php

075559_qkLm_3708406.png

禁止php解析,就是为了提高服务器安全性,一般静态文件存放的目录是不允许解析php的

5、限制user_agent

  • user_agent可以理解为浏览器标识
  • 核心配置文件内容

    <IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]

        RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]

        RewriteRule .* - [F]

    </IfModule>

  • curl -A "123123" 指定user_agent

有时候,网站会受到一种黑客攻击叫 cc 攻击,cc攻击就是利用很多用户的电脑同时访问同一个站点,当访问量或者频率达到一定层次,会耗尽服务器资源,从而使之不能正常提供服务。由于其中这些恶意请求的user_agent相同或者相似,那我们就可以通过限制user_agent发挥防攻击的作用,减轻服务器压力。

打开虚拟主机配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,添加内容如下(红框中),保存退出

081657_3Dle_3708406.png

NC表示忽略大小写,OR是两条命令的连接符,表示或者的意思,不加OR就表示并且。

检查配置文件语法正误,并重新配置文件

074929_r89V_3708406.png

curl访问测试,出现403

082035_p3ue_3708406.png

查看访问日志

082343_rT4B_3708406.png

自定义user_agent

082413_O1Ah_3708406.png

查看访问日志

082431_341O_3708406.png

curl -A 指定user_agent,curl -e指定referer,curl -I查看状态码,curl -x相当于省略了hosts

6、php相关配置

  • 查看php配置文件位置
  • /usr/local/php/bin/php -i|grep -i "loaded configuration file"
  • date.timezone
  • disable_functions eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close
  • error_log, log_errors, display_errors, error_reporting
  • open_basedir
  • php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"

在111.com的根目录下创建phpinfo

084548_Ad2L_3708406.png

084632_lR8a_3708406.png

切换到源码包路径,复制文件

084809_XFMY_3708406.png

085034_yO4B_3708406.png

085045_pNR3_3708406.png

找到配置文件的路径

085005_U11R_3708406.png

打开并配置PHP文件,vim /usr/local/php/etc/php.ini

搜索/disable_functions,禁掉一些的函数,保存退出

085902_nvF5_3708406.png

重新加载配置文件/usr/local/apache2.4/bin/apachectl graceful

再去浏览器访问111.com/index.php,会发现phpinfo无法打开

090136_993j_3708406.png

打开配置文件,搜索/timezone,定义date.timezone时区,如果不定义,有时候会有一些告警信息,注意删掉date前面的分号

090903_HgX0_3708406.png

搜索display_errors,将On改成Off,这样就不会把错误的信息直接显示在浏览器上

091117_nywQ_3708406.png

检查配置文件语法正误,并重新加载配置文件

091313_rW9n_3708406.png

在浏览器中访问111.com/index.php,会看到的是白页

然后配置错误日志,搜索/log_errors,看到log_errors=On,表示错误日志已开启

搜索/error_log,定义错误日志文件路径error_log= /tmp/php_errors.log,error_log前的分号去掉

091909_o7HW_3708406.png

搜索/error_reporting,定义日志的级别,默认为ALL;在生产环境中,notices出现的频率很高。

检查配置文件语法正误,并重新加载配置文件

092458_yhQq_3708406.png

再访问一下,会看到生成了php_errors.log,并且属主属组是daemon

092620_1tIJ_3708406.png

查看进程

092757_IrMv_3708406.png

再做个测试

093405_XMhK_3708406.png

093426_SbEi_3708406.png

curl访问2.php,显示的的状态码为500

093507_gYZp_3708406.png

查看错误日志

093558_q5km_3708406.png

安全相关的参数open_basedir

打开php配置文件 vim /usr/local/php/etc/php.ini

搜索/open_basedir,去掉分号,修改成open_basedir = /data/wwwroot/111.com:/tmp

094507_yxKB_3708406.png

重新加载配置文件,然后访问2.php,就不会报错了

094855_6ZAy_3708406.png

针对不同的虚拟主机去限制不同的open_basedir,打开虚拟主机配置文件

095426_6S3w_3708406.png

095216_cK5V_3708406.png

检查配置文件语法正误,并重新加载配置文件

095624_OLtb_3708406.png

这样就可以了,针对不同的虚拟主机去限制不同的open_basedir

095652_xr8d_3708406.png

7、php扩展模块安装

0bd1998191d9d3e3f2cc3dd27558e381e7f.jpg

579398e19ba07bc7e3198d3eeb9a821da75.jpg

如果要自定义扩展模块可以先看看ext目录下有没有,如果没有才去wget,如果有就执行以下步骤,如要扩展zip这个模块:

1acf59f4cd8df4007293cc43e96aa3402c0.jpg

e202e6005e109a7c1daa02fecc2f50dfad9.jpg

Make && make install

7094984d360633337e6f38002b4c9a71f44.jpg

转载于:https://my.oschina.net/u/3992081/blog/2980143

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值