启动引导
运行级别
- 0 关机
- 1 救援模式,单用户模式,没有网络
- 2 不完全命令模式,没有NFS
- 3 完全命令模式
- 4 保留未使用
- 5 图形
- 6 重启
```shell
查看运行级别
runlevel N 5 # 上一个运行级别,本次运行级别
使用运行级别
init N
默认运行级别
/etc/inittab # 老版本 systemctl get-default # 查看默认级别 systemctl set-default # 设置默认级别
<a name="sc39M"></a>## 启动引导器GRUB- GRand Unified Bootloader GNU组织的一个启动引导程序- 计算机启动运行的第一个软件- centos7开始使用GRUB2.0作为默认引导器- GRUB2- 配置文件 /boot/grub2/grub.cfg- 上面的配置文件可以用命令生成 grub2-mkconfig -o /boot/grub2/grub.cfg- 根据 /etc/default/grub配置文件- 和 /etc/grub.d/ 下的脚本文件来生成<a name="PoleY"></a>## GRUB加密- 明文加密- 密文加密<a name="zOlJi"></a>## 光盘修复- 见下文<a name="NLhrL"></a>## PPT[启动引导与修复.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)<a name="C2EQy"></a># 进程管理<a name="dBo4R"></a>## 基础```shell# 查看进程当前状态ps aux # 静态展示当前状态ps -ef # 动态展示当前状态# 动态查看进程top? 帮助模式P 按CPU占有率排序T 按消耗CPU时间排序M 按内存使用占比排序# 查看进程树pstree# 杀死进程kill# kill -l 查看所有信号# kill -1 PID 重新读取配置文件重启# kill -9 PID 立即强制杀死PIDkillall# 根据进程名杀死进程# killall 进程名# killall -9 httpdpkill# 根据进程名杀死进程,也可以根据终端名杀死终端# pkill -9 httpd# w 查看终端# pkill -9 -t ttyN|pts/N# 查看系统资源## 查看开机引导相关信息dmesg## 查看系统整体状态vmstat [interval count ]
进程前后台
# 查看后台任务,只能查看当前终端放入的后台任务jobs# -l 查看任务序号和对应的进程PID# 放入后台继续进行nohup CMD &# 放入后台暂停执行Ctrl + Z# 切换前后台fg INDEX # 唤起到前台bg INDEX # 后台任务继续进行,看到后台暂停的任务可以使用此命令让其继续执行
进程状态
PPT
Systemd管理
基础
- PID为1的进程 systemd
- 是其他所有用户进程的父进程
命令
# 主命令systemctl# 当前主机信息hostnamectl# 本地化命令localectl# 时间命令timedatectl# 登录用户命令loginctl# 日志管理journalctl# 配置文件 /etc/systemd/journald.conf# -k 显示内核日志# --since="" 指定日志时间# -n 20 最后20行# -f 实时日志# --disk-usage磁盘占用# -p 日志级别|对应的数字emerg 0alert 1crit 2err 3warning 4notice 5info 6debug 7# unitsystemctl list-units --all# 查看状态systemctl status sshd# 查看服务的systemd的配置文件systemctl cat httpd
Unit
服务交给systemd管理
- 编写配置文件/etc/systemd/system/NAME.service

