说明:

1、以下每个服务要求服务器重启后依然有效;

2、yum服务通过http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/提供;

3、要求selinux处于permissive状态;

4、本地网络为172.16.X.0/16,测试网络为192.168.0.0/24;

5、每位同学的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为www.stuX.com,其中X为你的座位号;

[root@www ~]# vim /etc/selinux/config
SELINUX=permissive           //开启selinux
//IP设置
[root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:A3:3A:A0"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="e17b3242-ce43-4b7e-963d-50a4523d6eec"
IPADDR="172.16.11.1"
NETWASK="255.255.0.0"
GATEWAY="172.16.0.1"
//dns设置
[root@www ~]# vim /etc/resolv.conf
nameserver 172.16.0.1
//主机名
[root@www ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.stu11.com




1、主机名称解析服务器配置,要求:

1)建立DNS服务器,负责解析的域为stuX.com;

2)要求将MX记录指向mail.stuX.com,且对应A记录为本机IP;

3)要求将NS记录指向ns.stuX.com,且对应A记录为本机IP;

4)建立www1,www2,proxy等A记录指向本机IP;为mail主机建立别名记录pop3和imaps;

5)为所有A记录建立PTR记录;

6)stuX.com区域仅允许172.16.0.0/16网络中的主机做区域传送;对应的反向区域不允许任何主机做区域传送;

7)为正向区域建立子域委派,两个子域为subdomain1.stuX.com和subdomain2.stuX.com,子域服务器地址为172.16.x.5;(仅给出实现授权的记录即可)

8)将example.com域的所有请求转发至172.16.0.1进行解析;

9)此DNS服务拒绝192.168.1.0/24网络内的任何主机使用;


# yum install -y bind
# vim /etc/named.conf
//内容如下
options {
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursion yes;
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";


编辑/etc/named.rfc1912.zones,添加以下内容:

zone "stu11.com" IN {
       type master;
       file "named.stu11.com";
       allow-transfer { 172.16.0.0/16; };
} ;
zone "11.16.172.in-addr.arpa" IN {
          type master;
          file "11.16.172.stu11.com";
         allow-transfer { none; };
} ;
zone "example.com" IN {
         type forward;
         forwarders { 172.16.0.1; };
         forward only  ;
};


在/var/named/下创建记录文件

[root@www ~]# vim /var/named/named.stu11.com
//内容如下:
$TTL 600
@    IN    SOA         dns.stu11.com   dnsadmin.stu11.com (
                            2014040101
                            1H
                            5M
                            3D
                            12H    )
       IN    NS          ns
       IN    MX          10  mail
ns     IN    A           172.16.11.1
mail   IN    A           172.16.11.1
www1   IN    A           172.16.11.1
www2   IN    A           172.16.11.1
proxy  IN    A           172.16.11.1
pop3   IN   CNAME         mail
imaps  IN   CNAME         mail
subdomain1      IN      NS      ns.subdomain1.stu11.com.
ns.subdomain1.stu11.com.        IN      A       172.16.11.5
subdomain2      IN      NS      ns.subdomain2.stu11.com.
ns.subdomain2.stu11.com.        IN      A       172.16.11.5



[root@www ~]# vim /var/named/11.16.172.stu11.com
//内容如下
$TTL 600
@    IN    SOA        dns.stu11.com.   dnsadmin.stu11.com (
                            2014040101
                            1H
                            5M
                            3D
                            12H    )
       IN    NS         ns.stu11.com.
1      IN    PTR        ns.stu11.com.
1      IN    PTR        mail.stu11.com.
1      IN    PTR        www1.stu11.com.
1      IN    PTR        www2.stu11.com.
1      IN    PTR        proxy.stu11.com.


[root@www ~]# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 53 -j REJECT
[root@www ~]# iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 53 -j REJECT
#service named restart


2、建立httpd服务器(基于编译的方式进行),要求:

1)提供两个基于名称的虚拟主机:

(a)www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为,访问日志为/var/log/httpd/www1.access;

(b)www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;

(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;

(d)通过www1.stuX.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);

2)www1主机仅允许172.16.0.0/16网络中的客户机访问;www2主机可以被所有主机访问;

[root@www ~]# yum -y install httpd
[root@www ~]# vim /etc/httpd/conf/httpd.conf
//修改如下
#DocumentRoot "/var/www/html"  //主站点注释掉
                                                                                                                                                                                                                                                                                       
//虚拟站点
NameVirtualHost *:80    //httpd-2.2.15版本必须开启
<VirtualHost *:80>
    DocumentRoot "/web/vhosts/www1"
    ServerName www1.stu11.com
    ErrorLog /var/log/httpd/www1.err
    CustomLog /var/log/httpd/www1.access common
