云计算运维学习day6--Linux的系统管理

发布时间:2026/7/26 7:29:16
云计算运维学习day6--Linux的系统管理 目录一.系统引导1.1基本概念1.2 GRUB 文件损坏引起的Linux系统无法启动1.2.1模拟GRUB文件损坏情况1.2.2修复步骤1.3 /boot目录损坏Linux无法启动1.3.1 模拟/boot目录损坏情况1.3.2修复步骤二、系统管理器systemd2.1基本概念2.2管理systemctl单元systemctl2.3查看服务状态2.4启用和关闭服务2.5开机自启服务2.6屏蔽服务2.7单元文件三.防火墙3.1 基本概念3.2iptables防火墙3.2.1基本原理3.2.2基本概念3.2.3iptables使用前提3.2.4iptables 格式及参数3.2.5查看和清空规则3.2.6 添加和删除规则3.2.7通用匹配规则3.2.8端口规则匹配3.2.9IP规则匹配3.2.10修改规则3.2.11扩展端口规则3.3firewalld防火墙3.3.1基本概念3.3.2firewalld格式与参数3.3.3前提条件3.3.4firewalld的具体使用四.APACHE服务4.1基本概念4.2安装并启用4.3服务主配置文件4.4主机访问控制4.5Apache虚拟主机4.5.1基本概念4.5.2实现步骤五.增强型LinuxSELinux5.1基本概念5.2SELinux的操作指令5.3管理SELinux Context一.系统引导1.1基本概念1.作用指Linux系统从电源开启到进入完整系统的全过程。2.核心GRUB找到内核内核挂载根文件系统系统systemd管理后续的服务启动。3.五大阶段BIOS/UEFI 自检 → GRUB 加载内核 → 内核初始化 → systemd 启动服务 → 用户登录BIOS/UEFI 自检硬件自检与启动介质定位确定硬件正常工作并找到装有引导程序的设备。GRUB 加载内核加载内核与初始化内存盘找到Linux内核和临时文件系统将他们加载到内核当中为内核初始化做准备内核初始化接管硬件并挂载根文件系统完成硬件的核心初始化并且使用临时文件系统的驱动将他们挂载到跟文件系统中systemd启动服务系统的第一个进程PID 1并行启动所有必要的系统服务如网络、日志、SSH 等将系统引导至可用状态用户登录用户输入账号密码登录Linux系统内核初始化到启动服务的过程/sbin/init - /lib/systemd/systemd - /usr/lib/systemd/system系统启动目录/boot:Linux 系统的“启动分区”包含了启动过程中最核心的静态文件/boot/grub2/grub.cfgGRUB 2 的配置文件定义了启动菜单、内核参数和启动项1.2 GRUB 文件损坏引起的Linux系统无法启动1.2.1模拟GRUB文件损坏情况1.修改grub,conf文件名模拟文件不存在或损坏情况cd /boot/grub2 #cd到启动目录下 ls mv grub.cfg grub.cfg.back #破坏grub.conf文件2.重启虚拟机Linux系统进入grub模式出现以下情况表示启动文件被破坏reboot1.2.2修复步骤1.手动指定/boot分区的位置set roothd0,msdos12.手动指定内核文件和根文件系统位置加载 Linux 内核并传递启动参数linux16 /vmlinux-3.10.0-1160.e17.x86_64 root/dev/mapper/centos-root3.初始内存文件系统initrd16 /initramfs-3.10.0-1160.el7.x86_64.img4. 重启Linux系统即可正常进入reboot1.3 /boot目录损坏Linux无法启动1.3.1 模拟/boot目录损坏情况1.删除/boot目录rm -rf /boot/~2.重启系统会进入救援模式reboot1.3.2修复步骤1.点击虚拟机的发送键接着快速点入虚拟机按 fn f12进入BIOS配置界面2.移动光标到Boot选项选定CD光盘驱动按住 shift 和 “”键调到最上面用光盘驱动来引导系统驱动注意虚拟机上须有光盘.iso文件3.移动到Exit选项保存设置并退出界面4.进入故障排除菜单接着进入救援模式5.输入1继续启动6.按回车键进入精简shell环境7.重启环境配置进入到系统的root根目录下chroot /mnt/sysimg8.开启网络服务nmcli c up ens32 #这里注意你的网络类型 vim /etc/resolv.conf #编辑DNS配置界面 #添加以下内容 nameserver 192.168.7.2 #你当前虚拟机所在网路的网关 ip a #观察是否成功启动网络9.重装Linux内核将GRUB系统引导文件安装到/dev/sda硬盘下yum reinstall -y kernel #重装Linux内核 grub2-install /dev/sda #将GRUB安装到硬盘MBR ls /boot/grub2 #查看GRUB是否安装成功10.输入两次exit退出exit exit11.重新进入BOOT配置界面将光盘驱动调到硬盘下面接着保存退出即可修复二、系统管理器systemd2.1基本概念1.作用一个初始化系统用于引导用户空间并管理用户进程2.特点1. 具备并行化能力2.按需启动守护进程3.使用Linux控制组跟踪进程4.维护和自动挂载点5.实现基于依赖的服务控制关系6.在调程序时每个切片都获得相同的CPU时间2.2管理systemctl单元systemctl1.查询所有单元的状态验证系统启动情况systemctl [--all]2.仅查询服务单元状态systemctl --typeservice3.查询服务的启用状态和开机自启状态systemctl is-active 服务名 #检查这个服务是否启用 systemctl is-enabled 服务名 #检查这个服务是否开机自启4.查看所有单元的启用和禁用设置systemctl list-unit-files [--typeservice] #没有选服务即查询所有服务2.3查看服务状态作用查看服务的状态和日志systemctl status 服务名loaded: 单元配置文件已处理active (running): 运行一个或多个持续进程active (exited): 成功完成一次性配置active (waiting): 正在运行但等待某个事件inactive: 未运行enabled: 将在开机时启动disabled: 不会在开机时启动2.4启用和关闭服务作用打开,关闭或者重启服务systemctl start 服务名 #开启服务 systemctl stop 服务名 #关闭服务 systemctl restart 服务名 #重启服务 systemctl reload 服务名 #重载服务不必关闭服务就可修改服务配置2.5开机自启服务systemctl enable [--now] 服务名 #启动开机自启服务加now表示立即启用服务 systemctl disable [--now] 服务名 #关闭开机自启服务2.6屏蔽服务作用屏蔽一些可能存在冲突的服务确保服务正常运行。屏蔽服务与禁用服务的区别屏蔽服务既不能手动启动也不能自动启动。禁用服务不会在启动时或由其他单元文件自动启动但可以手动启动。systemctl mask 服务名 systemctl unmask 服务名 #关闭屏蔽设置2.7单元文件维护者文件/usr/lib/systemd/system/管理员文件/etc/systemd/system/非持久化日志保存地址/run/systemd/优先级/etc 下的单元文件将优先于 /usr 下的单元文件。三.防火墙3.1 基本概念1.作用负责监控和控制进出网络,阻止外部网络访问系统保护系统2.分类iptables 和 firewalldiptables:底层、直接、静态的内核包过滤工具直接操作内核的 Netfilter 框架。firewalld:是 iptables 的上层、动态、服务化的工具便于配对防火墙相同本质上都是对系统内核netfilter进行操作他才是防火墙的核心iptables和firewalld都是它的客户端代理不同iptables 在 /etc/sysconfig/iptables 中储存配置底层操作繁琐firewalld 将配置储存在 /usr/lib/firewalld/ 和/etc/firewalld/ 中的各种 XML 文件里上游操作简单3.客户端到服务端系统的过程:clicent -iptables - tcpwarap -server -filesystem -selinux3.2iptables防火墙3.2.1基本原理1.作用通过iptables提供管理、修改、删除或者插入规则用户和内核交互的工具就是iptables。它只是一个客户端代理核心是对netfilter进行操作2.工作原理分类raw mangle nat filter 四个表主机防火墙主要是用来防范单台主机的进出报文-----filter表 INPUT链网络防火墙: 能够实现对进出本网络的所有主机报文加以防护----nat表raw表用于对数据包进行连接跟踪前的处理。mangle表用于修改数据包的IP头或其他信息。不用nat表用于网络地址转换如源地址转换和目标地址转换。filter表用于执行包过滤是最常用的表决定数据包是否被接受、丢弃或拒绝。3.iptables的缺点1防火墙虽然可以过滤互联网的数据包但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时 防火墙没有作用。2电脑本身的操作系统亦可能因一些系统漏洞使入侵者可以利用这些漏洞绕过防火墙过滤从而入侵电 脑。3防火墙无法有效阻挡病毒攻击尤其是隐藏在数据中的病毒。4.iptables的工作流程1. 防火墙是一层层过滤的。按照配置规则的顺序从上到下从前到后进行过滤的。此时第一条规则匹配成功。则不会继续匹配。2. 如果匹配上了规则即明确表明是阻止还是通过此时数据包就不在向下匹配新规则了。匹配到即停止继续匹配。3. 如果所有规则中没有明确表明是阻止还是通过这个数据包也就是没有匹配上规则向下进行匹配直到匹配默认规则得到明确的阻止还是通过。4. 防火墙的默认规则是对应链的所有的规则执行完以后才会执行的。3.2.2基本概念1四个阶段1.iptablesLinux 内核中处理数据包过滤的网络框架是整个防火墙的“地基”。2.tables:按照不同的功能如过滤、NAT、修改数据包进行划分的规则集容器。3.chains:在数据包处理流程中不同阶段的钩子点用于挂载具体的规则。4.policy:实际执行的匹配条件和动作是防火墙的最小执行单元。如下比喻iptablestableschainspolicy小区小区里的房子房子里的衣柜衣柜里衣服的拜访规则2四个表1.raw表设置数据包的连接跟踪标志通常用于在连接跟踪生效前对数据包进行处理。2.manager表修改数据包的某些字段或标记数据包。3.nat表用于修改数据包的网络地址源地址和目标地址。4.filter表用来判断一个数据包是否可以通过常用5.顺序raw --- mangle ---nat ---filter3五条链1.input链处理进入本机的流量决定了哪些数据包可以进入本机哪些应该被拒绝或丢弃2.output链处理从本机发出的流量控制本机如何向外部网络发送流量3.forward链处理经过本机转发的流量控制流量是否可以从一个接口转发到另一个接口4.prerouting链处理进入本机的数据包将外部的请求转发到内网的某个特定设备5.postrouting链处理从本机发出的数据包将内网设备的源IP地址修改为路由器的公共IP地址6.工作顺序1.PREROUTING首先处理进入本机的数据包用于目标地址转换DNAT。2.INPUT如果数据包的目标是本机数据包会进入INPUT链决定是否允许本机接受该数据包。3.FORWARD如果数据包不属于本机即目标是其他网络数据包会进入FORWARD链决定是否允许转发。4.POSTROUTING在数据包离开本机之前源地址转换SNAT会在此链中进行。5.OUTPUT如果数据包是从本机发出的数据包会经过OUTPUT链决定是否允许本机向外发送该数据包。4四表五链在这四个表中分别存放着不同数量的链1.raw表PREROUTING、OUTPUT用于数据包跟踪内核模块iptables_raw2.managle表PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING用于路由标记。内核模块iptables_mangle3.nat表PREROUTING、INPUTOUTPUT、POSTROUTING用于转换地址保护内网内核模块叫iptable_nat4.filter表INPUT、FORWARD、OUTPUT用于根据规则来处理数据包内核模块iptable_filter3.2.3iptables使用前提安装iptabales并禁用防火墙和selinux查看规则配置文件yum install -y iptables-service #安装服务 systemctl disable --now firewalld #关闭firewalld服务与iptables不兼容 setenforce 0 #关闭selinux systemctl start iptables #启动服务 systemctl status iptables #查看服务状态 rpm -ql iptables | grep iptables #记录规则配置文件/usr/sbin/iptables3.2.4iptables 格式及参数iptables 动作 -[参数]参数-L : 列出一个链或所有链中的规则信息-n 以数字形式显示地址、端口等信息-v 以更详细的方式显示规则信息--line-numbers 查看规则时显示规则的序号通过需要删除规则-D INPUT 1-F 清空所有的规则-X是清理自定义的链用的少-Z清零规则序号-D 指定序号 删除链内指定序号或内容的一条规则-P 为指定的链设置默认规则-A 在链的末尾追加一条规则-I 指定序号 在链的开头或指定序号插入一条规则-t: 指定表名默认为filter表-j控制类型 通过前面匹配到之后是丢弃还是保留数据包的处理方式:ACCEPT允许REJECT拒绝DROP丢弃不会给用户返回任何的拒绝消息不推荐使用。动作添规则还是删除规则-p匹配条件数据包特征ip端口等如果不写-t 默认使用filter表3.2.5查看和清空规则1.列出指定表名的规则iptables -t 指定表名 -L #查看指定表名的规2.列出所有链中的规则iptables -L3.以数字形式显示所有链中的ip端口和控制类型iptables -nL3.2.6 添加和删除规则1.最后一行添加规则iptables -t 表名 -A 链名 -p 协议 -j 类型2.指定表名链里的第几行添加规则默认为第一行iptables -I 链名 数字 -p 协议 -j 类型 -t 表名3.删除指定表名的指定链表里的第几行规则iptables -t 表名 -D 链名 数字3.2.7保存规则和刷新规则1.保存规则将临时规则写进防火墙文件iptables-save etc/sysconfig/iptables2.刷新规则清空当前iptables设置的所有规则iptables -F3.2.7通用匹配规则通用可以独立使用Iptables只能匹配四层及四层一下的协议-p 协议tcp---用的最多udpicmp---ping的时候用的协议1.禁止所有主机ping自己自己也不行iptables -A INPUT -p icmp -j REJECT2.丢弃所有主机发来的包iptables -I INPUT -p icmp -j DROP3.2.8端口规则匹配禁止主机通过指定端口号访问端口--sport --源端口--dport --目标端口拒绝192 .168 .246 .201这台机器通过22端口到80端口的访问包括22和80端口在内iptables -I INPUT -s 192.168.7.135 -p tcp --dport 22:80外机端口 -j REJECT3.2.9IP规则匹配禁止源192 .168 .246 .201主机ping进来iptables -I INPUT -s 192.168.7.135外机IP -p icmp -j REJEC3.2.10修改规则允许外机使用原先禁止的80端口访问主机iptables -R INPUT 1 -s 192.168.7.135外机IP -p tcp --dport 80外机端口 -j ACCEPT3.2.11扩展端口规则显示匹配如端口匹配IP范围MAC地址等特殊匹配指定ip范围:语法-miprange--src-range指定多端口范围一次拒绝多个指定端口语法-mmultiport--sports#源端口-mmultiport--dports#目的端口1.拒绝指定范围的主机IP访问iptables -I INPUT -p tcp --dport 80 -m iprange --src-range 192.168.7.199-192.168.7.206 -j REJECT2.指定多端口范围一次拒绝多个指定端口iptables -A INPUT -p tcp -m multiport --dports 22,80 -s 192.168.7.135 -j REJECT3.拒绝指定网卡的访问这个指令会断掉SSH远程连接iptables -I INPUT -i ens32指定网卡 -j DROP3.3firewalld防火墙3.3.1基本概念1.作用提供了一个动态管理的防火墙, 用以支持网络 “ zones” , 以分配对一个网络及其相关链接和界面一定程度的信任。2.区域划分Firewalld将网卡对应到不同的区域zone通过不同的zone定义了不同的安全等级trusted :允许所有流量通过home/internal仅允许ssh数据通过work仅允许ssh , ipp-client dhcpv6-client 数据通过public默认区域仅允许ssh , dhcpv6-client数据通过external仅允许ssh数据通过通过该区域的数据将会伪装SNAT / DNATdmz仅允许ssh数据通过block任何传入的网络数据包都将被阻止。拒绝所有流量drop丢弃所有流量没有返回回应消息3.3.2firewalld格式与参数firewall-cmd -[参数]参数--permanent 永久生效的配置参数、资源、端口以及服务等信息1.域zone相关的命令--get-default-zone 查询默认的区域名称--set-default-zone区域名称 设置默认的区域--get-active-zones 显示当前正在使用的区域与网卡名称--get-zones 显示总共可用的区域2.services管理的命令--add-service服务名 --zone区域 设置指定区域允许该服务的流量--remove-service服务名 --zone区域 设置指定区域不再允许该服务的流量3.Port相关命令--add-port端口号/协议 --zone区域 设置指定区域允许该端口的流量--remove-port端口号/协议 --zone区域 设置指定区域不再允许该端口的流量4.查看所有规则的命令--list-all --zone区域 显示指定区域的网卡配置参数、资源、端口以及服务等信息--reload 让“永久生效”的配置规则立即生效并覆盖当前的配置规则3.3.3前提条件关闭iptables服务开启firewalld服务systemctl stop iptables systemctl start firewalld3.3.4firewalld的具体使用1.查看和设定指定区域firewall-cmd --get-default-zone #查看当前的防火墙区域 firewall-cmd --set-default-zone区域 #设定成指定区域2.向指定区域添加或删除服务firewall-cmd --permanent --add-service服务名 --zone区域 #向指定区域添加指定服务重载 firewall-cmd --permanent --zone区域 --remove-service服务名 #移除指定区域内的服务向public区域添加http服务从public区域移除http服务3.向pubic区域添加服务以添加端口的方式firewall-cmd --permanent --add-port端口号/网络协议 --zone区域 #向区域添加指定服务 firewall-cmd --permanent --remove-port端口号/网络协议 --zone区域 #向区域移除指定服务向public区域添加80端口移除public区域80端口四.APACHE服务4.1基本概念1.作用Apache软件基金会的一个开放源码的网页服务器快速、可靠并且可通过简单的API扩展将Perl/Python等解释器编译到服务器中。2.端口号80默认可修改3.默认发布页/var/www/html,在浏览器中输入本机IP可以看到默认发布文件内容4.2安装并启用1.安装软件yum install httpd httpd-manual -y2.启用并设置开机自启systemctl enable --now httpd #以下是加入防火墙的步骤也可以直接禁用防火墙 #firewall-cmd --permanent --add-servicehttp #firewall-cmd --reload4.3服务主配置文件1.文件路径/etc/httpd/conf/httpd.conf2.文件内容4.4主机访问控制1.作用2.编辑 /etc/httpd/conf/httpd.conf重启服务vim /etc/httpd/conf/htppd.conf #添加以下内容 systemctl restart httpd2.创建用户密码文件,用于用户认证htpasswd -cm /etc/httpd/conf/htpasswd admin-c创建一个加密文件-m默认采用MD5算法对密码进行加密-D删除指定的用户 如果密码文件已经存在不要加-c参数不然会覆盖源文件3.编辑配置文件配置用户认证vim /etc/httpd/conf/httpd #编辑文件修改之前的主机配置添加以下信息 systemctl restart httpd4.测试这里的hello是/var/www/html目录下的index.html内容echo hello /var/www/html/index.html curl http://192.168.7.135/admin/ -u admin:123456 #-u:用户密码4.5Apache虚拟主机4.5.1基本概念1.作用在一个Apache服务器上可以配置多个虚拟主机实现一个服务器提供多站点服务访问同一个服务器上的不同目录。2.共有三种配置方法基于IP配置基于域名配置基于端口配置4.5.2实现步骤1.定义一个默认发布点的虚拟机防止/var/www/html目录下的网页失效可选vim /etc/httpd/conf.d/default.conf #后面的文件名可以自拟格式为文件名.conf添加以下内容2.创建一个新的虚拟机在当前目录下创建一个.conf文件添加虚拟主机的配置信息目录为本机下的/www/www.linux.orgvim /etc/httpd/conf.d/vhost.conf #同上,文件名可以自拟添加以下内容3.创建用户认证并修改文件上的需求用户(require user),修改成你创建的用户名htpasswd -cm /etc/httpd/conf/htpasswd admin #最后面一句表示你要创建的用户名接着回车输入你的密码 vim /etc/httpd/conf.d/vhost.conf #编辑这个文件将你的用户名添加或更改上去 systemctl restart htppd #重启服务4.创建用户目录以你添加的虚拟主机定义的目录为准也可以修改虚拟主机上的目录mkdir -p /www/www.linux.org touch /www/www.linux.org/index.html #在该目录下创建一个index.html文件用于测试 echo www.linux.org /www/www.linux.org/index.html #加一段文字用于测试5.编辑客户端的域名解析文件将www.linux.org域名加入到服务端的IP解析后面vim /etc/hosts6.在客户端上访问服务端的www.linux.org目录观察是否有信息输出curl http://www.linux.org/ -u admin:123456 #-u后面改成之前你定义的用户和密码五.增强型LinuxSELinux5.1基本概念1.作用控制服务安全是在进行程序、文件等细部权限设置依据的一个核心模块最大限度地减小系统中服务进程可访问的资源。2.DAC与MACDAC自主访问控制它的主体是用户在没有使用 SELinux 的操作系统中决定一个资源是否能被访问的因素是某个资源是否拥有对应用户的权限读、写、执行。而root 用户不受任何管制系统上任何资源都可以无限制地访问。MAC强制访问控制它的主体是进程在使用了 SELinux 的操作系统中决定一个资源是否能被访问的因素除了上述因素之外还需要判断每一类进程是否拥有对某一类资源的访问权限。即使是以 root 身份运行的服务进程一般也只能访问到它所需要的资源5.2SELinux的操作指令1.查看当前系统的selinux状态getenforece #查看当前的selinux状态selinux的三种启动状态Enforcing强制模式SELinux完全启用所有违反策略的操作都会被阻止并记录日志Permissive宽容模式SELinux启用但不阻止违规操作只记录警告日志Disable禁用模式SELinux完全关闭不执行任何安全策略2.更改当前系统的selinux状态注意这里无法调整成禁用模式setenforce 1 # 切换到强制模式 setenforce 0 # 切换到宽容模式3.设置linux系统开机时selinux的状态vim /etc/sysconfig/selinux #编辑selinux的系统文件 reboot #设置完成后必须重启系统才能生效5.3管理SELinux Context1.查看当前文件的安全上下文ls -Z 文件名注意执行此命令时SElinux必须打开如果是disabled则会看到问号SELinux 的访问控制规则本质上是定义 “某个域domain” 对 “某个类型type” 是否拥有 “某种权限如读、写、执行”。安全上下文主要分为三个字段 Identify : role : type 身份识别 : 角色 : 类型身份识别(Identify)主要的身份识别常见有下面几种常见的类型:unconfined_u: 不受限的用户,该文件来自于不受限的程序所产生的。基本是bash环境自己的文件。system_u: 系统用户,大部分就是系统自己产生的文件。角色了解这个数据是属于程序、文件资源还是代表使用者。object_r代表的是文件或目录等文件资源system_r代表的是程序不过一般使用者也会被指定成为system_r。类型(Type) 一个主体程序能不能读取到这个文件资源与类型字段有关。主体进程 有一个 域Domain进程的类型。客体文件、目录、端口、网络接口等 有一个 类型Type。解释system_u:object_r:admin_home_t:s0其中system_u表示系统用户object_r 表示文件客体admin_home_t表示该文件属于管理员家目录类型,s0是默认的 MLS 安全级别。2.查看所有系统文件和服务的安全上下文semanage fcontext -l3.永久更改semanage fcontext -a -t selinux的安全上下文类型 文件名绝对路径 #为指定文件添加一条新的规则 restorecon -vvFR 文件名 #刷新上下文将/root/1.txt的SELinux类型从admin_home_t修改为http_sys_content_t