0x00 前言
曾经入手服务器的时候都喜欢先安装已给宝塔面板,全部都一步到位安装环境!!但是真正的企业里肯定是不会这么干的……毕竟宝塔也是爆过漏洞的(想起某个紧张且兴奋的夜晚)。接下来慢慢的安装FTP、Apache、MySql、PHP的环境。
次此权当无聊了罢,做个记录
(曾经虚拟机都不知重装了多少QWQ)
环境
服务器:Center 7.6 x64
0x01 FTP安装
简介
FTP (文件传输协议) ,是用于网络上的文件传输协议。安装FTP将会更好的帮助咱上传下载文件(增、删、改、查)。
本地安装可能还需要配置防火墙,这里不赘述!!就是开启个端口而已!!
安装
1 | yum -y install vsftpd ftp |
查看ftp的安装位置
1 | whereis vsftpd |
etc/vsftpd 目录下有四个文件
1、ftpusers 文件 指定哪些用户不能访问 ftp 服务,这些用户是指 Linux 系统用户还是包括虚拟用户?
2、user_list 文件 用户列表,当 vsftpd 里 userlist_deny=NO时,只允许这里的用户访问 ftp 服务,注意此时同时也检测 ftpusers 文件;当 vsftpd 里 userlist_deny=YES(默认) 时,不允许这里的用户 访问 ftp 服务
3、vsftpd.conf 文件 是 vsftpd 的核心配置文件
4、vsftpd_conf_migrate.sh 文件 是 vsftpd 操作的一些变量和设置脚本
开启FTP服务
1 | systemctl start vsftpd |
查看FTP的状态
1 | systemctl status vsftpd |
编辑配置
编辑**/etc/vsftpd/vsftpd.conf**
1 | 主要编辑的几个核心基础配置如下 |
编辑ftpuser
这个文件相当是黑名单,将root用户从这里面删除
编辑user_list
这个文件相当于白名单,将除root以外的用户删除
重启ftp服务
1 | systemctl restart vsftpd.service |
使用系统用户root登陆
虚拟用户创建
如若多人需要使用ftp文件服务,可以创建虚拟用户。
此时root用户无法登陆FTP(我这里就不折腾root用户了)。
ftp有三种登陆方式:
- 匿名登陆:存在安全隐患,故在配置文件中关闭。
- 系统账户:以root及普通账户登陆。
- 虚拟用户:系统账户存在安全隐患,不适于大型ftp场景,虚拟用户登陆方式相对安全。
映射账户
建立系统账户shawn,以此映射虚拟账户
1 | useradd shawn -d /home/shawn -s /sbin/nologin |
进入到home目录下,修改shawn目录的权限
1 | chmod 755 shawn/ |
在shawn目录下创建文件hello.shawn
以及目录111的目录
1 | touch hello.shawn |
FTP虚拟账户
在/etc/vsftpd目录下创建存储用户的文件
1 | vim user |
此时此账户还无法被vsftpd所认证,即无法进行远程登陆。同时明文存储的账户信息也是不安全的,所以需要进行一下转换。
使用db_load命令 hash算法将明文信息虚拟用户文件转换成db文件
并降低此文件的权限,只有root用户可实行读写
1 | db_load -T -t hash -f /etc/vsftpd/user /etc/vsftpd/user.db |
1 | chmod 600 /etc/vsftpd/user.db |
现在虚拟用户和用于映射的user账户都有了
接下来需要让ftp找到虚拟用户文件进行认证
PAM认证配置
PAM(可插拔认证模块)
PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制,
通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
新建一个用于虚拟用户认证的PAM配置文件vsftpd.user
1 | vim /etc/pam.d/vsftpd.user |
并写入以下配置
1 | auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user |
配置ftp主配置文件(etc/vsftpd/vsftpd.conf),使服务启动时,能够找到认证文件
1 | guest_enable=YES |
虚拟用户配置
配置虚拟用户文件,对不同的登录用户进行不同的控制。
在etc/vsftpd文件目录下新建一个文件目录userconfig
1 | mkdir -p userconfig |
进入到此目录下创建登陆用户的同名文件
1 | touch test |
写入以下配置
1 | local_root=/home/shawn |
注意
每一句配置后若有多余的空格,就会无法连接!!注意空格 ! ! !
重启FTP服务
1 | systemctl restart vsftpd.service |
使用test账户连接FTP服务
0x02 Apache安装
简介
Apache(音译为阿帕奇是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
安装
使用yum安装
1 | yum install httpd |
开启apache服务
1 | systemctl start httpd |
只要80端口是开启状态,那么就可以直接输入ip进行访问
进入到默认站点的存放位置**/var/www/html**目录下,创建一个html文件,写入一个h1标签的hello,shawn
配置端口站点
默认情况下一般使用的是80端口,那么这里再添加一个8080端口的站点
apache的配置文件**/etc/httpd/conf/httpd.conf**
添加端口8080,云服务器还需要到控制台打开8080端口
保存退出后进入到**/etc/httpd/conf/conf.d**目录下
创建站点配置文件,文件名随意,后缀名必须为conf
文件内容如下
1 | Virtual Hosts |
在**/var/www/hello**目录下写入html文件,进行ip访问
解析PHP文件
编辑**/etc/httpd/conf/httpd.conf**
1 | 搜索关键字,匹配到如下配置 |
再搜索AddType关键字,在此配置后面加上如下配置
1 | AddType application/x-httpd-php .php |
重启apche服务即可
接下来即可正常解析PHP文件。
SSL配置
手上暂无域名,后面买了再来补!!
0x03 MySQL
简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
安装(5.7版本)
不同版本安装请前往官网查看相应安装方式。
使用 wget 下载 5.7 版本的mysql yum
1 | wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm |
使用 yum 安装mysql yum
1 | yum localinstall mysql57-community-release-el7-8.noarch.rpm |
检测 mysql yum是否安装成功
1 | yum repolist enabled | grep "mysql.*-community.*" |
安装mysql服务
1 | yum install mysql-community-server |
开启服务
1 | systemctl start mysqld |
修改密码
查看密码
1 | grep "temporary password" /var/log/mysqld.log |
1 | mysql -u root -p |
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; |
mysql默认的密码规则必须包含特殊字符、大写字母、小写字母、数字、一定长度。
如果一定要设置弱密码,可以通过如下命令设置密码规则等级。
1 | set global validate_password_policy=0; |
远程连接设置
1 | #任何主机均可连接,password为登陆密码 |
设置固定ip登陆
1 | use mysql; |
注意
当重置密码退出后再重新登入爆以下错误
1 | ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) |
停止mysql服务
1 | systemctl stop mysqld.service |
修改配置文件为无密码登陆
1 | vi /etc/my.cnf |
在最尾部加上
1 | skip-grant-tables |
保存退出后登陆数据库
1 | mysql -u root |
修改密码
1 | use mysql; |
退出修改配置文件,将之间加skip-grant-tables配置删除,保存退出即可!
0x04 PHP
简介
PHP(Pre Hypertext Preprocessor)即超文本预处理器,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
这里原本采用的是编译安装的方式,但是编译安装后还是存在一些目前解决不了的问题。
怪折腾人的QWQ
后面还是得单独把编译安装搞一搞。
添加EPEL和REMI存储库
1 | yum install epel-release |
1 | yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm |
安装PHP 7.4.16版本
1 | yum -y install yum-utils |
查看仓库的php版本
1 | yum repolist all | grep php |
选择remi-php74版本
1 | yum-config-manager --enable remi-php74 |
安装依赖以及扩展
1 | yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis |
查看php版本
1 | php -v |