19 LAMP(下)

1. 更改虚拟主机配置文件:网站设定防盗链(非白名单网站不可引用)

给111.com网站下所有(txt,doc,mp3,zip,rar,jpg,gif,png等这些格式的资源),

防止其他网站私自引用,设定只给白名单网站引用显示,设定防盗链:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

删除之前的配置:

clipboard.png

增加内容(防盗链配置信息):

注意:设定防盗链规则对应的文件和图片格式,要和做实验上传访问的格式要一致!

   <Directory /data/wwwroot/111.com>

       SetEnvIfNoCase Referer "http://111.com" local_ref

       SetEnvIfNoCase Referer "http://aaa.com" local_ref

扫描二维码关注公众号,回复: 3991933 查看本文章

      #SetEnvIfNoCase Referer "^$" local_ref

       <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">

           Order Allow,Deny

           Allow from env=local_ref

       </filesmatch>

   </Directory>

clipboard.png

注意:#SetEnvIfNoCase Referer "^$" local_ref 这行如果不注释掉,下面行设定的防盗链所防的格式图片文件等就会失效!也就是所有网站都可以引用了,一定要注释掉这行才可以。

2. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 启动apache2.4/httpd :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  start

4. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

5. 进入111.com网站目录下 :

[root@hao-01 ~]# cd /data/wwwroot/111.com

6. 6. 从window上传一张图片到当前目录下 :

[root@hao-01 111.com]# rz

clipboard.png

7. 查看虚拟主机111.com目录下的文件 :

(1.jpg就是刚刚从windows上传到当前目录的图片)

[root@hao-01 111.com]# ls

clipboard.png

8. Linux服务器上打开80端口 :

[root@hao-01 111.com]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

(关闭80端口:iptables -D INPUT -p tcp --dport 80 -j ACCEPT )

10. Windows上游览器,访问111.com/1.jpg :

(.jpg图片做防盗链虚拟主机配置文件一定要有这个格式规则):

clipboard.png

11. 测试非白名单网站,访问111.com下的防盗链后的txt等格式文件 :

[root@hao-01 111.com]# curl -e "http://aaa.com/123.txt" -x127.0.0.1:80 111.com/1.jpg -I

clipboard.png

12. 测试白名单网站,访问111.com下的防盗链后的txt等格式文件 :

[root@hao-01 111.com]# curl -e "http://bbb.com/123.txt" -x127.0.0.1:80 111.com/1.jpg -I

clipboard.png

11.26 访问控制Directory

Directory设定访问控制

1. 编辑虚拟主机配置文件 :

