说明:
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