当前位置: 首页 > news >正文

云计算学习笔记——日志、SELinux、FTP、systemd篇

《云计算学习日记Day15》—— 从零开始的云计算之旅
今天是系统学习云计算的第十五天,记录了关于我的云计算学习,后续将每日更新我的笔记。欢迎大家一起来学习,如果内容有遗漏和错误,还请大家多多指正和包涵,谢谢大家

因为前一节我们已经掌握了远程控制ssh的使用,所以之后我选择用windows的WindTerm来远程管理这些虚拟机,更加方便一些

关于远程管理,还可以补充一些内容:

1.tmux防止远程管理中断

简单描述一下,当我们在进行远程管理的时候,可能会因为突发情况(服务器停摆等)与远程主机断开连接,这样会导致我们正在进行的任务中断,进而造成任务失败、内存损失等。但是我们使用tmux可以保证我们意外断开连接时,当前任务继续完成

首先安装amux:yum -y install tmux

然后直接运行:

命令:tmux #进入tmux会话

2.tmux多窗口(多会话)

命令:tmux list-sessions #列出已有会话

命令:tmux kill-server #杀死所有会话

日志管理

日志概述

日志的功能

  • 系统和程序的日记本
    • 记录系统、程序运行中发生的各种事件
    • 通过查看日志,了解及排除故障
    • 信息安全控制的“依据”

内核及系统日志

  • 由系统服务rsyslog统一记录/管理
    • 日志消息采用文本格式
    • 主要记录时间发生的时间、主机、进程、内容
  • 常见的日志文件
日志文件主要用途
/var/log/messages记录内核消息、各种服务的公共消息
/var/log/cron记录与cron计划任务相关的消息
/var/log/maillog记录邮件收发相关的消息
/var/log/secure记录与访问限制相关的安全消息

用户日志

  • 由登录程序负责记录/管理
    • 日志消息采用二进制格式
    • 记录登录用户的时间来源、执行的命令等信息
日志文件主要用途
/var/log/lastlog记录最近的用户登录事件
/var/log/wtmp记录成功的用户登录/注销事件
/var/log/btmp记录失败的用户登录事件

日志分析

查看文本日志消息

  • 通用分析工具
    • tail、tailf、less、grep等文本浏览/检索命令
    • awk、sed等格式化过滤工具
  • 专用工具分析
    • ELK日志分析平台
    • Elasticesearch、k'iba'na等日志统计套件

用户登录分析

  • users、who、w命令
    • 查看已登录的用户信息,详细度不同
  • last、lastb命令
    • 查看最近登录成功/失败的用户信息

日志消息的优先级

  • Linux内核定义的事件紧急程度

    • 分为0~7,共八个优先级别
    • 其数值越小,表示对应事件越紧急、越重要

EMERG告急会导致主机系统不可用的情况
ALERT警告必须马上采取措施解决问题
CRIT严重比较严重的情况
ERR错误运行出现错误
WARNING提醒可能会影响系统功能的事件
NOTICE注意不会影响系统,但是值得注意
INFO信息一般信息
DEBUG调试程序或系统调试信息等

使用journalctl工具

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

SELinux

SELinux安全机制

SELInux概述

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

SELinux运行模式的切换

  • SELinux的运行模式
    • enforcing:强制模式
    • permissive:宽松模式
    • disabled:彻底禁用
  • 切换运行模式:
    • 临时切换:setenforce 1 | 0
    • 查看当前模式:getenforce
    • 固定配置:/etc/selinux/config文件

#查看现在的selinux运行模式
[root@test1 ~]# getenforce 
Enforcing
[root@test1 ~]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]#进行临时修改
[root@test1 ~]# setenforce 0
[root@test1 ~]# getenforce 
Permissive

那么有人会问:配置文件里面怎么改?

#首先查找配置文件里面的SELINUX
#找到的下面的第四条SELINUX=ecforcing就是配置信息
#要是想要改为宽松模式,只需要把enforcing改为permissive,然后重启即可
#要是想要改为彻底禁用,只需要把enforcing改为disabled,然后重启即可
[root@test1 ~]# grep SELINUX /etc/selinux/config 
# SELINUX= can take one of these three values:
# NOTE: Up to RHEL 8 release included, 
SELINUX=disabled would also
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
SELINUXTYPE=targeted

系统故障修复

故障排除

忘记root密码

解决思路

  • 第一步:重启系统,进入救援模式
    • 开机的时候按e键,进入页面后,将linux开头的那一行中的ro修改为rw(read only→read wirte)
    • 还是在这一行,在最末尾的地方,添加rd.break
    • 按快捷键ctrl + x启动,会看到switch_root:/#
  • 第二步:切换到此环境
    • switch_root:/# chroot /sysroot
  • 第三步:将管理员root的密码进行重设
  • 第四步:重设SELinux安全标签
    • touch /.autorelabel #让SELinux失忆,或者修改SELinux模式,但是只能采取一种方式
  • 第五步:前后执行reboot完成修复
    • reboot -f #强制重新启动

