RHCE模拟题

相关配置信息

root 用户密码是:redhat

example.com 192.168.0.0/255.255.255.0

my133t.org 192.168.1.0/255.255.255.0

YUM: http://instruct.example.com/pub/rhel6/dvd


虚拟机的网络配置:

主机名:server20.example.com

IP地址:192.168.0.20

网络掩码:255.255.255.0

网关:192.168.0.254

域名服务器:192.168.0.254


配置主机的主机名,IP地址,网关,DNS

首先关闭:NetworkManager

#chkconfig NetworkManager off

#service NetworkManager stop

方法一:图形界面setup (需要重启网络服务)

#setup

#service network restart

方法二:修改配置文件ifcfg-eth0

#cd /etc/sysconfig/network-scripts/

#vim ifcfg-eth0

ONBOOT=yes

BOOTPROTO=none 或者static

IPADDR=192.168.0.120

NETMASK=255.255.255.0

GATEWAY=192.168.0.254

DNS1=192.168.0.254


#vim /etc/sysconfig/network(修改主机名)

HOSTNAME=server20.example.com


#vim /etc/hosts 

192.168.0.120   server20.example.com


server network restrat

检查网络地址是否正常:

#ifconfig (查看IP地址)

#route -n (查看网关)

#dig -t NS  example.com(查看DNS是否配置正确)

#dig -t A  server20.example.com


配置yum:

#vim /etc/yum.repos.d/rhel6.repo

[server]

name=server

baseurl=http://instructor.example.com/pub/rhel6/dvd

enabled=1

gpgcheck=0


#yum clean all

#yum -y install lftp (测试)


1.iptables:

注:RHCE考试要求中没有关于iptables的任何要求,建议大家使用iptables 来实现对vsftpd,nfs,samba,sshd的访问控制。


#iptables -F

#iptables -X

#iptables -Z

#iptables -L -vn

#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#iptables -A INPUT -i lo -j ACCEPT

#iptables -A INPUT -s 192.168.0.0/24  -j ACCEPT

#iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

#iptables -A INPUT -p tcp --dport 110 -j ACCEPT

#iptables -A INPUT -j REJECT

#service iptables save

#service iptables restart

#iptables -L -vn --line-numbers


2,selinux 必须运行在enforcing模式

#vim /etc/sysconfig/selinux

  SELINUX=enforcing 

#yum -y install setroubleshoot

#init 6 (如果原来是关闭状态必须重启)

#getenforce



3.运行IP转发

附加题:忽略所有发往本机的ping包


#vim /etc/sysctl.conf

  net.ipv4.ip_forward = 1

#sysctl -p (重新导入)

附加题:

#ls /proc/sys/net/ipv4/icmp_echo_ignore_all

#vim  /etc/sysctl.conf

   net.ipv4.icmp_echo_ignore_all=1

#sysctl -p (重新导入)


4.配置cron访问

 仅不允许用户 natasha 使用cron

附加题:仅运行harry 和root 使用cron


# vim /etc/cron.dengyw

  natasha

#id natasha

#useradd natasha

#su - natasha

#crontab -e


附加题:

#vim /etc/cron.allow

  harry

  root

#id harry

#useradd harry

#su - harry

#crontab -e


5.配置FTP访问

匿名用户可以从/var/ftp/pub下载

example.com之外的客户端不允许访问FTP

附加题1:允许匿名用户上传文件

附加题2:natasha用户允许访问家目录,不锁定根目录,harry用户允许访问家目录,锁定根目录,tom用户不允许访问,拒绝t3gg.com域访问

附加题3:

#yum -y install vsftpd

#chkconfig vsftpd on

#server vsftpd restart

#lftp localhost

#cd pub

#get 文件

访问控制已经在iptables里做完了,不需要在这里做了

iptables -A INPUT -p tcp --dport 20:21 -s 192.168.1.0/24 -j REJECT


附加:1:

方法一:

#chmod 777 /var/ftp/pub (或:setfacl -m u:ftp:rwx /var/ftp/pub)

#vim /etc/vsftpd/vsftpd.conf

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

