任务标题: 搭建 web 运行的基础环境
第一周环境准备任务
任务目标:准备学习环境,学习 web 服务器的搭建过程,并做相应的加固学习
电脑要求:必须有一台自己的电脑,配置最好高一点,自己用着舒服就行
操作系统:主机不限制操作系统,需要安装虚拟机
推荐环境:linux+nginx+php-fpm+mysql(为后续搭建 nginx+lua 的 waf 做准备,不可以使用集成好的环境)
报告要求:将整个环境的搭建过程进行详细记录,收集网络上的加固文档,学习加固技术,从而思考不加固可能存在的安全问题,对于加固的过程以及对于安全的思考都需要做详细的记录。
最终目标:能够运行 php 代码并且可以使用 php 连接 mysql,成功执行 mysql 的语句
拓展任务:除了这个 web 环境还有其他的环境可以搭建,能力强者可以做更多的练习,比如:基于 apache 的环境、基于 Windows server 的 iis 环境等
可能存在的问题
1、可以使用一键安装脚本不?
原则上不允许使用一键的方式安装,因为这个任务的目的是让大家了解整个 web 环境的搭建过程,对于学习而言,越复杂越好,这样对你的理解才能更加深刻,当你使用一键安装脚本时,你学到了什么?所以为了自己的成长请一步一步操作并思考每一步的意义和作用。
2、加固要做到啥标准呢?
做服务器的安全加固,原则上不做要求,因为这个是跟你学习的程度和理解有关系的,所以这个可以自由发挥,尽自己最大努力将服务器设置的更安全,并且理解该操作的意义,从而反思出现实环境的安全问题。
3、我的基础很扎实,很快主要任务就完成了,怎么办?
那你可以做一些扩展任务,多配置几套环境,我们在验收的时候,可以在基础分值上增加一些额外分数,这样在最终的评价中可以有所体现。
4、报告怎么提交,提交给谁,什么时候截止?
这个后续会在知识星球里更新具体的情况,敬请期待!第一周截止时间于 8 月 3 日结束,过时不侯!
5、linux 用 kali 行吗?
建议使用一个全新的系统进行学习搭建和加固等操作,不然很容易出问题。
6、nginx 的版本有要求吗?
关于版本的问题,我们不做任何的要求,因为这样大家的环境有所差别,更具有多样性,互相学习才更有价值。
学习报告
Linux 系统的安装
电脑上已经有 kali 系统了,为了完成这次的学习任务首先找一个 linux 镜像装虚拟机上,因为对 linux 系统不怎么熟悉,所以我首先查询了下各个发行版本的区别。
一. Redhat 系列: Redhat 应该说是在国内使用人群最多 的 Linux 版本,甚至有人将 Redhat等同于 Linux,而有些老鸟更是只用这一个版本的 Linux。 Redhat 系列的包管 理方式采用的是基于 RPM 包的 YUM 包管理方式,包分发方式是编译好的二进制文件。稳定性方面 RHEL和 CentOS 的稳定性非常好。
二. Debian 系列: 包括 Debian 和 Ubuntu, 是迄今为止最遵循 GNU 规范 的 Linux 系统。Debian最具特色的是 apt-get / dpkg 包管理方式,其实 Redhat 的 YUM 也是在模仿 Debian 的 APT 方式,但在二进制文件发行方式中, APT 应该是最好的了。
**三.**Gentoo,伟大的 Gentoo 是 Linux 世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是 Gentoo 被称为最完美的 Linux发行版本的原因之一。不同于 APT 和 YUM 等二进制文件分发的包管理系统, Portage 是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。
由上我觉得采用ubuntu比较好,访问官网下载。打开vm新建一个虚拟机并安装ubuntu
环境配置
**-**首先可以将更新源换为国内的阿里源
**-**安装和启动Apache
**-**安装php-fpm
**-**安装mysql
**-**安装Php-mysql
**-**PHP链接数据库测试
服务器加固
**-**开启安全补丁更新
**-**启动密码策略,定时修改密码
**-**设置为ssh登入方式,禁止root登入,禁止密码登录,并且使用密钥。
**-**配置防火墙,只开放必要端口
**-**禁用root用户