说明:
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 //第2个站点设置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 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 "" >index.html# cd /web/vhosts/www2# echo "
www1.stu11.com " >index.html# service httpd start
www2.stu11.com
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