#chcon -R -t public_content_rw_t /var/ftp/pub/ 

#getsebool -a |grep ftp 

#setsebool -P allow_ftpd_anon_write 1

#service vsftpd restart

#lftp localhost

  cd pub

  put /root/install.log

方法二:

#chmod 777 /var/ftp/pub (或:setfacl -m u:ftp:rwx /var/ftp/pub)

#vim /etc/vsftpd/vsftpd.conf

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

# getsebool -a |grep ftp

#setsebool -P allow_ftpd_full_access 1

#service vsftpd restart

#lftp localhost

  cd pub

  put /root/install.log

方法三:

#chmod 777 /var/ftp/pub (或:setfacl -m u:ftp:rwx /var/ftp/pub)

#vim /etc/vsftpd/vsftpd.conf

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

#yum provides *bin/semanage (如果没安装,查询安装包)

#yum -y install policycoreutils-python

#man -k selinux |grep ftp

#man ftpd_selinux

  semanage fcontext -a -t public_content_rw_t "/var/ftp/incoming(/.*)?"


       restorecon -R -v /var/ftp/incoming

  修改为

#semanage fcontext -a -t public_content_rw_t "/var/ftp(/.*)?"


#restorecon -R -v /var/ftp

#getsebool -a |grep ftp

#setsebool -P allow_ftpd_anon_write on

#service vsftpd restart

#lftp localhost

  cd pub

  put /root/install.log


附加题1-2:

# vim /etc/vsftpd/vsftpd.conf

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

#Setsebool -P allow_ftpd_anon_write on

#chcon -R -t public_content_rw_t /var/ftp/pub

#chmod o+w /var/ftp/pub

#setsebool -P ftp_home_dir ON

#vim /etc/vsftpd/vsftpd.conf

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd/chroot_list

#vim /etc/vsftpd/chroot_list   (只有在这个文件中的用户不能跳转)

    harry

#vim /etc/vsftpd/user_list

    tom




6.控制用户是否允许切换到上级目录

在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。

chroot_list_enable=YES/NO(NO)

设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。

chroot_list_file=/etc/vsftpd.chroot_list

用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。

chroot_local_user=YES/NO(NO)

用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。

通过搭配能实现以下几种效果:

①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。

④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。




6.配置SMTP邮件服务器能够接收来自远程主机和localhost邮件

  harry必须能够从远程主机接收邮件,harry用户邮箱是、/var/spool/mail/harry

附加题:收邮件通过pop或imap

# alternatives --config mta(设置默认MTA,按数字键选择sendmail.postfix为默认mta,如果考试机没装sendmail包,可以不用这么做)

#chkconfig postfix on

#vim /etc/postfix/main.cf

  myhostname=server20.example.com

  mydomain=example.com

  myorigin=$mydomain

  inet_interfaces=all(修改侦听地址为all,注释掉inet_interface = localhost)

  mydestination=$myhostname,localhost.$mydomain,localhost,$mydomain

#service postfix restart

#netstat -tulnp |grep 25

#ehco hello |mail-s 'test' harry@server20.example.com

#cat /var/spool/mail/harry


附加题:

#yum -y install dovecot

#chkconfig dovecot on

#vim /etc/dovecot/dovecot.conf

  protocols= pop3 //制定支持的邮件协议

#vim /etc/dovecot/conf.d/10-auth.conf

  disable_plaintext_auth=no //允许明文密码认证

#vim /etc/dovecot/conf.d/10-ssl.conf

  ssl=no //禁用ssl

#vim /etc/dovecot/conf.d/10-mail.conf

  mail_location=mbox:~/mail:INBOX=/var/mail/%u(定格)//设置邮件存储格式季位置



   测试POP3接收邮件

[root@mail ~]# telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

+OK Dovecot ready.

user zpp002  //使用邮件用户“zpp002”登录

+OK

pass 123.com  //键入密码123.com

+OK Logged in.

List    //查看邮件列表

+OK 1 messages:

1 485

 retr 1   //收取并查看第一封邮件内容

+OK 485 octets



7.配置邮件别名:

