admin管理员组

文章数量:1794759

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

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

文章目录
  • 前言
  • 搭建记录
    • 系统概况
    • 基本环境安装
      • 安装GCC
      • 安装PCRE
      • 安装Zlib
      • 安装Openssl
      • 安装EPEL-release
    • 安装Nginx
    • 安装php-fpm
    • 安装MySQL
  • 安全思考
    • 服务器
    • 数据库
    • 应用系统
    • 中间件
  • 快捷键安装思考

前言

利用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 dl.fedoraproject/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh mirror.webtatic/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 dev.mysql/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等集成环境。

本文标签: 环境基础web