LINUX从零开始——ENGINEER(云计算应用管理)——Day5 [SELinux、系统故障修复、防火墙策略管理、服务管理]

一、环境准备
1.开启两台虚拟机,以root用户登录

课程回顾:
1.查看网卡IP地址命令有哪些?
ifconfig
ip address show

2.如何查看本机DNS服务器地址?
cat /etc/resolv.conf

3.如何查看本机网关地址?
route -n

4.如何查看正在登陆用户信息?
who users w

5.yum客户端配置文件放在什么路径下?具体都有哪些字段?
/etc/yum.repos.d/*.repo
[] name baseurl enabled gpgcheck

4.如何将本机的/etc/fstab文件,远程传递到服务器192.168.4.207的/usr下?
scp /etc/fstab [email protected]:/usr

6.vim文本编辑器中如何撤销?
u

7.源码包在进行编译安装时,一般步骤有哪些?
1.安装开发工具
2.进行tar解包
3.运行./configure 进行配置
4.进行make编译
5.进行make install 安装

8.针对众多的RPM软件包,如何生成仓库数据文件?
createrepo

9.非交互式为root设置密码123456如何实现?
echo 123546 | passwd --stdin root

10.实现/dev/cdrom开机自动挂载到/mnt如何实现?
vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0

昨日习题:
案例6:虚拟机B
1.源码编译安装 inotify-tools 软件工具
2.安装位置为/usr/local/tools
[root@svr7 ~]# yum -y install gcc make
[root@svr7 ~]# tar -xf /root/tools.tar.gz -C /
[root@svr7 ~]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /
[root@svr7 ~]# ls /
[root@svr7 ~]# ls /inotify-tools-3.13/
[root@svr7 ~]# cd /inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# ./configure --prefix=/usr/local/tools #指定安装位置
[root@svr7 inotify-tools-3.13]# make
[root@svr7 inotify-tools-3.13]# make install
[root@svr7 inotify-tools-3.13]# ls /usr/local/tools

案例7:虚拟机B:自定义Yum仓库
1.将tools.tar.gz释放到/usr/local目录下
2.利用/usr/local/tools/other目录下RPM软件包,构建自定义Yum仓库
[root@pc207 ~]# tar -xf /root/tools.tar.gz -C /usr/local
[root@pc207 ~]# ls /usr/local/tools/other
[root@pc207 ~]# createrepo /usr/local/tools/other
[root@pc207 ~]# ls /usr/local/tools/other
[root@pc207 ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=CentOS7
baseurl=file:///dvd
enabled=1
gpgcheck=0
[test]
name=myrpm
baseurl=file:///usr/local/tools/other
enabled=1
gpgcheck=0
[root@pc207 ~]# yum repolist

案例8:虚拟机B:传递数据
1.将本机/usr/local/tools/other目录传递到虚拟机A,放在虚拟机A的/usr/目录下
2.将本机/etc/gshadow文件传递到虚拟机A,放在虚拟机A的/root目录下
3.将本机/etc/skel目录传递到虚拟机A,放在虚拟机A的/tmp目录下
[root@pc207 ~]# scp -r /usr/local/tools/other [email protected]:/usr
[root@pc207 ~]# scp /etc/gshadow [email protected]:/root
[root@pc207 ~]# scp -r /etc/skel [email protected]:/tmp
虚拟机A
[root@svr7 ~]# ls /usr
[root@svr7 ~]# ls /root
[root@svr7 ~]# ls /tmp

案例9:虚拟机B:远程无密码验证
1.实现虚拟机B远程管理虚拟机A,无需密码验证
1.生成公钥 私钥
[root@pc207 ~]# ssh-keygen #一路回车
[root@pc207 ~]# ls /root/.ssh/

2.传递公钥 到虚拟机A
[root@pc207 ~]# ssh-copy-id [email protected]

3.虚拟机A:查看
[root@svr7 ~]# ls /root/.ssh/

4.虚拟机B:测试无密码
[root@pc207 ~]# ssh [email protected]

####################################################################
二、日志管理

日志消息的优先级
•Linux内核定义的事件紧急程度
–分为 0~7 共8种优先级别
–其数值越小,表示对应事件越紧急/重要
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等

•提取由 systemd-journal 服务搜集的日志
–主要包括内核/系统日志、服务日志
•常见用法
–journalctl | grep 关键词
–journalctl -u 服务名 [-p 优先级]
–journalctl -n 消息条数

####################################################################
三、系统安全保护
•Security-Enhanced Linux
–美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
–集成到Linux内核(2.6及以上)中运行
–RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具
在这里插入图片描述

•SELinux的运行模式
–enforcing(强制)、permissive(宽松)
–disabled(彻底禁用)
任何模式切换到disabled(彻底禁用)模式,都经历重启系统

•切换运行模式
–临时切换:setenforce 1或0
–固定配置:/etc/selinux/config 文件

虚拟机A:
[root@A ~]# getenforce #查看当前运行的模式
[root@A ~]# setenforce 0 #临时修改SELinux的运行模式
[root@A ~]# getenforce

[root@A ~]# vim /etc/selinux/config #永久修改,下一次开机生效
SELINUX=permissive

虚拟机B:
[root@B ~]# getenforce
[root@B ~]# setenforce 0
[root@B ~]# getenforce

[root@B ~]# vim /etc/selinux/config
SELINUX=permissive

####################################################################
四、系统故障修复

重设root用户密码
•解决思路
–1)重启系统,进入recovery恢复模式
在这里插入图片描述
–按e键,找到linux16行,末尾添加 rd.break console=tty0
在这里插入图片描述
–按 ctrl + x 启动
–2)以可写方式重新挂载/,并切换到此环境
–switch_root# chroot /sysroot #切换环境
–switch_root# mount -o remount,rw /
–3)将root用户的密码设置为 redhat
–# echo redhat | passwd --stdin root
–4)重设SELinux安全标签(让SELinux失忆)
–# touch /.autorelabel
–5)先后执行 reboot 完成修复
–# reboot -f #强制重启

系统文件损坏故障

1.如果/etc/fstab内容写错,开机会出现此页面,输入root的密码
在这里插入图片描述

获得命令行,修改/etc/fstab内容

####################################################################
五、防火墙策略管理,环境准备

虚拟机A:构建Web服务
Web服务:提供一个网页内容
http:超文本传输协议
构建Web服务器:httpd nginx tomcat

daemon
英 [ˈdiːmən] 美 [ˈdiːmən]
n.(古希腊神话中的)半神半人精灵,守护进程
虚拟机A:
1.安装httpd软件
[root@A ~]# yum -y install httpd
[root@A ~]# rpm -q httpd
2.重启httpd服务
[root@A /]# systemctl restart httpd #重启httpd服务
[root@A /]# systemctl enable httpd #设置服务开机自启动
3.书写网页文件
httpd软件专门存放网页文件的路径:/var/www/html
网页文件的名称:index.html
[root@A /]# echo ‘hahaxixihehelele’ > /var/www/html/index.html
[root@A /]# cat /var/www/html/index.html
4.本机测试
[root@A /]# curl 192.168.4.7 #命令行浏览器测试访问
hahaxixihehelele

虚拟机A:构建FTP服务
FTP服务:数据传输
FTP协议:文件传输协议
1.安装vsftpd软件包
[root@A /]# yum -y install vsftpd
2.重启服务
[root@A /]# systemctl restart vsftpd
[root@A /]# systemctl enable vsftpd
[root@A /]# systemctl status vsftpd #查看服务状态
Active: active (running)

默认共享数据的路径: /var/ftp/

3.测试FTP访问
[root@A /]# curl ftp://192.168.4.7
drwxr-xr-x 2 0 0 6 Aug 03 2017 pub

####################################################################
六、防火墙策略管理
作用:隔离 过滤 严格过滤入站,放行出站

硬件防火墙
软件防火墙
Linux中软件防火墙:firewalld

虚拟机A:确认防火墙软件的安装
[root@A ~]# rpm -q firewalld
firewalld-0.4.4.4-14.el7.noarch
[root@A ~]# systemctl restart firewalld #重启服务
[root@A ~]# systemctl status firewalld #查看服务状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running)
[root@A ~]# systemctl enable firewalld #设置开机自启动

管理规则:
[root@A ~]# firewall-cmd #命令管理规则的工具
[root@A ~]# firewall-config #图形管理规则的工具

防火墙常见的区域
public:公共区域,仅允许 ssh dhcp ping,其他均拒绝
trusted: 信任区域,允许所有访问
block:拒绝区域,拒绝所有访问,明确回应客户端
drop:丢弃区域,丢弃所以访问,不给任何回应直接丢弃

数据包: 源IP地址 目标IP地址 数据
防火墙判定客户端请求进入区域的原则:查看客户端请求的数据包中源IP地址
1.查看数据包中来源IP地址,检测自己所有区域中规则,那个区域的规则有该源IP地址的规则,则进入该区域
2.进入默认区域(默认情况下为public)

修改虚拟机A的默认区域
虚拟机A:
[root@A ~]# firewall-cmd --get-default-zone #查看防火墙默认的区域
虚拟机B测试:
[root@B ~]# ping 192.168.4.7 #可以通行
[root@B ~]# curl 192.168.4.7 #失败

虚拟机A:
[root@A ~]# firewall-cmd --set-default-zone=trusted #修改防火墙默认的区域
[root@A ~]# firewall-cmd --get-default-zone #查看防火墙默认的区域
虚拟机B测试:
[root@B ~]# ping 192.168.4.7 #可以通行
[root@B ~]# curl 192.168.4.7 #成功

虚拟机A:
[root@A ~]# firewall-cmd --set-default-zone=block #修改防火墙默认的区域
[root@A ~]# firewall-cmd --get-default-zone
虚拟机B测试:
[root@B ~]# ping 192.168.4.7 #失败
[root@B ~]# curl 192.168.4.7 #失败

修改虚拟机A的防火墙,单独拒绝虚拟机B的所有访问,允许其他机器进行访问
虚拟机A:
[root@A ~]# firewall-cmd --zone=block --add-source=192.168.4.207 #在block区域中添加源IP地址规则
[root@A ~]# firewall-cmd --zone=block --list-all #显示block区域中规则

[root@A ~]# firewall-cmd --set-default-zone=trusted #修改默认区域为trusted

虚拟机B:测试
[root@B ~]# curl 192.168.4.7 #失败
[root@B ~]# curl ftp://192.168.4.7 #失败
[root@B ~]# ping 192.168.4.7 #失败

真机:测试
浏览器 进行访问 192.168.4.7 #成功
浏览器 进行访问 ftp://192.168.4.7 #成功

在public区域中添加规则:
虚拟机A进行删除
[root@A ~]# firewall-cmd --zone=block --remove-source=192.168.4.207 #删除源IP地址规则
[root@A ~]# firewall-cmd --zone=block --list-all

[root@A ~]# firewall-cmd --zone=public --list-all
[root@A ~]# firewall-cmd --set-default-zone=public

防火墙识别的是协议
[root@A ~]# firewall-cmd --set-default-zone=public #修改默认区域
[root@A ~]# firewall-cmd --zone=public --add-service=http #添加允许的协议
[root@A ~]# firewall-cmd --zone=public --add-service=ftp #添加允许的协议
[root@A ~]# firewall-cmd --zone=public --list-all #查看public区域中的规则

虚拟机B:测试
[root@B ~]# curl 192.168.4.7 #成功
[root@B ~]# curl ftp://192.168.4.7 #成功
[root@B ~]# ping 192.168.4.7 #成功

默认区域的修改为永久修改,区域添加规则为临时设置

实现区域添加规则为永久设置:–permanent
[root@A ~]# firewall-cmd --reload #重新加载防火墙有效配置
[root@A ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@A ~]# firewall-cmd --permanent --zone=public --add-service=ftp
[root@A ~]# firewall-cmd --zone=public --list-all
[root@A ~]# firewall-cmd --reload #重新加载防火墙有效配置
[root@A ~]# firewall-cmd --zone=public --list-all
##############################################################################
课后习题:
案例1:设置SELinux保护
为虚拟机A、虚拟机B配置SELinux
1)确保 SELinux 处于宽松模式(permissive)
2)在每次重新开机后,此设置必须仍然有效

案例2:虚拟机A操作,添加一块新的硬盘 上按以下要求建立分区:
采用默认的 MBR分区模式
– 第1个分区的大小为 3G
– 第2个分区的大小为 1G
– 第3个分区 的大小为 1G
– 第4个分区 为扩展分区
– 在划分三个分区逻辑分区,
– 分区大小依次为600M、800M、1G

案例3:实现虚拟机A 的Web服务
1)利用httpd软件搭建Web服务,页面显示内容为 小蝌蚪找妈妈

案例4:实现虚拟机A 的防火墙配置
1)修改虚拟机A防火墙配置,明确拒绝所有客户端访问(提示:默认区域修改为block)
2)在虚拟机B上测试能否访问虚拟机A 的Web服务
3)在虚拟机B上测试能否 ping通虚拟机A

案例5:实现虚拟机A的防火墙配置
1)修改虚拟机A防火墙配置,将默认区域修改为public
2)在虚拟机B上测试能否访问虚拟机A的Web服务
3)在虚拟机B上测试能否 ping通虚拟机A

案例6:实现虚拟机A 的防火墙配置
1)修改虚拟机A防火墙配置,将默认区域修改为public
2)修改虚拟机A防火墙配置,在public区域中添加http协议,实现永久配置
3)在虚拟机B上测试能否访问虚拟机A的Web服务

发布了0 篇原创文章 · 获赞 0 · 访问量 108

猜你喜欢

转载自blog.csdn.net/hufei_/article/details/105025484