发送给admin的邮件由本地用户natasha接收

#vim /etc/aliases

  admin:  natasha

#newaliases  (或postalias /etc/aliases)


8.SMB共享

共享/common目录,工作组STAFF,共享名common

仅example.com域可以访问,common必须可浏览

harry 能够读取,密码是secure

附加题1:只有harry能够访问common目录

#yum -y install samba

#mkdir /common

#useradd harry

#chkconfig smb on

#vim /etc/samba/smb.conf

    WORKGROUP=STAFF

    hosts allow= 127. 192.168.0.

    [common]

    path=/common

    public=yes

    browseable=yes

#vim /etc/samba/smb.conf(附加题1:配置)

    workgroup=STAFF

    hosts allow= 127. 192.168.0.

    [common]

    path=/common

    public=no

    browseable=yes

    valid users=harry



#service smb restart

#chcon -R -t samba_share_t /common

#smbclient //192.168.0.120/common -U harry




附加题2::配置samba服务器,netbios名称为 MYSERVER 工作组为STAFF,将/common共享,共享名为common,能被浏览到。用户harry对此共享只读,如果需要,harry用户密码为redhat,natasha用户对共享可写,natasha用户的密码为redhat,禁止t3gg.com域访问共享目录,用户可以共享家目录

#yum -y install samba

#chkconfig smb on

#chkconfig nmb on

#useradd harry

#mkdir /common

#chmod o+w /common

#vim /etc/samba/smb.conf

  workgroup=STAFF

  netbios name= MYSERVER

  [common]

   path=/common

   public=yes

   browseable=yes

   writable=no

   write list = natasha

   hosts deny =192.168.1.

#service nmb restart

#service smb restart

#chcon -R -t samba_share_t /common

#getsebool -a |grep samba

#setsebool -P samba_export_all_rw on

#setsebool -P samba_enable_home_dirs on

验证:

#testparm

#smbpasswd -a harry

#smbpaswd -a natasha

#smbclient -L //192.168.0.120

#smbclient //192.168.0.120/common -U harry

#mount -t cifs -o username=natasha%redhat //192.168.0.120/common /mnt/common



9.NFS共享

共享/common目录,仅example.com域内可以访问

注:由于物理机上没有root权限接挂载虚拟机上目录/common

#ls /net/server20.example.com


#chkconfig  nfs on

#chkconfig  rpcbind on

#vim /etc/exports

  /common    192.168.0.0/24(ro,sync)

#service nfs start

#showmount -e 192.168.0.120

#mount -t nfs 192.168.0.120:/common  /mnt/common


修改exports 不用重启,重新导出

#exportfs -ra  (导出所有)

#exportfs -ru  (卸载所有)

#exportfs -v  (显示导出的详细信息)



10.配置ssh访问

harry能够从example.com访问,my133t.org内的机器不能访问


#chkconfig sshd on

#service sshd restart

#iptables -A INPUT  ! -s 192.168.0.0/24 -p tcp --dport 22 -j REJECT



11.实现一个web服务期

站点:http://server20.example.com

网页ftp://instructor.example.com/pub/rhcd/server.html


12.虚拟主机:

站点:http://www20.example.com

DocumentRoot:/var/www/virtual

网页:ftp://instructor.example.com/pub/rhce/www.html


13.配置web访问控制

在默认网站DocumentRoot目录下创建confidential的目录,

下载到ftp://instructor.example.com/pub/rhce/confidential.html该目录,命名index.html

从本地主机任何人都可以浏览confidential的内容,但其他主机都不能访问,其中harry 用户能够读写confidential的内容。

附加题:1.只有harry,natasha用户能访问这个目录的内容

        2.本地主机的所有用户的能访问此目录的内容,不能更改用户的密码



#yum -y install httpd

#chkconfig httpd on

#cd

#wget ftp://instructor.example.com/pub/rhce/server.html

#wget ftp://instructor.example.com/pub/rhce/www.html

#mkdir /var/www/virtual

#cp  server.html   /var/www/html/index.html (用户cp能改变上下文标签,不要用mv)

