1、架设一个web服务器。在desktopX上配置一个站点:http://desktop22.example.com ,然后执行下面步骤,并且服务器已经提供DNS解析。
- 网页内容为desktop22.example.com
- 要求来自example.com这个域的成员可以访问desktopX.example.com站点。
- 来自于172.24.0.0/24网段的客户端拒绝访问此web
[[email protected] 桌面]# yum install elinks -y
先安装elinks,测试是否访问
[[email protected] 桌面]# yum install http* -y
带*安装,可以安装手册一起
在conf.d下配置虚拟主机配置文件
十八)Apache+DNS练习-林小屋博客
然后把防火墙的http协议允许通过
十八)Apache+DNS练习-林小屋博客
外面主机测试是否成功
十八)Apache+DNS练习-林小屋博客
2、配置安全web服务
- 为站点http://desktopX.example.com配置TLS加密,并制作一个自签名证书,公钥为joinlabs.crt,私钥为joinlabs.key。
- 要求访问http://desktopX.example.com成功,并且跳转https协议。
安装ssl模块
[[email protected] conf.d]# yum install mod_ssl -y
然后到/etc/pki/tls/certs下生成自制证书
[[email protected] certs]# make joinlabs.crt
然后编辑再去编辑虚拟主机配置文件
<VirtualHost *:443>
    DocumentRoot /var/www/html
    ServerName desktop22.example.com
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/joinlabs.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/joinlabs.key
</VirtualHost>
3、配置虚拟主机。在desktopX上扩展您的web服务器,为站点http://www.example.com创建一个虚拟主机,然后执行下述步骤
- 设置 DocumentRoot为/var/www/virtual
- 请自行配置DNS解析
- 网页内为wwwX.example.com
- 确保用户natasha可以现在或将来都能够在/var/www/virtual的目录中创建内容
注意:原始站点http://desktopX.example.com必须仍然能够访问,名称服务器example.com提供对主机名wwwX.example.com的域名解析。
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www.example.com
    RewriteEngine on
    RewriteCond %{http_host} ^www.example.com
    RewriteRule ^(.*)$ http://www22.example.com
</VirtualHost>
 
setfacl -m u:natasha:rwx virtual
setfacl -m d:natasha:rwx virtual
4、配置web内容的访问。在您的desktopX上的web服务器的DocumentRoot目录下创建一个名为secret的目录,要求如下
- 网页内容为www.secret.com
- 从desktopX上,任何人都可以浏览secret的内容,但是从其他系统不能访问这个目录内容
<VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName desktop22.example.com
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/joinlabs.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/joinlabs.key
        <Directory /var/www/html>
                <RequireAll>
                        Require all granted
                        Require not ip 172.24.0.0/24
                </RequireAll>
        </Directory>
        alias /secret /var/www/html/secret
        <Directory /var/www/html/secret>
                require host .example.com
                require all denied
        </Directory>
