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' [email protected]
#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