RHCE 22个考点
=======================
1.配置selinux
考点:rhcsa考过的 不重复 考试时也就是要求会操作
-----操作步骤如下------
*先setenforce 1 再vim /etc/sysconfig/selinux下 enforcing
补充说明:
permissive就是Selinux中有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来
enforcing就是违反了策略,你就无法继续操作下去
disable 取消、关闭selinux
=========================
2.添加服务ssh
考点:1.systemctl enable firewalld 2.关键一步 firewall-cmd --permanent --add-serivce=ssh 3.firewall-cmd reload
考试时还会要求 设定某个Ip 允许ssh访问。
----------操作步骤如下---------
systemctl enable firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent -add-rich-rule 'rule family="ipv4' source address="IP" service name=ssh accept'
==================
3.自定义用户环境
考点:vim /etc/bashrc alias qstat=' ’考试没有变动,熟练就行。
(知识点:alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz' bash )
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.
~/.bash_profile 是交互式、login 方式进入bash 运行的;
~/.bashrc 是交互式 non-login 方式进入bash 运行的;
====================
4.配置端口转发
考点:熟记firewall-cmd 相关命令
-------操作步骤如下-----------
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.24.8.0/24" forward-port port="5423" protocol="tcp" to-port="80"'
firewall-cmd --reload
===================
5.配置链路聚合
考点:考试熟记下面的命令,注意考试时 两台机器给的Ip不一样。
----------操作步骤如下-------------
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}'
nmcli connection modify team0 ipv4.addresses "172.16.3.40/24" connection.autoconnect yes ipv4.method manual
nmcli connection add con-name team0-slave1 ifname eth1 type team-slave master team0
nmcli connection add con-name team0-slave2 ifname eth2 type team-slave master team0
nmcli connection up team0
teamdctl team0 state
====================
6.配置IPV6
考点:会用nmcli配置Ipv6,粗体字部分手工设置要加上。
----------操作步骤如下-----------
nmcli connection modify eth0 ipv6.addressses "2003:ac18::305/64" ipv6.method manual connection.autoconnect yes
nmcli connection reload
nmcli connection down eth0
nmcli connection up eth0
=====================
7.配置本地邮件服务
考点:postconf -e 设置内容跟着要求来,
1.本地发送的任何邮件自动路由到某个域名(看题目要求)
2.从本地系统上发送的邮件都显示来自于固定某个地址(看题目要求)
3.可能会添加一条要求设置信任网络:mynetworks=
-----------操作步骤如下----------
考试熟记命令
只在本地还回接口接受邮件: postconf -e inet_interfaces=loopback-only 也就是说不接受外部发送的邮件
把接受到的任何邮件都当作外部邮件 postconf -e mydestindation=
禁止本地分发邮件到本地用户邮箱 postconf -e local_transport=error:err
设定中心邮件服务器 postconf -e relayhost=[mail.group8.example.com]
设定发信人的域 postconf -e myorigin=server.group8.example.com
* postconf -e mynetworks=172.0.0.0/8[;:1]/128 信任网络*
systemctl enable postfix
systemctl restart postfix
echo "hello" | mail -s testmail dave
验证 :curl http://
====================
8.SMB共享目录
考点:1.firewall添加samba服务
2/etc/samba/smb.conf配置 通常设置固定客户端可否访问 ,浏览和写权限(hosts allow,browseable,writable);
3.安全上下文semanage fcontext “samba_share_t”
4.设置samba帐号 smbpasswd -a
5.客户端验证 sambaclient -L //ip -U
-----------操作步骤如下------------
yum install samba samb-client -y --nogpgcheck
systemctl enbale smb.service nmb.service
设定防火墙
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
配置文件
[global]
workgroup = STAFF
[common]
path = /common
hosts allow = 172.24.8. 允许指定域的客户端可以使用
browseable = yes 允许被浏览
创建目录设定安全上下文 (所有关于安全上下文 参考笔记RHCSA2 笔记7.2 7.3)
mkdir
semanage fcontext -a -t "samba_share_t" '/common(/.*)?'
restore -Rv /common/
smbpasswd -a andy
systemctl restart smb nmb
验证 系统2上
yum install samba-cilent -y --nogpgcheck
smbclient -L //172.24.8.11/ -U andy
--------------
补充相关配置说明
==============================
9.配置多用户SMB挂载
为何samb 中配置指定/devops/不允许有写权限(writable),而需要setfacl来设置用户对指定目录有读写rwx权限??
考点:
1./etc/samba/smb.conf配置 通常设置固定客户端可否访问 ,浏览和写权限(hosts allow,browseable,writable);
2..安全上下文semanage fcontext “samba_share_t”
3..设置samba帐号 smbpasswd -a
4..客户端验证 sambaclient -L //ip -U
-------操作步骤如下-----------
vim /etc/samba/smb.conf
[devops]
path= /devops
hosts allow = 172.24.8. 允许指定域的客户端可以使用
browseable = yes 允许被浏览
writable = no 不允许写权限
write list = akira write list用来指定可以在该共享下写入文件的用户
设定目录
mkdir /devops
semanage fcontext -a -t "samba_share_t" '/devops(/.*)?'
restorecon -Rv /devops
setfacl -m u:akira:rwx /devops/ 设置akira 对指定目录下的文件/devops/有读写权限
建立samba账户
smbpasswd -a silene
密码:redhat
smbpasswd -a akira
密码redhat
重启服务 systemctl restart smb nmb
系统2
安装软件 yum install cifs-utils -y --nogpgcheck
建立挂载点 mkdir /mnt/dev
查看共享 smbclient -L //172.24.8.11/ -U silene
挂载 vim /etc/fstab
//172.24.8.11/devops /mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0
mount -a
df -h
验证 su - silene
cd /mnt/dev
cifscreds add 172.24.8.11
touch testfile 结果被否
su - akir
cd /mnt/dev
cifscreds add 172.24.8.11
touch testfile
===============================
10.配置NFS服务
考点:1.防火墙firewall添加服务nfs,rpc-bind,mountd,nfs服务依赖这两个rpc-bind,mountd.
2安全上下文 semanage public_content_t
3.在/etc/exports下配置 指定系统1共享目录
4在/etc/sysconfig/nfs 下修改nfs启动参数,并重启服务 restart nfs-server nfs-secure
注意:nfs的主要配置文件是/etc/exports,辅助配置文件是/etc/sysconfig/nfs
简单说一下rpc,rpc服务的主要功能就是指定每个nfs功能所对应的端口号,并通知给客户端,让客户端连接正确的端口号,因为nfs启动时端口号不固定,nfs服务启动时会随机选择一个可用的端口,然后向rpc服务报告,说明nfs服务现在所占用的端口,所以,rpc必须在nfs启动前启动,没有rpc,nfs服务无法正常使用
------操作步骤如下----------
yum install nfs-utils -y --nogpgcheck
服务开机启动 systemctl enable nfs-server nfs-sercure-server
设定防火墙规则
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
设定目录及安全上下文
mkdir -p /public /protected/project
chown andres /protected/project
semanage fcontext -a -t "public_content_t" '/protected(/.*)?'
semanage fcontext -a -t "public_content_rw_t" '/protected/project(/.*)?'
restore -Rv /protected/
vim /etc/exports
/public *.group8.example.com(ro,sec=sys,sync)
/protected *.group8.example.com(rw,sec=krb5p,sync)
vim /etc/sysconfig/nfs
RPCNFSDARGS="-v 4.2"
systemctl restart nfs-server.service nfs-secure-server.service
刷新并导出资源
exportfs -ra
exportfs
===========================
11.挂载1个NFS共享
考点:
1./etcfstab 的共享目录挂载
2.验证挂载成功
3.客户端:在挂载时声明版本:v4.2
---------操作步骤如下-------------
系统2上
mkdir /mnt/nfsmount /mnt/nfssecure
下载用于认证的keytab,并将密钥存入/etc/krb5.keytab
wget -o /etc/krb5.keytab http://
vim /etc/fstab
system1:/public /mnt/nfsmount nfs defaults,sec=sys 0 0
system1:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0
测试:
mount -a
df -h
su - andres
kinit
cd /mnt/nfssecure/project/
touch testfile
ls -l
====================
12.实习1个web服务
考点:
1.apache的默认目录/var/www/html相关配置
2.wget -O /var/www/html/index.html
3.
-------操作步骤如下-----------
yum install httpd -y --nogpgcheck
vim /etc/httpd/conf.d/httpd-vhosts.conf
DocumentRoot "/var/www/html" 注意 “ ” 默认为/var/www/html
ServerName system1.group8.example.com 指定配置的站点
Require all granted 匹配所有访问请求,并授权访问
Require not hosts .my133t.org 不匹配.my133t.org访问请求,并拒绝访问
wget -O /var/www/html/index.html http://server.group8.example.com/pub/system1.html
systemctl enable httpd
systemctl start httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
系统2
curl system.group8.example.com
==================================
13.配置安全web服务
考点:
1.安装模块mod_ssl
2.https端口443
3.SSL下相关证书下载到对应的路径必须一致
SSL Engine on /etc/pki/tls/...
SSL Protocol all
SSL CertificateFile
SSL CertificateKeyFile
SSL CACertificateFile
------操作步骤如下-------
yum install mod_ssl -y
vim /etc/httpd/conf.d/httpd-vhosts.conf
DocumentRoot "/var/www/html"
ServerName system1.group8.example.com
Require all granted 匹配所有访问请求,并授权访问
Require not hosts .my133t.org 不匹配.my133t.org访问请求,并拒绝访问
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/pki/tls/certs/system1.crt
SSLCertificateKeyFile /etc/pki/tls/private/system1.key
SSLCACertificateFile /etc/pki/tls/certs/ssl-ca.crt
wget -O /etc/pki/tls/certs/system1.crt http://server.group8.example.com/pub/tls/certs/system1.crt
wget -O /etc/pki/tls/private/system1.key http://server.group8.example.com/pub/tls/private/system1.key
wget -O /etc/pki/tls/certs/ssl-ca.crt http://server.group8.example.com/pub/tls/certs/ssl-ca.crt
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
systemctl restart httpd
curl -k https://system1.group8.example.com
-k 忽略证书
===========================
14.配置虚拟主机
考点: 1./var/www/virtual 虚拟主机的相关配置
2.安全上下文 httpd_sys_content—t
------操作步骤如下-------
mkdir /var/www/virtual
wget -O /var/www/virtual/index.html http://server.group8.example.com/pub/www8.html
setfacl -m u:andy:rwx /var/www/virtual/
semanage fcontext -a -t "httpd_sys_content_t" '/var/www/virtual(/.*)?'
restorecon -Rv /var/www/virtual/
vim /etc/httpd/conf.d/httpd-vhosts.conf
DocumentRoot "/var/www/virtual"
ServerName www8.group8.example.com
Require all granted 匹配所有访问请求,并授权访问
systemctl restart httpd
系统2 curl http://www.8.group8.example.com
===================================
15.配置web内容的访问
考点:1.Document “/var/www/html/private” "/var/www/virtual/private"相关配置
------操作步骤如下------
mkdir /var/www/html/private
mkdir /var/www/virtual/private
wget -O /var/www/html/private/index.html http://server.group8.example.com/pub/private.html
wget -O /var/www/virtual/private/index.html http://server.group8.example.com/pub/private.html
vim /etc/httpd/conf.d/httpd-vhosts.conf
DocumentRoot "/var/www/html"
ServerName system1.group8.example.com
Require all granted 允许所有的访问
Require all denied 匹配所有访问请求,并拒绝访问
Require local 匹配本机
DocumentRoot "/var/www/vitual"
ServerName www8.group8.example.com
Require all granted 匹配所有访问请求,并授权访问
Require all denied 匹配所有访问请求,并拒绝访问
Require local 匹配只允许本地访问
systemctl restart httpd
验证
系统1:curl http://system1.group8.example.com/private/
系统2:curl http://system1.group8.example.com/private/
===========================
16.实现动态web内容
考点:
1.WSGIScriptAlias / /var/www/html/webinfo.wsgi
2.安装模块mod_wsgi
3.防火墙添加监听端口firewall
4.apache添加监听端口 semanage port -a http_port_t -p tcp
-----操作步骤如下----
vim /etc/httpd/conf.d/httpd-vhosts.conf
Listen 8909
ServerName wsgi.group8.example.com
WSGIScriptAlias / /var/www/html/webinfo.wsgi ----------凡是访问路径/下的URL都使用/var/www/html/webinfo.wsgi 来解析
yum install mod_wsgi -y --nogpgcheck --------------安装模块mod_wsgi
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" port port=8909 protocol=tcp accept' ------防火墙添加端口
firewall-cmd --reload
semanage port -a -t http_port_t -p tcp 8909 -------apache添加监听端口号
systemctl resstart httpd
curl http://wsgi.group8.example.com:8909
=====================
17.创建脚本
vim /root/foo.sh
#! /bin/bash
case $1 in
redhat)
echo "fedora"
;;
fedora)
echo "redhat"
;;
*)
echo "/root/foo.sh redhat | fedora"
;;
esac
chmod 755 /root/foo.sh
===========================
18.创建1个添加用户的脚本
vim /root/batchusers
#! /bin/bash
if[ $# -eq 1 ];then ----$# 表示提供到shell脚本或者函数的参数总数;意思就是脚本中有参数的时候,就。。没有就显示 “Usage:/root/barchusers userfile”
if [ -f "$1" ];then ------------将一个文件普通名传给传给$1,并判断这个文件是否存在.$1“位置参数”,表示传入第1个参数。
while read username;do
useradd -s /bin/false $username &>/dev/null
done < $1
else
echo "Input file not found"
exit 1
fi
else
echo "Usage:/root/barchusers userfile"
exit 2
fi
chmod 755 /root/batchusers
wget -O /root/userlist http://server.group8.example.com/pub/userlist
/root/batchusers userlist
=============================
19.配置iscsI服务端
考点:
1.yum安装包targetcli,systemctl firewall添加服务端口
2.fdisk分区
3.逻辑卷pvcreate vgcreate lvcreate -n -l
4.targetcli 定义本地块设备
-----操作步骤如下-------
yum install targetcli -y --nogpgcheck
systemctl enable target
systemctl start target
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.24.8.12/32" port port=3260 protocol=tcp accept'
firewall-cmd --reload
fdisk /dev/sda
n p 3 +3G t 8e w
partprobe
pvcreate /dev/sda3
vgcreate iscsi_vg /dev/sda3
lvcreate -n iscsi_store -l 100%VG iscsi_vg
targetcli
定义本地块设备 >backstores/block create name=iscsi_store dev=/dev/iscsi_vg/iscsi_store
>cd iscsi
定义一个iscsi >create iqn.2014-08.com.example.group8:system1
>cd iqn.2014-08.com.example.group8:system1/tpg1/
将定义好的块设备共享出去 >luns/ create /backstores/block/iscsi_store
创建基于iqnde acl:允许该名字的客户端访问本地Iscsi的target >acls/ create iqn.2014-08.com.example.group8:system2
定义target的入口 >portals/ create 172.24.8.11 3260
关闭帐号验证 >set attribute authentification = 0
使用自定义的acl实现节点访问限制 >set attribute generate_node_acls=0
>saveconfig
>exit
==========================
20.配置ISCSI客户端
考点:
1.yum安装iscsi-initiator-utils
2.vim /etc/iscsi/initiatorname.iscsi 设置
InitiatorName这个单词必须注意大小写,同时,必须顶格写,xxxx代表要设 置的initiator名称,请遵循iqn命名规范。
iqn规范定义的InitiatorName格式为iqn.domaindate. reverse.domain.name:optional name,例如:iqn.2006-11.com.h3c:dbserver。
3.发现target
iscsiadm -m discovery -t st -p 172.24.8.11
iscsiadm -m node -l
----------操作步骤如下------
yum install iscsi-initiator-utils -y
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-08.com.example.group8:system2
systemctl enable iscsid iscsi
systemctl restart iscsid iscsi
iscsiadm -m discovery -t st -p 172.24.8.11
iscsiadm -m node -l
lsblk 查看本地多了一个3G 的硬盘
fdisk /dev/sdb
n p +2100M w partporbe
mkfs.ext4 /dev/sdb1
mkdir /mnt/data
vim /etc/fstab
/dev/sda1 /mnt/data ext4 defaults,_netdev 0 0
mount -a
df -h
====================================
20.配置数据库
考点:
1.mariadb的安装 2.mysql—secure_installation安装 3.创建题目要求数据库,可能有要求数据库包括需要复制的内容,该部分的内容会给出下载地址,通过wget下载到指定文件,然后在创建数据库后source恢复 4.设置指定某个账户本地访问数据库
-------操作步骤-----------
yum install mariadb* -y --nogpgcheck
systemctl enable mariadb
systemctl restart mariadb
mysql_secure_installation (y redhat y)
wget -O /root/users.mdb http://server.group8.example.com/pub/users.mdb
mysql -u root -predhat
create database Contacts; (创建数据库以后use进入该数据库使用命令source恢复)
use Contacts;
source /root/users.mdb;
grant select on Contacts.* to Mary@localhost identified by 'redhat'; (Contacts.* 指的是:数据库contact下的所有表)
quit
=====================================
21.数据库查询
考点:查询sql语句、授权某账户相关权限允许账户本地访问数据库
也可能会要求针对某帐户设置插入、 更新、筛选、 删除权限
mysql -u root -predhat
use Contacts;
show databases;
desc ...
SELECT u_name.firstname FROM u_name, u_passwd WHERE u_name.userid = u_passwd.uid AND U_psswd.password = 'fadora';
SELECT COUNT(*) FROM u_name, u_loc WHERE u_name.userid = u_loc.uid AND u_name.firstname = 'John' AND U_loc.location = 'Santa Clara';
补:1.数据库建立用户
create user john@'localhost' indentified by 'password';
2.针对某表设置本地用户权限
grant insert,update,delete,selecte on inventory.* to john@'localhost'; (john@% 不匹配localhost)
补充说明
create 创建
drop 删除数据库
alter 修改
select 查询
insert 插入
update 更新
delete 删除记录
grant 赋予权限
revoke 从当前用户或组中取消权限
grant补充说明
一次grant只能指定一个对象,例如:grant select, update, insert on 数据库 to 指定用户;
可以设置多种操作权限,但是只能指定一张表。
===================================