RH253服务器试题

说明:
1、以下每个服务要求服务器重启后依然有效;
2、yum服务通过http://172.16.0.1/yum提供;
3、要求selinux处于enforcing状态;
4、本地网络为172.16.X.0/24,测试网络为192.168.0.0/24;
5、每位同学的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为stuX.example.com,其中X为你的座位号;
# cd /etc/yum.repos.d/
# vim rhce.repo
  [base]
  naem=Server
  baseurl=http://172.16.0.1/yum/Server
  gpgcheck=0
  ----------------------------
验证本地网络,IP......
# ifconfig
# route -n @@ 查看网关(Gateway)
# cat /etc/resolve.conf @@查看DNS服务器
-------------------------------------------------------


1、主机名称解析服务器配置,要求:
 1)建立DNS服务器,负责解析的域为ilinux.org;
 2)要求将MX记录指向mail.ilinux.org,且对应A记录为本机IP;
 3)要求将NS记录指向ns.ilinux.org,且对应A记录为本机IP;
 4)建立www1,www2,proxy等A记录;为mail主机建立别名记录pop3和imaps;
 5)为所有A记录建立PTR记录;
 6)ilinux.org区域不允许任何主机做区域传送;对应的反向区域仅允许172.16.0.0/16网络中的主机做区域传送;
 7)为正向区域建立子域委派,子域为tech.ilinux.org,子域服务器地址为172.16.x.5;(仅给出实现授权的记录即可)
 8)将example.com域的所有请求转发至172.16.0.1进行解析;
 9)此DNS服务拒绝192.168.0.0/24网络内的任何主机使用;
# yum install bind caching-nameserver @@能够建立一个纯缓存的DNS服务器
# ls /etc |grep named     @@安装完上述软件包,它会自动生成两个文件
# cd /etc
# mv named.caching-nameserver.conf named.conf
# vim !$
---------------------------------------
# vim named.conf
options {
        directory "/var/named";
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
};

zone "ilinux.org" IN {
        type master;
        file "ilinux.org.zone";
        allow-transfer { none; };
};

zone "16.172.in-addr.arpa" IN {
        type master;
        file "172.16.zone";
        allow-transfer { 172.16.0.0/16; };
};

zone "example.com" IN {
        type forward;
        forwarders { 172.16.0.1; };
};

-------------------------------------
# cd /var/named
# ll
# vim ilinux.org.zone
$TTL 600
$ORIGIN ilnux.org.
@     IN       SOA       ns.ilinux.org.    admin.ilinux.org.  (
                       2011083001
                       1H
                       10M
                       7D
                       600 )
      IN        NS       ns.ilinux.org.
      IN        MX  10   mail.ilinux.org.
ns    IN        A        172.16.100.1
mail  IN        A        172.16.100.1
www1  IN        A        172.16.100.1
www2  IN        A        172.16.100.1
proxy IN        A        172.16.100.1
pop3  IN        CNAME    mail
imaps IN        CNAME    mail


tech.ilinux.org.      IN      NS      ns.tech.ilinux.org.
ns.tech.linux.org.    IN      A       172.16.100.5
--------------------------------------
# vim 172.16.zone
$ TTL 600
@      IN      SOA      ns.iliniux.org.    admin.ilinux.org. (
                        2011083001
                        1H
                        10M
                        7D
                        600 )
        IN     NS        ns.ilinux.org.
1.100   IN     PTR       ns.ilinux.org.
1.100   IN     PTR       mail.ilinux.org.
1.100   IN     PTR       www1.ilinux.org.
1.100   IN     PTR       www2.ilinux.org.
1.100   IN     PTR       proxy.ilinux.org.
--------------------------------------------
# named-checkconf    @@语法检测
# named-checkzone "ilinux.org" ilinux.org.zone  @@域检测
# named-checkzone "16.172.in-addr.arpa" 172.16.zone
--------------------------------------------
查看一下我们定义的两个文件的权限:
# ll
# chmod --reference=named.ca 172.16.zone ilinux.org.zone @@改其权限和文件named.ca文件一样
# chgrp --reference=named.ca 172.16.zone ilinux.org.zone @@修改其属组
---------------------------------------------
# service named start
# netstat -tunl @@看一下53号端口是否启动
---------------------------------------------
验证下解析:
dig -t -A www1.ilinux.org  @172.16.100.1  @@指向自己
--------------------------------------------
# vim /etc/resolv.conf   @@修改DNS服务器
nameserver 172.16.100.1
--------------------------------------------
拒绝192.168.0.0/24网络内的任何主机使用
@@用REJECT 直接返回拒绝信息的,DROP没有
# cd
# iptables -A INPUT -s 192.168.0.0/24 -d 172.16.100.1 -p udp --dport 53 -j REJECT @@明确拒绝
# iptables -A INPUT -s 192.168.0.0/24 -d 172.16.100.1 -p tcp --dport 53 -j REJECT
# service iptables save  @@保存下iptables的规则
# iptables -L -n
---------------------------------------------

 

