系统管理
网络服务
组件分类
netplan
- 定义:抽象网络配置描述器,使用
yaml配置文件描述网络参数,该yaml文件会生成backend config(后端配置项),再根据指定的网络管理工具生成对应的网络配置文件并加载到内存中 yaml配置文件 :存放到/etc/netplan目录
networkmanager
- 定义 :提供全面且可扩展的图形化/命令行的网络管理工具,支持不同类型的网络连接,如有线、无线、宽带……,适用于桌面操作系统
- 配置方式
nm-connection-editor:图形化界面管理nmtui:伪图形管理,使用字符组显示nmcli:命令行管理
networkd
- 定义 :轻量级网络管理工具,仅支持基本的网络配置,且使用
yaml配置文件进行网络配置,适用于服务器操作系统networkd是systemd的一个组件
操作命令
netplan
- 常用命令
netplan generate:将yaml文件生成nm/netowrkd的配置文件netplan apply:应用配置netplan try:试用配置是否正确netplan get:获取当前netplan配置
NetworkManager
nmtui- nm伪图形工具,直接输入
nmtui伪图形视图
- nm伪图形工具,直接输入
nmcli- 语法
nmcli[option] [object]
- 常用命令
nmcli generalnmcli general status:显示网络状态,WWAN -> Wireless Wide Area Network、HW -> HardWarenmcli general hostname:显示主机名nmcli general hostname [new-hostname]:修改主机名,修改后要重启nm
nmcli connectionnmcli connection show:查看网卡连接信息
- 语法
- 管理
nm程序systemctl status NetworkManager:查看nm程序状态systemctl start NetworkManager:启动nmsystemctl restart NetworkManager:重启nmsystemctl stop NetworkManager:关闭nmsystemctl is-enabled NetworkManager:查看是否开机启动nmsystemctl enable NetworkManager:开启启动nmsystemctl disable NetworkManager:禁止开机启动nm
主机名
- 修改主机名
hostnamectl set-hostname [new-hostname]
安全管理
iptables
-
定义 :用于控制流量的转发策略,类似FW的安全策略
-
四表五链
-
表
- 定义 :将类似相同功能的规则归纳到一个集合中,以用力于维护和设计规则
- 类型
raw:用于决定报文是否开启状态跟踪机制mangle:用于修改报文的IP头部,或者标记某个报文,对后续分流做铺垫nat:用于对报文的IP进行NAT转换filter:用于允许/拒绝报文通过
-
链
- 定义 :按照报文转发流程分出不同阶段,并在每个阶段上会将多个表按顺序串到一起,并让报文按顺序匹配表内的规则,这样就形成了一条链
- 类型 :有内置链、自定义链;内置链表示iptables工具已经自定好的链;自定义链表示用户可自己创建和配置的链,可理解为内置链的副链
-
内置链
PREROUTING:报文匹配路由表前进行处理,可应用的表有rawmanglenatFORWARD:报文经过本地转发时进行处理,可应用的表有manglefilterPOSTROUTING:报文匹配路由表后进行处理,可应用的表有manglenatINPUT:访问本机的报文进入本机上层程序前进行处理,可应用的表有manglefilterOUTPUT本机报文离开本机上层程序后进行处理,可应用的表有rawmanglenatfilter
-
自定义链
- 定义 :用户自定义链作为主链的副链,可对特殊报文在副链中进行处理
-
-
-
规则
- 定义 :由 条件+动作 组成,配置在表内以处理特定报文
- 组成
- 条件 :基本条件有五元组,扩展条件有标记、DSCP优先级、ipset地址集
- 动作
- 终止动作
- 定义 :执行动作并停止匹配,继续匹配下一个表内规则
ACCEPTDROPREJECT:允许、丢弃、拒绝ACCEPT:匹配后允许通过,继续匹配下一个表DROP:匹配后丢弃报文,不响应REJECT:匹配后丢弃报文并响应拒绝信息
SNATDNATMASQUERADE:SNAPT、DNAPT、easy-ipREDIRECT:重定向
- 非终止动作
- 定义 :执行动作后,继续匹配规则
MARK:打标记,不会修改报文数据,标记和报文做映射表
- 终止动作
-
匹配流程
- 规则
- 链
- 转发本机报文
- 入站 :
PREROUTING-> 路由表 ->INPUT-> 上层程序 - 出站 :上层程序 ->
OUTPUT-> 路由表 ->POSTROUTING
- 入站 :
- 转发非本地报文
PREROUTING-> 路由表 ->FORWARD->POSTROUTING-> 下一跳
- 转发本机报文
- 表 :
raw>mangle>nat>filter - 规则
- 从上到下匹配,匹配成功后立即执行动作并停止匹配,否则一直匹配,直到没有匹配到任何规则,直接执行默认规则
- 链
- 流程图
- 规则
tcpdump
格式
tcpdump option proto dir type
- tcpdump由多个参数和过滤器组成
option
- 简化输出参数
-n:不解析主机名-nn:不解析主机名和服务名称(端口号对应的服务)-q:仅输出简洁的信息量-t:不显示时间
- 输出详细内容
-v:输出报文内的详细内容-D:列出所有网口-e:显示二层数据(MAC信息)
- 指定特定流量
-i:指定网卡接口-Q:指定入/出方向的报文,选项有inoutinout-c:指定捕获的报文数量
- 输出文件
-w:将捕获的数据写入到指定文件内-r:读取指定文件内容
过滤器
运算符
andornot:逻辑运算符,结合过滤条件使用,对应符号为&&||!- 若有多个规则组合,则括号包含,双括号在shell中为特俗符号,要用引号来包含,如
‘src 10.1.1.1 and (dst port 123 or dst port 1234)’
- 若有多个规则组合,则括号包含,双括号在shell中为特俗符号,要用引号来包含,如
===!=:关系运算符,=和==是等效的
proto
- 协议过滤器,支持协议类型过滤报文,常见关键字有:
arpethericmpvrrpipipv6tcpudp
dir
- dirtection,方向过滤器,支持传输方向过滤报文,常见参数有:
srcdst(源/目的)
type
- 类型过滤器,常见参数有:
hostnetportportrange- net:表示某个网段
- 举例:
net 192.168.10.1/24:匹配192.168.10.1/24内IP的报文net 10.1:匹配前缀为10.1的IP的报文
- 举例:
- port:常见的端口可以用协议名做代替
- portrange:表示端口范围,如80-8080
- net:表示某个网段
举例
1、捕获DHCP报文
tcpdump -tn -i br-lan 'udp and (dst port 67 or dst port 68)'
2、捕获含10.1.1.1的ICMP报文
tcpdump -tn -i br-lan icmp and host 10.1.1.1
3、tcpdump -w icmp.pcap
TCP 过滤
标志位(TCP Flag)
| TCP Flag 名称 | 二进制值 | 十六进制值 | 简写字母 | 含义说明 |
|---|---|---|---|---|
| FIN | 00000001 | 0x01 | F |
终止连接(Finish) |
| SYN | 00000010 | 0x02 | S |
发起连接(Synchronize) |
| RST | 00000100 | 0x04 | R |
重置连接(Reset) |
| PSH | 00001000 | 0x08 | P |
推送数据(Push) |
| ACK | 00010000 | 0x10 | .(点) |
确认应答(Acknowledge) |
| URG | 00100000 | 0x20 | U |
紧急数据(Urgent) |
| ECE | 01000000 | 0x40 | E |
ECN Echo |
| CWR | 10000000 | 0x80 | W |
拥塞窗口减少 |