第八章 系统的启动过程及服务管理
系统启动过程
RHEL系统基本启动过程
linux系统过程概述
第一阶段:BIOS启动引导
实现硬件初始化,外设检查以及定位启动介质;
移交启动惹怒至MBR(磁盘主引导记录)
第二阶段:GRUB/GRUB2启动引导
GRUB/GRUB2引导内容 系统启动加载文件
读取/boot/grub/grub.conf配备
第三阶段:内核加载,只读挂载/设备
加载以及初始化内核
挂载和运行initrd(systemd)文件系统并装载驱动(静态模块)
释放initrd(systemd)文件系统并行切换至根文件系统
第四阶段:Sys初始化
启动init(systemd)进程
运行rc.sysinit脚本并初始化系统环境(并行/etc/system/)
读取inittab确定运行级别以及启动相应服务
开启终端或启动X server以及完成启动过程
systemd与init
init:
一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程
二十启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各个情况,这往往使得脚本变得很长
systemd:
按需求启动服务,减少系统资源消耗
尽可能并行启动进程,减少系统启动等待时间
/etc/inittab定义了默认启动级别
运行设置及查看
init 5切换为图形模式
vim /etc/inittab
rhel7:systemctl isolate multi-user.target 切换为文本模式 system isolate grapical.target 切换为图形模式
以上为临时修改模式
systemctl set-default multi-user.target 开机默认为文本模式 systemctl set-default graphical.target 开机默认为图形模式
以上为永久修改模式
systemctl:systemctl是与systemd交互的命令
获取当前运行级别的方法
rhel6:runlevel
rhel7:systemctl get-default
在引导提示符下显示target/runlevel的依赖项
systemctl show -p "Requires" multi-user.target systemctl show -p "Wants" multi-user.target
第九章 进程管理与任务计划
ps 查看静态进程信息
ps aux
STAT
D:(不可中断)不可唤醒的睡眠状态,通常用于I/O情况,kill也不能中断
S:(中断)状态处于休眠中,当某个条件形成后或者已收到信号时脱离该状态
T:(停止)进程收到停止信号后,后台暂停或进程处于出错状态
s:当前进程有多个子进程
Z:表示僵尸进程
<:表示当前进程优先级高
N:表示当前进程优先级低
L:被锁入内存
top:动态查看进程活动与系统负载信息(默认每三秒刷新一次,可以按q退出)
TIME:进程从启动以来占用CPU的时间
必会命令
进程管理
Ctrl+z 前台进程调入后台 ctrl+c结束进程 jobs 查看后台进程 fg # 将后台第#个进程在前台运行 bg # 将后台第#个进程在后台运行 & 直接将进程放在后台运行 kill killall pkill 结束进程
at 一次性定制服务
设置格式
at [HH:MM] [yyy-mm-dd]
at>ctrl+d 结束编辑
查询与删减
atq (at -l)
atrm
at -c #查看指定计划任务内容
crontab 任务计划,可以在指定时间重复执行
查看指令写入格式,可以通过cat /etc/crontab获取(分/时/日/月/周)
用户定义的配置文件位于/var/spool/cron/用户名
crontab -e [-u 用户名] 编辑计划任务
crontab -l [-u 用户名] 查看计划任务
crontab -r [-u 用户名] 删除计划任务
crontab -u
date 获取或修改时间
date 月日时分年
时间数值的特殊表示方法 *表示该范围内任意时间 ,表示时间间隔的多个不连续时间点 -表示一个连续的时间范围 /指定间隔的时间频率
第十章 服务器引导加固与修复
常见端口
21/20 ftp 22 ssh 23 telnet 25 smtp 53 dns 67/68 dhcp 69 tftp 80 http 443 https 110 pop3 995 pop3s sssl 143 imap 993 imap ssl 137 138 nmb 139 445 smb samba 3389 windos remote desktop 3306 mysql 1521 oracle 2049 nfs
kernel升级
确认当前系统内核版本:
查看当前kernel:uname -r
查看可升级kernel: yum list kernel
升级kernel:
yum update kernel (需要提供可更新yum源)
rpm -ivh kernel-3.10.0-123.1.2.el7.x86_64.rpm
yum localinstall kernel-3.10.0-123.1.2.el7.x86_64.rpm
grub2内核启动设置
查看已安装kernel版本
cat /boot/grub2/grub.cfg | grep -i 'red hat'
设置kernel启动版本
grub2 -set-default number (数字按照上面文件的顺序设置,如果有3个核心,设置区间为0-2,如果设置为3的话则顺序为0)
查看设置的启动版本
grub2 -editenv list (/)
破解root密码
Grub引导菜单加密(系统引导管理器GRUB)
通过命令grub2-mkpasswd-pbkdf2生成加密密码 (从grub开始复制)
修改/etc/grub.d/00_header,在末尾追加
cat << EOF
set superusers="user1"
password_pbkdf2 user Encrypted Password Of User1
EOF
更新配置文件已生效
grub-mkconfig -o /boot/grub2/grub.cfg
修复grub2- 引导破坏故障
rm -rf /boot/grub2/
dd if=/dev/zero of=/dev/sda bs=1 count=446
在救援模式下
chroot /mnt/sysimage
grub2-isntall /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
修复/boot/下的所有文件被删除故障
rm -rf /boot/*
在救援模式下
chroot /mnt/sysimage
mount /dev/sr0/mnt
grub2-install /dev/sda
rpm -ivh /mnt/Packages/kernel-3.10.0-514.el7.x86_64.rpm --force
grub2-mkconfig -o /boot/grub2/grub.cfg
第十一章 网络配置与日志分析
网络信息查看与配置
查看网络接口信息
查看所有活动网络接口信息
ipconfig
查看指定网络接口信息
ifconfig
hostname查看当前主机名 route -n 查看路由表 netstat 查看接口统计信息 netstat -lntup ping测试网络连通性 -c 次数 traceroute 测试主机到主机之间经过的网络节点 nslookup测试DNS域名解析
命令设置网络接口参数(临时)
linux网络接口表示方法 eth0 eth表示以太网表示第一块网卡 lo0表示本地回环网卡 设置网络接口ip以及子网掩码 ifconfig eth0 ip地址 [netmask 子网掩码] ifconfig eth0 ip地址 [/掩码长度] 禁用或者重新激活网卡 ifconfig eth0 up 或者 ifup eth0 ifconfig eth0 down 或者 ifdown eth0 设置虚拟网络接口 ifconfig eth0:0 ip地址
命令设置路由表
删除路由表中默认网关记录 route del default gw IP地址 添加默认网关记录 route add default gw IP地址 添加指定网段的路由记录 route add -net 网段地址 gw IP地址 删除指定网段路由记录 route del -net 网段地址
centos7网络查看
nmcli con show [--active] nmcli con show "static-eth0" nmcli dev status Apply modification systemctl restart network.service nmcli con reload nm-connection-editor
centos7网络配置
nmcli con add con-name "simple" ifname eth0 type ethernet ip4 174.0.0.X/24 gw4 172.25.X.254 nmcli con modify "simple" ipv4.dns 172.25.254 nmcli con modify "simple" ipv4.addresses 172.25.0.X+100/24 nmcli con modify "simple" connection.autoconnect yes nmcli con modify "simple eth0" connection.autoconnect no nmcli con modify "simple eth0" +ipv4.addresses 10.0.0.X/24
常用网络配置文件修改
/etc/hostname 主机名称配置文件 /etc/resolv.conf DNS服务器地址保存位置 (nameserver) /etc/hosts 主机与IP地址映射记录 修改主机名:hostnamectl set-hostname 主机名称
Bond/Team网卡绑定
联网编组提供了更好的性能,而且由于其模块化设计,更可扩展
内核有效地处理网络数据包,teamd处理逻辑接口和接口处理。实现负载平衡和主动备份逻辑。
一下为常见的team模式:
broadcast roundbin activebackup loadbalance lacp
日志管理工具
消息 等级号 级别 说明
EMERG 0 紧急 会导致主机系统不可用的情况 ALERT 1 警告 必须马上采取解决措施的问题 CRIT 2 严重 比较严重的情况 ERR 3 错误 运行出现错误,一般达到ERR等级的信息已经可以影响到服务成系统的运行了 WARNING 4 提醒 可能会影响系统功能的事件 NOTICE 5 注意 不会影响系统但需要注意 INFO 6 信息 一般信息 DEBUG 7 调试 程序或系统调试信息等
Journald日志管理
journalctl journalctl -n 10 journalctl -p err journalctl -f journalctl --since today journalctl --since "-1 hour" journalctl --since "2022-02-10 20:30:00" --until "2022-02-13 12:00:00" 日志实时监控 tail -f logfile / journal -f eg:tail -f /avr/log/messages
十二章 SElinux和防火墙
SElinux:
强制访问控制 -vs自主访问控制
-默认情况下:没有明确的允许就是拒绝
SElinux策略定义:
-安全的上下文
-允许特定行为
-有条件的开启或关闭布尔值
修改SElinux模式
类型:Enforcing(记录日志),Permissive,or Disabled
配置文件
-
/etc/sysconfig/selinux
图形工具
-
yum install policycoreutils-gui
-
system-config-selinux
运行时修改
-
getenforce and setenforce 0 | 1
-
Kernel arguments:selinux=0 | 1 or enforcing=0 | 1
SElinux文件格式
-
所有文件和进程都有上下文
-
安全设置中的元素
-user:role:type:sensitivity:category
-user_u:object_r:tmp_t:s0:c0
管理文件上下文
修改文件的上下文
-chcon -R -t public_content_t /srv/www (selinux relabel)
-semanage fcontext -a -t httpd_sys_content_t
LInux包过滤防火墙概述
-
netfilter
位于linux内核中的包过滤功能体系
称为linux防火墙的“内核态”
-
iptables
位于/sbin/iptables ,用来管理防火墙规则工具
称为linux防火墙的“用户态”
--以上两种称呼都可以表示linux防火墙
iptables的表、链结构1
-
链规则
规则的作用:对数据包进行过滤处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
-
默认包括五种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
iptables的表、链结构2
-
规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
-
默认包括四个规则表
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标ip地址或端口
filter表:确定是否放行该数据包
数据包过滤的匹配流程1
-
规则表之间的顺序
raw →mangle →nat →filter
-
规则链之间的顺序
入站 :PREROUTING →INPUT
出站:OUTPUT →POSTROUTING
转发:PREROUTING →FORWARD →POSTROUTING
-
规则链内的匹配顺序
按顺序依次检测,匹配即停止(LOG策略例外)
若找不到相匹配的规则,则按该链的默认策略处理
iptables的基本语法-1
语法构成 iptables [-t表名] 选项 [链名] [-j 控制类型] iptables -t filter -I INPUT -p icmp -jREJECT I:阻止ping测试 选项、链名、控制类型使用大写字母,其余为小写
第十三章 DHCP和SSH
openSSH的基本功能
替换常见的不安全的网络应用程序
提供基于用户的身份验证,从远程主机登录以及远程主机上的交互或非交互式命令操作
不同网络主机之间的文件复制以及压缩数据的可选支持,完全替换"r"实用程序:rlogin,rsh,rcp
跨不安全的网络进行密码安全的身份验证和通信,能够通过端口隧道转发不安全协议,所有通信的自动和透明加密
OpenSSH验证
sshd服务可以使用几种不同的身份验证方法
password(sent securely)
RSA and DSA keys
Kerberos/LDAP
s/key and Secure(OTP)
服务简介
RPM:openssh , openssh-clients , openssh-server
服务:sshd
监听端口:22/tcp
服务器配置文件: /etc/ssh/sshd_config
-
服务的启动分类:
运行状态启动:systemctl start service
开机自启动: systemctl enable service
1、install 2、service/systemctl status start 3、chkconfig 'service name' on / systemctl enable 'service name' 4、SElinux(enforcing) 5、iptables/firewall
管控ssh连接
用户登录时,sshd在用户和系统之间建立连接
但是,在系统管理员未停止sshd服务前,连接不会断开
查看linux下登录用户的行为信息 w (显示更全)/ who 找出连接进程信息 psaux | grep sshd 将进程结束 kill pid killall sshd
由sshd提供的安全ftp
sftp host
sftp user@host
DHCP动态主机配置协议
作用:为大量客户机提供自动分配地址,提高网络配置效率‘
可为客户机分配一下信息:ip地址、子网掩码 ,默认搜索域名 ,默认网关 ,DNS服务器地址
DHCP软件可通过yum安装
yum install dhcp -y
DHCP文件: /etc/dhcp/dhcpd.conf