1、架设一个web服务器。在desktopX上配置一个站点:http://desktop22.example.com ,然后执行下面步骤,并且服务器已经提供DNS解析。
- 网页内容为desktop22.example.com
- 要求来自example.com这个域的成员可以访问desktopX.example.com站点。
- 来自于172.24.0.0/24网段的客户端拒绝访问此web
[root@localhost 桌面]# yum install elinks -y
先安装elinks,测试是否访问
[root@localhost 桌面]# yum install http* -y
带*安装,可以安装手册一起
在conf.d下配置虚拟主机配置文件
然后把防火墙的http协议允许通过
外面主机测试是否成功
2、配置安全web服务
- 为站点http://desktopX.example.com配置TLS加密,并制作一个自签名证书,公钥为joinlabs.crt,私钥为joinlabs.key。
- 要求访问http://desktopX.example.com成功,并且跳转https协议。
安装ssl模块
[root@desktop22 conf.d]# yum install mod_ssl -y
然后到/etc/pki/tls/certs下生成自制证书
[root@desktop22 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 #安装模块
[root@desktop22 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
[root@desktop22 wsgi]# semanage port -at http_port_t 8998 -p tcp #selinux通过端口
[root@desktop22 wsgi]#
[root@desktop22 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
[root@desktop22 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服务器,一台服务器不能做多个二级域名的解析
[root@desktop22 joinlabs]# head .htaccess
AuthType Basic
AuthName "Welcome to linhut"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user harry alex
[root@desktop22 joinlabs]# useradd -s /sbin/nologin harry
[root@desktop22 joinlabs]# useradd alex
[root@desktop22 joinlabs]# htpasswd -cm /etc/httpd/.htpasswd harry
New password:
Re-type new password:
Adding password for user harry
[root@desktop22 joinlabs]# htpasswd -m /etc/httpd/.htpasswd alex
#这里的c是创建m是加密方式
[root@desktop22 joinlabs]# setfacl -m u:alex:rw .htaccess
[root@desktop22 joinlabs]# setfacl -m u:alex:rw /etc/httpd/.htpasswd
[root@desktop22 joinlabs]# vim /etc/sudoers
alex ALL=(ALL) NOPASSWD:/usr/sbin/useradd
[root@desktop22 joinlabs]# tail /home/alex/.bash_profile -n1
alias useradd="sudo useradd"
7、配置squid代理服务器,要求只有192.168.0.0/24这个网段的主机才能访问所有web站点。
注意:防
[root@desktop22 joinlabs]# yum install squid -y
[root@desktop22 joinlabs]# vim /etc/squid/squid.conf
acl Lin src 192.168.0.0/24
http_access allow Lin
[root@desktop22 joinlabs]# firewall-cmd --add-port=3128/tcp --permanent
[root@desktop22 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.
评论