Centos7.7基于LAMP离线DVWA靶机环境搭建

Centos7.7基于LAMP离线DVWA靶机环境搭建

第一章 环境说明

环境:

centos7.7+Apache2.4.6+Php7.2.32+Mysql5.7.31+DVWAv1.10

1.1.LAMP

LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写,包含如下服务: Linux,操作系统;Apache,网页服务器;MySQL或MariaDB,数据库管理系统(或者数据库服务器); PHP、Perl或Python,脚本语言。

1.2.DVWA

DVWA(Damn Vulnerable Web App)
DVWA是一套易受攻击的由PHP/Mysql搭建的Web安全测试平台,其主要目标是帮助安全专业人员在法律环境中测试他们的技能和工具,帮助Web开发人员更好地了解保护Web应用程序的过程,并帮助教师/学生在教室环境中教授/学习Web应用程序的安全性。
因为对渗透测试能力培训的需求所以可自行搭建一套DVWA。

1.3.防火墙策略配置

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

第二章 Apache安装

Apache
是一个知名的开源Web服务器。Apache由内核、标准模块和第三方提供的模块三个层次组成。网站需要web服务器来架构,网页设计美工人员,网页开发人员(php,.net,jsp等)将网站建立好后,需要我们维护,优化,排错,架构延伸扩容等。而且如果要浏览一个网页的话,基本上所有的网站都使用的是http协议来进行数据传输的。

2.1.网站分为两种

静态网站:Apache,Nginx,html
动态网站:php/perl/python,jsp(java), .net

2.2.Apache服务概览

软件包: httpd, httpd-devel, httpd-manual
服务类型:由systemd启动的守护进程
配置单元: /usr/lib/systemd/system/httpd.service
守护进程: /usr/sbin/httpd
端口: 80(http), 443(https)
配置: /etc/httpd/
Web文档: /var/www/html/
Apache日志记录目录:/var/log/httpd/
注意该目录下有两种文件:
access_log # 记录客户端访问Apache的信息,比如客户端的ip
error_log # 记录访问页面错误信息
Apache服务启动的记录日志:/var/log/messages # 这个日志是系统的大集合

2.3.安装Apache

在本地yum源或者https://pkgs.org/中获取httpd服务安装包,按照依赖关系依次安装rpm包,其他组件按需安装
rpm -ivh 文件名
注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
其他安装中出现的依赖错误,需按提示下载对应的rpm包或者通过本地yum源( 搜索:yum search all mysql | grep mysql 安装:yum -y install 服务名)安装
包信息

安装成功后,会产生下面两个文件
/etc/httpd/conf/httpd.conf # 主配置文件
/var/www/html # 默认网站家目录

2.4.httpd.conf 部分参数说明

ServerRoot “/etc/httpd” # 存放配置文件的目录
Listen 80 # Apache服务监听端口
User apache # 子进程的用户
Group apache # 子进程的组
ServerAdmin root@localhost #设置管理员邮件地址
DocumentRoot “/var/www/html” #网站家目录 设置DocumentRoot指定目录的属性
#网站容器开始标识
Options Indexes FollowSymLinks #找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外 AllowOverride None # none不使用.htaccess控制,all允许
Require all granted # granted表示运行所有访问,denied表示拒绝所有访问 容器结束/Directory>
DirectoryIndex index.html #定义主页文件,当访问到网站目录时如果有定义的主页文件,网站会自动访问
AddDefaultCharset UTF-8 #字符编码,如果中文的话,有可能需要改为gb2312或者gbk,因你的网站文件的默认编码而异

后续需解释PHP网站,故需修改如下配置,可再安装完php后再修改 如上所述找到Require all将denied修改为granted

找到DirectoryIndex,追加index.php
追加

找到addtype,添加AddType application/x-httpd-php .php
追加

2.5.启动Apache

httpd -v #版本号查看
systemctl start httpd.service #启用
systemctl enable httpd.service #设置开机启动

Web访问:http://IP/
Centos7.7基于LAMP离线DVWA靶机环境搭建_第1张图片

第三章 Mysql安装

3.1.查看操作系统版本

cat /etc/redhat-release
版本

3.2.下载离线rpm包

https://dev.mysql.com/downloads/mysql/
Centos7.7基于LAMP离线DVWA靶机环境搭建_第2张图片

3.3.安装包信息

Centos7.7基于LAMP离线DVWA靶机环境搭建_第3张图片

3.4.解压安装包

