执行lab-resetvm还原虚拟机,以下所有操作均在虚拟机上完成:

1> 编写防火墙脚本,并实现开机自动生效,要求如下:

1)允许来自回环接口的所有封包

2)允许所有ESTABLISHEDRELATED封包

3)拒绝所有非192.168.0.0/24网络的ping

4) 只允许192.168.0.0/24网络访问sshdhttpdvsftpd服务

5)拒绝所有未允许的封包

# vim test.sh

#!/bin/bash

modprobe nf_conntrack_ftp

iptables -F

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -s 192.168.0.0/24 -p icmp -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -m state --state NEW -s 192.168.0.0/24 -p tcp –-dport 21 -j ACCEPT

iptables -A INPUT -m state --state NEW -s 192.168.0.0/24 -p tcp –-dport 22 -j ACCEPT

iptables -A INPUT -m state --state NEW -s 192.168.0.0/24 -p tcp –-dport 80 -j ACCEPT

iptables -A INPUT -j REJECT

chmod +x test.sh

2> 配置rsyslog,将serverX上所有*.info日志消息以UDP发送到desktopX上,确认desktopX可以接收。

[root@desktop11~]# vim /etc/rsyslog.conf

#ModLoad imudp.so

#UDPServerRun 514.............把这两行的注释符【#】去掉,意为接受UDP

[root@desktop11~]#/etc/init.d rsyslog restart

[root@server11~]# vim /etcrsyslog.conf

local7.* /var/log/boot.log 行下添加以下行

*.info @192.168.0.11

[root@server11~]# /etc/init.d/rsyslog restart

[root@server11~]# logger “hello”

[root@desktop11~]# tail /var/log/message


 

3. 配置iscsi,目标ip192.168.0.254 目标:iqn.2010-09.com.example:rdisks.serverX, 分区格式化并永久挂载到/iscsi

# iscsiadm -m discovery -t st -p 192.168.0.254

# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.server11 -p 192.168.0.254 -l

# ll /dev/sda.................................此时会发现新设备 /dev/sda

# fdisk /dev/sda

此时,可以把该分区当作本地分区使用

# vim /etc/fstab............................使用UUID而非 /dev/sda1

UUID=“...” /iscsi ext4 _netdev 0 0


 

若创建该分区为加密分区,则使用/dev/mapper/iscsi,UUID会发生变化

 

若取消该分区使用:

# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.server11 -p 192.168.0.254 -u

# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.server11 -p 192.168.0.254 -o delete

# vim /etc/fstab........去掉之前添加的内容即可


 

服务端创建网络硬盘:

# yum install -y scsi*

# vim /etc/tgt/targets.conf

<target iqn.2008-09.com.example:server.target1>

backing-store /dev/vda3

</target>


 


 

4. 配置https,自签名证书,要求如下

密钥为1024位,无需密钥短语

国家/地区代码:CN

//自治区/直辖市: Shaanxi

所在地:Xi'an

单位:Westos

通用名称:serverX.example.com

# yum install -y crypto-utils mod_ssl

# genkey --days 365 server11.example.com

按提示添加题中内容

# openssl x509 -text < /etc/pki/tls/certs/server11.example.com.crt ...............查看证书

# /etc/init.d/httpd restart

打开浏览器,输入网址,https://192.168.0.111 查看验证信息


 


 

5. 部署两个虚拟主机,要求如下:

1)虚拟主机1http://serverX.example.com, 发布目录:/var/www/virtual

2)虚拟主机2http://wwwX.example.com,发布目录:/www/virtual

3)其中/www/virtual/private是受保护区域,需要用户验证,用户名:wxh 密码:westos

4)下载CGI文件ftp//instructor/pub/gls/special.cgi,并将其安装为http://wwwX.example.com/cgi-bin/special.cgi


 

# mkdir /var/www/virtual -p

# echo this is server11 > /var/www/virtual/index.html

# mkdir /www/virtual -p

# echo this is www11 > /www/virtual/index.html

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80 .........取消改行前面的注释【#

<VirtualHost *:80>

DocumentRoot /var/www/virtual

ServerName server11.example.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /www/virtual

ServerName www11.example.com

</VirtualHost>

# /etc/init.d/httpd restart

此时,在浏览器地址栏输入 http://server11.example.com 看到【this is server11

在浏览器地址栏输入 http://www11.example.com 看到【this is www11

3

# useradd wxh

# useradd leo

# htpasswd -cm /etc/httpd/.htpasswd wxh...........将该用户密码保存该文件下

# htpasswd -m /etc/httpd/.htpasswd leo...............第二次时【-m

# mkdir -p /www/virtual/private

# echo wo ai ni > /www/virtual/private/index.html

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80 .........取消改行前面的注释【#

<VirtualHost *:80>

DocumentRoot /www/virtual

ServerName www11.example.com

<directory /www/virtual/private>.........................指定保密的目录

authname “secret page”

authtype basic

authuserfile /etc/httpd/.htpasswd.................指定密码

require user wxh 【若允许所有用户,则为 valid-user

</directory>

</VirtualHost>

# /etc/init.d/httpd restart

此时,打开浏览器输入 http://www11.example.com

提示输入用户和密码即可


 

4

# wget ftp://192.168.0.254/pub/gls/special.cgi -P /www/cgi-bin

# chmod +x /www/cgi-bin/special.cgi

# chcon --reference=/var/www/cgi-bin /www/cgi-bin -R

【注意:默认情况下: SELinux 限制 CGI 脚本工作,只有以下目录默认是允许执行 CGI 脚本的 : /var/www/cgi-bin; /var/www/*/cgi-bin/; /var/www/html/*/cgi-bin/

其他位置需要手动添加,并标记为类型: httpd_sys_script_exec_t

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80 .........取消改行前面的注释【#

<VirtualHost *:80>

DocumentRoot /www/virtual

ServerName www11.example.com

ScriptsAlias /cgi-bin/ “/www/cgi-bin/”

</VirtualHost>

# /etc/init.d/httpd restart

此时打开浏览器,地址栏输入 http://www11.example.com/cgi-bin/special.cgi

输出为 Hello World


 


 

注:3)为Apache 无格式文件用户身份验证

以下为Apache LDAP 用户身份验证

1. 配置客户端 LDAP 身份验证,instructor.example.com 用作 LDAP 服务器, dc=example,dc=com

并使用在 ftp://instructor.example.com/pub/example-ca.crt 上的证书 , 选择 LDAP 密码。


 

2. 下载 LDAP 证书 ftp://instructor.example.com/pub/example-ca.crt ,并将其复制到 /etc/httpd

[root@sevrerX ~]# wget ftp://instructor.example.com/pub/example-ca.crt -P /etc/httpd

3.图形下配置ldap

4. 假设之前定义 VirtualHost ,请将诸如以下内容添加至 VirtualHost :

# vim /etc/httpd.conf/httpd.conf

NameVirtualHost *:80 .........取消改行前面的注释【#

LDAPTrustedGlobalCert CA_BASE64 /etc/httpd/example-ca.crt

<VirtualHost *:80>

DocumentRoot /www/virtual

ServerName www11.example.com

<Directory /www11/virtual> 。。。。该处指定目录为DocumentRoot指定目录或其子目录

AuthName “secret page”

AuthType basic

AuthBasicProvider ldap

AuthLDAPUrl “ldap://instructor.example.com/dc=example,dc=com” TLS

Require valid-user

</Directory>

</VirtualHost>

5. 重启 apache 服务,并使用 Web 浏览器测试访问,以用户 ldapuser1 和密码 password 登录。