2、对本机的sshd服务做访问控制,要求仅允许172.16.0.0/16网段的主机访问,并且仅通过ssh协议的v2版提供服务;
# vim /etc/ssh/sshd_config  @@默认情况下就是v2版本
# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 22 -j ACCEPT
# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 22 -j REJECT
# iptables -L -n
---------------------------------------------------------------------
或者:
# vim /etc/hosts.allow
 sshd: 172.16.0.0/255.255.0.0
# vim /etc/hosts.deny
 sshd: ALL
----------------------------------------------------------------------------------------
3、建立samba共享,共享目录为/data,要求:
 1)共享名为shared,工作组为ilinux,可以被浏览;
 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
 3)添加samba用户gentoo,centos和ubuntu,密码均为“redhat”;
 4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
 5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;
-------------------------------------------------------------------------
# yum install -y samba
# mkdir /data
# vim /etc/samba/smb.conf
workgroup = ilinux  @@修改工作组名称
hosts allow = 127. 172.16.   @@启用此选项,且设置仅允许172.16.0.0/16网段主机访问
@@在最后添加共享
[shared]
       comment = shared
       path = /data
       browseable = yes
       public = yes           @@等价于:guest ok = yes
       write list = +develop
---------------------------------------
# testparm @@做用法检测
---------------------------------------
# groupadd develop
# useradd -G develop gentoo
# echo "gentoo" | passwd --stdin gentoo
# useradd -G develop centos
# echo "centos" | passwd --stdin centos
# useradd ubuntu
# passwd ubuntu
---------------------------------------
# smbpasswd -a gentoo /centos/ubuntu
redhat
redhat
---------------------------------------
# vim /etc/samba/smb.conf  @@有关于SELINUX的提示
# chcon -t samba_share_t /data/
---------------------------------------
# service smb start
# chkconfig smb on @@开机自动启动

在另一个客户端验证samba服务
# smbclient -L 172.16.100.1 -U gentoo
# smbclient //172.16.100.1/shared -U gentoo
  lcd /etc
  put fstab   @@被拒绝
  exit
@@此时gentoo用户还没有上传文件的权限
-----------------------------------------
在172.16.100.1上设置/data目录的权限
# setfacl -m g:develop:rwx /data/   
此时再另一台主机上
# smbclient //172.16.100.1/shared -U gentoo
  lcd /etc
  put fstab   @@可以上传了
  exit
验证下ubuntu用户是否可以上传文件,我们规定的是它没有上传的权限
# smbclient //172.16.100.1/shared -U ubuntu
  lcd /etc
  put inittab   @@上传失败
  exit

 
4、设置/data目录通过nfs共享,但仅允许172.16.0.0/16网段的主机访问;为了避免端口冲突,要求nfsd的几个辅助进程使用固定端口提供服务;
# vim /etc/exports
/data 172.16.0.0/16(ro)
--------------------------------------
# vim /etc/sysconfig/nfs
启动那六个默认的端口实现固定端口提供服务
# service nfs start
# rpcinfo -p localhost @@验证一下那几个端口是否启动
# chkconfig nfs on
---------------------------------------------------------------------------------------------


5、建立http服务器,要求:
 1)提供两个基于名称的虚拟主机:
  (a)www1.ilinux.org,页面文件目录为/var/www/html/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
  (b)www2.ilinux.org,页面文件目录为/var/www/html/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
  (c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
 2)www1主机仅允许172.16.0.0/16网络中的客户机访问;www2主机可以被所有主机访问;
# yum install httpd
# mkdir -p /var/www/html/www1
# mkdir -p /var/www/html/www2
--------------------------------
等价于:# mkdir /var/www/html/www{1,2}


那四个关于日志的文件不用建立,自己自动创建。

# echo "www1.ilinux.org" > /var/www/html/www1/index.html
# echo "www2.ilinux.org" > /var/www/html/www2/index.html