#cp   www.html     /vr/www/virtual/index.html


#vim /etc/httpd/conf/httpd.conf


NameVirtualHost *:80

<VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName server20.example.com

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot /var/www/virtual

    ServerName www20.example.com

</VirtualHost>


#service httpd restart

#elinks -dump  http://server20.example.com

#elinks -dump  http://www20.example.com


13题


# mkdir /var/www/html/confidential

#wget ftp://instructor.example.com/pub/rhce/confidential.html 

#cp confidential.html    /var/www/html/confidential/index.html

#setfacl -m u:harry:rwx  /var/www/html/confidential

#vim /etc/httpd/conf/httpd.conf


<VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName server20.example.com

    <Directory "/var/www/html/confidential">

      order deny,allow

      deny from all

      allow from 127.0.0.1

      allow from localhost

      allow from 192.168.0.120

      allow from server20.example.com

    </Directory>

</VirtualHost>


#server httpd restart



13题:附加题1-2:


#vim /etc/httpd/conf/httpd.conf

  

    <VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName server20.example.com

    <Directory "/var/www/html/confidential">

      authtype basic

      authname "welcome to rhce web"

      authuserfile /etc/httpd/.htpasswd

      require valid-user

    </Directory>

</VirtualHost>

附加题1:

#htpasswd -cm /etc/httpd/.htpasswd harry  

#htpasswd -m /etc/httpd/.htpasswd natasha

#service httpd restart

#elinks  http://server20.example.com/confidential/index.html

附加题2:

#cut -d: -f1-2   /etc/shadow > /etc/httpd/.htpasswd

#service httpd restart

#elinks http://server20.example.com/confidential/index.html




14创建脚本

  脚本:/root/script.sh

  运行:/root/script.sh all,输出 none

  运行:/root/script.sh none, 输出 all

  没有运行任何参数或者参数不是all或none, 输出:/root/script.sh all|none



  #vim /root/script.sh

      #!/bin/bash

      case $1 in

      all ) 

          echo none

          ;;

      none )

          echo all

          ;;

      *   )

          echo "/root/script.sh all|none"

          ;;

    esac

  #chmod a+x /root/script.sh

  #./script.sh all

  #./script.sh none

  #./script.sh  aaa



15.挂载iso

  开机自动挂载/root/disc.iso 文件到/mnt/virtdisk目录下

  #mkdir /mnt/virdisk

  #vim /etc/fstab

    /root/disc.iso  /mnt/virtdisk   iso9660 defaults,loop 0 0  

  #mount -a


16.配置启动参数

将系统的启动参数kernctl设为5,重启后应该可以在/proc/cmdline文件中看到



  #vim /boot/grub/grub.conf

     kernel  ......   kernctl=5

  

17配置iscsi 磁盘

target 服务器:instructor.example.com

连接iscsi的设备,创建分区20M, ext4,开机自动挂载到/mnt/data

下载ftp://instructor.example.com/pub/iscsi.txt 文件到该目录

文件属主为root,权限为0644



#yum -y install iscsi*

#chkconfig iscsi on

#chkconfig iscsid on

#iscsiadm -m discovery -t st -p 192.168.0.254

#iscsiadm -m none -T targetname -p 192.168.0.254  -l (或:service iscsi restart)

#fdisk -l 

#fdisk -cu /dev/sdb

   n

   p


   +20M

   w

#partx -a /dev/sdb

#cat /proc/partitions

#mkfs.ext4 /dev/sdb1

#blkid /dev/sdb1

#mkdir /mnt/data

#vim /etc/fstab

   UUID=....    /mnt/data ext4  defaults,_netdev 0 0 

#mount -a


最后一步开启题目所有的服务,让其开机自动启动。

    #chkconfig httpd on

    #chkconfig vsftpd on

    #chkconfig sshd on

    #chkconfig nfs on

    #chkconfig rpcbind on

    #chkconfig smb on

    #chkconfig nmb on

    #chkconfig iscsi on

    #chkconfig iscsid on

    #chkconfig iptables on

    #chkconfig postfix on

    #chkconfig dovecot on