创建目录 mkdir /home/mysql
解压安装包tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar -C /home/mysql
Centos7.7基于LAMP离线DVWA靶机环境搭建_第4张图片

3.5.查询并卸载系统自带的Mariadb

rpm -qa | grep mariadb
rpm -e --nodeps 文件名

注:该步操作是为防止后续安装中出现mysql依赖错误,或部分组件版本冲突问题

3.6.查询并卸载系统老旧版本的Mysql

rpm -qa | grep mysql
rpm -e --nodeps 文件名

注:该步操作是为防止后续安装中出现mysql依赖错误,或部分组件版本冲突问题
若移除失败,尝试使用:yum remove 文件名,进行移除

3.7.安装MySql组件

按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server,其他组件按需安装
rpm -ivh 文件名

注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
其他安装中出现的依赖错误,需按提示下载对应的rpm包或者通过本地yum源( 搜索:yum search all mysql | grep mysql 安装:yum -y install 服务名)安装

3.8.启动服务

查看mysql服务状态
service mysqld status
启动服务:
systemctl start mysqld

3.9.密码重置

MySQL5.7会在安装后为root用户生成一个随机密码,可以安全模式修改root登录密码或者用随机密码登录修改密码。

随机密码获取:
grep 'temporary password' /var/log/mysqld.log
进入mysql重置root密码:
mysql -u root -p
alter user 'root'@'localhost' identified by 'password';

注意:修改密码中若报错策略相关问题,需执行如下两条命令修改密码策略
set global validate_password_policy=0;
set global validate_password_length=1;

补充:安全模式修改root用户密码
关闭服务systemctl stop mysqld.service,修改mysql配置文件vi /etc/my.cnf
[Mysqld]下面添加skip-grant-tables
保存退出,启动服务 systemctl start mysqld.service
无密码进入mysql执行修改密码操作;
修改完成后删除添加的配置,恢复使用密码登录mysql;
重启服务systemctl restart mysqld.service

3.10.设置root用户远程访问权限

查看当前授予过的权限
use mysql;
select user,host from user;
show grants;
授予root用户远程访问权限
grant all privileges on *.* to root@'%' identified by "password";
flush privileges;

3.11.设置开机自启动。

方式1:vi /etc/rc.local 添加service mysqld start
方式2:systemctl enable mysqld.service

第四章 Php安装

4.1.下载离线rpm包

https://repo.webtatic.com/yum/el7/x86_64/RPMS/
https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/
从上述镜像源中获取如下11个安装包
Centos7.7基于LAMP离线DVWA靶机环境搭建_第5张图片

4.2.安装包解释

mod_php72w : web服务器是Apache,要安装此包 php72w-fpm :
FastCGI进程,web服务器是nginx,要安装此包

其它包的含义: php72w-common : Common files for PHP 原生文件,必装 php72w-cli :
Command-line interface for PHP 供命令行操作用,根据需要安装 php72w-mysqlnd : A
module for PHP applications that use MySQL databases 数据库mysql驱动模块
php72w-pdo : A database access abstraction module for PHP applications
数据库连接模块,底层依赖关系,捆绑安装 php72w-opcache : An opcode cache Zend extension
php7缓存模块,据说能提速50% php72w-mbstring : A module for PHP applications
which need multi-byte string handling 切割中文字符模块不会乱码 php72w-gd : A
module for PHP applications for using the gd graphics library 绘图模块
Php72w-bcmath:A module for PHP applications for using the bcmath
library 按需要安装

4.3.安装配置

按照依赖关系依次安装rpm包,其他组件按需安装:
rpm -ivh 文件名
注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
其他安装中出现的依赖错误,需按提示下载对应的rpm包或者通过本地yum源( 搜索:yum search all mysql | grep mysql 安装:yum -y install 服务名)安装

4.4.启动及自启设置

php -v 能看到版本号
systemctl start php-fpm 启用
systemctl enable php-fpm 设置开机启动

4.5.Apache交互

参见2.4.httpd.conf 部分参数说明
其他问题按需百度解决

第五章 DVWA配置

5.1.服务及依赖环境安装

先在官网http://www.dvwa.co.uk/ 上下载好DVWA-master

5.1.1.DVWA-master解压到/var/www/html

解压

5.1.2.修改项目配置信息

1、配置文件修改参考
vi /var/www/html/DVWA-master/config/config.inc.php
Centos7.7基于LAMP离线DVWA靶机环境搭建_第6张图片

$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
2、其他配置按界面提示设置
数据权限,配置对应目录为777权限
chmod 777 dir
部分报错参数,对应修改为on

