【WEB安全自学】第一节 WEB基础环境搭建

前言

利用linux+nginx+php-fpm+mysql搭建网站并能够运行php代码,连接数据库并执行mysql语句。

搭建记录

系统概况

centos 7
在这里插入图片描述

基本环境安装

安装GCC

yum install gcc-c++

安装PCRE

yum install -y pcre pcre-devel

安装Zlib

yum install -y zlib zlib-devel

安装Openssl

yum install -y openssl openssl-devel

安装EPEL-release

yum -y install epel-release

安装Nginx

yum -y install nginx

网站路径:/usr/share/nginx/html
nginx配置:/etc/nginx/nginx.conf
设置自启动:systemctl enable nginx.service
修改配置文件,去掉前面的注释即可解析php文件:
在这里插入图片描述
重启:service resrat nginx
访问首页查看安装情况:
在这里插入图片描述

安装php-fpm

PHP-FPM的出现是为了解决两个问题:
1.传统php-cgi变更php.ini配置后需要重启php-cgi才能让新的php-ini生效,不可以平滑启动。
2.php-cgi进程终止,php服务也会被迫终止。

同步源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

搜索php-fpm版本:
yum search all php-fpm

卸载原版本依赖性:

yum remove php php-fpm php-common

安装7.0版本及其扩展
yum install php70w php70w-fpm php70w-cli php70w-common php70w-devel php70w-gd php70w-pdo php70w-mysql php70w-mbstring php70w-bcmath php70w-xml php70w-pecl-redis php70w-process php70w-intl php70w-xmlrpc php70w-soap php70w-ldap php70w-opcache

开启服务
systemctl start php-fpm
设置开启自启动
systemctl enable php-fpm
关闭服务
killall php-fpm
重启
php-fpm -R
/usr/share/nginx/html创建文件,内容为<?php phpinfo(); ?>
并访问查看php解析情况
在这里插入图片描述

安装MySQL

下载MySQL安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用yum安装
yum -y install mysql57-community-release-el7-10.noarch.rpm

安装MySQL服务器
yum -y install mysql-community-server --nogpgcheck #nogpgcheck表示不验证密钥,不然会报错,当然你也可以使用官方带的mariadb

启动MySQL
systemctl start mysqld.service

查看运行状态
systemctl status mysqld.service

查找root密码
grep "password" /var/log/mysqld.log
在这里插入图片描述

进入数据库
mysql -u root -p

修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Cdbc@123..';# 将root密码修改为xxxx,强度一定要够,包含数字大小写和特殊字符,不然会出现不安全提示,密码也无法修改成功。
在这里插入图片描述

开启远程访问
grant all privileges on . to 'root'@'192.168.31.1' identified by 'password' with grant option;#192.168.31.1 表示仅允许远程访问的地址,如果需要全部允许将地址替换为 %

刷新权限配置
flush privileges;

退出数据库
exit

防火墙添加开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载防火墙
firewall-cmd --reload

远程访问测试
此次测试使用的是Navicat,MySQL访问需要安装客户端。
在这里插入图片描述

安全思考

服务器

端口安全:仅开放需要使用的端口。
主机漏洞:使用goby扫描确保无重大安全漏洞
基线检查:满足安全基本需求,使用github脚本自动化扫描发现基本通过。
口令安全:不用弱口令,可以使用密钥登录。

数据库

口令安全:防止弱口令
端口安全:可以修改mysql默认的3306端口

应用系统

上线前做安全检测,可以使用awvs/xray进行扫描。
搭建靶场环境对公开放可以使用401基础认证设置,防止被恶意攻击。

中间件

nginx有解析漏洞,属于配置问题,默认很难利用,配置灵活轻巧,是个不错选择。

快捷键安装思考

后期可以使用docker\phpstudy等集成环境。

猜你喜欢

转载自blog.csdn.net/weixin_54430466/article/details/123216680