说明:

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/configSELINUX=permissive           //开启selinux//IP设置[root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="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.confnameserver 172.16.0.1//主机名[root@www ~]# vim /etc/sysconfig/networkNETWORKING=yesHOSTNAME=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  mailns     IN    A           172.16.11.1mail   IN    A           172.16.11.1www1   IN    A           172.16.11.1www2   IN    A           172.16.11.1proxy  IN    A           172.16.11.1pop3   IN   CNAME         mailimaps  IN   CNAME         mailsubdomain1      IN      NS      ns.subdomain1.stu11.com.ns.subdomain1.stu11.com.        IN      A       172.16.11.5subdomain2      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版本必须开启
DocumentRoot "/web/vhosts/www1" ServerName www1.stu11.com ErrorLog /var/log/httpd/www1.err CustomLog /var/log/httpd/www1.access common
Require ip 172.16.0.0/16
SetHandler server-status AuthType Basic AuthName "Server Status" AuthUserFile "/etc/httpd/conf/.htpasswd" Require valid-user Order deny,allow Allow from all
//第2个站点设置
DocumentRoot /web/vhosts/www2 ServerName www2.stu11.com ErrorLog /var/log/httpd/www2.err CustomLog /var/log/httpd/www2.access common
Require all granted

创建网页文件

# mkdir -pv /web/vhosts/www1# mkdir -pv /web/vhosts/www2# cd /web/vhosts/www1# echo "

www1.stu11.com

" >index.html# cd /web/vhosts/www2# echo "

www2.stu11.com

" >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
//在这下面添加如下内容 DocumentRoot "/web/vhosts/www2"ServerName www2.stu11.com
require all granted
//添加证书文件: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# mysqlSET PASSWORD FOR 'root'@'localhost' =PASSWORD('magedu.com');

[root@www CA]# vim /web/vhosts/www1/index.php//内容如下:

www1.stu11.com

[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=2account 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=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YES而后添加以下选项guest_enable=YESguest_username=vuseruser_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=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES#vim /etc/vsftpd/vusers_config/ftpuser2// 添加如下内容anon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO

# vi /etc/vsftpd/vsftpd.conf  //开启日志xferlog_enable=YESxferlog_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          120ubuntu          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/.pamsshusers

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

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