启动引导

运行级别

  • 0 关机
  • 1 救援模式,单用户模式,没有网络
  • 2 不完全命令模式,没有NFS
  • 3 完全命令模式
  • 4 保留未使用
  • 5 图形
  • 6 重启 ```shell

    查看运行级别

    runlevel N 5 # 上一个运行级别,本次运行级别

使用运行级别

init N

默认运行级别

/etc/inittab # 老版本 systemctl get-default # 查看默认级别 systemctl set-default # 设置默认级别

  1. <a name="sc39M"></a>
  2. ## 启动引导器GRUB
  3. - GRand Unified Bootloader GNU组织的一个启动引导程序
  4. - 计算机启动运行的第一个软件
  5. - centos7开始使用GRUB2.0作为默认引导器
  6. - GRUB2
  7. - 配置文件 /boot/grub2/grub.cfg
  8. - 上面的配置文件可以用命令生成 grub2-mkconfig -o /boot/grub2/grub.cfg
  9. - 根据 /etc/default/grub配置文件
  10. - 和 /etc/grub.d/ 下的脚本文件来生成
  11. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654182988134-a450f943-af63-480b-9991-58e769f52a85.png#clientId=u060d0c06-90de-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=296&id=u056257dd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=592&originWidth=1420&originalType=binary&ratio=1&rotation=0&showTitle=false&size=517973&status=done&style=none&taskId=uebe28822-5b98-44b7-a67f-f41ecfe8756&title=&width=710)
  12. <a name="PoleY"></a>
  13. ## GRUB加密
  14. - 明文加密
  15. - 密文加密
  16. <a name="zOlJi"></a>
  17. ## 光盘修复
  18. - 见下文
  19. <a name="NLhrL"></a>
  20. ## PPT
  21. [启动引导与修复.pptx](https://www.yuque.com/attachments/yuque/0/2022/pptx/1491874/1654185456456-d84176e1-3d43-49be-b2ac-14839f6f1ffd.pptx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpptx%2F1491874%2F1654185456456-d84176e1-3d43-49be-b2ac-14839f6f1ffd.pptx%22%2C%22name%22%3A%22%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E4%B8%8E%E4%BF%AE%E5%A4%8D.pptx%22%2C%22size%22%3A217531%2C%22type%22%3A%22%22%2C%22ext%22%3A%22pptx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u6b3d5988-58b2-4991-8792-92365ec6d20%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22ZSue4%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
  22. <a name="C2EQy"></a>
  23. # 进程管理
  24. <a name="dBo4R"></a>
  25. ## 基础
  26. ```shell
  27. # 查看进程当前状态
  28. ps aux # 静态展示当前状态
  29. ps -ef # 动态展示当前状态
  30. # 动态查看进程
  31. top
  32. ? 帮助模式
  33. P 按CPU占有率排序
  34. T 按消耗CPU时间排序
  35. M 按内存使用占比排序
  36. # 查看进程树
  37. pstree
  38. # 杀死进程
  39. kill
  40. # kill -l 查看所有信号
  41. # kill -1 PID 重新读取配置文件重启
  42. # kill -9 PID 立即强制杀死PID
  43. killall
  44. # 根据进程名杀死进程
  45. # killall 进程名
  46. # killall -9 httpd
  47. pkill
  48. # 根据进程名杀死进程,也可以根据终端名杀死终端
  49. # pkill -9 httpd
  50. # w 查看终端
  51. # pkill -9 -t ttyN|pts/N
  52. # 查看系统资源
  53. ## 查看开机引导相关信息
  54. dmesg
  55. ## 查看系统整体状态
  56. vmstat [interval count ]

进程前后台

  1. # 查看后台任务,只能查看当前终端放入的后台任务
  2. jobs
  3. # -l 查看任务序号和对应的进程PID
  4. # 放入后台继续进行
  5. nohup CMD &
  6. # 放入后台暂停执行
  7. Ctrl + Z
  8. # 切换前后台
  9. fg INDEX # 唤起到前台
  10. bg INDEX # 后台任务继续进行,看到后台暂停的任务可以使用此命令让其继续执行

进程状态

image.png

PPT

进程管理.pptx

Systemd管理

基础

  • PID为1的进程 systemd
  • 是其他所有用户进程的父进程

image.png

