当前位置:   article > 正文

安全部署lamp网络

安全部署lamp网络

实验目的

1.理解LAMP架构:通过实验,可以深入理解LAMP架构的组成部分及其工作原理。LAMP是一组常用来搭建动态网站或服务器的开源软件,它们共同构成了一个强大的Web应用程序平台。

2.熟悉LAMP环境搭建:通过亲手搭建LAMP环境,可以熟悉各组件的安装、配置和调试过程,提升实际操作能力。

3.加强系统安全性:通过使用防火墙来增加安全性,可以深入理解防火墙的功能和工作原理,熟悉如何配置和使用防火墙来保护系统免受外部威胁。防火墙能增强机构内部网络的安全性,决定哪些内部服务可以被外界访问,外界的哪些人可以访问内部的服务,以及哪些外部服务可以被内部人员访问。

4.实践安全策略:通过配置防火墙来限制对LAMP环境的访问,可以实践安全策略,例如只允许授权的数据通过,并防止未授权的访问和潜在的安全威胁。

5.提升实践技能:通过完成这个实验,可以提升在Linux系统操作、网络服务搭建、数据库

实训内容

1、用RedHat、Test和Dtabase三台机器

2、RedHat安装PHP和Apache,通过phpadmin允许访问Database的数据库,Database安装mysql

3、,Test允许访问RedHat,RedHat允许访问Database,但Test不能访问Database

4、分别修改RedHat服务端口和Database服务端口重新登录

实训结果

用到三台机器分别是Test:10.0.0.230;RedHat:10.0.0.210;Database:10.0.0.240

分机讲解:

  1. 所有虚拟机进行的步骤,

(1.)下载安装redhot虚拟机

详情参考:关于Red Hat rhel9 账户注册和下载安装_rhel下载-CSDN博客

(2.)网络以及分配IP

详情参考:Redhat Enterprise Linux 9网络配置以及远程连接_红帽9怎么连网-CSDN博客

(3).本地源或者国内yum源的配置

详情参考:Linux rhel9 配置本地yum源和国内yum源(适合新手小白体质)_yum镜像源-CSDN博客

  1. Databasc,IP地址为10.0.0.240

Databas机搭建数据库

(1).下载数据库MySQL

安装和配置MySQL

  1. 安装MySQL

使用包管理器安装MySQL数据库。

yum install mysql mysql-server  

 

如图所示即下载完成

  1. 启动并配置MySQL

systemctl start mysqld 启动MySQL服务。

systemctl enable mysqld 设置MySQL为开机自启动。

运行mysql_secure_installation脚本进行安全设置(如设置root密码、删除匿名用户等)。

如图所示,安装完成并且正常启动

如图,进入/etc/my.cnf进行配置更改

如图所示即完成配置更改,其余虚拟机可以使用这个虚拟机上搭建的MySQL

  1. RedHat,IP地址为10.0.0.210
  1. 安装Apache
    • 使用包管理器(如yum)安装Apache服务器。
    • yum install httpd httpd-devel

  1. 启动并配置Apache
    • systemctl start httpd 启动Apache服务。
    • systemctl enable httpd 设置Apache为开机自启动。
    • 配置Apache的虚拟主机或网站目录等(根据需求)。

  1. 安装PHP
    • 使用包管理器安装PHP及其相关扩展(如MySQL扩展)。
    • yum install php php-mysql
  2. 配置PHPApache的集成
    • 安装并配置PHP的FastCGI进程管理器(如php-fpm)。
    • 配置Apache以使用FastCGI与PHP通信。

配置完成后可以在浏览器中看到以下页面

  1. Test,IP地址为:10.0.0.230

不需要过多操作

联通整合虚拟机资源:

因为lamp平台中phpadmin和MySQL并不在一个虚拟机当中,所以要更改文件配置

首先需要更改MySQL上的设置,主要是需要创建一个用户并且给为这个IP的地址,作为他的用户

登录到MySQL服务器

首先,你需要使用具有足够权限的MySQL用户(通常是root用户)登录到MySQL服务器。你可以通过命令行客户端、MySQL Workbench或其他MySQL管理工具来执行此操作。

mysql -u root -p

然后输入你的MySQL root 用户的密码。

创建用户

如果还没有该用户,你可以使用CREATE USER语句来创建一个新用户。指定用户名和允许其连接的主机。

CREATE USER 'yourusername'@'10.0.0.230' IDENTIFIED BY 'yourpassword';

这里,'yourusername' 是你想要创建的用户名,'10.0.0.230' 是允许连接的IP地址,'yourpassword' 是该用户的密码。

如果你想允许该用户从任何IP地址连接,你可以使用通配符%:

CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';

但请注意,出于安全考虑,通常不建议这样做,除非你确实需要这样做,并且你了解相关的安全风险。

授予权限

接下来,你需要使用GRANT语句来授予用户所需的权限。例如,如果你想让用户能够访问名为yourdatabase的数据库中的所有表,你可以这样做:

GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'10.0.0.230';

如果你想让用户拥有对所有数据库的所有权限,你可以这样做:

GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'10.0.0.230';

但同样,出于安全考虑,通常最好只授予用户所需的最小权限。