5、实现动态web内容,在desktopX上配置提供动态web内容,要求如下:
- 请自行配置DNS解析
- 动态内容由名为webappX.example.com。
- 虚拟主机侦听端口8998
- ftp://i/pub/webapp.wsgi下载一个脚本,然后放在适当的位置,无论如何不要修改此文件内容
- 客户点访问http://webappX.example.com:8998时,应该接收到动态生成的web页面
- 此http://webaapX.example.com:8998必须能被example.com域内的所有系统访问
yum searh mod_wsgi     #查找包名
yum insyall mod_wsgi      #安装模块
[[email protected] wsgi]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[[email protected] wsgi]# semanage port -at http_port_t 8998 -p tcp     #selinux通过端口
[[email protected] wsgi]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      8998, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[[email protected] wsgi]# firewall-cmd --add-port=8998/tcp --permanent     #防火墙通过端口
6、配置web服务。在desktopX上扩展您的web服务器,为站点http://www.joinlabs.com创建一个虚拟主机,然后执行以下步骤
- 请自行配置DNS解析
- 设置 DocumentRoot为/var/www/joinlabs
- 网页内容为www.joinlabs.com
- 通过本机用户alex与harry,即使配上用户密码也不能登录本机系统,但是可以访问此网页,要求访问此网站时需要用户密码,密码为:redhat
- 只有192.168.0.0/24这个网段可以访问。
- 在你的desktop系统上有一个除root用户以外的管理员alex,alex用户能对添加或删除访问web站点的用户。
- alex用户不能重启httpd服务。
#这里需要多个DNS服务器,一台服务器不能做多个二级域名的解析
[[email protected] joinlabs]# head .htaccess
AuthType Basic
AuthName "Welcome to linhut"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user harry alex
[[email protected] joinlabs]# useradd -s /sbin/nologin harry
[[email protected] joinlabs]# useradd alex
[[email protected] joinlabs]# htpasswd -cm /etc/httpd/.htpasswd harry
New password:
Re-type new password:
Adding password for user harry
[[email protected] joinlabs]# htpasswd -m /etc/httpd/.htpasswd alex
#这里的c是创建m是加密方式
[[email protected] joinlabs]# setfacl -m u:alex:rw .htaccess
[[email protected] joinlabs]# setfacl -m u:alex:rw /etc/httpd/.htpasswd
[[email protected] joinlabs]# vim /etc/sudoers
alex    ALL=(ALL)       NOPASSWD:/usr/sbin/useradd
[[email protected] joinlabs]# tail /home/alex/.bash_profile -n1
alias useradd="sudo useradd"
十八)Apache+DNS练习-林小屋博客
7、配置squid代理服务器,要求只有192.168.0.0/24这个网段的主机才能访问所有web站点。
注意:防
[[email protected] joinlabs]# yum install squid -y
[[email protected] joinlabs]# vim /etc/squid/squid.conf
acl Lin src 192.168.0.0/24
http_access allow Lin
[[email protected] joinlabs]# firewall-cmd --add-port=3128/tcp --permanent
[[email protected] joinlabs]# firewall-cmd --list-all
public (default, active)
  interfaces: eno16777736
  sources:
  services: dhcpv6-client http https ssh
  ports: 8998/tcp 3128/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
关键vhost.conf 虚拟主机配置文件
#单独个ip做了一个虚拟主机指向
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName 192.168.0.22
</VirtualHost>
 
#做了一个协议跳转,跳转到https的域名
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName desktop22.example.com
    RewriteEngine on
    RewriteRule ^(.*)$ https://desktop22.example.com     
</VirtualHost>
 
#做的SSL的加密证书,并限制172.24ip段不能通过
<VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName desktop22.example.com
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/joinlabs.crt           
    SSLCertificateKeyFile /etc/pki/tls/certs/joinlabs.key
    <Directory /var/www/html>
                <RequireAll>
                        Require all granted
                        Require not ip 172.24.0.0/24
                </RequireAll>
        </Directory>
    alias /secret /var/www/html/secret
    <Directory /var/www/html/secret>
        require host .example.com
        require all denied
    </Directory>
</VirtualHost>
 
#做了一个域名跳转,www.redhat.com跳转到www22.example.com
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www.example.com
    RewriteEngine on
    RewriteCond %{http_host} ^www.redhat.com
    RewriteRule ^(.*)$ http://www22.example.com
</VirtualHost>
 
#做了一个特殊端口的虚拟主机访问指向,并且做了域名访问限制
<VirtualHost *:8998>
    DocumentRoot "/var/www/wsgi"
    ServerName webapp22.example.com
    wsgiscriptalias / /var/www/wsgi/webapp.wsgi
     <Directory /var/www/wsgi>
                require host .example.com
                require all denied
        </Directory>
</VirtualHost>
 
#开启了端口8998
Listen 8998
 
#新建一个虚拟主机并限制可访问ip段
<VirtualHost *:80>
    DocumentRoot "/var/www/joinlabs"
    ServerName www.joinlabs.com
    <Directory "/var/www/joinlabs">
        AllowOverride all     #开启之后可以在网站跟目录写一个.htaccess的访问控制文件 
        Require all denied
    Require ip 192.168.0.0/24
    </Directory>
</VirtualHost>
DNS配置文件:
vim /etc/named.rfc1912.zones
zone "example.com" IN {
        type master;
        file "example.com.zone";
        allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "0.168.192.zone";
        allow-update { none; };
};
vim /var/named/example.com.zone
$TTL 1D
@       IN SOA  desktop22.example.com. root.example.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      desktop22.example.com.
desktop22       A       192.168.0.22
www             A       192.168.0.22
www22           A       192.168.0.22
webapp22        A       192.168.0.22
vim /var/named/0.168.192.zone
$TTL 1D
@       IN SOA  desktop22.example.com. root.example.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      desktop22.example.com.
2       PTR     desktop22.example.com.
3       PTR     www22.example.com.
4       PTR     www.example.com.
5       PTR     webapp22.example.com.

 视频分享

链接: https://pan.baidu.com/s/1c2TtIQO 密码: e3jz