命令

  1. # 主命令
  2. systemctl
  3. # 当前主机信息
  4. hostnamectl
  5. # 本地化命令
  6. localectl
  7. # 时间命令
  8. timedatectl
  9. # 登录用户命令
  10. loginctl
  11. # 日志管理
  12. journalctl
  13. # 配置文件 /etc/systemd/journald.conf
  14. # -k 显示内核日志
  15. # --since="" 指定日志时间
  16. # -n 20 最后20行
  17. # -f 实时日志
  18. # --disk-usage磁盘占用
  19. # -p 日志级别|对应的数字
  20. emerg 0
  21. alert 1
  22. crit 2
  23. err 3
  24. warning 4
  25. notice 5
  26. info 6
  27. debug 7
  28. # unit
  29. systemctl list-units --all
  30. # 查看状态
  31. systemctl status sshd
  32. # 查看服务的systemd的配置文件
  33. systemctl cat httpd

Unit

image.png

服务交给systemd管理

  1. 编写配置文件/etc/systemd/system/NAME.service

image.png

  1. systemd重载
    1. systemctl daemon-reload
  2. 使用管理命令
    1. systemctl start NAME[.service]

      PPT

      systemd服务管理.pptx

      定时任务

      命令

      ```shell

      一次性

      对应的服务

      atd

      对应的管理命令

      at [选项] 时间 输入命令 Ctrl+D保存退出

黑白名单,里面填写用户名,该用户就会被黑白管控,白名单优先级更高

/etc/at.allow /etc/at.deny

查询任务队列

atq

删除任务

atrm

周期性

对应的服务

crond

对应的管理命令

crontab

  1. # -l 这里查看的只能是通过这个命令编辑进来的,直接编辑/etc/crontab文件的查不到
  2. # -e 编辑
  3. # -u 用户名 编辑其他用户的任务,只有root可用
  4. # 日期和周尽量不要同时出现,同时出现时是或的关系
  5. # 命令要绝对路径

周期任务配置文件,这里比crontab命令多了一个指定命令执行用户的身份,更安全

/etc/crontab 分 时 日 月 周 USERNAME CMD

anacron

  1. # 在关机期间的定时任务如果有错过的,anacron会在开机后自动扫描
  2. # anacron 配置文件 /etc/anacrontab
  3. # 其实会扫描 /etc/cron[.daily|weekly...]目录下的配置文件
  4. # 所以也可以直接在对应的目录下写任务,让anncron确保要执行

用户的黑白名单

/etc/cron.allow /etc/cron.deny

  1. <a name="bQOHY"></a>
  2. ## PPT
  3. [系统定时任务.pptx](https://www.yuque.com/attachments/yuque/0/2022/pptx/1491874/1654225252740-c45a7986-fb6b-4fd5-9bf4-53368f950d46.pptx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpptx%2F1491874%2F1654225252740-c45a7986-fb6b-4fd5-9bf4-53368f950d46.pptx%22%2C%22name%22%3A%22%E7%B3%BB%E7%BB%9F%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1.pptx%22%2C%22size%22%3A56037%2C%22type%22%3A%22%22%2C%22ext%22%3A%22pptx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u3f9bd566-3e3c-40a7-bf1c-3d7d62c0c15%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22uc4dde9fe%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
  4. <a name="WLA1F"></a>
  5. # 日志管理
  6. <a name="ljURd"></a>
  7. ## 系统日志服务rsyslog
  8. - 系统日志基本都放在/var/log下
  9. - 常见日志
  10. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654229017716-ca913fb6-c2c4-47ea-aa96-a3dec1ea729d.png#clientId=ucdfa891f-d252-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=295&id=u9a6ad69a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=590&originWidth=1604&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1016172&status=done&style=none&taskId=u18d4b086-2bec-43ae-8348-9d4fc7ee876&title=&width=802)
  11. ```shell
  12. # rsyslog配置文件
  13. /etc/rsyslog.conf
  14. 服务名[链接符号][日志级别] 日志位置
  15. # 链接符号
  16. . 包含后面的级别及更高的级别
  17. .= 只要后面的级别
  18. .! 不要后面的级别,其他的都要
  19. # 日志级别
  20. 见下图
  21. # 日志位置
  22. /var/log 绝对路径
  23. -/var/log -表示先写到内存,定时存盘,适用大的日志文件
  24. @IP:514 UDP传输
  25. @@IP:514 TCP传输
  26. ~ 忽略,不保存
  27. root,user1 发送给用户,需要对方在线