<Directory "/web/vhosts/www1">
     Require ip 172.16.0.0/16
</Directory>
<Location /server-status>
    SetHandler server-status
     AuthType Basic
     AuthName "Server Status"
     AuthUserFile "/etc/httpd/conf/.htpasswd"
     Require valid-user
    Order deny,allow
    Allow from all
</Location>
</VirtualHost>
                                                                                                                                                                                                                                                                                     
//第2个站点设置
<VirtualHost *:80>
    DocumentRoot /web/vhosts/www2
    ServerName www2.stu11.com
    ErrorLog /var/log/httpd/www2.err
    CustomLog /var/log/httpd/www2.access common
 <Directory "/web/vhosts/www2">
 Require all granted
   </Directory>
</VirtualHost>


创建网页文件

# mkdir -pv /web/vhosts/www1
# mkdir -pv /web/vhosts/www2
# cd /web/vhosts/www1
# echo "<h1><center>www1.stu11.com</center></h1>" >index.html
# cd /web/vhosts/www2
# echo "<h1><center>www2.stu11.com</center></h1>" >index.html
#  service httpd start


3、为第2题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;

(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(MageEdu);

(2)设置部门为tech,主机名为www2.stuX.com,邮件为admin@stuX.com;

(3)此服务禁止来自于192.168.1.0/24网络中的主机访问;

[root@www pki]# cd /etc/pki/CA
 //生成密钥对儿
[root@www CA]#(umask 077;openssl genrsa -out private/cakey.pem 2048)
                                                                                                                                                                                                                                                                   
//生成自签证书:
[root@www CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
                                                                                                                                                                                                                                                                  
//创建需要的文件
[root@www CA]# touch index.txt serial crlnumber
[root@www CA]# echo 01 >> serial
[root@www CA]# (umask 077;opelsnssl genrsa -out httpd.key 1024
[root@www CA]# openssl req -new -key httpd.key -out httpd.csr
                                                                                                                                                                                                                                                                   
// 签署:
[root@www CA]# openssl ca -in httpd.csr -out httpd.crt -days 3655


# yum -y install mod_ssl //安装ssl模块
# vim /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>   //在这下面添加如下内容
                                                                                                                                                                                                                                                             
DocumentRoot "/web/vhosts/www2"
ServerName www2.stu11.com
<Directory "/web/vhosts/www2">
         require all granted
</Directory>
                                                                                                                                                                                                                                                              
//添加证书文件:
SSLCertificateFile /etc/pki/CA/httpd.crt  //证书文件
SSLCertificateKeyFile /etc/pki/CA/httpd.key  //密钥文件
// 重启
# service httpd restart


[root@www ~]# iptables -A INPUT -d 192.168.1.0/24 -p tcp --dport 443 -j REJECT



4、为第2题中的第1个虚拟主机提供php+mysql的功能,要求:

(1)通过在原有主页中添加phpinfo()测试页表明启用php成功;

(2)将mysql的root用户密码设置为"magedu.com"(引号中的内容);

(3)通过http://www1.stuX.com/pma提供本机mysql服务的web管理接口phpMyAdmin;

(4)本机上的mysql服务仅允许来自本地的请求通过;

# yum -y install mysql mysql-server php php-mysql mysql-devel
# service httpd restar
# service mysql start
# mysql
SET PASSWORD FOR 'root'@'localhost' =PASSWORD('magedu.com');


[root@www CA]# vim /web/vhosts/www1/index.php
//内容如下:
<h1>www1.stu11.com</h1>
<?php
phpinfo() ;
?>


[root@www ~]# tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2
//把解压内容全部复制到/web/vhosts/www1/pma
[root@www ~]# cp -r phpMyAdmin-3.5.1-all-languages/* /web/vhosts/www1/pma
[root@www pma]# cp config.sample.inc.php config.inc.php
# iptables -A INPUT -s !172.16.11.1 -p tcp --dport 3306 -j DROP


打开游览器登录安装:www1.stu11.com/pma


5、架设FTP服务器,要求:

(1)可以让匿名用户访问;

(2)通过基于mysql的虚拟用户为ftpuser1和ftpuser2提供文件共享服务;且ftpuser1可以上传文件、创建目录、删除文件和下载文件,但ftpuser2只能下载文件;

(3)FTP服务仅允许172.16.0.0/16中的主机访问;

(4)开启ftp服务的传输日志,日志文件为/var/log/vsftpd.log;

# yum install -y vsftpd pam_mysql


# mysql   //创建数据库
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'admin';
mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'admin';
mysql> flush privileges;
mysql> use vsftpd;
mysql> create table users (
    -> id int AUTO_INCREMENT NOT NULL,
    -> name char(20) binary NOT NULL,
    -> password char(48) binary NOT NULL,
    -> primary key(id)
    -> );


//创建虚拟用户
mysql> insert into users(name,password) values('ftpuser1',password('admin'));
mysql> insert into users(name,password) values('ftpuser2',password('admin'));


//建立pam认证所需文件
vim /etc/pam.d/vsftpd.mysql
//添加如下两行
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=admin host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=admin host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2


//建立虚拟用户映射的系统用户及对应的目录
#mkdir /var/ftproot
# useradd -s /sbin/nologin -d /var/ftproot vuser
# chmod 777 /var/ftproot


//vim /etc/vsftpd/vsftpd.conf ,确保已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
而后添加以下选项
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers_config //虚拟用户权限目录
pam_service_name=vsftpd.mysql


//创建所需要目录,并为虚拟用户提供配置文件
# mkdir /etc/vsftpd/vusers_config/
# cd /etc/vsftpd/vusers_config/
# vim /etc/vsftpd/vusers_config/ftpuser1
//添加如下内容
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#vim /etc/vsftpd/vusers_config/ftpuser2
// 添加如下内容
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO


# vi /etc/vsftpd/vsftpd.conf  //开启日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log


# iptables -A INPUT -s 172.16.0.0/16 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -d 172.16.0.0/16  -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT



6、设置/data目录通过nfs共享,但仅允许172.16.0.0/16网段的主机访问,且UID为1000的用户testuser可以读写访问;

# yum -y install nfs-utils
# vim /etc/exports
/data                   172.16.0.0/16(ro,sync)  testuser(rw,sync)
# service rpcbind start
# service nfs start



7、设定本机对ping请求的响应:

(1)本机仅接受来自于172.16.0.0/16网 络的ping请求,且请求频度每秒不能超过10个;

(2)本机可以向其它任意主机发起Ping请求;


# iptables -A INPUT -s 172.16.0.0/16  -d 172.16.11.1 -p icmp --icmp-type 8 -m limit --limit 8/second --limit-burst 10 -j ACCEPT
# iptables -A OUTPUT -s 172.16.11.1  -d 172.16.0.0/16 -p icmp --icmp-type 0  -j ACCEPT
#iptables -A OUTPUT -s 172.16.11.1 -p icmp --icmp-type 8 -j ACCEPT
#iptables -A INPUT -d 172.16.11.1 -p icmp --icmp-type 0 -j ACCEPT


8、建立samba共享,共享目录为/data,要求:

1)共享名为shared,工作组为magedu,可以被浏览;

2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;

3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;

4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;

5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

# yum -y install samba
# vim /etc/samba/smb.conf
//添加以下内容
 hosts allow = 172.16.                //80行
                                                                                                                    
[shared]      //共享目录
       comment = shared
       path = /data
       browseable = yes
       guest ok = no
       writable = no
       write list = +develop


// 创建用户,组,密码
#  groupadd develop
# useradd -G develop gentoo
# useradd -G develop centos
# useradd ubuntu
# passwd gentoo
# passwd centos
# passwd ubuntu
# smbpasswd -a gentoo
# smbpasswd -a centos
# smbpasswd -a ubuntu
//修改权限
# chmod 777 /data



9、通过PAM完成以下功能:

(1)禁止root用户在tty6终端登录;

(2)设置ubuntu用户登录系统后所能够打开的文件个数硬限制为200,软限制为120;

(3)设置develop组中的用户登录系统后所能够运行的进程数的硬限制为300,软限制为200;

(4)UID为500的用户su到管理员无需输入管理员密码;

(5)仅sshusers组中的用户可以通过ssh远程登录;

# vim /etc/securetty
//删除里边的tty6
                                                                                                   
# vim /etc/pam.d/login
//添加以下内容
session    required     pam_limits.so
                                                                                                     
# vim /etc/security/limits.conf
//添加以下内容
ubuntu          soft    nofile          120
ubuntu          hard    nofile          200
@develop        soft    nproc           200
@develop        hard    nproc           300


# vim /etc/pam.d/system-auth-ac //新加入以下一行
auth required pam_listfile.so item=group file=/etc/.pam sense=allow
# vim /etc/.pam
sshusers



10、设置wheels组中的用户可以在任何主机上以root用户的身份执行管理类命令,且无须输入密码;

# visudo
//大概108行改成这样
 %wheel ALL=(root)          NOPASSWD: ALL