httpd-2.2项目(虚拟主机、用户认证、私有网络安全实现)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

实验环境

  • 提供两个基于名称的虚拟主机

    • wp.mykernel.cn,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;

    • www.mykernel.cn, 页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;

    • 为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;

    • 通过wp.mykernel.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);

  • 为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;

    • 要求使用证书认证,证书中要求使用的国家(CN)、州(ChengDu)、城市(ChengDu)和组织(MageEdu);

    • 设置部门为Ops,主机名为www.mykernel.cn,邮件为admin@mykernel.cn;

基本配置<172.16.100.1>

  • 配置yum源

      * 挂载光盘
      # mkdir /media/cdrom
      # mount -r /dev/cdrom /media/cdrom
      * yum仓库配置
      # mv /etc/yum.repos.d/CentOS-Base.repo{,.bak}
      # vim CentOS-Base.repo
          [C6-media]
          name=Base repo for CentOS 6
          failovermethod=priority
          baseurl=file:///media/cdrom
          gpgcheck=1
          gpgkey=file:///media/cdrom/RPM-GPG-KEY-CentOS-6
          enabled=1
  • 安装httpd-2.2程序

      # yum -y install httpd
  • 启动服务<172.16.100.1>

      # service httpd start
  • 支持纯文本协议客户端工具访问测试

      安装
          # yum -y install curl elinks telnet
      测试
          # curl -I localhost
          # elinks --dump http://localhost
    
          # telnet 172.16.100.1 80
          GET / HTTP/1.1
          Host: 172.16.100.1

配置虚拟主机

  • 准备DocumentRoot,及对应的index.html文件<172.16.100.1>

      # install -d /web/vhosts/www{1,2}/
      # echo "wp.mykernel.cn" > /web/vhosts/www1/index.html
      # echo "www.mykernel.cn" > /web/vhosts/www2/index.html
  • 修改/etc/httpd/conf/httpd.conf配置文件<172.16.100.1>

      备份配置文件:
          # cp -v /etc/httpd/conf/httpd.conf{,.bak}
    
      在配置文件中修改并添加如下内容:
          # vim /etc/httpd/conf/httpd.conf 
              #DocumentRoot "/var/www/html"
              NameVirtualHost *:80
              <VirtualHost *:80>
                 ServerName wp.mykernel.cn
                 DocumentRoot /web/vhosts/www1
                 ErrorLog logs/wp.err
                 CustomLog logs/wp.access combined
                 <Location /server-status>
                     SetHandler server-status
                     Order allow,deny
                     allow from all
                     AuthType Basic
                     AuthName "Secure Type/Domain"
                     AuthUserFile "conf.d/.htpasswd"
                     Require user status
                 </Location>
                 #ExtendedStatus On
              </VirtualHost>
              <VirtualHost *:80>
                 ServerName www.mykernel.cn
                 DocumentRoot /web/vhosts/www2
                 ErrorLog logs/www.err
                 CustomLog logs/www.access combined
              </VirtualHost>
    
      退出配置文件后:
          # httpd -t
          # htpasswd -c -s /etc/httpd/conf.d/.htpasswd status 
          # service httpd reload
  • 在windows主机中测试,虚拟账号是否能正常登陆

    • 手动添加解析条目

      进入此文件C:\Windows\System32\drivers\etc,添加如下条目
      
      172.16.100.1        wp.mykernel.cn
      172.16.100.1        www.mykernel.cn
    • 在浏览器中,输入URL,测试结果

      http://wp.mykernel.cn
      http://www.mykernel.cn
      
      http://wp.mykernel.cn/server-status
      账号:status,密码:status
    • 图片 