[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加内容(111.com/admin是受限的目录):

   <Directory /data/wwwroot/111.com/admin/>

      Order deny,allow

       Deny from all

       Allow from 127.0.0.1

   </Directory>

clipboard.png

2. 在111.com主机目录下,创建一个admin目录:

这个admin目录,是在配置文件中设定只有白名单ip可以访问的!

[root@hao-01 ~]# mkdir /data/wwwroot/111.com/admin/

3. 在amdin目录下,创建一个index.php文件,编写任意字符 :

[root@hao-01 ~]# vim /data/wwwroot/111.com/admin/index.php

内容任意

4. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

5. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

6. curl 白名单来源ip 访问111.com主机下的限制目录文件可以访问的 :

[root@hao-01 111.com]# curl -x127.0.0.1:80 111.com/admin/index.php -I

clipboard.png

7. curl 跟非白名单来源ip访问111.com主机下的限制目录文件不能访问的 :

[root@hao-01 111.com]# curl -x192.168.223.128:80 111.com/admin/index.php -I

clipboard.png

11.27 访问控制FilesMatch

1. 编辑虚拟主机配置文件 :

[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加内容(上面的限制admin目录的内容删掉了):

  <Directory /data/wwwroot/111.com>

       <FilesMatch admin.php(.*)>

       Order deny,allow

       Deny from all

     Allow from 127.0.0.1

       </FilesMatch>

   </Directory>

clipboard.png

2. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

4. curl 跟白名单来源ip 访问111.com主机下的admin.php限制文件可以访问:

[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/admin.php.123' -I

clipboard.png

11.28 限定某个目录禁止解析php

访问控制 – 禁止php解析

1. 编辑虚拟主机配置文件,针对网站下的目录设定禁止解析php文件!:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

添加内容:

  <Directory /data/wwwroot/111.com/upload>

       php_admin_flag engine off

       <FilesMatch (.*)\.php(.*)>

       Order allow,deny

       Deny from all

       </FilesMatch>

   </Directory>

clipboard.png

2. 创建upload目录 :

[root@hao-01 ~]# mkdir /data/wwwroot/111.com/upload

3. 创建编辑123.php测试文件到upload目录下 :

[root@hao-01 ~]# vim /data/wwwroot/111.com/upload/123.php

插入内容:

<?php

echo "123.php";

4. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 启动apache2.4/httpd :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  start

4. 重新加载配置文件(不会重启服务):

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

5. curl访问111.com网站下的限定禁止解析目录upload下文件:

[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'

clipboard.png

11.29 限制user_agent

• user_agent可以理解为浏览器标识

• 核心配置文件内容

1. 编辑虚拟主机配置文件:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

插入内容:

(curl 和baidu.com是被匹配筛选的关键词,NC是区分大小写,OR是或者)

 <IfModule mod_rewrite.c>

       RewriteEngine on

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

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

       RewriteRule  .*  -  [F]

   </IfModule>

clipboard.png

2. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

4. curl 访问测试 :

[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/123.php'

clipboard.png

5. 查看以今天日期命名的访问日志 :

[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20180313.logclipboard.png

6. curl -A 指定user_agent(hao hao 就是模拟指定的) :

[root@hao-01 ~]# curl -A "hao hao" -x127.0.0.1:80 'http://111.com/123.php' -I

clipboard.png

7. 查看以今天日期命名的访问日志 :

[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20180313.log

clipboard.png

11.30 PHP相关配置-11.31 PHP相关配置(上下)

1. 在111网站根目录下,创建index.php,内容如下:

[root@hao-01 ~]# vim /data/wwwroot/111.com/index.php

插入内容:

<?php

phpinfo();

2. 拷贝到指定路径,重命名为 php.ini :

[root@hao-01 ~]# cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini

3. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

4. 在Windows游览器中,访问111网站的index.php,就可以看到php.ini所在路径了,可以在php.ini这个文件中做些配置 :

clipboard.png

5. 编辑 php.ini,安全选项,禁掉这些函数 :

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

指定的函数,添加上!:

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

clipboard.png

6.编辑php.ini,安全选项,避免报警 :

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改内容(指定时区为重庆上海都可以):

date.timezone = Asia/Chongqing

clipboard.png

7. 编辑php.ini,安全选项,有错误不会在游览器中显示出 :

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改内容:

display_errors = Off

clipboard.png

8. 编辑php.ini,配置错误日志路径 :

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改指定错误日志路径:

error_log = /tmp/php_errors.log

clipboard.png

9. 创建错误日志 :

[root@hao-01 ~]# touch /tmp/php_errors.log

10. 给错误日志增加777权限,这样有错误就可以正常写入 :

[root@hao-01 ~]# chmod 777 /tmp/php_errors.log

11. 编辑虚拟主机配置文件,限制主机的open_basedir :

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

对应的虚拟主机,添加对应的网站来限制 :

   php_admin_value open_basedir  "/data/wwwroot/abc.com:/tmp/"

clipboard.png

5. curl 跟非白名单来源ip 访问111.com主机下限制目录文件是不可以访问 :

[root@hao-01 ]# curl -x192.168.223.128:80 'http://111.com/admin.php.123' -Iclipboard.png

11.32 PHP扩展模块安装

1. 查看模块 :

[root@hao-01~]# /usr/local/php/bin/php -m

2. 进入src目录:

[root@hao-01 ~]# cd /usr/local/src/

3.下载phpredis—develop :

[root@hao-01 src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop

4. phpredis—develop是zip压缩包,需重命名 :

(刚刚下载这个包本身就是压缩包!),重命名下 :

[root@hao-01 src]# mv develop phpredis-develop.zip

5.解压phpredis-develop.zip :

[root@hao-01 src]# unzip phpredis-develop.zip

6. 进入解压的phpredis-develop包下 :

[root@hao-01 src]# cd phpredis-develop

7. 安装依赖包 :

[root@hao-01 phpredis-develop]# yum install -y autoconf

8. 生成configure文件 :

[root@hao-01 phpredis-develop]# /usr/local/php/bin/phpize

clipboard.png

10. 编译 :

[root@hao-01 phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config

11. 检查上一条命令执行是否有错误 ?

[root@hao-01 phpredis-develop]# echo $?

12. make 并且 make install :

[root@hao-01 phpredis-develop]# make && make install

13. 检查上一条命令执行是否有错误 ?

[root@hao-01 phpredis-develop]# echo $?

14. 查看扩展模块存放目录(可以在php.ini中去自定义该路径)

[root@hao-01 phpredis-develop]# /usr/local/php/bin/php -i |grep extension_dir

15. 查看是否有redis.so文件 :

[root@hao-01 phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226clipboard.png

16. 编辑php.ini配置文件

[root@hao-01 phpredis-develop]# vim /usr/local/php/etc/php.ini

在末尾添加一行配置内容 :

extension = redis.so

clipboard.png

17. 搜索是否有redis扩展模块!!!

[root@hao-01 phpredis-develop]# /usr/local/php/bin/php -m |grep redis

clipboard.png

猜你喜欢

转载自blog.csdn.net/xiaoyuerp/article/details/82725915
19