linux系统学习第九天-<<工程师技术>>

两台虚拟机,均要检测
1.IP地址
2.是否可以解析,server0.example.com
3.Yum是否可用

4.防火墙默认区域修改为trusted

####################################################

? 基于 B/S (Browser/Server)架构的网页服务
– 服务端提供网页
– 浏览器下载并显示网页
? Hyper Text Markup Language,超文本标记语言
? Hyper Text Transfer Protocol,超文本传输协议

? 软件包:httpd
? 系统服务:httpd

? 提供的默认配置
– Listen:监听地址:端口(80)
– ServerName:本站点注册的DNS名称(空缺)
– DocumentRoot:网页根目录(/var/www/html)
– DirectoryIndex:起始页/首页文件名(index.html)

#############################################
一、搭建基本Web服务
虚拟机Server0上:
1.安装httpd软件
2.启动httpd服务,并且设置 为开机自起
3.书写 网页文件
# echo My First Web > /var/www/html/index.html

虚拟机Desktop0上:
# elinks -dump 172.25.0.11

#############################################

– ServerName:本站点注册的DNS名称(空缺)

虚拟机Server0上:
1.修改主配文件的内容/etc/httpd/conf/httpd.conf
  vim中命令行模式全文查找:   /ServerName

ServerName  server0.example.com:80

2.  重起httpd服务

虚拟机Desktop0上:
# elinks -dump server0.example.com

##############################################

– DocumentRoot:网页根目录(/var/www/html)

虚拟机Server0上:
1.修改主配文件的内容/etc/httpd/conf/httpd.conf
DocumentRoot  "/var/www/abc"
2.创建目录/var/www/abc
3.重起httpd服务
4.书写网页文件
# echo wo shi abc > /var/www/abc/index.html

虚拟机Desktop0上:
# elinks  -dump  server0.example.com

##################################################

虚拟Web主机
    – 由同一台服务器提供多个不同的Web站点

? 区分方式
    – 基于域名的虚拟主机
    – 基于端口的虚拟主机
    – 基于IP地址的虚拟主机

