信安之路-第一次作业

2019-08-07  本文已影响0人  JYQC66

作业要求:

搭建linux+nginx+php-fpm+mysql环境,且做相应的加固

作业如下:

环境搭建

系统环境:Ubunt16

一、nginx安装

直接输入命令:

sudo apt-get install nginx

安装成功

切换到root权限,然后apt-get update,再apt-get upgrade:

成功后,进行php的安装。

二、php安装

输入命令:

apt-getinstall php

三、mysql安装

apt-getinstall mysql-server

启动mysql

四、nginx与php-fpm集成设置

cd进入配置文件目录下:

用vim修改 default文件,将红框中代码行前面的注释去掉:

保存退出后,重启nginx:

在var/www/html/下新建一个php文件:info.php

内容如下:

phpinfo();

?>

成功访问

五、php连接mysql

php-mysql安装:

安装成功后,刷新phpinfo页面后,会出现mysql的相关信息:

再新建一个可以执行mysql语句的php文件,检查是不是可以成功执行mysql的语句,成功:

加固

对于安全加固,我首先想到的是出现过的nginx、php和mysql的各种漏洞,只要把它们自己或结合产生过的漏洞堵上也相当于做了安全加固了~

Nginx相关加固:

1、首先是隐藏版本号,防止攻击者利用对应版本的漏洞:

Nginx关闭版本信息:

2、修改其他的因为配置不当造成的各种漏洞(比如文件解析、目录遍历漏洞等):

①nginx文件类型解析错误

会把1.jpg/1.php当成php文件执行,

需要修改php.ini文件中的cgi.fix_pathinfo=1值为0,来对文件路径进行“修理”,但是这个选项可能会造成其他错误,修改时需要慎重。

②防止目录遍历

不要随意添加autoindex;

或者是:

效果图:

③防止CRLF注入漏洞(这是我在网上看到的,以前没有碰到过,暂未复现)

③防止上传目录的php解析

php相关加固:

php.ini中参数设置:

隐藏版本号:

设置禁用函数,防止敏感方法执行:

开启http only,防止cookie被窃取:

明确定义上传目录(做好权限控制):

限制用户访问目录(做好权限控制):

关闭php错误日志:

禁止动态加载链接库

禁用打开远程url

mysql相关加固:

1、禁止弱密码:修改root账号密码为强密码

2、禁止mysql以管理员账号权限运行

该命令使服务器用指定的用户来启动。

3、删除无关账号

4、遵循最小权限原则,回收不必要的授权

5、设置可信IP的访问

上一篇 下一篇

猜你喜欢

热点阅读