- systemd重载
- systemctl daemon-reload
- 使用管理命令
- systemctl start NAME[.service]
PPT
systemd服务管理.pptx定时任务
命令
```shell一次性
对应的服务
atd对应的管理命令
at [选项] 时间 输入命令 Ctrl+D保存退出
- systemctl start NAME[.service]
黑白名单,里面填写用户名,该用户就会被黑白管控,白名单优先级更高
/etc/at.allow /etc/at.deny
查询任务队列
atq
删除任务
atrm
周期性
对应的服务
crond
对应的管理命令
crontab
# -l 这里查看的只能是通过这个命令编辑进来的,直接编辑/etc/crontab文件的查不到# -e 编辑# -u 用户名 编辑其他用户的任务,只有root可用# 日期和周尽量不要同时出现,同时出现时是或的关系# 命令要绝对路径
周期任务配置文件,这里比crontab命令多了一个指定命令执行用户的身份,更安全
/etc/crontab 分 时 日 月 周 USERNAME CMD
anacron
# 在关机期间的定时任务如果有错过的,anacron会在开机后自动扫描# anacron 配置文件 /etc/anacrontab# 其实会扫描 /etc/cron[.daily|weekly...]目录下的配置文件# 所以也可以直接在对应的目录下写任务,让anncron确保要执行
用户的黑白名单
/etc/cron.allow /etc/cron.deny
<a name="bQOHY"></a>## PPT[系统定时任务.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)<a name="WLA1F"></a># 日志管理<a name="ljURd"></a>## 系统日志服务rsyslog- 系统日志基本都放在/var/log下- 常见日志```shell# rsyslog配置文件/etc/rsyslog.conf服务名[链接符号][日志级别] 日志位置# 链接符号. 包含后面的级别及更高的级别.= 只要后面的级别.! 不要后面的级别,其他的都要# 日志级别见下图# 日志位置/var/log 绝对路径-/var/log -表示先写到内存,定时存盘,适用大的日志文件@IP:514 UDP传输@@IP:514 TCP传输~ 忽略,不保存root,user1 发送给用户,需要对方在线
日志等级
日志轮转服务logrotate
- 主配置文件 /etc/logrotate.conf
- 子配置文件 /etc/logrotate.d/*

# 强制执行一次rotatelogrotate -f /etc/logrotate.conf
PPT
网络基础管理
时间同步管理
# centos6ntpdate 域名|IP# 对应配置文件/etc/ntp.conf# centos7timedatectlchronyc sources
时区管理
# centos6/etc/sysconfig/clock# centos7timedatectltimedatectl set-timezone Asia/Shanghai
语言管理
# centos6/etc/sysconfig/i18n# centos7localectllocalectl set-locale LANG=zh_CN.UTF-8
主机名管理
# centos6/etc/sysconfig/network/etc/rc.sysinit# centos7hostnamectlhostnamectl set-hostname www/etc/hostname
网络配置
# centos6ifconfig# centos7nmclicdnmtuiip# 网络服务# centos6network# centos7NetworkManager
常见网络服务端口
cat /etc/services
网关和路由
# 查看路由表route -n## 添加route add default gw IP## 删除route del default gw IP# 永久设置/etc/rc.local# 测试到达目标的路由跳点traceroutetracert(windows命令)
常用命令
# 测试DNS命令nslookup# 默认DNS配置/etc/resolv.conf# 网络探测nmap-sP IP/MASK # 查看某网段内有哪些主机是存活的-sT IP # 查看某主机上开放了哪些TCP端口
PPT
信息安全
SELinux
基础
- SecurityEnhancedLinux 安全增强的Linux
- 是一个内核模块,负责安全的子系统
- 最大限度减小系统中进程可访问的资源(最小权限原则)
- 三种工作模式
相关命令
getenforcesetenforceseinfo -r # 查看roleseinfo -u # 查看usersestatussemanage user -l # 用户semanage login -l # 系统用户映射semanage boolean # 布尔值semanage fcontext # 文件上下文semanage port -l # 端口ls -Zid -Zps -eZ
排错
- 日志
- /var/log/messages
- /var/log/secure
- /var/log/audit/audit.log
- 辅助工具
- sealert
- yum provides sealert # 查询是哪个包提供了这个工具
- ausearch
- whatis ausearch # audit日志的查询工具
- sealert
常见错误TOP3
- 上下文、标签
- 布尔值
- 新规则与旧程序的矛盾
手册
SELinux.pptxtcp_wrappers
早期小型的防火墙,目前已经不被推荐使用了
- 工作在四层的,针对有状态的TCP连接的特定服务进行安全控制
- 可以通过/etc/hosts.allow白名单和 /etc/hosts.deny黑名单配置文件对IP进行限制
- 工作原理

-
iptables
分类
主机型
- 配合本机其他服务一起,保护服务器主机
- 主要是通过四表五链之关系中的filter表实现
网络型
四表(相同功能规则的集合称为表)
- filter过滤表,内核模块iptables_filter
- nat 网络地址转换表NetworkAddressTranslation,内核模块iptables_nat
- mangle 拆包、修改、重封包维护表,内核模块iptables_mangle
- raw 原始表,关闭nat表上启用的连接追踪机制,内核模块iptables_raw
- 五链(各个关卡上有很多规则,多条规则一一匹配类似链条)
- PREROUTING
- INPUT
- FORWARD
- OUTPUT
- POSTROUTING
- 关系
条件动作定规则
服务安装和使用
yum install -y iptables-servicessystemctl status iptablessystemctl start iptablessystemctl enable iptables# 相关命令,链名和动作都要大写iptables -nvL # 数字形式查看所有规则iptables --line-number # 显示行号iptables [-t 表名] -<A/I/D/R> 链名 [规则行号] [-i/o 网卡名 -p 协议 -s 源IP/子网 -d 目标IP/子网 --sport 源端口 --dport 目标端口 ] -j 动作iptables -t # 指定表filternatmangleraw# 删除规则一键三连iptables -F # 清空所有规则,注意默认是DROP还是ACCEPT,否则也容易失联iptables -X # 清空自定义链iptables -Z # 清空规则序号iptables -P INPUT DROP # 设置链的默认动作,非常危险,会禁用22远程连接# 按标记位设置规则,如下设置就会禁止新的连接,老连接还可以继续传输iptables -I INPUT -p tcp --tcp-flags SYN,ACK,ACK SYN -j DROP# 使用多端口模块,自己指定多个模块iptables -I INPUT -p tcp -m multiport -dports 80,443,8080 -j DROP# 使用自定义ip范围模块iptables -I INPUT -p tcp -m iprange --src-range 192.168.1.10-192.168.1.60 -j DROP# 允许已经建立连接的或相关的连接通行iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 保存规则到文件(默认保存到/etc/sysconfig/iptables)service iptables save
# 主要操作nat表# 操作POSTROUTING链# -o ens192 指定输出的网卡名称# -j SNAT 指定该网络包需要SNAT# MASQUERADE 指定该网络包需要地址伪装(主要适用于IP地址非固定的情况,会自动查询可以通的地址)# DNAT 指定该网络包需要DNAT# --to-source 指定SNAT时需要修改的包的源地址# --to-destination 指定DNAT时需要修改的包的目的地址# SNAT 相当于正向代理iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens192 -j SNAT --to-source 192.168.200.20iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens192 -j MASQUERADE #这里不用指明IP,会自动伪装# 外网访问192.168.200.20:22 我就转发到192.168.100.10:22,相当于反向代理iptables -t nat -I PREROUTING -i ens66 -d 192.168.200.20 --dport 22 -j DNAT --to-destination 192.168.100.10:22# 外网访问192.168.200.20:33333 我就转发到192.168.100.10:22,相当于反向代理iptables -t nat -I PREROUTING -i ens66 -d 192.168.200.20 --dport 33333 -j DNAT --to-destination 192.168.100.10:22
手册
firewalld
基础
- 相较于iptables,firewalld支持动态更新技术并加入了zone(预先配置的策略模板)的概念
- 用户可以快速的在zone之间切换,动态更新,不用iptables 的reload
- 默认的很多策略在 /usr/lib/firewalld/zones下,默认是public模版
- zone配置文件使用xml配置
- 三种配置方法
常用命令
# 查看帮助firewall-cmd --help# 查看状态firewall-cmd --state# 查看默认区域firewall-cmd --get-default-zone# 查看目前活动区域firewall-cmd --get-active-zones# 重载配置文件firewall-cmd --reload


