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中命令行模式全文查找: /ServerNameServerName 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.建立从配置文件 [root@server0 ~]# 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.修改从配置文件
[root@server0 ~]# 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.建立新的配置文件 [root@server0 ~]# 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.安全上下文(标签)
[root@server0 ~]# 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.html3.修改访问控制配置文件,/etc/httpd/conf.d/nsd02.conf
<Directory "/webroot"> Require all granted </Directory> 4.修改SELinux标签值 # chcon -R --reference=/var/www /webroot5.重起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软件包 [root@server0 ~]# yum -y install mod_ssl [root@server0 ~]# ls /etc/httpd/conf.d/ssl.conf2.部署网站的证书(营业执照)
# cd /etc/pki/tls/certs/ # wget http://172.25.254.254/pub/tls/certs/server0.crt3.部署网站的根证书(公安局信息)
# cd /etc/pki/tls/certs/ # wget http://172.25.254.254/pub/example-ca.crt4.部署私钥(用于解密)
# cd /etc/pki/tls/private/ # wget http://172.25.254.254/pub/tls/private/server0.key5.修改配置文件/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.crt6.重起httpd服务
虚拟机desktop0上验证:
[root@desktop0 ~]# firefox https://server0.example.com######################################################
部署动态网站静态网站的运行
• 服务端的原始网页 = 浏览器访问到的网页 动态网站的运行 • 服务端的原始网页 ≠ 浏览器访问到的网页 – 由Web服务软件接受请求,动态程序转后端模块处理 案例6:部署并测试WSGI站点1.安装支持Python软件
[root@server0 /]# yum -y install mod_wsgi2.切换到相应/var/www/nsd目录下载动态页面
# cd /var/www/nsd/
# wget http://172.25.254.254/pub/materials/webinfo.wsgi # cat webinfo.wsgi3.在Desktop0上查看,可以看到源代码
# firefox webapp0.example.com/webinfo.wsgi4.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.comUINX时间戳:自1970-1-1 0:0:0到达当前所经过的秒数
10.修改webapp0.example.com监听端口8909 server0上修改 /etc/httpd/conf.d/nsd01.confListen 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