【转】RHCE 7系列—RHCSA考试

本篇主要以RHCSA题目为线索,介绍其中涉及的知识点。

红色引用的字为考试的题目内容。


重置root密码

RHEL7 进入单用户方式和重置密码方式相对于以往版本来说,发生了较大变化

操作方法

第一步

启动 RHEL7 系统,并在 GRUB2 启动选项时,按下键盘上的 e 键进入编辑模式。

第二步

光标定位到以 linux16 开头的这一行,按下键盘上的 End 键,直接跳至这一行的末尾,再按下空格键,输入rd.break,执行 Ctrl+X 重启系统。

在虚拟机下破解 root 密码的话,则建议输入 rd.break console=tty0,再重启系统!

(另一个方法就是从这行最末尾开始,删除所有的代码到 ro 为止, 然后再加上rd.break

RHCE 7系列 2---RHCSA考试内容及知识点

第三步

重启后进入 switch_root:/# 模式下,重新挂载分区并赋予读写权限,改变程序执行时所参考的根目录位置。

  1. switch_root:/# mount -o remount,rw /sysroot
  2. switch_root:/# chroot /sysroot

此时进入 sh-4.2# 模式下,对 root 帐户进行密码重置,输入两次相同的密码以确认修改生效。修改密码完毕后,记得让 SELinux 生效。

  1. switch_root:/# passwd root
  2. switch_root:/# touch /.autorelabel (这一步一定不能少,不然不能重启)

按 Ctrl+D 退出,然后再重启操作系统,破解密码完毕,破解后首次进入系统会特别慢!

RHCE 7系列 2---RHCSA考试内容及知识点


按要求将 eth0 网卡配置文件修改为以静态方式获取地址的配置文件,具体信息如下:

IP地址:192.168.1.100

子网掩码:255.255.255.0

默认网关:192.168.1.1

域名服务器:192.168.1.254

RHEL7修改网卡配置文件

设置 IP 地址

  • [root@server0 ~]# nmcli connection modify “DHCP-eth0” ipv4.addresses “192.168.1.100/24 192.168.1.1”

设置域名服务器

  • [root@server0 ~]# nmcli connection modify “DHCP-eth0” ipv4.dns “192.168.1.254”

把地址获取方式由动态修改为静态

  • [root@server0 ~]# nmcli connection modify “DHCP-eth0” ipv4.method manual

检查配置文件是否符合要求

  • [root@server0 ~]# nmcli connection show “DHCP-eth0” |less

停用当前配置,然后再次启用

  • [root@server0 ~]# nmcli connection down “DHCP-eth0”

启用修改后的配置,让其生效

  • [root@server0 ~]# nmcli connection up “DHCP-eth0”

最后再检验一下配置结果

  • [root@server0 ~]# ip addr
  • [root@server0 ~]# cat /etc/resolv.conf
  • [root@server0 ~]# ip route

RHEL7新建网卡配置文件

新增一个动态配置文件,即 DHCP 自动分配IP地址

  1. [root@server0 ~]# nmcli connection add con-name “DHCP-eth0” type ethernet autoconnect yes ifname eth0

con-name:配置文件的名字,带空格或连接符的名字要加双引号,如 “DHCP-eth0″;

type:网络类型,上述是 Ethernet 以太网类型;

autoconnect:自动启用该配置,即开机是否自动启用这套配置,默认情况下都是 no;

ifname:网卡接口名字,比如说这套配置是给 eth0 用的,那么就写 ifname eth0;

新增一个静态配置文件,即手动设置指定的 IP 地址和相关信息

IP地址:192.168.1.100

子网掩码:255.255.255.0

默认网关:192.168.1.1

  1. [root@server0 ~]# nmcli connection add con-name “Static-eth0” type ethernet autoconnect yes ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1

ip4:IPv4的地址,如果是 IPv6 的地址,就是 ip6;

gw4:IPv4的网关,如果是 IPv6 的网关,就是 gw6;

检查刚才新建的两套配置是否存在

  1. [root@server0 ~]# nmcli connection show

检查当前活动的网卡配置文件

  1. [root@server0 ~]# nmcli connection show –active

启用新的网卡配置文件

启用一套新的配置文件时,建议先停用当前配置文件,再启用新的配置文件。比如我当前使用的是静态配置文件(Static-eth0),那么就先停用当前配置,再启用动态配置文件(DHCP-eth0)。

  1. [root@server0 ~]# nmcli connection down “Static-eth0”
  1. [root@server0 ~]# nmcli connection up “DHCP-etho”

删除动态的配置文件

  1. [root@server0 ~]# nmcli connection delete “DHCP-etho”

2. 配置SELinux环境,将SELinux设为enforcing模式。

RHEL7配置SElinux环境

SElinux 是一个强制访问控制安全模块,提高操作系统自身的牢固性是非常重要的。SElinux 的启用和禁用也是红帽认证必考的知识点

操作方法

第一步

查看 SElinux 当前的运行情况。

  1. [root@wanghualang ~]# getenforce

Enforcing:已启用

Permissive:已禁用

第二步

启用 SElinux:

  1. [root@wanghualang ~]# setenforce 1

禁用 SElinux:

  1. [root@wanghualang ~]# setenforce 0

另外注意在配置文件中也要修改 /etc/selinux/conf


3. 建立Yum软件仓库,该Yum仓库将作为默认仓库。
YUM REPO: http://content.example.com/rhel7.0/x86_64/dvd

举个例子,下面是 Yum 仓库网址:

Yum repo:http://content.example.com/rhel7.0/x86_64/dvd

第一种操作方法

使用vi编辑器纯手工创建

第一步

进入 /etc/yum.repos.d/ 目录下,新建一个名为 yum.repo 源配置文件

  1. [root@wanghualang ~]# cd /etc/yum.repos.d/
  2. [root@wanghualang yum.repos.d]# touch yum.repo

第二步

使用 VI 编辑器,配置 yum.repo,这里提供一个简易的配置文件模版,一般情况下是够用的:

[InstallMedia]
name=源的名字
baseurl=源的地址
enable=源是否可用
gpgcheck=检测源的有效性和安全性

编辑相关内容到 yum.repo 文件,一个简易的本地 YUM 源就这样配置好了!

[InstallMedia]
name=content.example.com
baseurl=http://content.example.com/rhel7.0/x86_64/dvd
enable=1
gpgcheck=0

关于 baseurl 的值,一般有三种,即本地路径、FTP、http 三种:

#baseurl=file:///
#baseurl=ftp://
#baseurl=http://

顺便说下,file:/// 的第三条反斜杠是表示根目录。

第二种操作方法

使用 Yum 命令生成模版

第一步

使用 yum-config-manager 创建 repo 模版

  1. [root@server0 yum.repos.d]# yum-config-manager –add-repo “http://content.example.com/rhel7.0/x86_64/dvd”

第二步

查看新创建的 repo 模版

  1. [root@server0 /]# cat /etc/yum.repos.d/blog.wanghualang.com_software_dvd.repo

第三步

因为红帽的软件包经过了 Private Key 签名,所以要导入公钥进行验证,如果嫌麻烦,也可以跟第一种操作方法一样,把 gpgcheck=0 编辑到配置文件中去。

  1. [root@server0 yum.repos.d]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-*

 

其他yum命令:

显示已安装的软件包 yum list installed

显示源地址拥有的软件包 yum list

安装软件,pachages 为软件包的名 yum install packages

卸载软件 yum remove packages

查找软件 yum search packages

查询软件的依赖关系 yum info packages

清空缓存 yum clean all


5. 按要求创建用户组及多个用户,设置用户的候选组,设置用户的默认shell。
创建组adminuser
创建用户natasha和harry属于该组(该组为他们的第二个组)
创建用户sarah,不属于adminuser,没有交互的shell
他们的密码都是tianyun

[root@desktop0 ~]# groupadd adminuser
[root@desktop0 ~]# useradd natasha
[root@desktop0 ~]# useradd harry
[root@desktop0 ~]# usermod -aG adminuser natasha
[root@desktop0 ~]# usermod -aG adminuser harry

[root@desktop0 ~]# useradd sarah -s /sbin/nologin

 

修改密码:

[root@desktop0 ~]# echo tianyun | passwd –stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@desktop0 ~]# echo tianyun | passwd –stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@desktop0 ~]# echo tianyun | passwd –stdin sarah
Changing password for user sarah.
passwd: all authentication tokens updated successfully.

验证

[root@desktop0 ~]# cat /etc/group | grep adminuser
adminuser:x:1001:natasha,harry
[root@desktop0 ~]# id sarah
uid=1003(sarah) gid=1004(sarah) groups=1004(sarah)
[root@desktop0 ~]# id natasha
uid=1001(natasha) gid=1002(natasha) groups=1002(natasha),1001(adminuser)


6. 按要求设置文件及目录权限,会用到文件acl权限。
拷贝/etc/fstab到/var/tmp/fstab,属主和属组为root;
任何人都不能执行;natasha能读写;
harry没有任何权限;其他和将来的用户能够读。

  • [root@desktop0 ~]# cp -a /etc/fstab /var/tmp/fstab
  • [root@desktop0 ~]# chmod a-x /var/tmp/fstab
  • [root@desktop0 ~]# setfacl -m u:natasha:rw /var/tmp/fstab
  • [root@desktop0 ~]# setfacl -m u:harry:— /var/tmp/fstab

验证一下:

[root@desktop0 ~]# ll /var/tmp/fstab
-rw-rw-r–+ 1 root root 440 Aug 3 01:33 /var/tmp/fstab
[root@desktop0 ~]# getfacl /var/tmp/fstab
getfacl: Removing leading ‘/’ from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:—
group::r–
mask::rw-
other::r–


7. 设置用户的计划任务cron。
natasha每天14:20时执行命令:/bin/echo hello

附加题:创建计划任务,要求natasha在1.3.5日 14:30分执行/bin/echo hello

  • [root@desktop0 ~]# crontab -u natasha -e

20 14 * * * /bin/bash hello

  • [root@desktop0 ~]# crontab -l -u natasha
    20 14 * * * /bin/bash hello

附加题:

  • #crontab -e -u natasha

30 14 1,3,5 * * /bin/echo hello

  • #crontab -l

8. 设置目录权限。
创建共享目录/home/admins;属组为adminuser;
adminuser组成员对目录有读写和执行的权限,其他所有用户没有任何权限(root除外);
在/home/admins目录中创建的文件,会自动继承adminuser组

[root@desktop0 ~]# mkdir /home/admins
[root@desktop0 ~]# chown :adminuser /home/admins/
[root@desktop0 ~]# ll -d /home/admins/
drwxr-xr-x. 2 root adminuser 6 Aug 3 02:14 /home/admins/

 

[root@desktop0 ~]# chmod 2770 -R /home/admins/
[root@desktop0 ~]# ll -d /home/admins/
drwxrwx—. 2 root adminuser 6 Aug 3 02:14 /home/admins/


9. 按指定要求安装升级内核,保证grub2启动时为默认项目。
YUM REPO: http://content.example.com/rhel7.0/x86_64/errata

yum-config-manager –add-repo=”http://content.example.com/rhel7.0/x86_64/errata”
vi /etc/yum.repos.d/content.example.com_rhel7.0_x86_64_errata.repo 加入gpgcheck=0
yum list kernel
yum -y install kernel
grub2-set-default “Red Hat Enterprise Linux Server, with Linux 3.10.0-123.1.2.el7.x86_64”
—检查
grub2-editenv list

10. 使用LDAP作为本地用户认证方式LDAP Server: classroom.example.com
LDAP Base DN: dc=example,dc=com
Root CA: http://classroom.example.com/pub/example-ca.crt

11. 设置NTP服务,同步指定服务器时间。NTP Server: classroom.example.com

NTP服务是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正,且可介由加密确认的方式来防止恶毒的协议攻击。

设置NTP服务,同步服务器(classroom.example.com)时间

第一步

安装 NTP 软件包

  1. yum -y install chrony

第二步

配置同步服务器的地址,配置文件中默认的官方服务器地址要注释掉。

  1. vi /etc/chrony.conf
  2. #server 0.rhel.pool.ntp.org iburst
  3. #server 1.rhel.pool.ntp.org iburst
  4. #server 2.rhel.pool.ntp.org iburst
  5. #server 3.rhel.pool.ntp.org iburst
  6. server classroom.example.com iburst

第三步

启动服务,并设置服务开机自启

  1. [root@server0 ~]# systemctl enable chronyd
  2. [root@server0 ~]# systemctl restart chronyd

验证 NTP 服务是否符合要求

[root@server0 ~]# timedatectl status

Local time: Mon 2015-08-24 10:54:32 CST

Universal time: Mon 2015-08-24 02:54:32 UTC

RTC time: Mon 2015-08-24 02:54:33

Timezone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: yes

RTC in local TZ: no

DST active: n/a

 

另外可以使用chronyc sources查看

[root@desktop0 ~]# systemctl restart chronyd.service
[root@desktop0 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 8 6 7 1 -75us[ +677ms] +/- 1101us


12. 配置和LDAP用户认证配合的autofs自动目录挂接

LDAP Server: classroom.example.com

LDAP Base DN: dc=example,dc=com

Root CA: http://classroom.example.com/pub/example-ca.crt

RHCSA中,只用完成LDAP客户端的部分

LDAP是轻量目录访问协议,它提供了不同层次的访问控制或者 ACI,且访问可以在服务器端控制,这比用客户端的软件保证数据的安全要安全得多。

这个实验中,主要是配置客户端,所以实验中涉及的相关用户、密钥、域名等信息都是在服务端设定好的,可以使用网站提供的虚拟机环境进行测试。

(这一种是LDAP Password验证的方式,并且使用了图形化的配置工具authconfig-gtk )

第一步

安装必要的软件包,共三个,分别是 SSSD、authconfig-gtk、krb5-workstation。另外,如果不是使用 Kerberos 认证,那么 krb5-workstation 可以不安装。

  1. [root@server0 ~]# yum -y install sssd authconfig-gtk krb5-workstation

第二步

在终端输入 authconfig-gtk,打开图形化配置工具,输入相关信息:

RHCE 7系列---RHCSA考试内容及知识点2

RHCE 7系列---RHCSA考试内容及知识点2

到此,就已经配置好一个以 LDAP 作为本地用户认证方式了。

实验环境中,用户名为 ldapuser0,密码为 password。

  1. [root@server0 ~]# id ldapuser0
  2. uid=1700(ldapuser0) gid=1700(ldapuser0) groups=1700(ldapuser0)
  1. [root@server0 ~]# getent passwd ldapuser0
  2. ldapuser0:*:1700:1700:LDAP Test User 0:/home/guests/ldapuser0:/bin/bash
  1. [root@server0 ~]# ssh ldapuser0@localhost

(下面这种是使用Kerberos验证的方式,这次使用setup工具避免图形化的操作)

第一步

安装必要的软件包

  1. [root@server0 ~]# yum -y install sssd krb5-workstation

第二步

在终端输入setup,输入相关信息:

选择第一个 认证设置:

1

按空格勾选:使用kerberos认证方式

2

设置LDAP server、Base DN (这里的信息,题目会给出来的)

3

填写kerberos 认证信息:

4

然后需要CA证书,此时千万先不要点OK

5

按照题目要求在desktop的路径下载CA证书,此时重新开一个tty去下载

地址题目已经给出,下载到/etc/openldap/cacerts

[root@desktop0 ~]# cd /etc/openldap/cacerts
[root@desktop0 cacerts]# wget http://classroom.example.com/pub/EXAMPLE-CA-CERT

..(下载的过程省略了)..

[root@desktop0 cacerts]# ls
EXAMPLE-CA-CERT
[root@desktop0 cacerts]#

下载完成之后,再回来点击OK

这样就算是完成了

测试:

[root@desktop0 ~]# su – ldapuser1
su: warning: cannot change directory to /home/guests/ldapuser1: No such file or directory
mkdir: cannot create directory ‘/home/guests’: Permission denied
-bash-4.2$

 

显示如上说明账户可以登录,但没找到用户主目录。这需要在本地配置autofs挂载路径

 

[root@desktop0 ~]# ssh ldapuser1@desktop0.example.com
^[[DThe authenticity of host ‘desktop0.example.com (172.25.0.10)’ can’t be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘desktop0.example.com,172.25.0.10’ (ECDSA) to the list of known hosts.
ldapuser1@desktop0.example.com’s password:
Last login: Tue Aug 2 22:22:08 2016
Could not chdir to home directory /home/guests/ldapuser1: No such file or directory
mkdir: cannot create directory ‘/home/guests’: Permission denied
-bash-4.2$

实验环境中,用户名为 ldapuser0 ~ldapuser9 均可,密码为 kerberos


接下来,使用autofs 自动连接

第一步

安装必要的软件包

  1. [root@desktop0 ~]# yum install autofs -y

第二步

设置开机启动,并启动autofs:

  1. [root@desktop0 ~]# systemctl enable autofs.service
    [root@desktop0 ~]# systemctl start autofs.service

第三步

编辑配置文件:

  1. vim /etc/auto.master.d/my.autofs

/home/guests /etc/my.master

配置两项,第一项为在desktop0上挂载的目录,第二项为挂载点配置文件

(注: Autofs的配置文件可以是/etc/ auto.master.d下以.autofs结尾的文件)

(直接修改/etc/auto.master的方法可以看这里autofs自动挂载NFS共享目录配置文档)

  1. vim /etc/my.master

* classroom.example.com:/home/guests/&

第四步

重启服务

  1. systemctl restart autofs.service

测试:

[root@desktop0 ~]# ssh ldapuser1@desktop0.example.com
ldapuser1@desktop0.example.com’s password:
Last login: Tue Aug 2 23:40:41 2016 from desktop0.example.com
[ldapuser1@desktop0 ~]$ pwd
/home/guests/ldapuser1


13. 建立用户jack,指定uid为2000

  • useradd -u 2000 jack

注意创建完成后,题目是否有要求设置密码


14. 创建新的swap分区512M,需要写入fstab自动开机挂接

做之前先看题目要求,用哪一块磁盘创建? 创建几个swap?等等

另外也free -h看一下,当前系统内存的情况

[root@desktop0 ~]# free -h
total used free shared buffers cached
Mem: 1.8G 814M 1.0G 16M 688K 466M
-/+ buffers/cache: 347M 1.5G
Swap: 0B 0B 0B

第一步

创建swap分区 (fdisk的用法就不在这里细说了)

[root@desktop0 ~]# fdisk /dev/vdb

 

Command (m for help): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x56a26ad2

Device Boot Start End Blocks Id System
/dev/vdb1 2048 1050623 524288 82 Linux swap / Solaris

第二步

格式化,并启用

  1. [root@desktop0 ~]# mkswap /dev/vdb1
  2. [root@desktop0 ~]# swapon /dev/vdb1

 

[root@desktop0 ~]# partprobe
[root@desktop0 ~]# ll /dev/vdb*
brw-rw—-. 1 root disk 253, 16 Aug 3 00:57 /dev/vdb
brw-rw—-. 1 root disk 253, 17 Aug 3 00:57 /dev/vdb1
[root@desktop0 ~]# mkswap /dev/vdb1
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=b39b279d-3b91-4c69-a6f6-f9cdd0de2645

 

[root@desktop0 ~]# swapon /dev/vdb1
[root@desktop0 ~]# free -h
total used free shared buffers cached
Mem: 1.8G 815M 1.0G 16M 692K 467M
-/+ buffers/cache: 347M 1.5G
Swap: 511M 0B 511M

第三步

编辑配置文件:

  1. vim /etc/fstab

/dev/vdb1 swap swap defaults 0 0

测试

reboot重启验证

 

另外看到一个帖子里面说道:

考 RHCE 红帽认证的时候,不知道是官方故意安排或是什么原因,上午的 RHCSA 考试中有一题是创建新的 swap 分区,且无法通过新建分区的方法做题,这时就可以通过建立一个 swap 文件增加虚拟内存。

操作方法

第一步

新建一个 swap 文件,bs 是定义块的大小,count 是定义块的数量,下面新建一个大小为 4G 的文件。

  1. [root@wanghualang /]# dd if=/dev/zero of=/tmp/newswap bs=4k count=1024000

第二步

格式化刚才新建的 swap 文件。

  1. [root@wanghualang /]# mkswap /tmp/newswap

第三步

挂载

  1. [root@wanghualang /]# swapon /tmp/newswap

第四步

查看 swap 分区容量。

  1. [root@wanghualang /]# free -m

15. 查找属于用户alice的所有文件,并将其拷贝到/findfiles

考察find 命令 -exec的用法

  • mkdir /findfiles
  • find / -u alice -exec cp -avf {} /findfiles \;

16. 在/usr/share/dict/words中查找到所有包含字符串seismic 的行,
将找出的行按照原文的先后顺序拷贝到/root/filelist文件中。/root/filelist文件不要包含空行

考察grep命令 和 重定向符的使用

  • cat /usr/share/dict/words | grep “seismic” > /root/filelist

或者:

  • grep “seismic” /usr/share/dict/words > /root/filelist

 

17. 将/etc目录归档并压缩到/root/backup.tar.bz2,使用bzip2压缩。

考察tar 命令使用

  • tar jcvf /root/backup.tar.bz2 /etc

18. 创建逻辑卷database,属于卷组datastore,逻辑卷的大小为10个物理扩展单元,物理扩展单元(physical extent)
大小16M。使用ext4文件系统对新的逻辑卷进行格式化。自动挂载在/mnt/database 目录下。

LVM算是RHCSA中比较麻烦,也比较难的题目了,这个只是要求创建LVM,但是考试中往往考查调整LVM(增大或减小)

第一步

创建底层支持LVM的分区,即创建分区并修改分区类型(fdisk 后记得partprobe

1第二步

创建PV

[root@desktop0 ~]# pvcreate /dev/vdb2
Physical volume “/dev/vdb2” successfully created
[root@desktop0 ~]# pvscan
PV /dev/vdb2 lvm2 [1.00 GiB]
Total: 1 [1.00 GiB] / in use: 0 [0 ] / in no VG: 1 [1.00 GiB]

第三步

创建VG

  • [root@desktop0 ~]# vgcreate datastore /dev/vdb2 -s 16M (千万别忘了指定PE的大小)
    Volume group “datastore” successfully created
  • [root@desktop0 ~]# vgdisplay

1

第四步

创建LV

  • [root@desktop0 ~]# lvcreate datastore -n database -l 10
    Logical volume “database” created
  • [root@desktop0 ~]# lvdisplay

1

第五步

格式化LVM,并且开机自动挂载

  • [root@desktop0 ~]# mkfs.ext4 /dev/datastore/database
  • [root@desktop0 ~]# mkdir /mnt/database/
  • [root@desktop0 ~]# vim /etc/fstab

    /dev/datastore/database /mnt/database ext4 defaults 0 0

  • [root@desktop0 ~]# mount -a
  • [root@desktop0 ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 10G 3.5G 6.6G 35% /
    devtmpfs 906M 0 906M 0% /dev
    tmpfs 921M 80K 921M 1% /dev/shm
    tmpfs 921M 17M 904M 2% /run
    tmpfs 921M 0 921M 0% /sys/fs/cgroup
    /dev/mapper/datastore-database 151M 1.6M 139M 2% /mnt/database

可以再重启验证

 

 

 文章来源:

http://www.attacker2001.com/

云袭2001's blog

 

一个不努力的菜鸟

 

 

posted on 2016-10-05 18:12  小言是谁  阅读(8250)  评论(2编辑  收藏  举报