更新于 

Web安全-LAMP平台搭建

实验题:

制作本地YUM

  • 1.放入系统光盘,重新挂载到 /media
    • 手动挂载光盘指定目录
      • umount /dev/sr0
      • mount /dev/sr0 /media
      • mount -o ro /dev/sr0 /mnt
    • 开机自动挂载
      • echo "mount -o ro /dev/sr0 /mnt">>/etc/rc.local
      • echo "dev/sr0 /mntiso9660 defaults,ro 0 0">>/etc/fstab
  1. 将原有的yum源文件剪切备份到别处
    mkdir /root/repo-bak
    mv /etc/yum.repos.d/* /root/repo-back

  2. 创建自己的yum源文件
    vim /etc/yum.repos.d/test.repo # 有时候打补丁,安装模块都用得到

    • [test]一个文件可以包含多个yum源地址,使用标签 [] 进行区分
    • name=test 源名称
    • baseurl = file:///media yum源路径
    • enable=1 # 开启该源
    • gpgcheck=1 关闭公钥验证
  3. 如果以前使用过其他yum源,需要清除缓存

    • yum clean all
    • yum make cache
    • yum list 查看当前可用yum源中的软件列表(被刷屏说明正常)
    • yum list installed

LAMP

LAMP 平台搭建

LAMP部署实验

LAMP= Linux + Apache + MySQL + PHP

  • Linux 操作系统
    • Apache HTTP服务,又名 apache httpd 提供静态页面
    • MySQL 数据库, 开源免费的关系型数据库,适用于中小型网站
    • MariaDB 可以视作MySQL 姐妹版,使用方式,配置文件高度相似
  • LANMP 集成环境安装工具
    • phpstudy/小皮
    • 宝塔(BT)
  • Apache环境实验
    • 搭建动态网站架构,安装论坛系统。注意配置项与单独服务部署略有不同。
实验过程1:安装apache软件实现httpd的80端口访问
  • ①卸载冲突软件

    • rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps
  • ②编译安装

    • tar zxf httpd-2.2.15.tar.gz -C /usr/src/
    • cd /usr/src/httpd-2.2.15/
    • ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charsetlite --enable-cgi
    • make && make install
  • ③优化执行路径

    • ln -s /usr/local/httpd/bin/* /usr/local/bin/
  • ④修改主配置文件默认站点名称

    • vim /usr/local/httpd/conf/httpd.conf
    • ServerName www.rfx.com
  • ⑤开启服务

    • apachectl start
    • netstat -anpt | grep 80
  • 浏览器输入localhost查看,当前显示如下表示正常启动
    image.png

实验过程2:安装mysql服务,测试3306端口可用,可登录mysql
  • ①确认系统没有rpm安装的mysql组件,如果有请卸载

    • rpm -q mysql-server mysql
  • ②开始安装mysql-5.5的编译环境,首先在光盘安装包目录安装ncurses-devel

    • rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
  • ③然后安装cmake工具

    • tar zxf cmake-2.8.6.tar.gz
    • cd cmake-2.8.6
    • ./configureg
    • make && gmake install
  • ④创建mysql所用的程序账户

    • groupadd -g 1500 mysql
    • useradd -u 49 -M -s /sbin/nologin -g mysql mysql
  • ⑤解压缩mysql编译包

    • tar zxf mysql-5.5.22.tar.gz -C /usr/src
    • cd /usr/src/mysql-5.5.22/
  • ⑥配置mysql安装信息

    • cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
    • 如果报错 Curses library not found异常 删除解压目录的CMakeCache.txt 然后yum安装ncursesdevel
    • 如果不能访问外部yum源,挂载老师给的centOS iso,安装 ncurses 系列软件包(需要卸载之前的)
  • ⑦编译 && 编译安装mysql

    • make && make install
  • ⑧修改mysql安装目录的归属

    • chown -R mysql:mysql /usr/local/mysql
  • ⑨根据实际情况复制配置文件样板,我们以中型数据库为例

    • cp /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
  • ⑩初始化数据库信息

    • /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
      • 优化命令执行路径
        • ln -s /usr/local/mysql/bin/* /usr/local/bin/
      • 添加开机启动和系统服务
        • cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
        • chmod +x /etc/init.d/mysqld
        • chkconfig --add mysqld
        • systemctl start mysqld
    • 登录mysql
      • mysql -u root
    • 退出数据库
      • quit
    • 效果如下
      image.png
实验过程3:安装PHP支持环境
  • ①卸载相关软件

    • rpm -e php php-cli php-ldap php-common php-mysql --nodeps
  • ②安装3个PHP需要的加密环境

    • (一)

      • tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
      • cd /usr/src/libmcrypt-2.5.8/
      • ./configure
      • make && make install
      • ln -s /usr/local/lib/libmcrypt.* /usr/lib/
    • (二)

      • tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
      • cd /usr/src/mhash-0.9.9.9/
      • ./configure
      • make && make install
      • ln -s /usr/local/lib/libmhash* /usr/lib/
    • (三)

      • tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
      • cd /usr/src/mcrypt-2.6.8/
      • export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
      • ./configure
      • make && make install
  • ③安装PHP环境

    • yum -y install libxml2*
  • ④安装PHP软件

    • tar zxf php-5.3.28.tar.gz -C /usr/src/
    • cd /usr/src/php-5.3.28/
      ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-filepath=/usr/local/php5 --enable-mbstring
    • make && make install
  • ⑤复制PHP主配置文件

    • cp /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini
  • ⑥检查apache中是否被写入PHP信息

    • vim /usr/local/httpd/conf/httpd.conf
  • ⑦配置文件中是否存在

    • LoadModule php5_module con modules/libphp5.so
  • ⑧在AddType出添加一行

    • AddType application/x-httpd-php.php
  • ⑨重启httpd服务

    • apachectl restart
    • 执行后报错如下:
      • httpd: Syntax error on line 54 of /usr/local/httpd/conf/httpd.conf: LoadModule takes two arguments, a module name and the name of a shared object file to load it from
        • vim /usr/local/httpd/conf/httpd.conf 注释掉54行代码
  • ⑩添加php主页

    • DirectoryIndex index.html index.php
    • 编写PHP测试页面
      • vim /usr/local/httpd/htdocs/test1.php
  • 内容为

  • php脚本 -l
    <?php
    
    phpinfo();
    
    ?>
    
    验证成功访问http://192.168.3.1/test1.php
    
    编写数据库测试文件
    
    vim /usr/local/httpd/htdocs/test2.php
    
    内容
    
    <?php
    
    $link=mysql_connect('localhost','bbsadmin','');
    
    if($link) echo "gongxini,chengle!!";
    
    mysql_close();
    
    ?>
  • 验证成功访问http://192.168.3.1/test2.php

    • ln -s /usr/local/php5/bin/php /usr/bin/
  • 添加链接到 /usr/bin

    • php -v 如果显示版本信息则安装成功
    • 安装论坛 //安装包为ISO文件下发

见右侧

  • 虚拟机拖拽传送命令

    • rz -E
  • LAMP一键安装 会带有phpmyadmin 一个图形化管理页面,有漏洞

    • mysql登录命令

    • mysql -u root

  • 设置数据库用户的密码

    • mysql -u root [-p] password
  • 再输入新密码

    • 否则密码会以明文显示在命令行history
  • 查看所有数据库

    • show databases // 不区分大小写
  • 为了方便阅读代码,通常用大写表示命令,其他用小写。

    • 以“;”结尾表示命令输入结束。
  • 进入某个数据库

    • use 数据库;
  • 查看所有表

    • show tables;
  • 显示表的结构

    • describe // 等价缩写命令 desc。输出每列的列名,数据类型,长度,默认值等。
  • 数据库的创建和删除

  • 创建数据库

    • CREATE DATABASE 数据库名;
  • 创建表

CREATE TABLE users (
    id int not null,
    names char(16) not null.pwd char(48) default ''
)
  • 删除表
    • 插入记录
    • 修改记录
    • 删除记录
  • 添加用户
    • 修改用户权限
    • 设置用户权限
  • 给用户haonan开启dao.users表的 select 权限
    • GRANT 权限列表 ON 数据库名.表名TO 用户名@来源地址[ IDENTIFIED BY '密码' ]
    • GRANT select ON dao.users TO haonan’@‘localhost’ IDENTIFIED BY '123.com'
    • 给用户bbsadmin开启bbsdb库下面全部表全部权限
    • GRANT all ON bbsdb.* TO 'bbsadmin'@'localhost' IDENTIFIED BY '123.com'