# chcon -R --reference=/var/www/html  /var/www/html/www1   @@不用管的,自己的权限和/var/www/html是相同的
# chcon -R --reference=/var/www/html  /var/www/html/www2


# vim /etc/httpd/conf/httpd.conf
  DocumentRoot "/var/www/html"   ##取消中心主机,这行前加上#号
  #NameVirtualHost *:80          ##此行前的#取消掉,启用虚拟主机选项
  最后添加:
  <VirtualHost *:80>              ##注意*前有空格
       ServerName  www1.ilinux.org
       DocumentRoot /var/www/html/www1
       ErrorLog  /var/log/httpd/www1.err
       CustomLog /var/log/httpd/www1.access common     ##要指出访问日志的级别
       <Directory "/var/www/html/www1">
             Options FollowSymLinks
             AllowOverride  None
             Order Allow,Deny
             Allow from 172.16.0.0/16
       </Directory>
  </VirtualHost>
  <VirtualHost *:80>
       ServerName www2.ilinux.org
       DocumentRoot /var/www/html/www2
       ErrorLog /var/log/httpd/www2.err
       CustomLog  /var/log/httpd/www2.access common
       <Directory "/var/www/html/www2">
             Options FollowSymLinks
             AllowOverride  None
             Order allow,deny
             Allow from ALL
       </Directory>
  </VirtualHost>

--------------------------------------
# service httpd configtest  @@检测语法
# service httpd start
# chkconfig httpd on
----------------------------------------
可以在浏览器中验证一下httpd的服务
http://172.16.100.1
# cd /var/log/httpd
# ls                      @@查看一下那几个日志文件是否存在,自动生成的
-----------------------------------------------------------------------

 

 

 
6、建立MTA(可以按需要使用sendmail或者postfix),要求:
 (1)可以接受本地和远程邮件,但要拒绝来自于192.168.0.0/24网络的所有邮件;能够为来自于172.16.0.0/16网络的主机上的用户中继邮件(但不包括172.16.x.10这台主机);
 (2)为此MTA启用SASL认证功能,认证通过的用户可以通过此服务器中继邮件,但拒绝ubuntu用户发送邮件;
 (3)设置别名,要求所有发往ubuntu用户的邮件都被转发给gentoo;所有发往customers的邮件同时发给gentoo和centos;
-------------------------------------------------------------------
#  /etc/init.d/sendmail stop
#  chkconfig sendmail off
#  yum install postfix
#  rpm -e sendmail
#  /etc/init.d/postfix start
因为Linux系统至少需要一个MTA来让系统内部的账号传送邮件,所以必须先安装了postfix后才可以删除sendmail。顺序不要搞错
-----------------------------------------------
# vim /etc/postfix/main.cf
  myhostname = mail.ilinux.org
  mydomain = ilinux.org
  myorigin = $mydomain
  inet_interfaces = all  @@启用此选项,接受本地和远程邮件,关闭另一个inet_interfaces
  mydestination = $myhostname, localhost.$mydomain, localhost, mail.$mydomain, $mydomain
  mynetworks_style = host
  mynetworks = 127.0.0.0/8, 172.16.0.0/16     @@ hash:/etc/postfix/access  @@可以给谁中继的
  --------------------
  最后添加:实现SASL认证的功能:
  broken_sasl_auth_clients = yes
  smtpd_sasl_auth_enable = yes
  smtpd_sasl_security_options = noanonymous       smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,
                    reject_unauth_destination
             
  smtpd_client_restrictions = hash:/etc/postfix/client
  smtpd_sender_restrictions = hash:/etc/postfix/sender
  smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!

或者:
*********************************************************************************************
# cd /etc/postfix
# vim client
172.16.100.10  REJECT
# postmap client
# vim sender
ubuntu@  REJECT
# postmap sender
**************************************************************************************
# vim /etc/aliases
ubuntu:     gentoo
customers:  gentoo, centos
# newaliases            @@重新生成这个文件
**************************************************************************************
# iptables -A INPUT -s 192.168.0.0/24 -d 172.16.100.1 -p tcp --dport 25 -j REJECT
# service iptables save
**************************************************************************************
# service postfix restart
# netstat -tnlp        @@查看一下tcp25
# hostname mail.ilinux.org
# telnet mail.ilinux.org 25
  mail from:[email protected]
  RCPT TO:[email protected]   @@会出现Access denied
  quit
# echo "To Ubuntu" | mail -s "to ubuntu" [email protected]
# tail /var/log/maillog
# su - ubuntu
# mail          @@收邮件,会发现 No mail for ubuntu
  exit