系统文件损坏故障

主要问题:开机自动挂载配置文件书写错误

解决思路:引导进入修复模式,然后进行修复

构建FTP服务

FTP介绍

基本信息

  • FTP服务器:数据传输
  • FTP协议:文件传输协议
  • 实现FTP服务的软件:vsftpd
  • FTP默认共享数据的主目录:/var/ftp

安装软件vsftpd

[root@test1 ~]# yum install vsftpd

实现FTP服务

检查软件安装情况

[root@test1 ~]# rpm -q vsftpd 
vsftpd-3.0.5-6.el9.x86_64

修改配置文件

修改vsftpd的配置文件,修改设置为开启无需验证访问功能

[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
[root@test1 ~]# vim /etc/vsftpd/vsftpd.conf 
[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
[root@test1 ~]# 

访问FTP服务

我们使用另一台虚拟机test2来访问test1的FTP服务

但是这里访问失败了,这是为什么呢?这里是因为防火墙firewalld存在的缘故,我们把它卸载掉就可以,当然也可以修改firewalld配置来实现。看下一小节我们就能明白为什么

防火墙策略管理

firewalld服务基础

Linux的防火墙体系

  • 系统服务:firewalld
  • 管理工具(指令):firewalld-cmd、firewalld-config
  • 作用:严格过滤

预设安全区域

  • 根据所在的网络场所区分,预设保护规则集
    • public:仅允许访问本机的sshd、dhcp(自动获取ip)、ping等少数几个服务
    • trusted:允许任何访问
    • block:阻塞任何来访请求
    • drop:丢弃任何来访的数据包
  • 配置规则的位置
    • 运行时:runtime
    • 永久:permanent

防火墙判定原则

1.查看客户端请求中源IP地址,查看自己所有区域中的规则,哪个区域中有该源IP地址规则,则进入该区域

2.进入默认区域(默认情况下为public)

查看防火墙规则列表

列表查看规则

  • firewalld-cmd - -list-all [- -zone=区域名]
  • firewalld-cmd - -list-all-zones
  • firewalld-cmd - -get-zones
  • firewalld-cmd - -get-services
  • firewalld-cmd - -get-dedault-zone

配置防火墙

指定默认的安全区域

  • 使用命令:firewalld-cmd - -set-defaults-zone=区域名
    • 默认为public,限制比较严格
    • 对于开放式环境,建议将默认区域修改为trusted
    • 针对“运行时/永久配置”均有效
[root@test1 ~]# firewall-cmd --get-default-zone 
public
[root@test1 ~]# firewall-cmd --set-default-zone=trusted 
success
[root@test1 ~]# firewall-cmd --get-default-zone 
trusted

书接上文,我们修改了默认安全区域,这下应该可以实现FTP服务了,用test2连接一下test1试一下

[root@test2 ~]# curl <ftp://192.168.99.10>
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

成功连接上了,这里可以看到一个pub,这就是test1共享的内容,上面我们也讲过了,提供FTP服务的默认文件路径是/var/ftp/,我们在test1中修改,再用test2访问查看是否会更新

在test1中:

[root@test1 ~]# ls /var/ftp/
pub
[root@test1 ~]# echo 'Hello World!!' > /var/ftp/hello.txt
[root@test1 ~]# cat /var/ftp/hello.txt
Hello World!!

在test2中:

[root@test2 ~]# curl <ftp://192.168.99.10>
-rw-r--r--    1 0        0              14 Sep 03 11:49 hello.txt
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

我们在test1中创建的hello.txt可以通过FTP服务提供给test2,说明成功

封网段、开服务

  • 若针对“永久配置”,需要添加- -permanent
    • 使用:- -add-source=网段名
    • 使用:- -add-service=服务名

举例

服务管理

systemd介绍

init程序的作用

  • Linux系统和服务管理器
    • 是内核引导之后加载的第一个初始化进程(PID=1)
    • 负责掌控整个Linux的运行/服务资源组合
  • 传统的init程序风格
    • system v:顺序加载,RHEL5系列采用
    • upstart:事件触发,RHEL6系列采用

systemd

  • 一个更高效的系统&服务管理器
    • 开机服务并启动,各系统服务间的精确依赖
    • 服务目录:/lib/systemd/system/
    • 主要管理工具:systemctl
  • 用户→systemctl→systemd→服务启动配置文件→服务程序
  • 服务启动配置文件目录:/lib/systemd/system/

管理系统服务

列出服务

  • 列出活动的系统服务
    • systemctl -t service
  • 列出所有的系统服务(包括不活动的)
    • systemctl -t service - -all

启动/停止/重启/看状态

  • systemctl restart 服务名:重启服务
  • systemctl start 服务名:开启服务
  • systemctl stop 服务名:停止服务
  • systemctl status 服务名:查看服务当前状态
  • systemctl enable 服务名:设置服务开机自启动
  • systemctl disable 服务名:设置服务禁止开机自启动
  • systemctl is-enabled 服务名:查看服务是否开机自启动

管理运行级别

切换级别

1.单用户模式(基本功能的实现,破解Linux密码)····50个服务

2.多用户字符界面(不支持网络)····80个服务

3.多用户字符界面(支持网络)服务器默认运行级别····100个服务

4.未定义····0个服务

5.图形界面····300个服务

6.重启····0个服务····相当于reboot

#当前直接切换到字符模式
systemctl isolate multi-user.target     #相当于init  3#当前直接切换到图形模式
systemctl isolate graphical.target      #相当于init  5

设置默认级别

查看每次开机默认进入的模式

[root@test1 ~]# systemctl get-default 
graphical.target

设置永久策略,每次开机自动进入字符模式

[root@test1 ~]# systemctl set-default multi-user.target 
Removed "/etc/systemd/system/default.target".
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
[root@test1 ~]# systemctl get-default 
multi-user.target

这样就设置成功了,之后我们将一直使用字符模式,一方面为了提高专业能力,一方面减小系统负担


文章转载自:

http://Dp2A4Upj.snzgg.cn
http://7hOUpn36.snzgg.cn
http://G7EYXsqC.snzgg.cn
http://rbyLrZuZ.snzgg.cn
http://UWVIFwYO.snzgg.cn
http://LkA4UeWq.snzgg.cn
http://E9jDe2f4.snzgg.cn
http://Zvgi8Tz0.snzgg.cn
http://SqReYdNS.snzgg.cn
http://tyCecUWv.snzgg.cn
http://lcNsHaZ5.snzgg.cn
http://WHrV4ea7.snzgg.cn
http://VuIsmkqS.snzgg.cn
http://E4dyXZLG.snzgg.cn
http://1dhr67gw.snzgg.cn
http://MQjf3hm6.snzgg.cn
http://kwXW6lHH.snzgg.cn
http://JjYzLAQT.snzgg.cn
http://NSOvyu3k.snzgg.cn
http://ezNmrWcj.snzgg.cn
http://HBvKIwCZ.snzgg.cn
http://I5Zc68o0.snzgg.cn
http://n3EI1SDr.snzgg.cn
http://3RMixXQI.snzgg.cn
http://quF99BV0.snzgg.cn
http://8w17ViJP.snzgg.cn
http://nyN5pqd2.snzgg.cn
http://tQfwaNvH.snzgg.cn
http://iKfNhPaR.snzgg.cn
http://zINrEXFZ.snzgg.cn
http://www.dtcms.com/a/368479.html

相关文章:

  • Spring DI详解--依赖注入的三种方式及优缺点分析
  • 苹果TF签名全称TestFlight签名,需要怎么做才可以上架呢?
  • 小团队如何高效完成 uni-app iOS 上架,从分工到工具组合的实战经验
  • 华为认证HCIA备考知识点 :IP路由基础(含配置案例)
  • AI测试:自动化测试框架、智能缺陷检测、A/B测试优化
  • 从零到上线:直播美颜SDK中人脸美型功能的技术实现与效果优化
  • 大数据毕业设计选题推荐-基于大数据的高级大豆农业数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • 自演化大语言模型的技术背景
  • 3D目标跟踪重磅突破!TrackAny3D实现「类别无关」统一建模,多项SOTA达成!
  • Ubuntu中使用nginx-rtmp-module实现视频点播
  • 一文教您解决win11运行Ubuntu,wsl相关命令出现系统找不到指定文件的错误提示
  • 从零开始:用uv构建并发布一个Python CLI应用,集成CI/CD自动化发布与Docker容器化部署
  • Ubuntu 文件权限管理
  • [相机成像] 彩色相机成像 “灰蒙蒙” 问题排查与解决记录
  • STM32传感器模块编程实践(十六)DIY人脸识别智能垃圾桶模型
  • vscode连接SSH
  • 在VSCode中更新或安装最新版的npx和uv工具
  • 如何选择文件夹然后用vscode直接打开
  • 命令行中如如何打开目录?vscode中如何打开目录
  • 一阶低通滤波器应用示例(演示)
  • 如何选择适合的实验室铸铁地板和铸铁试验平板?专业人士帮助指南
  • centos sshd:xxx.xxx.xxx.xxx:allow 如何设置
  • 如果要获得Ecovadis认证需要费用是多少?
  • SQL Server全链路安全防护
  • C++_数据结构
  • MySQL数据库精研之旅第十六期:深度拆解事务核心(上)
  • solidity函数篇
  • 数据库(基础操作)
  • Python+DRVT 从外部调用 Revit:批量创建梁
  • 【软考架构】V模型、W模型、增量模型和螺旋模型