执行lab-resetvm还原虚拟机,以下所有操作均在虚拟机上完成:
1> 编写防火墙脚本,并实现开机自动生效,要求如下:
1)允许来自回环接口的所有封包
2)允许所有ESTABLISHED,RELATED封包
3)拒绝所有非192.168.0.0/24网络的ping
4) 只允许192.168.0.0/24网络访问sshd、httpd、vsftpd服务
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,目标ip:192.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)虚拟主机1:http://serverX.example.com, 发布目录:/var/www/virtual
2)虚拟主机2:http://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 登录。