# su -gentoo
# mail   
**********************************************************************
# service saslauthd start
# chkconfig saslauthd on
# vim /usr/lib/sasl2/smtpd.conf
# vim /etc/sysconfig/saslauthd
  MECH=shadow

# service saslauthd restart
# testsaslauthd -u gentoo -p gentoo


# ps auxZ | grep dovecot
---------------------------------------------
验证pop3的收信
# telnet pop3.ilinux.org 110
  USER gentoo
  PASS gentoo
  LIST
  RETR 1   @@可以看到第一封邮件的内容
  quit
**********************************************************************************************
7、设置pop3服务器,要求来自172.16.0.0/16网络中的用户可以通过pop3服务收取自己的邮件,但来自于192.168.0.0/24中的用户不能通过此pop3收取邮件;
---------------------------------------------
# yum install dovecot
# vim /etc/dovecot.conf
  protocols = pop3
# service dovecot start
# chkconfig dovecot on
-----------------------------------------------
 
# iptables -A INPUT  -s 192.168.0.0/24 -d 172.16.100.1 -p tcp --dport 110 -j RECEJT
# service dovecot save
# service dovecot restart
-----------------------------------------------
# telnet pop3.ilinux.org 110
  USER [email protected]
  PASS gentoo
 

8、架设FTP服务器,要求:
 (1)可以让匿名用户访问;
 (2)gentoo可以通过ftp服务访问自己的家目录,且能够上传文件;
 (3)FTP服务仅允许172.16.0.0/16中的主机访问;
#yum install vsftpd
   
#vim /etc/hosts.allow
vsftpd:172.16.0.0/255.255.0.0
#vim /etc/hosts.deny
vsftpd:ALL
#service vsftpd start
#chkconfig vsftpd on
-------------------------------------------------
另一台主机访问验证:
# lftp -u gentoo 172.16.100.1
  ls
@@会发现用户是没法访问自己的家目录的
--------------------------------------------------
设置让用户可以访问自己的家目录:
# getsebool -a |grep ftp  @@会发现ftp_home_dir --> off 自己是默认没法访问家目录的
# setsebool -P ftp_home_dir=1  @@这样就可以实现terra用户能够通过ftp服务访问自己的家目录了。
------------------------------------------
在此登录别的主机:验证
# lftp -u gentoo 172.16.100.1
  lcd /etc
  put fstab
  bye
*********************************************************************************************************
 
9、启用imaps服务,要求:
 (1)仅接受来自于172.16.0.0/16网络中主机上的用户访问;
 (2)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(ilinux);
 (3)设置部门为TECH,主机名为imaps.ilinux.org,邮件为[email protected]
*********************************************************************************************************
# cd /etc/pki/tls/certs
# ls
# make dovecot.pem   @@证书和私钥都有了,都在这个文件中。 此种方法是没有CA的
# vim /etc/dovecot.conf
  ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
  ssl_key_file = /etc/pki/tls/certs/dovecot.pem       @@启用并修改这两项
  protocols = pop3 imaps @@将imaps 协议加进来
# service dovecot restart
# netstat -tnlp   @@查看tcp993端口
----------------------------------------------------------------
验证:
# mutt -f imaps://imaps.ilinux.org
输入 o @@表示接受
gentoo
gentoo
----------------------------------------------------------------
# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 993 -j ACCEPT
# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 993 -j REJECT
# service iptables save
******************************************************************************************   
#iptables -A input -s ! 172.16.0.0/16 -d 172.16.11.1 -p tcp --dport 993 -j ACCEPT
    #cd /etc/pki/CA
    #mkdir certs newcerts crl
    #touch index.txt
    #echo 01 > serial
    #vim /etc/pki/tls/openssl.cnf
   
    #(umask 066;openssl genrsa 1024 > cakey.pem)
    #openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
   
    #mkdir -p /etc/dovecot
    #cd !$
    #mkdir ssl
    #(umask 066;openssl genrsa 1024 > dovecot.key)
    #openssl req -new -key dovecot.key -out dovecot.csr -days 3650
    #openssl ca -in dovecot.csr -out dovecot.crt -days 3650
    #vim /etc/dovecot.conf
    修改证书,私钥
    启用:protocols

 

 


10、为第5题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
 (1)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(linux);
 (2)设置部门为TECH,主机名为www2.ilinux.org,邮件为[email protected]
 (3)此服务禁止来自于192.168.0.0/24网络中的主机访问;