日志等级

image.png

日志轮转服务logrotate

  • 主配置文件 /etc/logrotate.conf
  • 子配置文件 /etc/logrotate.d/*

image.png

  1. # 强制执行一次rotate
  2. logrotate -f /etc/logrotate.conf

PPT

日志管理.pptx

网络基础管理

时间同步管理

  1. # centos6
  2. ntpdate 域名|IP
  3. # 对应配置文件
  4. /etc/ntp.conf
  5. # centos7
  6. timedatectl
  7. chronyc sources

时区管理

  1. # centos6
  2. /etc/sysconfig/clock
  3. # centos7
  4. timedatectl
  5. timedatectl set-timezone Asia/Shanghai

语言管理

  1. # centos6
  2. /etc/sysconfig/i18n
  3. # centos7
  4. localectl
  5. localectl set-locale LANG=zh_CN.UTF-8

主机名管理

  1. # centos6
  2. /etc/sysconfig/network
  3. /etc/rc.sysinit
  4. # centos7
  5. hostnamectl
  6. hostnamectl set-hostname www
  7. /etc/hostname

网络配置

  1. # centos6
  2. ifconfig
  3. # centos7
  4. nmcli
  5. c
  6. d
  7. nmtui
  8. ip
  9. # 网络服务
  10. # centos6
  11. network
  12. # centos7
  13. NetworkManager

常见网络服务端口

  1. cat /etc/services

网关和路由

  1. # 查看路由表
  2. route -n
  3. ## 添加
  4. route add default gw IP
  5. ## 删除
  6. route del default gw IP
  7. # 永久设置
  8. /etc/rc.local
  9. # 测试到达目标的路由跳点
  10. traceroute
  11. tracertwindows命令)

常用命令

  1. # 测试DNS命令
  2. nslookup
  3. # 默认DNS配置
  4. /etc/resolv.conf
  5. # 网络探测
  6. nmap
  7. -sP IP/MASK # 查看某网段内有哪些主机是存活的
  8. -sT IP # 查看某主机上开放了哪些TCP端口

PPT

Linux的网络服务.pptx

信息安全

信息安全.pptx

SELinux

基础

  • SecurityEnhancedLinux 安全增强的Linux
  • 是一个内核模块,负责安全的子系统
  • 最大限度减小系统中进程可访问的资源(最小权限原则)
  • 三种工作模式

image.png
image.png

相关命令

  1. getenforce
  2. setenforce
  3. seinfo -r # 查看role
  4. seinfo -u # 查看user
  5. sestatus
  6. semanage user -l # 用户
  7. semanage login -l # 系统用户映射
  8. semanage boolean # 布尔值
  9. semanage fcontext # 文件上下文
  10. semanage port -l # 端口
  11. ls -Z
  12. id -Z
  13. ps -eZ

排错

  • 日志
    • /var/log/messages
    • /var/log/secure
    • /var/log/audit/audit.log
  • 辅助工具
    • sealert
      • yum provides sealert # 查询是哪个包提供了这个工具
    • ausearch
      • whatis ausearch # audit日志的查询工具
  • 常见错误TOP3

    • 上下文、标签
    • 布尔值
    • 新规则与旧程序的矛盾

      手册

      SELinux.pptx

      tcp_wrappers

  • 早期小型的防火墙,目前已经不被推荐使用了

  • 工作在四层的,针对有状态的TCP连接的特定服务进行安全控制
  • 可以通过/etc/hosts.allow白名单和 /etc/hosts.deny黑名单配置文件对IP进行限制
  • 工作原理

image.png

  • 小型防火墙TCP_Wrappers.pptx

    iptables

    image.png

    分类

  • 主机型

    • 配合本机其他服务一起,保护服务器主机
    • 主要是通过四表五链之关系中的filter表实现
  • 网络型

    • 做网关路由、网络地址转换SNAT、DNAT,保护网络通信
    • 主要是通过四表五链之关系中的nat表实现

      工作模式

      image.png

      四表五链和关系

  • 四表(相同功能规则的集合称为表)

    • filter过滤表,内核模块iptables_filter
    • nat 网络地址转换表NetworkAddressTranslation,内核模块iptables_nat
    • mangle 拆包、修改、重封包维护表,内核模块iptables_mangle
    • raw 原始表,关闭nat表上启用的连接追踪机制,内核模块iptables_raw
  • 五链(各个关卡上有很多规则,多条规则一一匹配类似链条)
    • PREROUTING
    • INPUT
    • FORWARD
    • OUTPUT
    • POSTROUTING
  • 关系

image.png

条件动作定规则

image.png
image.png

服务安装和使用

  1. yum install -y iptables-services
  2. systemctl status iptables
  3. systemctl start iptables
  4. systemctl enable iptables
  5. # 相关命令,链名和动作都要大写
  6. iptables -nvL # 数字形式查看所有规则
  7. iptables --line-number # 显示行号
  8. iptables [-t 表名] -<A/I/D/R> 链名 [规则行号] [-i/o 网卡名 -p 协议 -s IP/子网 -d 目标IP/子网 --sport 源端口 --dport 目标端口 ] -j 动作
  9. iptables -t # 指定表
  10. filter
  11. nat
  12. mangle
  13. raw
  14. # 删除规则一键三连
  15. iptables -F # 清空所有规则,注意默认是DROP还是ACCEPT,否则也容易失联
  16. iptables -X # 清空自定义链
  17. iptables -Z # 清空规则序号
  18. iptables -P INPUT DROP # 设置链的默认动作,非常危险,会禁用22远程连接
  19. # 按标记位设置规则,如下设置就会禁止新的连接,老连接还可以继续传输
  20. iptables -I INPUT -p tcp --tcp-flags SYN,ACK,ACK SYN -j DROP
  21. # 使用多端口模块,自己指定多个模块
  22. iptables -I INPUT -p tcp -m multiport -dports 80,443,8080 -j DROP
  23. # 使用自定义ip范围模块
  24. iptables -I INPUT -p tcp -m iprange --src-range 192.168.1.10-192.168.1.60 -j DROP
  25. # 允许已经建立连接的或相关的连接通行
  26. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  27. # 保存规则到文件(默认保存到/etc/sysconfig/iptables)
  28. service iptables save
  1. # 主要操作nat表
  2. # 操作POSTROUTING链
  3. # -o ens192 指定输出的网卡名称
  4. # -j SNAT 指定该网络包需要SNAT
  5. # MASQUERADE 指定该网络包需要地址伪装(主要适用于IP地址非固定的情况,会自动查询可以通的地址)
  6. # DNAT 指定该网络包需要DNAT
  7. # --to-source 指定SNAT时需要修改的包的源地址
  8. # --to-destination 指定DNAT时需要修改的包的目的地址
  9. # SNAT 相当于正向代理
  10. iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens192 -j SNAT --to-source 192.168.200.20
  11. iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens192 -j MASQUERADE #这里不用指明IP,会自动伪装
  12. # 外网访问192.168.200.20:22 我就转发到192.168.100.10:22,相当于反向代理
  13. iptables -t nat -I PREROUTING -i ens66 -d 192.168.200.20 --dport 22 -j DNAT --to-destination 192.168.100.10:22
  14. # 外网访问192.168.200.20:33333 我就转发到192.168.100.10:22,相当于反向代理
  15. iptables -t nat -I PREROUTING -i ens66 -d 192.168.200.20 --dport 33333 -j DNAT --to-destination 192.168.100.10:22

手册

iptables.pptx

firewalld

基础

  • 相较于iptables,firewalld支持动态更新技术并加入了zone(预先配置的策略模板)的概念
  • 用户可以快速的在zone之间切换,动态更新,不用iptables 的reload
  • 默认的很多策略在 /usr/lib/firewalld/zones下,默认是public模版
  • zone配置文件使用xml配置
  • 三种配置方法

image.png

常用命令

  1. # 查看帮助
  2. firewall-cmd --help
  3. # 查看状态
  4. firewall-cmd --state
  5. # 查看默认区域
  6. firewall-cmd --get-default-zone
  7. # 查看目前活动区域
  8. firewall-cmd --get-active-zones
  9. # 重载配置文件
  10. firewall-cmd --reload

手册

Firewalld.pptx