mod_ssl模块,实现加密通信

  • 自建CA<172.16.100.2>

      # dir=/etc/pki/CA
      # touch $dir/index.txt
      # echo "01" > $dir/serial
      # (umask 077;openssl genrsa -out $dir/private/cakey.pem 2048)
      # openssl req -new -x509 -key $dir/private/cakey.pem -out $dir/cacert.pem -days 7300
          (CN, Beijing, Beijing, MageEdu, Ops, ca.magedu.com, admin@mykernel.cn)
  • 生成请求<172.16.100.1>

      # install -d /etc/httpd/ssl && cd /etc/httpd/ssl
      # (umask 077;openssl genrsa -out httpd.key 2048)
      # openssl req -new -key httpd.key -out httpd.csr -days 365
          (CN, Beijing, Beijing, MageEdu, Ops, www.mykernel.cn, admin@mykernel.cn)
  • 提交请求PUSH<172.16.100.1>

      # scp httpd.csr root@172.16.100.2:/tmp
  • 验证并颁发证书<172.16.100.2>

      # openssl ca -in /tmp/httpd.csr -out $dir/certs/www.mykernel.cn.crt -days 365
  • 获取证书PULL<172.16.100.1>

      # scp root@172.16.100.2:/etc/pki/CA/certs/www.mykernel.cn.crt .
  • 安装mod_ssl模块<172.16.100.1>

      # yum -y install mod_ssl
  • 修改/etc/httpd/conf.d/ssl.conf配置<172.16.100.1>

      备份配置文件:
          # cp -v /etc/httpd/conf.d/ssl.conf{,.bak}
      修改配置文件:
          # vim /etc/httpd/conf.d/ssl.conf
              <VirtualHost *:443>
              DocumentRoot "/web/vhosts/www2"
              ServerName www.mykernel.cn
              SSLEngine on
              SSLCertificateFile /etc/httpd/ssl/www.mykernel.cn.crt
              SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
      退出配置文件:
          # httpd -t
          # service httpd restart
      查看443端是否处于监听状态
          # ss -tnl
  • 测试是否能正常访问

    • Linux主机测试<172.16.100.2>

      添加解析记录:
      # vim /etc/hosts
        172.16.100.1  www.mykernel.cn
      
      # openssl s_client -connect www.mykernel.cn:443 -CAfile /etc/pki/CA/cacert.pem
      New, TLSv1.2/SSLv3
    • Windows主机测试

        * 将172.16.100.2中的公钥,导入至Windows中的受信任的证书颁发机构列表中
        访问https://www.mykernel.cn即可










本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1969289,如需转载请自行联系原作者
相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云专有网络VPC使用教程
专有网络VPC可以帮助您基于阿里云构建出一个隔离的网络环境,并可以自定义IP 地址范围、网段、路由表和网关等;此外,也可以通过专线/VPN/GRE等连接方式实现云上VPC与传统IDC的互联,构建混合云业务。 产品详情:https://www.aliyun.com/product/vpc
目录
相关文章
|
2月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
55 5
|
21天前
|
运维 供应链 安全
阿里云先知安全沙龙(武汉站) - 网络空间安全中的红蓝对抗实践
网络空间安全中的红蓝对抗场景通过模拟真实的攻防演练,帮助国家关键基础设施单位提升安全水平。具体案例包括快递单位、航空公司、一线城市及智能汽车品牌等,在演练中发现潜在攻击路径,有效识别和防范风险,确保系统稳定运行。演练涵盖情报收集、无差别攻击、针对性打击、稳固据点、横向渗透和控制目标等关键步骤,全面提升防护能力。
|
2月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
89 32
|
1月前
|
云安全 人工智能 安全
|
1月前
|
存储 安全 网络安全
云计算与网络安全:探索云服务的安全挑战与策略
在数字化的浪潮下,云计算成为企业转型的重要推手。然而,随着云服务的普及,网络安全问题也日益凸显。本文将深入探讨云计算环境下的安全挑战,并提出相应的防护策略,旨在为企业构建安全的云环境提供指导。
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
85 11
|
2月前
|
存储 安全 网络安全
云计算与网络安全:技术融合与安全挑战
随着云计算技术的飞速发展,其在各行各业的应用日益广泛。然而,随之而来的网络安全问题也日益凸显,成为制约云计算发展的重要因素。本文将从云服务、网络安全、信息安全等方面探讨云计算与网络安全的关系,分析云计算环境下的网络安全挑战,并提出相应的解决方案。
|
2月前
|
SQL 安全 算法
数字时代的守护者:网络安全与信息安全的现代策略
在数字化浪潮中,网络安全与信息安全如同航船上不可或缺的罗盘和舵。本文将探讨网络安全漏洞的成因、加密技术的重要性以及安全意识的培养,旨在为读者提供一套完整的网络自我保护指南。从基础概念到实用策略,我们将一起航行在安全的海洋上,确保每一位船员都能抵达信息保护的彼岸。
|
2月前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
105 5
|
2月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现