# cd
# yum install mod_ssl  @@安装ssl的模块
# cd /etc/pki/tls/certs
# make httpd.pem

# vim /etc/httpd/conf.d/ssl.conf
  DocumentRoot "/var/www/html/www2"
  ServerName www2.ilinux.org:443
  SSLCertificateFile /etc/pki/tls/certs/httpd.pem
  SSLCertificateKeyFile /etc/pki/tls/certs/httpd.pem
-------------------------------------------------------
# service httpd restart
# netstat -tnlp  @@查看有没有443的端口
-------------------------------------------------------
验证:
https://172.16.100.1
-------------------------------------------------------
# iptables -A INPUT -s 192.168.0.0/24 -d 172.16.100.1 -p tcp --dport 443 -j REJECT
# service iptables save
# chkconfig httpd on
****************************************************************************************

11、为第5题中的第1个虚拟主机提供php+mysql的服务,要求:
 (1)通过在原有主页中添加phpinfo()测试页表明启用php成功;
 (2)将mysql的root用户密码设置为"123456"(引号中的内容);
 (3)通过http://www1.ilinux.org/phpmyadmin提供本机mysql服务的web管理接口;

    #yum install php php-mysql php-mbstring mysql-server
    #cd /var/www/html/www1
    #vim index.html
    添加:<?php
                phpinfo();
          ?>
    #mv index.html index.php
    #service httpd restart
----------------------------------------------------
    # service mysqld start
    # chkconfig mysqld on
   
    #mysql
        mysql>set password for root@localhost=password('123456');
        mysql>set password for [email protected]=password('123456');
        mysql>FLUSH PRIVILEGES;
    ---------------------------------------------------------
    验证:此时需要指定用户,密码
    # mysql -uroot -p
    _______________________________________________________________________
    # tar xf phpMyAdmin-2.11.10-all-languages.tar.gz -C /var/www/html/
    # cd /var/www/html
    # mv phpMyAdmin-2.11.10-all-languages phpmyadmin
    # vim /etc/httpd/conf/httpd.conf
      在<VirtualHost *:80>中定义,添加
      Alias /phpmyadmin "/var/www/html/phpmyadmin"
    # service httpd restart
    # cd phpmyadmin
    # cp config.sample.inc.php config.inc.php
    # vim !$
      修改第17行:$cfg['blowfish_secret'] = '';
      在单引号内输入任意字符。
    ---------------------------------------------
    http://172.16.100.1/phpmyadmin
    @@验证
 ********************************************************************************************
     
    #tar xf phpMyAdmin-2.11.10-all-languages.tar.gz -C /var/www/html/www1/
    #cd !$
    #mv phpMyAdmin-2.11.10-all-languages phpmyadmin
    #cd phpmyadmin
    #ls
    #cp config.sample.inc.php config.inc.php
    #vim config.inc.php
    修改第17行:$cfg['blowfish_secret'] = '';
    在单引号内输入任意字符。
    #service httpd restart
--------------------------   
   *** 注意:当你把phpMyAdmin解压到其他目录,而后又将phpMyAdmin移动或复制到/var/www/html/www1下并改名。而不是直接指定到解压目录时。此时你就得修改phpmyadmin下文件的类型了。使用chcon做修改。
    #cd /var/www/html/www1
    #chcon -R -t httpd_sys_content_t phpmyadmin

 

12、为http服务提供第3个虚拟主机,要求:
 1)www3.ilinux.org,页面文件目录为/var/www/html/www3;错误日志为/var/log/httpd/www3.err,访问日志为/var/log/httpd/www3.access;
 2)为此虚拟主机提供基本认证功能,并为其提供两个虚拟用户webuser1和webuser2,密码均为redhat,要求允许此两用户在提供密码的情况下访问此站点;

  #vim /etc/httpd/conf/httpd.conf
        <VirtualHost *:80>
        DocumentRoot /var/www/html/www3
        ServerName www3.ilinux.org
        ErrorLog /var/log/httpd/www3.err
        CustomLog /var/log/httpd/www3.access combined
        <Directory /var/www/html/www3>
                AllowOverride AuthConfig
                AuthName "Auth"
                AuthType basic
                AuthUserFile /etc/httpd/conf/.webusers
                Require valid-user
        </Directory>
        </VirtualHost>
    #cd /etc/httpd/conf
    #htpasswd -c -m .webusers webuser1
    #htpasswd -m .webusers webusers2
 

你可能感兴趣的:(职场,服务器,休闲,RH253试题)