3、访问DVWA并创建数据库http://IP/DVWA-master/setup.php,开始创建数据库
Centos7.7基于LAMP离线DVWA靶机环境搭建_第7张图片

4、创建完成后自动跳转到登录界面,内置用户信息如下:
http://IP/DVWA-master/login.php

admin/password 
gordonb/abc123 
1337/charley 
pablo/letmein 
smithy/password  

5、其他报错修改
Centos7.7基于LAMP离线DVWA靶机环境搭建_第8张图片

将php.ini文件中的这两个参数都修改为on
allow_url_include=on
allow_url_include=on

6、按照官方文档进行实验

第六章 通用操作

6.1.DVWA安装包地址/var/www/html/

DVWA

6.2.本地yum源配置

mkdir -p /var/www/html/centos
mount 镜像名字 /var/www/html/centos
进入 cd /etc/yum.repos.d/目录
删除目录下的所有数据rm -rf *.repo
查看yum.repos.d目录数据
创建touch iso.repo文件,键入如下数据保存
创建iso.repo文件,键入如下数据保存

[iso]
name=iso
baseurl=file:///var/www/html/centos
enabled=1
gpgcheck=0

6.3.不常用包获取地址

https://pkgs.org/

6.4.服务监控

6.4.1.Apache

systemctl start|restart|status|stop httpd
示例:systemctl status httpd
Centos7.7基于LAMP离线DVWA靶机环境搭建_第9张图片

6.4.2.Php

systemctl start|restart|status|stop php-fpm
示例:systemctl status php-fpm
Centos7.7基于LAMP离线DVWA靶机环境搭建_第10张图片

6.4.3.Mysql

systemctl start|restart|status|stop mysqld
示例:systemctl status mysqld
Centos7.7基于LAMP离线DVWA靶机环境搭建_第11张图片

6.5.防火墙策略

6.5.1.关闭防火墙

systemctl stop firewalld #临时关闭防火墙
systemctl disable firewalld #永久关闭防火墙

6.5.2.关闭selinux

临时关闭:
setenforce 0

永久关闭:
vi /etc/selinux/config
SELINUX=disabled # 将enforcing改为disabled
reboot #重启系统永久生效

6.6.yum及rpm的常见参数

6.6.1.yum基础操作

1.查找软件包:yum search
2.可安装的软件包:yum list
3.可更新的软件包:yum list updates
4.已安装的软件包:yum list installed
5.已安装但不在 Yum Repository 内的软件包:yum list extras
6.获取软件包信息:yum info
7.可更新的软件包信息:yum info updates
8.已安装的软件包信息:yum info installed
10.列出软件包提供哪些文件:yum provides

6.6.2.rpm基础操作

1.安装软件:rpm -ivh packagename
2.查询软件安装情况:rpm -qa | grep packgename
3.卸载软件:rpm -e packgename
4.查询rpm包即将安装的位置:rpm -qpl packgename
5.指定安装位置:rpm -ivh --relocate
6.增加前缀:rpm -ivh --prefix=
7.rpm -ivh --relocate /=/opt/temp xxx.rpm;比如安装xxx.rpm包,以relocate 参数进行安装,
8.安装到/opt/temp目录等于:rpm -ivh --prefix=/opt/temp
9.RPM 的其他附加命令
–force 强制操作 如强制安装删除等;
–requires 显示该包的依赖关系;
–nodeps 忽略依赖关系并继续操作;

10.查询系统中已经安装的软件:rpm -qa
11.查询软件安装情况:rpm -qa | grep packgename
特殊的mysql查看示例:rpm -qa|grep -i mysql
12.查询一个已经安装的文件属于哪个软件包:rpm -qf 文件名的绝对路径
13.查询已安装软件包都安装到何处:rpm -ql 软件名
14.查询一个已安装软件包的信息:rpm -qi 软件名
15.查看一下已安装软件的配置文件:rpm -qc 软件名
16.查看一个已经安装软件的文档安装位置:rpm -qd 软件名
17.查看一下已安装软件所依赖的软件包及文件:rpm -qR 软件名
18.示例:
rpm -qa | grep mysql 查看 mysql 是否被安装;
rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;
rpm -Uvh example.rpm 升级example.rpm软件包并在升级过程中显示升级的文件信息及升级进度
rpm -evh example 卸载example软件包并在卸载过程中显示卸载的文件信息及卸载进度;

本文浅显,若有错误,欢迎批评指正。

你可能感兴趣的:(环境搭建,linux,centos,运维,渗透测试,靶机)