RHCE模拟题 相关配置信息 root 用户密码是:redhat example.com 192.168.0.0/255.255.255.0 my133t.org 192.168.1.0/255.255.255.0
虚拟机的网络配置: 主机名: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 #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接收邮件 [iyunv@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服务期
12.虚拟主机: DocumentRoot:/var/www/virtual
13.配置web访问控制 在默认网站DocumentRoot目录下创建confidential的目录, 从本地主机任何人都可以浏览confidential的内容,但其他主机都不能访问,其中harry 用户能够读写confidential的内容。 附加题:1.只有harry,natasha用户能访问这个目录的内容 2.本地主机的所有用户的能访问此目录的内容,不能更改用户的密码
#yum -y install httpd #chkconfig httpd on #cd #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
13题
# mkdir /var/www/html/confidential #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 附加题2: #cut -d: -f1-2 /etc/shadow > /etc/httpd/.htpasswd #service httpd restart
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 文件属主为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
|