? 配置文件路径
– /etc/httpd/conf/httpd.conf   #主配置文件
– /etc/httpd/conf.d/*.conf     #从配置文件

<VirtualHost *:80>
    ServerName www.qq.com
    DocumentRoot /var/www/qq
 </VirtualHost>

帮助文档:/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
1.建立从配置文件
[[email protected] ~]# vim /etc/httpd/conf.d/nsd01.conf
 <VirtualHost   *:80>
    DocumentRoot   /var/www/test
    ServerName   www0.example.com
 </VirtualHost>

<VirtualHost   *:80>
    DocumentRoot   /var/www/nsd
    ServerName   webapp0.example.com
 </VirtualHost>

2. 建立目录及相应的网页内容
# echo wo shi test > /var/www/test/index.html
# echo wo shi nsd > /var/www/nsd/index.html
3. 重起httpd服务

#################################################
  启用虚拟Web主机,所有的站点都必须用虚拟Web主机来实现

保证 server0.example.com可以访问

1.修改从配置文件
[[email protected] ~]# vim /etc/httpd/conf.d/nsd01.conf
  追加写入

<VirtualHost   *:80>
    DocumentRoot   /var/www/abc
    ServerName   server0.example.com
 </VirtualHost>

2. 重起httpd服务

虚拟机Desktop0上:
# elinks  -dump  server0.example.com
 
################################################
 httpd服务访问控制

虚拟机server0:
1.创建目录与网页文件
# mkdir  /var/www/abc/private
# echo 小蝌蚪找妈妈  >  /var/www/abc/private/index.html
# cat  /var/www/abc/private/index.html
2.建立新的配置文件
[[email protected] ~]# vim /etc/httpd/conf.d/nsd02.conf
 <Directory   "/var/www/abc/private">
    Require   ip  172.25.0.11   127.0.0.1    #仅允许本机访问
 </Directory>

3 重起httpd服务

测试:  在Desktop0上访问失败,在Server0上访问可以
   elinks  -dump  server0.example.com/private      
    
###################################################
思路:客户端访问服务端资源
    1.防火墙是否限制
    2.服务本身的访问控制
  3.SELinux 是否限制

SELinux策略保护

1.安全上下文(标签)
[[email protected] ~]# chcon -R --reference=/var/www /webroot

? 方式1:参照标准目录,重设新目录的属性
– chcon [-R] --reference=模板目录 新目录

使用自定Web根目录
1.修改配置文件 /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
    DocumentRoot /webroot
    ServerName server0.example.com
</VirtualHost>

2.创建目录与网页文件
# mkdir /webroot
# echo wo shi webroot > /webroot/index.html

3.修改访问控制配置文件,/etc/httpd/conf.d/nsd02.conf
 <Directory "/webroot">
    Require all granted
 </Directory>
 
4.修改SELinux标签值
# chcon -R --reference=/var/www /webroot

5.重起httpd服务验证
6.在Desktop0上: elinks  -dump  server0.example.com
############################################################

安全Web服务

安全的超文本协议 https  端口为:443

PKI公钥基础设施
? Public Key Infrastructure,公钥基础设施
    – 公钥:主要用来加密数据
    – 私钥:主要用来解密数据(与相应的公钥匹配)
    – 数字证书:证明拥有者的合法性/权威性(单位名称、
    有效期、公钥、颁发机构及签名、......)
    – Certificate Authority,数字证书授权中心:负责证书
    的申请/审核/颁发/鉴定/撤销等管理工作

? HTTPS 加密Web通信(TCP 443端口)
– Secure Sockets Layer ,安全套接字层
– Transport Layer Security,安全传输层协议
? 实现条件
– 启用 SSL 模块支持
– 部署好加密素材:网站服务器的数字证书、网站服务
器的私钥、根证书(CA管理机构的证书)

虚拟机server0上操作:
1.安装mod_ssl软件包
[[email protected] ~]# yum -y install mod_ssl
[[email protected] ~]# ls /etc/httpd/conf.d/ssl.conf

2.部署网站的证书(营业执照)
# cd /etc/pki/tls/certs/
# wget http://172.25.254.254/pub/tls/certs/server0.crt

3.部署网站的根证书(公安局信息)
# cd /etc/pki/tls/certs/
# wget http://172.25.254.254/pub/example-ca.crt

4.部署私钥(用于解密)
# cd /etc/pki/tls/private/
# wget http://172.25.254.254/pub/tls/private/server0.key

5.修改配置文件/etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>
59行  DocumentRoot "/webroot"
60行  ServerName server0.example.com:443
100行 SSLCertificateFile /etc/pki/tls/certs/server0.crt
107行SSLCertificateKeyFile /etc/pki/tls/private/server0.key
122行SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt

6.重起httpd服务

虚拟机desktop0上验证:
[[email protected] ~]# firefox https://server0.example.com

######################################################
  部署动态网站

静态网站的运行
? 服务端的原始网页 = 浏览器访问到的网页

动态网站的运行
? 服务端的原始网页 ≠ 浏览器访问到的网页
– 由Web服务软件接受请求,动态程序转后端模块处理

案例6:部署并测试WSGI站点

1.安装支持Python软件
[[email protected] /]# yum -y install mod_wsgi

2.切换到相应/var/www/nsd目录下载动态页面

# cd /var/www/nsd/
# wget http://172.25.254.254/pub/materials/webinfo.wsgi
# cat webinfo.wsgi

3.在Desktop0上查看,可以看到源代码
# firefox  webapp0.example.com/webinfo.wsgi

4.server0上修改 /etc/httpd/conf.d/nsd01.conf

/var/www/nsd  ==== 客户端的 /

<VirtualHost  *:80>
    DocumentRoot  /var/www/nsd
    ServerName  webapp0.example.com
    alias  /  /var/www/nsd/webinfo.wsgi
 </VirtualHost>

5.重起httpd服务验证
6.验证
# elinks  -dump   webapp0.example.com

7.server0上修改 /etc/httpd/conf.d/nsd01.conf

/var/www/nsd  ==== 客户端的 /

<VirtualHost  *:80>
    DocumentRoot  /var/www/nsd
    ServerName  webapp0.example.com
    wsgiscriptalias  /  /var/www/nsd/webinfo.wsgi
 </VirtualHost>
8.重起httpd服务验证
9.验证
# elinks  -dump   webapp0.example.com

UINX时间戳:自1970-1-1  0:0:0到达当前所经过的秒数
10.修改webapp0.example.com监听端口8909
   server0上修改 /etc/httpd/conf.d/nsd01.conf

Listen 8909
 <VirtualHost *:8909>
     DocumentRoot /var/www/nsd
     ServerName webapp0.example.com
     wsgiscriptalias / /var/www/nsd/webinfo.wsgi
 </VirtualHost>

11. SELinux 限制非默认端口  8909

# semanage port -l  |  grep http       #查看允许的端口
# semanage port -a  -t  http_port_t  -p tcp 8909  #添加端口
# semanage port -l | grep http
# elinks -dump webapp0.example.com:8909

时间: 2024-11-09 01:39:10

linux系统学习第九天-<<工程师技术>>的相关文章

linux系统学习第八天-&lt;&lt;工程师技术&gt;&gt;

两台虚拟机,均修改防火器与主机名 虚拟机server0: # firewall-cmd --set-default-zone=trusted # echo server0.example.com  >  /etc/hostname # cat /etc/hostname 虚拟机desktop0: # firewall-cmd --set-default-zone=trusted # echo desktop0.example.com  >  /etc/hostname # cat /etc/h

linux系统学习第十二天-&lt;&lt;工程师技术&gt;&gt;

虚拟化概述 ? Virtualization 资源管理     – x个物理资源 --> y个逻辑资源     – 实现程度:完全.部分.硬件辅助(CPU) 手动新建一台虚拟机:                   虚拟机名字:example                 网络类型选择:private1 ######################################################### ? 使用 virt-manager 客户端工具 在真机上操作: ? 查看KV

Linux系统学习日志Day01

Day01   Linux系统学习日志 (一)  Linux历史 创始人:林纳斯·托瓦兹 时间:1991 年10 月5 日(对外公开时间) 现状:多版本,有redhat.centos.Ubuntu.fedora (二)  Linux认证 管理员:RHCSA 需要掌握的知识: Linux的命令和日常维护,包括安装操作系统.构建网络连接.管理物理存储和执行基础安全管理. 工程师:RHCE 需要掌握的知识: RH124红帽企业Linux基础 RH134红帽企业Linux系统管理 RH254红帽企业Li

Linux系统学习之路和常用命令及其他系统相关内容

Linux系统学习之路 目录 Linux系统学习之路[第一篇]:Linux目录和基础知识 Linux系统学习之路[第二篇]:文件操作,文件查看,find查找 Linux系统学习之路[第三篇]:grep,vim,压缩功能详解 Linux系统学习之路[第四篇]:mount,rpm,yum,yum组讲解 Linux系统学习之路[第五篇]:用户和用户组管理 Linux系统学习之路[第六篇]:权限管理 Linux系统学习之路[第七篇]:磁盘和文件管理 Linux系统学习之路[第八篇]:LVM逻辑卷和RAI

Linux系统理解以及Linux系统学习心得

原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多

Linux系统学习笔记:序

Linux系统学习笔记:序 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 本人使用的Linux为Ubuntu,主要以<APUE>(第3版)为学习蓝本. 1. Unix/Linux 体系结构 如图: 内核的接口被称为系统调用.公用函数库构建在

Linux系统学习之用户与用户组

在Linux中,每个用户都拥有一个唯一的用户名和与之相关的用户标识符(UID,数值型).一个用户可以属于多个用户组,每个用户组都拥有唯一一个名称和一个用户组标识符(GID,数值型). UID和GID的主要用途有:一,确定各种系统资源的所有权:二,对赋予进程访问资源的权限进行控制. 说起用户和用户组,就必须谈谈相关的系统文件:/etc/passwd./etc/shadow和/etc/group.这些文件在Linux系统上都是以纯文本的形式存储.我们可以使用编辑器来修改它,也可以使用专有的命令来更改

linux系统学习第十三天-&lt;&lt;工程师技术&gt;&gt;

主要用途 /boot         存放系统引导必需的文件,包括内核.启动配置 /bin./sbin   存放各种命令程序 /dev          存放硬盘.键盘.鼠标.光驱等各种设备文件 /etc          存放Linux系统及各种程序的配置文件 /root./home/  用户名 分别是管理员root.普通用户的默认家目录 /var          存放日志文件.邮箱目录等经常变化的文件 /proc         存放内存中的映射数据,不占用磁盘 /tmp         

老司机浅谈linux系统学习技巧

Linux起源于20世纪70年代,是一种优秀的操作系统系统.初次接触到linux这个系统是在大学期间,这样才发现除了windows外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它独有的魅力所吸引.即使它的可视化窗口操作模式并不如Windows操作系统那样完美,可是它的可维护性.操作系统低占用率.可扩展性却让它在服务器操作系统方面已经成为资深服务器工程师的首选的操作工具. 笔者刚开始学习linux的时候,也不是一帆风顺的,一次偶然的机会在网上看到<linux就该这么学>这本