/* Server parameters */ 

$cfg['Servers'][$i]['host'] = '10.0.0.240'; // MySQL hostname or IP address 

$cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port 

$cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket 

$cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket') 

$cfg['Servers'][$i]['extension'] = 'mysqli'; // The php MySQL extension to use ('mysql' or 'mysqli') 

$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)? 

$cfg['Servers'][$i]['user'] = 'myuser'; // MySQL user 

$cfg['Servers'][$i]['password'] = 'mypassword'; // MySQL password

这里的mydatabase是你要创建的数据库名,myuser是用户名,mypassword是用户的密码。请确保将mypassword替换为一个强密码。

配置phpMyAdmin以连接到数据库

在phpMyAdmin所在的主机(10.0.0.210)上,你需要编辑phpMyAdmin的配置文件(通常是config.inc.php),以指定MySQL服务器的地址、用户名和密码。

弄完以上内容在浏览器内输入IP就可看到以下页面

三台虚拟机中的浏览器都可以查看到

更改端口:

更改配置文件,首先是apache的端口在apache的配置文件中,一般存在/etc/httpd/conf.d中更改port,我这里的更改是10080,直接更改就可以了

其次ssh,在ssh配置文件中更改为10022

最后更改MySQL的端口,在/etc/my.conf中添加port:30438即可以了,更改完mysql之后,需要将phpadmin中的配置文件的3036默认端口更改为30438,就完成端口的修改

配置完成端口后,进入浏览器查看,这次需要输入端口号10080,才可以查看到

并且更改完ssh后,远程连接需要更改端口,用win11终端输入ssh lius@10.0.0.210/230/240 -p 10022才可以远程连接成功

更改防火墙:

远程连接:

在每台主机上,您需要配置防火墙以允许从外部IP地址到10022端口的SSH连接,并拒绝来自其他两台主机的连接。这通常可以通过iptables或firewalld来实现。 以firewalld为例,您可以使用以下命令来允许从任何外部IP地址的SSH连接,并拒绝来自特定IP地址的连接:

# 允许SSH连接(10022端口)

sudo firewall-cmd --zone=public --add-port=10022/tcp --permanent

sudo firewall-cmd --reload

# 拒绝来自其他两台主机的连接(需要针对每台主机分别执行)

sudo firewall-cmd --zone=public --add-source=10.0.0.210 --reject --port=10022/tcp --permanent

sudo firewall-cmd --zone=public --add-source=10.0.0.230 --reject --port=10022/tcp --permanent

sudo firewall-cmd --zone=public --add-source=10.0.0.240 --reject --port=10022/tcp --permanent

sudo firewall-cmd --reload

但是,由于您希望这三台主机不能互相远程连接,您实际上不需要在最后三个命令中包含所有三台主机的IP地址。每台主机只需要拒绝来自其他两台主机的连接。

数据库与phpadmin数据流:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.230" port protocol="tcp" port="30438" accept'

sudo firewall-cmd –reload

三台机子的虚拟机防火墙规则如下

Test:

Database

Redhot:

更改完后在redhot,test上可以进入页面,如下

而在Database中无法访问页面,显示如下

远程连接

Test:

Database

Redhot:

实验总结

一、实验目标

本次实验的目标是成功在Linux系统上搭建LAMP环境,以便能够支持动态网站的开发和运行。通过安装和配置ApacheMySQLPHP,我们期望能够创建一个功能完善的Web服务器,为后续的项目开发和部署提供稳定的基础。

二、实验步骤

  1. 准备Linux虚拟机:首先,我们准备了一个CentOS的虚拟机,并进行了最小化安装。为了确保环境的纯净性,我们彻底卸载了预装的MySQL,并关闭了SELinux。
  2. 安装Apache:我们通过yum命令安装了Apache HTTP服务器,并配置了相关的虚拟主机和目录权限。
  3. 安装MySQL:在卸载了原有的MySQL之后,我们下载了MySQL的源码包,并进行了编译安装。在安装过程中,我们创建了mysql用户和组,并设置了相关的权限和配置文件。
  4. 安装PHP:接下来,我们安装了PHP以及其与MySQL的关联库。这允许PHP脚本能够与MySQL数据库进行交互。
  5. 测试与验证:安装完成后,我们创建了一个简单的PHP测试页面来验证LAMP环境的正确性。通过访问这个页面,我们能够确认Apache、MySQL和PHP是否都正常工作。

三、遇到的问题及解决方案

在实验过程中,我们遇到了一些问题,如MySQL安装过程中的权限问题、PHPMySQL的连接问题等。针对这些问题,我们通过查阅官方文档、搜索网络资源以及咨询同学和老师,最终找到了解决方案并成功解决了这些问题。

四、实验结论与感悟

通过本次实验,我们成功搭建了一个功能完善的LAMP环境,为后续的项目开发和部署提供了稳定的基础。在实验过程中,我们不仅学会了如何安装和配置这些软件,还学会了如何解决问题和克服困难。这些经验将对我们未来的学习和工作产生积极的影响

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/645675
推荐阅读
相关标签
  

闽ICP备14008679号