系统总结整理(一)

news/2024/11/30 0:32:28/

文章目录

  • @[TOC]
  • 一.网络
    • 1.七层模型
    • 2.数据封装过程
    • 3.每层对应的协议
      • 3.1 应用层
      • 3.2 常见的udp协议端口号
      • 3.3 传输层tcp udp
      • 3.4 网络层: arp icmp
        • 3.4.1 arp
        • 3.4.2 icmp
      • 3.5 tcp与udp的不同
    • 4.端口号的作用
    • 5.VRRP的工作原理 SNAT DNAT
      • 5.1 SNAT
      • 5.2 DNAT
    • 6.网络架构
    • 7.服务架构
      • 7.1 接入层
      • 7.2 网关层
      • 7.3 业务服务层
      • 7.4 支撑服务层
      • 7.5 平台服务层
      • 7.6 基础设置层
    • 8. 云服务的架构
  • 二.系统命令总结
    • 1. 基本命令
      • 1.1 线上查询及帮助命令
      • 1.2 文件和目录操作命令
      • 1.3 查看文件及内容处理命令
      • 1.4 文件压缩及解压缩命令
      • 1.5 信息显示命令
      • 1.6 用户管理命令
      • 1.7 基础网络操作命令
      • 1.8 深入网络操作命令
      • 1.9 磁盘与文件系统的命令
      • 1.10 系统权限及用户授权相关命令
      • 1.11 系统用户登录信息的命令
      • 1.12 内置命令及其它
      • 1.13 系统管理与性能监视命令
      • 1.14 关机/重启/注销和查看系统信息的命令
      • 1.15 进程管理相关命令
    • 2. 优化命令
      • 2.1 优化命令——mpstat
        • 2.1.1 mpstat的语法格式
        • 2.1.2 mpstat命令参数
        • 2.1.3 示例
      • 2.2 优化命令——top
      • 2.3 优化命令——free
      • 2.4 优化命令——nload
      • 2.5 优化命令——iostat
      • 2.6 优化命令——cpuinfo
      • 2.7 优化命令——iotop
      • 2.8 优化命令——taskset
      • 2.9 优化命令——vmstat
      • 2.10 优化命令——uptime
      • 2.11 优化命令——nice
      • 2.12 优化命令——ulimit
      • 2.13 优化命令——time
  • 三.网络服务总结
    • 1. ftp
    • 2. DHCP工作原理
      • 2.1 典型的C/S模式
      • 2.2 DHCP的分配方式
      • 2.3 DHCP工作原理
    • 3. DNS域名解析
      • 3.1 DNS是什么?
      • 3.2 TCP与UDP作用
      • 3.3 两种查询方式
      • 3.4 域名代理/注册/购买服务商
      • 3.5 ssh
        • 3.5.1 根据安全策略进行调优
        • 3.5.2 根据安全中的漏洞进行升级
        • 3.5.3 fail2ban
    • 4. NFS共享存储
    • 5. PXE高效批量网络装机
      • 5.1 PXE含义
      • 5.2 PXE优点
      • 5.3 PXE特点
      • 5.4PXE服务的构建过程
        • 5.4.1PXE服务器和客户机的工作过程:
        • 5.4.2搭建 PXE 远程安装服务器
  • 四.shell脚本总结
    • 1.编写脚本的思路
    • 2.生产案列
      • 2.1使用 awk 统计 httpd 访问日志中每个客户端 IP 的出现次数?
      • 2.2连续输入错误密码 3 次,则报警
      • 2.3监控磁盘情况,异常发邮件
      • 2.4 ip 登录失败超过3进行告警
      • 2.5通过shell脚本来防止暴力破解ssh
      • 2.6shell一般用在哪里
    • 3.Linux文本三剑客(grep、sed、awk)
      • 3.1grep
      • 3.2sed
      • 3.3awk
  • 五.安全总结
    • 1. iptables
      • 1.1**四表五链**
      • 1.2**四表**
      • 1.3 规则链之间的匹配顺序
      • 1.4规则链内的匹配顺序
      • 1.5数据包在规则表、链间的匹配流程
      • 1.6iptables 基本语法、数据包控制类型
      • 1.7 iptables 命令的常用管理选项
      • 1.8SNAT、DNAT策略及应用
        • 1.8.1SNAT策略
        • 1.8.2DNAT策略
    • 2.firewalld
      • 2.1firewalld概述
      • 2.2firewalld防火墙预定义了9个区域:
      • 2.3 firewalld数据处理流程
      • 2.2firewalld防火墙预定义了9个区域:
      • 2.3 firewalld数据处理流程

一.网络

1.七层模型

应用层:网络服务与最终用户的一个接口

表示层:数据的表示、压缩、安全——高级转换二进制

会话层:建立、管理、终止会话——管理不同应用程序的通过

传输层:选择传输协议(tcp稳定,速度慢,udp不太稳定,速度快)—— 防火墙

网络层:进行逻辑地址寻找,实现不同网络之间的路径选择(IP地址)——路由表(通过网关找)

数据链路层:mac网卡地址再次确认数据传输的地址是否正确,数据校验确认数据是否有丢失 ——交换机

物理层:bit流 ——到达网卡、网口

2.数据封装过程

模型层上层数据增加项数据特征设备
传输层接收上层数据加入tcp或udp头部数据段防火墙
网络层接收上层数据加入源目ip地址数据包路由器
数据链路层接收上层数据加入源目mac地址数据帧交换机
物理层接收上层数据转为bit流bit网卡

3.每层对应的协议

3.1 应用层

协议端口对应协议注释
ftp20、21tcp文本传输协议(FTP)端口
ssh22shell(SSH)协议加密安全 Shell(SSH)服务
telnet23Telnet 协议不加密Telnet 服务
smtp25简单邮件传输协议smtp–简单邮件传输协议(SMTP)
dns53tcp udpdns–域名服务
http80tcp超文本传输协议
pop3110邮局协议邮件协议版本
https443文本传输安全协议安全超文本传输协议
mysql3306MySQL 协议mysql数据库

3.2 常见的udp协议端口号

协议端口号注释
NTP123网络时间协议
DHCP67动态主机配置协议
SNMP161简单网络管理协议
TFTP69简单文件传输协议
RPC111远程调用协议

3.3 传输层tcp udp

控制位:

URG:紧急位。紧急指针有效位。
ACK: 确认位。只有当ACK=1时,确认序列号字段才有效:当ACK=0时,确认号字段无效。
PSH:急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。
RST:重置位。当RST值为1时,通知重新建立TCP连接。
SYN: 同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1。
FIN: 断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1.

3.4 网络层: arp icmp

3.4.1 arp

地址解析协议

功能

  • 将IP地址转换为mac地址
  • 检测ip地址冲突

3.4.2 icmp

作用:检测网络的双向连通性

ping命令

  • ping IP地址 -w 2 ——等待超时时间
  • ping ip地址 -n 数字——指定ping几个包

tracert作用:经过多少台设备,选路、排错

  • 用法:tracert+网址

3.5 tcp与udp的不同

UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同:

(1)TCP 是面向连接的传输控制协议;而UDP 提供了无连接的数据报服务。
(2)TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作。
(3)UDP 具有较好的实时性,工作效率较 TCP 协议高。UDP 段结构比 TCP 的段结构简单,因此网络开销也小。
(4)TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。

(5)TCP 协议传输更加稳定可靠,UDP 协议传输效率更高。这两个协议各有特点,在实际应用 中,根据实际应用的需要,选择不同的传输层协议

4.端口号的作用

① 区别系统内的进程
② 服务端 端口号 固定
③ 客户端随机
④ 前1000左右不能使用
⑤ 65536个端口号 0-655535

5.VRRP的工作原理 SNAT DNAT

5.1 SNAT

源地址转换(将内网地址转换为指定的IP地址,这个地址可以访问公网

源地址变化:内网——外网

5.2 DNAT

目的地址转换(使公网地址可以和私网地址通信,将外网地址转换为内网可以访问的内网地址,相互通信

目标地址变化:外网——内网

6.网络架构

① 核心层:核心层是网络主干部分,是整个网络性能的保障,其设备包括路由器、防火墙、核心层交换机等等,相当于公司架构里的管理高层。
核心层一直被认为是所有流量的最终承受者和汇聚者,所以对核心层的设计以及网络设备的要求十分严格,它的功能主要是实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。因此,核心层设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能,来改善网络性能。网络的控制功能最好尽量少在骨干层上实施。

② 汇聚层:汇聚层也被称为分布层,它是网络接入层和核心层的“中介”,相当于公司的中层管理,用来连接核心层和接入层,处于中间位置,它在工作站接入核心层前先做汇聚,以减轻核心层设备的负荷。
不难理解,汇聚层也就汇聚层具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。在汇聚层中,应该采用支持三层交换技术和VLAN的交换机,以达到网络隔离和分段的目的。

③ 接入层:通常将网络中直接面向用户连接或访问网络的部分称为接入层,也就相当于公司架构里的基层员工,因此接入层交换机具有低成本和高端口密度特性。

接入层为用户提供了在本地网段访问应用系统的能力,主要解决相邻用户之间的互访需求,并且为这些访问提供足够的带宽,接入层还应当适当负责一些用户管理功能(如地址认证、用户认证等),以及用户信息收集工作(如IP地址、MAC地址、访问日志等)

项目网络设计分层连接对象性能要求目的路由功能
核心层交换机三级三层以上交换设备最高路由和高速转发支持
汇聚层交换机二层/三层交换机和路由器中等提供策略连接支持
接入层交换机二层电脑最低终端接入支持

7.服务架构

7.1 接入层

最外层是接入层,通过负载均衡接入请求到内部平台,这些请求既有外部互联网请求,也有公司内部其它系统的请求。

7.2 网关层

网关层是微服务架构的核心层,是业务层接收外部流量的屏障。

网关层的主要作用:

对接入的流量进行反向路由。
拦截所有的请求,通过横切的方式完成熔断、限流、安全认证等功能。
对请求进行分类,例如内部网关、H5网关、图片网关。

7.3 业务服务层

我们常说的微服务就集中在这一层,这里包含了系统核心的业务逻辑。业务服务层可以简单的划分为聚合层与基础层。

基础层提供单一简单的基础服务,例如人员、订单、支付。聚合层则是将不同的基础层聚合在一起,完成复杂的业务处理。

7.4 支撑服务层

支撑服务层提供非业务功能,以支撑业务服务层和网关层软件的正常运行。

核心模块有服务注册发现、集中配置、容错限流、认证授权、日志聚合、监控告警、后台中间件(异步队列、缓存、数据库、任务调度)

7.5 平台服务层

平台服务层站在系统平台的角度上,处理系统发布、资源调度整合等功能。

核心模块有发布系统、资源调度、容器镜像治理、资源治理、IAM。

7.6 基础设置层

这一层与软件关系不大,主要是支撑系统需要的硬件资源,包括计算、网络、存储、监控、安全、IDC等。

总:
微服务架构涉及功能模块众多,并不是每一个公司都有能力搭建一套完整的微服务架构。当我们从零开始搭建微服务架构时,可以优先考虑网关层、业务服务层以及支撑服务层中的注册发现、集中配置、认证授权这些核心功能,其它的功能模块再逐步完善。另外我们也可以选用已经比较成熟的架构来快速搭建微服务,例如SpringCloud。最后大家可以结合文章的架构图思考一下,自己公司目前的微服务架构,已经具备了图中的哪些功能,还有哪些功能是可以进一步完善或者新增的。

8. 云服务的架构

VPC
云资源接入区:天翼云路由器(含二层网关)、防火墙(业务、IT ) 天翼云的ELB(业务、IT))
DMZ区域 :nginx1 nginx2(业务) nginx1 nginx2 (IT)
APP区域 :业务平台、注册中心、网关(traefik) 还有其他平台门户 能力放开平台(IT) 能力中心(IT)
PAAS区域: TELDB CTGMQ CTGCACAHE CTDFS 等

二.系统命令总结

1. 基本命令

根据命令手册或命令的详解

https://editor.csdn.net/md/?articleId=130405002

https://editor.csdn.net/md/?articleId=130432529

1.1 线上查询及帮助命令

man:查看命令帮助,更复杂的还有info,但不常用。

help:查看Linux内置命令的帮助,比如cd命令

1.2 文件和目录操作命令

ls:全拼list,功能是列出目录的内容及其内容属性信息。

cd:全拼change directory,功能是从当前工作目录切换到指定的工作目录。

cp:全拼copy,其功能为复制文件或目录。

find:查找的意思,用于查找目录及目录下的文件。

mkdir:全拼make directories,其功能是创建目录。

mv:全拼move,其功能是移动或重命名文件。

pwd:全拼print working directory,其功能是显示当前工作目录的绝对路径。

rename:用于重命名文件。

rm:全拼remove,其功能是删除一个或多个文件或目录。

rmdir:全拼remove empty directories,功能是删除空目录。

touch:创建新的空文件,改变已有文件的时间戳属性。

tree:功能是以树形结构显示目录下的内容。

basename:显示文件名或目录名。

dirname:显示文件或目录路径。

chattr:改变文件的扩展属性。

lsattr:查看文件扩展属性。

file:显示文件的类型。

md5sum:计算和校验文件的MD5值。

1.3 查看文件及内容处理命令

cat:全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

tac:是cat的反向拼写,因此命令的功能为反向显示文件内容。

more:分页显示文件内容。

less:分页显示文件内容,more命令的相反用法。

head:显示文件内容的头部。

tail:显示文件内容的尾部。

cut:将文件的每一行按指定分隔符分割并输出。

split:分割文件为不同的小片段。

paste:按行合并文件内容。

sort:对文件的文本内容排序。

uniq:去除重复行。

wc:统计文件的行数、单词数或字节数。

iconv:转换文件的编码格式。

dos2unix:将DOS格式文件转换成UNIX格式。

diff:全拼difference,比较文件的差异,常用于文本文件。

vimdiff:命令行可视化文件比较工具,常用于文本文件。

rev:反向输出文件内容。

grep/egrep:过滤字符串,三剑客老三。

join:按两个文件的相同字段合并。

tr:替换或删除字符。

vi/vim:命令行文本编辑器。

1.4 文件压缩及解压缩命令

tar:打包压缩。

unzip:解压文件。

gzip:压缩工具。

zip:压缩工具。

1.5 信息显示命令

uname:显示操作系统相关信息的命令。

hostname:显示或者设置当前系统的主机名。

dmesg:显示开机信息,用于诊断系统故障。

uptime:显示系统运行时间及负载。

stat:显示文件或文件系统的状态。

du:计算磁盘空间使用情况。

df:报告文件系统磁盘空间的使用情况。

top:实时显示系统资源使用情况。

free:查看系统内存。

date:显示与设置系统时间。

cal:查看日历等时间信息。

搜索文件命令

which:查找二进制命令,按环境变量PATH路径查找。

find:从磁盘遍历查找文件或目录。

whereis:查找二进制命令,按环境变量PATH路径查找。

locate:从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库。

1.6 用户管理命令

useradd:添加用户。

usermod:修改系统已经存在的用户属性。

userdel:删除用户。

groupadd:添加用户组。

passwd:修改用户密码。

chage:修改用户密码有效期限。

id:查看用户的uid,gid及归属的用户组。

su:切换用户身份。

visudo:编辑/etc/sudoers文件的专属命令。

sudo:以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。

1.7 基础网络操作命令

telnet:使用TELNET协议远程登录。

ssh:使用SSH加密协议远程登录。

scp:全拼secure copy,用于不同主机之间复制文件。

wget:命令行下载文件。

ping:测试主机之间网络的连通性。

route:显示和设置linux系统的路由表。

ifconfig:查看、配置、启用或禁用网络接口的命令。

ifup:启动网卡。

ifdown:关闭网卡。

netstat:查看网络状态。

ss:查看网络状态。

1.8 深入网络操作命令

nmap:网络扫描命令。

lsof:全名list open files,也就是列举系统中已经被打开的文件。

mail:发送和接收邮件。

mutt:邮件管理命令。

nslookup:交互式查询互联网DNS服务器的命令。

dig:查找DNS解析过程。

host:查询DNS的命令。

traceroute:追踪数据传输路由状况。

tcpdump:命令行的抓包工具。

1.9 磁盘与文件系统的命令

mount:挂载文件系统。

umount:卸载文件系统。

fsck:检查并修复Linux文件系统。

dd:转换或复制文件。

dumpe2fs:导出ext2/ext3/ext4文件系统信息。

dumpe:xt2/3/4文件系统备份工具。

fdisk:磁盘分区命令,适用于2TB以下磁盘分区。

parted:磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。

mkfs:格式化创建Linux文件系统。

partprobe:更新内核的硬盘分区表信息。

e2fsck:检查ext2/ext3/ext4类型文件系统。

mkswap:创建Linux交换分区。

swapon:启用交换分区。

swapoff:关闭交换分区。

sync:将内存缓冲区内的数据写入磁盘。

resize2fs:调整ext2/ext3/ext4文件系统大小。

1.10 系统权限及用户授权相关命令

chmod:改变文件或目录权限。

chown:改变文件或目录的属主和属组。

chgrp:更改文件用户组。

umask:显示或设置权限掩码。

1.11 系统用户登录信息的命令

whoami:显示当前有效的用户名称,相当于执行id -un命令。

who:显示目前登录系统的用户信息。

w:显示已经登录系统的用户列表,并显示用户正在执行的指令。

last:显示登入系统的用户。

lastlog:显示系统中所有用户最近一次登录信息。

users:显示当前登录系统的所有用户的用户列表。

finger:查找并显示用户信息。

1.12 内置命令及其它

echo:打印变量,或直接输出指定的字符串

printf:将结果格式化输出到标准输出。

rpm:管理rpm包的命令。

yum:自动化简单化地管理rpm包的命令。

watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。

alias:设置系统别名。

unalias:取消系统别名。

date:查看或设置系统时间。

clear:清除屏幕,简称清屏。

history:查看命令执行的历史记录。

eject:弹出光驱。

time:计算命令执行时间。

nc:功能强大的网络工具。

xargs:将标准输入转换成命令行参数。

exec:调用并执行指令的命令。

export:设置或者显示环境变量。

unset:删除变量或函数。

type:用于判断另外一个命令是否是内置命令。

bc:命令行科学计算器。

1.13 系统管理与性能监视命令

chkconfig:管理Linux系统开机启动项。

vmstat:虚拟内存统计。

mpstat:显示各个可用CPU的状态统计。

iostat:统计系统IO。

sar:全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。

ipcs:用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。

ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识。

strace:用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

ltrace:命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。

1.14 关机/重启/注销和查看系统信息的命令

shutdown:关机。

halt:关机。

poweroff:关闭电源。

logout:退出当前登录的Shell。

exit:退出当前登录的Shell。

Ctrl+d:退出当前登录的Shell的快捷键。

1.15 进程管理相关命令

bg:将一个在后台暂停的命令,变成继续执行 (在后台执行)。

fg:将后台中的命令调至前台继续运行。

jobs:查看当前有多少在后台运行的命令。

kill:终止进程。

killall:通过进程名终止进程。

pkill:通过进程名终止进程。

crontab:定时任务命令。

ps:显示进程的快照。

pstree:树形显示进程。

nice/Denice:调整程序运行的优先级。

nohup:忽略挂起信号运行指定的命令。

pgrep:查找匹配条件的进程。

runlevel:查看系统当前运行级别。

init:切换运行级别。

service:启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态

2. 优化命令

对系统会怎么优化(五大负载)——(查看进程,占比大的进程是否可以优化):vmstat、 sar 、iostat、 top
负载优化:top 、uptime 、w
sar -u 1 3:查看cpu的使用情况,间隔1s,监测3次
–u:输出cpu使用情况和统计信息

2.1 优化命令——mpstat

2.1.1 mpstat的语法格式

mpstat的语法:

mpstat [-p {ALL}] [internal [count]]

2.1.2 mpstat命令参数

参数解释

-p :指定要监控哪个CPU ,范围是 [0~n-1] ,ALL表示监控所有CPU都监控

nternal : 相邻两次采样的间隔时间

count :采样的次数

2.1.3 示例

mpstat -P ALL 3 2 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUQ1i8PW-1687010246630)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230615191317047.png)]

mpstat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvUAk1Oa-1687010246631)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230615191503291.png)]

mpstat命令的各列含义

显示各列的含义

显示参数描述
CPU显示的是某个CPU 还是全部CPU all=全部
%usr表示用户所有使用的CPU百分比
%nice表示使用 nice 值的 CPU 的百分比。
%sys表示内核进程使用的 CPU 百分比。
%iowait表示等待进行 I/O 所使用的 CPU 时间百分比。
%irq表示用于处理系统中断的CPU百分比
%soft表示用于软件中断的CPU百分比
%steal虚拟机占用CPU时间的百分比
%guest虚拟机占用CPU时间的百分比
%gniceCPU运行niced guest虚拟机所花费的时间百分比
%idleCPU的空闲时间的百分比

2.2 优化命令——top

top 命令,按下大写的 P,可以按 CPU 使用率来排序显示

可以查看出所有服务

特点:实时会动态更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J51lGQQI-1687010246633)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230615192555354.png)]

2.3 优化命令——free

free 命令的输出中,除了总内存大小以外,都是对系统当前内存使用情况的实时报告。

用于实时显示系统的内存使用情况。其输出结果包含以下几列信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LRgy01hk-1687010246634)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230615193635806.png)]

  • total:系统可用的总内存大小;
  • used:已使用内存大小;
  • free:剩余可用内存大小;
  • shared:被共享使用的内存大小;
  • buff/cache:缓存的内存大小(即缓存和缓冲区占用的内存大小);
  • available:当前可用的内存大小。

2.4 优化命令——nload

nload 是一款基于命令行的网络流量监测工具,可用于实时监测系统网络接口的流量和吞吐量,并以图形化方式展示数据。nload 提供了以下信息:

  • 定义了网络流量的单位;
  • 显示进出网络流量、总上传和下载速率及其峰值;
  • 显示包/分的统计信息;
  • 显示协议(TCP/IP)的统计信息。

nload 可以在多种系统(如 Linux、macOS 和 BSD)中使用,并且可以方便地集成到 shell 脚本中,用于监控系统网络连接并实时获取相关数据。在进行网络优化、性能测试或开发任务时,nload 提供了一个便捷的方式来实时监测网络流量,从而更加方便的了解网络状况并掌握网络流量的情况。需要注意的是,nload 要求管理员以 root 用户或具有相应权限的用户身份运行。

2.5 优化命令——iostat

iostat 是一款用于监控 CPU、磁盘、网络设备等的系统负载的 Linux 命令行工具。它可以提供实时的 CPU 使用率、磁盘 I/O 状况、网络使用情况、以及系统运行状态的报告。

iostat 的输出包括以下几项用于评估系统负载和磁盘 I/O 性能的指标:

  • CPU:CPU 使用率及其分解情况;
  • Device:存储设备的 I/O 统计信息;
  • FileSystem:文件系统的 I/O 统计信息;
  • Network:网络接口的统计信息(收发包数、传输速率等);
  • Load Average:系统负载平均值等。

管理员可以根据 iostat 输出的信息来监测系统性能瓶颈和磁盘 I/O 压力等情况,以便对系统进行进一步的优化和调整。需要注意的是,在使用 iostat 命令时,常用的 options 包括 -c(显示 CPU 统计数据)、-d(显示磁盘 I/O 数据)、-n(显示网络设备统计数据)、-m(显示统计单位为兆字节)、-t(显示时间戳)。

2.6 优化命令——cpuinfo

/proc/cpuinfo 文件是 Linux 系统中包含了系统上每个 CPU 核心信息的一个伪文件系统文件。管理员可以通过读取该文件来获取有关 CPU 硬件信息的详细信息,用于分析系统性能和诊断问题。其中包含了的信息包括:

  • processor:CPU 的处理器编号,从 0 开始计算。
  • vendor_id:CPU 制造商名称(如 GenuineIntel 代表英特尔、AuthenticAMD 代表 AMD)。
  • cpu family:CPU 家族编号,同一家族的 CPU 处理器支持相同的功能集。
  • model name:CPU 的型号名称、速度以及规范。
  • cache size:CPU 带有的缓存大小。
  • cpu MHz:CPU 的时钟频率(以 MHz 为单位)。
  • core id:CPU 内核的编号,从 0 开始计算。
  • cpu cores:CPU 内核数量。
  • flags:各种 CPU 功能的标志位,例如 MMX、SSE、AVX 等。

根据 /proc/cpuinfo 文件中所提供的信息,管理员可以识别 CPU$type,了解系统的硬件环境,以便更好地管理和配置系统。例如,如果需要更好地优化系统性能或者进行硬件故障的排除,/proc/cpuinfo 文件中的硬件信息可以帮助管理员更加精准地定位问题和解决问题。同时,需要注意的是,/proc/cpuinfo 文件中的信息取决于当前系统中的 CPU 硬件环境,因此每台计算机的 CPU 硬件信息可能会各不相同。

2.7 优化命令——iotop

iotop 是一款 Linux 系统下的磁盘 I/O 监测工具,用于实时监测正在活动的进程和线程的磁盘 I/O 请求,可以帮助管理员更好地监控和分析 I/O 繁忙进程或线程。iotop 提供的信息应包括:

  • 进程或线程的 PID;
  • 进程或线程的名称;
  • 进程或线程的用户;
  • 实时的读写 I/O 带宽大小;
  • 实时的读写 I/O 请求数量;
  • 实时的读写 I/O 处理时间。

iotop 命令需要以 root 用户或具有相应权限的用户身份运行。使用该命令可以帮助管理员更加清晰地了解磁盘 I/O 繁忙的进程或线程、磁盘 I/O 的整体使用情况以及 I/O 瓶颈的原因。同时,需要注意的是,iotop 监测的是每个进程或线程的独立磁盘 I/O 操作情况,而不是某个磁盘分区或整个系统的 I/O 操作。

2.8 优化命令——taskset

taskset 是一款 Linux 系统中的命令行工具,可以用来限制进程的 CPU 亲和性。在多核 CPU 的系统上,taskset 可以指示系统只在指定的 CPU 核心上运行该进程的代码。该命令可以通过以下参数来指定运行进程的 CPU 亲和性:

  • -c, --cpu-list:指定进程运行在哪些 CPU 上(例如0,2)。
  • -p, --pid:指定要修改的进程 ID。

例如,以下命令将 ID 为 12345 的进程绑定到 CPU 核心 0 和 2 上运行:

taskset -p 0x5 12345

此外,taskset 还提供了其他选项,如 -q, --query(查询一个进程的 CPU 亲和性)以及 -h, --help(获取帮助文档)等选项。

可以通过使用 taskset 命令,让管理员更加精确地控制系统上进程所使用的 CPU 资源,有助于提升系统的性能和稳定性。注意,taskset 命令需要以 root 权限运行。

2.9 优化命令——vmstat

vmstat 是一款 Linux 和 Unix 系统下的命令行工具,用于实时监视 CPU、内存、磁盘 I/O、进程、系统环境等各种系统参数。它可以提供以下几类信息:

  • 基本的 CPU 使用率和上下文切换数据;
  • 内存使用情况(内存使用量、空闲内存、缓存使用量等);
  • 虚拟内存和系统调用的统计数据;
  • 磁盘 I/O 使用情况(读写请求量、块大小,分区 I/O 活动,块累计值等);
  • 进程的实时数据,包括运行队列、页换出量、坏内存等信息。

vmstat 可以通过给定不同的参数调整输出内容和频率(如 -a 参数显示所有信息、-w 参数指定输出宽度等),以满足不同场景下的需求。使用 vmstat 命令,管理员可以快速获取系统的整体状态和性能指标,为系统调优和问题排查提供支持。需要注意的是,vmstat 只能提供实时的数据报告,不能进行历史记录或长期的趋势分析。

2.10 优化命令——uptime

uptime 是一款 Linux 和 Unix 系统下的命令行工具,用于列出运行系统已经运行了多长时间,并且系统的平均负载情况。其输出结果包含三个数据点,分别为:

  • 当前时间,格式为 “当前时间:系统已经运行了多长时间”;
  • 当前系统的平均负载情况,包括在过去 1 分钟、5 分钟和 15 分钟内的平均负载情况。

其中,平均负载是描述系统繁忙程度的一个指标,它表示在一段特定时间内的平均活跃进程数,即当前正在使用 CPU 或等待 CPU 的进程数量。如果系统的平均负载高于 CPU 核心数量,则可能说明系统存在过多的活跃进程,这可能会导致系统性能下降。管理员可以使用 uptime 命令来快速获取系统的负载情况,以便及时响应问题并进行调整和优化。还需要注意的是,uptime 命令只提供实时的运行时间和负载数据,不能提供历史记录或长期趋势分析。

2.11 优化命令——nice

调 整 nice 值 改 变 进 程 优 先 级

nice 是 Linux 和 Unix 中的一个命令行工具,用于启动进程时设置进程的优先级。每个进程都有一个优先级值,通常为 0,可以在 -20(最高优先级)到 +19(最低优先级)之间进行调节。进程的优先级值越高,获取 CPU 时间片的机会就越多,运行速度就越快。

使用 nice 命令可以使用如下指令来启动一个带有指定优先级的进程:

nice -n <priority> <command>

其中 <priority> 表示要指定的进程优先级值,范围从 -20 到 +19,<command> 表示要启动的进程的命令和选项。例如:

nice -n -5 command

此命令将以优先级值 -5 启动进程 command

需要注意的是,启动进程时使用 nice 命令来设置进程的优先级需要使用 root 权限或具有 CAP_SYS_NICE 权限的用户才能完成。正常用户在启动进程时只能将进程的优先级值增加(低于 0),而不能降低(高于 0)。

2.12 优化命令——ulimit

ulimit 是 Linux 和 Unix 系统中的一个命令行工具,用于限制用户对一些系统资源的使用,例如为用户分配最大的核心转储文件大小、任务数、最大打开文件描述符等。

ulimit 的使用与语法为:

ulimit [option] [value]

其中,option 表示资源类型,如 -a 表示显示所有资源的限制,-n 表示设置或显示打开文件描述符的最大值等;value 表示要设置的资源限制值。如果只使用 ulimit 命令而不加参数,则默认为设置或显示进程可用的最大内存大小。

使用 ulimit 命令可以限制一个用户可以使用的系统资源数量,也可以进行系统调优以提高系统性能。需要注意的是,ulimit 的使用会影响系统进程和用户对系统资源的使用,因此需要管理员谨慎设置相应的值。

2.13 优化命令——time

命 令 测 试 进 程 运 行 时 间 time dd if=/dev/zero of=/test.dbf bs=1M count=200

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4yfplqlD-1687010246634)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230615195444804.png)]

三.网络服务总结

1. ftp

  • 文本传输协议,网络上控制文件双向传输,客户端和服务端可以实现传输,
  • 有不同操作系统的FTP,但都是遵守同一种协议
  • 使用的协议是TCP,用端口进行通信——20、21
  • 20端口的作用:建立数据连接,传输连接数据————被动模式的过程(特点:被动模式使用的更多,更容易穿越防火墙,注在实验的环境下关闭防火墙
  • 21是控制连接,传输FTP的控制命令————主动模式的过程

2. DHCP工作原理

2.1 典型的C/S模式

在网络中架设一台专用的 DHCP 服务器,负责集中分配 各种网络地址参数(主要包括 IP 地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址);其他主机作为 DHCP 客户机,将网卡配置为自动获取地址,即可与 DHCP 服务器进行通信,完成自动配置过程

DHCP 是 C/S 模式,DHCP 服务端和客户端需要保持通信,DHCP 基于 UDP 协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。
Server 端:DHCP Server(运行 dhcp 服务)
UDP 服务:监听端口 67(bootps)
Client 端:DHCP Client(运行 dhcp 程序)
UDP 服务:监听端口 68 (bootpc)

2.2 DHCP的分配方式

(1)自动分配是当 DHCP 客户机第一次成功地从 DHCP 服务器获取到一个 IP 地址后, 就永久地使用这个 IP 地址。
(2)手动分配是由 DHCP 服务器管理员专门指定 IP 地址。
(3)动态分配是当 DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用。

2.3 DHCP工作原理

DHCP工作原理 广播进行,先到先得 一个网络中只能有一个DHCP
四次回话
(1)客户机请求 IP 地址 当一个 DHCP 客户机启动时,客户机还没有 IP 地址,所以客户机要通过 DHCP 获取一个合法的地址。此时DHCP客户机以广播方式发送 DHCP Discover 发现信息来寻找 DHCP 服务器,

(2)服务器响应 当 DHCP 服务器接收到来自客户机请求 IP 地址的信息时,它就在自己的 IP 地址池中 查找是否有合法的 IP 地址提供给客户机。如果有,DHCP 服务器就将此 IP 地址做上标记, 加入到 DHCP Offer 的消息中,然后 DHCP 服务器就广播一则 DHCP Offer 消息

(3)客户机选择 IP 地址 DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP 服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。之后 DHCP 客户 机会向服务器发送 DHCP Request 消息。

(4)服务器确定租约 DHCP 服务器接收到 DHCP Request 消息后,以 DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有 IP 地址的有效租约和其他可配置的信息。当客户机收到 DHCP ACK 消息时,它就配置了 IP 地址,完成 TCP/IP 的初始化。

3. DNS域名解析

3.1 DNS是什么?

DNS域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)

3.2 TCP与UDP作用

① TCP是用来做区域传送,多用于主从同步
在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息

② UDP是用来做DNS解析的
域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name ,它能准确表示出其相对于 DNS 域树根的位置, 也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“.”分隔,对于DNS 域google来说,其完全正式域名(FQDN)为google.com。
例如,google 为 com 域的子域,其表示方法为 google.com,而 www 为 google 域中的子域, 可以使用www.google.com. 表示。

注意:通常,FQDN 有严格的命名限制,长度不能超过 256 字节,只允许使用字符 a-z,0-9,A-Z 和减号(-)。点号(.)只允许在域名标志之间(例如“google.com”)或者 FQDN 的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域

即全域名:同时带有主机名和域名的名称
FQDN = Hostname + DomainName
如:www.baidu.com.
注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.
域名结构:
http://www.sina.com.cn./
http://主机名.子域.二级域.顶级域 根域/

3.3 两种查询方式

(1)递归查询

客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。

(2)迭代查询

客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反

3.4 域名代理/注册/购买服务商

-新网,http://www.xinnet.com
-万网,http://www.net.cn
-中国互联,http://hulian.top
中国数据
阿里云
腾讯云
西部数码
亚马逊

域名体系结构
所有的域名必须以点结尾
www.qq.com. www.baidu.com.
根域名(.)
一级域名:.cn(中国) .us() .tw(台湾) .kr(韩国) .jp(日本) .hk(香港)uk(英国) …
二级域名:.com.cn(中国商业组织) edu.cn(教育机构) .org.cn(非盈利) .net.cn(中国运营商)
三级域名:sina.com.cn nb.com.cn haixi.com.cn …

组织域:.com .org .net .CC
国家域:.cn(中国) .tw(台湾) .hk(香港) .iq .ir .jp(日本)
反向域

114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
223.5.5.5 和 223.6.6.6:阿里云DNS
IPV6 2400:3200::1 和 2400:3200:baba::1
江苏省南京市(中国电信)
首选DNS为:218.2.135.1 备用DNS为:61.147.37.1

FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。从全限定域名中包含的信息可以看出主机在域名树中的位置。
正向解析:FQDN--------IP(一对多)------一般使用正向解析
反向解析:IP------------FQDN

3.5 ssh

3.5.1 根据安全策略进行调优

18位 密码复杂性(大写、小写、字符、数字) 端口(1023以上叫做高位端口1922) 做好安全

对未经过安全认证的RPM包进行安全检查
Linux用户方面的加固
设定密码策略
对用户密码强度的设定
对用户的登录次数进行限制
禁止ROOT用户远程登录
设置历史命令保存条数和账户超时时间
设置只有指定用户组才能使用su命令切
换到root用户
对Linux账户进行管理
对重要的文件进行锁定,即使ROOT用户也无法删除
建立日志服务器

3.5.2 根据安全中的漏洞进行升级

升级openssh漏洞

3.5.3 fail2ban

程序下载地址:http://www.fail2ban.org/wiki/index.php/Downloads,

实战背景:
最近公网网站一直被别人暴力破解 SSHD 服务密码。虽然没有成功,但会导致系统负载很高,原因是在暴力破解的时候,系统会不断地认证用户,从而增加了系统资源额外开销,导致访问公司网站速度很慢。
然而fail2ban 程序可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送 e-mail 通知系统管理员,很实用、很强大!
简单来说其功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作 的相关 IP 利用 iptables 加入到dorp 列表一定时间。

4. NFS共享存储

(1)NFS(网络文件服务)是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
NFS 也是 NAS 存储 设备必然支持的一种协议。
(2)NAS存储:NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
nfs端口号2049
RPC端口号111

(3)实验步骤:
1、安装nfs和rpcbind软件
2、修改配置文件设置共享
3、创建共享目录
4、开启服务
5、客户端验证共享目录可访问

5. PXE高效批量网络装机

5.1 PXE含义

PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE 、client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将
要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

tftp协议端口号:69

5.2 PXE优点

  • 规模化:同时装配多台服务器;
  • 自动化:安装系统、配置各种服务;
  • 远程实现:不需要光盘、U 盘等安装介质。

5.3 PXE特点

(1)客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。 
网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。 
服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。 其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。

(2)KickStart 概述

KickStart 是一种无人职守安装方式。KickStart 的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成 KickStart 安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果 KickStart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启系统,并结束安装。

5.4PXE服务的构建过程

5.4.1PXE服务器和客户机的工作过程:

1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。 2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面。
6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。
7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作

5.4.2搭建 PXE 远程安装服务器

所需安装包
vsftpd //用来放置安装镜像,通过ftp访问镜像安装
dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos //用来给客户机分配ip
syslinux-4.05-15.el7.x86_64.rpm //用来提供pxe的引导程序
tftp-server.x86_64 0:5.2-22.el7.rpm //用来提供引导镜像文件的下载
xinetd.x86_64 2:2.3.15-14.el7 //用来托管tftp
system-config-kickstart.noarch 0:2.9.7-1.el7.rpm //用来无人值守安装

环境准备:
一台作为pxe服务器,一台作为裸金属客户机,绑定同一块网卡,裸金属客户机vmnet1网卡取消勾选dhcp配置
关闭selinux和防火墙

主机服务器地址:192.168.198.11主机名:test1

一台主机:1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署
3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux //用来提供pxe的引导程序
5)xinetd //用来托管tftp
6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装
7)kickstart //用来无人值守安装

四.shell脚本总结

1.编写脚本的思路

  • 明确脚本的功能
  • 编写脚本时会使用到那些命令 ? useradd passwd for
  • 把变化的数据使用变量表示
  • 选择适合的流程控制 (选择 、 循环 、分支)

2.生产案列

2.1使用 awk 统计 httpd 访问日志中每个客户端 IP 的出现次数?

 awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' /var/log/httpd/access_log备注:定义数组,数组名称为 ip,数字的下标为日志文件的第 1 列(也就是客户端的 IP 地址)
,++的目的在于对客户端进行统计计数,客户端 IP 出现一次计数器就加 1。END中的指令在读取完文件后执行,通过循环将所有统计信息输出。

2.2连续输入错误密码 3 次,则报警

编写脚本,用户输入密码,脚本判断密码是否正确,输入正确则提示正确,连续输入错误密码 3 次,则报警?

#!/bin/bash
init=123456
for I in {1..3}
do
read -p "请输入密码:" pass
if [ $pass == $init ];then
echo "密码正确"
break
fi
done
echo "警告:密码错误" 

2.3监控磁盘情况,异常发邮件

#!/bin/bash
disk_sda1=df -h |sed -n '3p'|awk '{print $4}'|cut -f 1 -d '%'
if((disk_sda1 > 80));
thenecho “this is error”echo date “192.168.198.11 this is over 70%” |mail -s “disk over 70%” 12345300@qq.com,5645645@qq.com
elseecho “this is ok”
fi

2.4 ip 登录失败超过3进行告警

#!/bin/ bash
x=`awk '/Failed password/{ip[$11]++}END{for(i in ip){print i","ip[i]}}' /var/log/secure`
for j in $x
do
ip=`echo $j | awk -F "," '{print $1}'`
num=`echo $j | awk -F "," '{print $2}'`
if [ $num -ge 3 ];then
echo "警告! $ip访问本机失败了$num次,请速速处理!"
fi
done

2.5通过shell脚本来防止暴力破解ssh

通过自定义的shell脚本来防护安全
# /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/satools/black.txtDEFINE="10"for i in `cat /root/satools/black.txt`
do
IP=`echo $i|awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`if[ $NUM -gt $DEFINE ]; then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ]; then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done

2.6shell一般用在哪里

一键部署
重复工作
日志分割
文件比对
备份
监控(zabbix)
ansible shell模块
健康检查

系统初始化
数据库初始化
巡检
定期清理(超期日志)

3.Linux文本三剑客(grep、sed、awk)

3.1grep

对文本的内容进行过滤,针对行处理

格式:grep [选项]…查找条件 目标文件

例子:

cat 123.txt | grep -v "^$" > test.txt————过滤掉123.txt里的空行将内容传送给test.txt

详细grep选项参数查看

https://blog.csdn.net/Katie_ff/article/details/131012472?spm=1001.2014.3001.5501

3.2sed

sed命令是对文本内容进行增删改查,生效才会存入硬盘中,不然会存在缓冲区

格式:sed -e ’操作‘ 文件1 文件2…

详细sed选项参数查看

https://blog.csdn.net/Katie_ff/article/details/131074342?spm=1001.2014.3001.5501

3.3awk

awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。

以空格做为分隔符,多个空格他会自动压缩成一个

格式:awk ‘{print}’ 文件名

详细awk选项参数查看

https://blog.csdn.net/Katie_ff/article/details/131097842?spm=1001.2014.3001.5501

五.安全总结

1. iptables

1.1四表五链

  • 规则表的作用:容纳各种规则链; 表的划分依据:防火墙规则的作用相似

  • 规则链的作用:容纳各种防火墙规则;规则的作用:对数据包进行过滤或处理 ;链的分类依据:处理数据包的不同时机

  • 总:表里有链,链里有规则

1.2四表

  • raw:主要用来决定是否对数据包进行状态跟踪 包含两个规则链,OUTPUT、PREROUTING
  • mangle : 修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING
  • -nat:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。
  • -filter:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即INPUT、FORWARD、 OUTPUT

1.3 规则链之间的匹配顺序

(1)主机型防火墙:

数据包直接进入到防火墙所在的服务器的内部某一个应用程序当中,是不是我只是路过服务器吧,是直接进入到服务
入站数据(来自外界的数据包,且目标地址是防火墙本机) : PREROUTING—— INPUT ——本机的应用程序
出站数据(从防火墙本机向外部地址发送的数据包):本机的应用程序——OUTPUT——POSTROUTING
(2)网络型防火墙:
转发数据(需要经过防火墙转发的数据包) : PREROUTING——FORWARD——POSTROUTING

1.4规则链内的匹配顺序

自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行 要么丢弃
若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

注:按第一条规则……第二条规则的顺序进行匹配处理,遵循“匹配即停止”的原则,
一旦找到一条匹配规则将不再检查后续的其他规则,如果一直找不到匹配的规则,就按默认规则处理。
默认规则用iptables -L查看,规则链后面出现(policy ACCEPT)即是默认放行
默认策略不参与链内规则的顺序编排
-F清空链时,默认策略不受影响

1.5数据包在规则表、链间的匹配流程

  • 入站数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理(是 否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的 目标地址是防火墙本机(如 Internet 用户访问网关的 Web 服务端口),那么内核将其传 递给 INPUT 链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序 (如 httpd 服务器)进行响应。

  • 转发数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理,然 后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访 问 QQ 服务器),则内核将其传递给 FORWARD 链进行处理(允许转发或拦截、丢弃), 最后交给 POSTROUTING 链(是否修改数据包的地址等)进行处理。

  • 出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS 服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再 交 POSTROUTING 链(是否修改数据包的地址等)进行处理。入站 preROUTING input 应用程序 output postrouting

1.6iptables 基本语法、数据包控制类型

语法构成

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

其中,表名、链名用来指定 iptables 命令所操作的表和链,未指定表名时将默认使用 filter 表;

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包,不给出任何回应信息。
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。
  • LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则。
  • SNAT:修改数据包的源地址。
  • DNAT:修改数据包的目的地址。
  • MASQUERADE:伪装成一个非固定公网IP地址。

1.7 iptables 命令的常用管理选项

管理选项用法示例
-A在指定链末尾追加一条 iptables -A INPUT (操作)
-I在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作)
-P指定默认规则 iptables -P OUTPUT ACCEPT (操作)
-D删除 iptables -t nat -D INPUT (操作)
-R修改、替换某一条规则 iptables -t nat -R INPUT (操作)
-L查看 iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
–line-number规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number
-F清除链中所有规则 iptables -F (操作)
-X清空自定义链的规则,不影响其他链 iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S查看链的所有规则或者某个链的规则/某个具体规则后面跟编号

详细查看

https://blog.csdn.net/Katie_ff/article/details/131135959?spm=1001.2014.3001.5501

1.8SNAT、DNAT策略及应用

1.8.1SNAT策略

SNAT又称源地址转换。
源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址
就是把内网地址转成指定的IP地址,这个iP地址可以访问公网

1.8.2DNAT策略

目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。
通常来说,合法地址的数量比起本地内部的地址数量来要少得多。

私网地址只能作为源地址来访问公网IP,而无法作为目标地址被其他主机访问
所以DNAT将私网中web服务器映射到公网IP,使其公网IP作为目标地址被公网中主机进行访问。

2.firewalld

2.1firewalld概述

firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。

firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过滤子系统(属于内核态)来实现包过滤防火墙功能。

firewalld提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算)并且拥有两种配置模式:运行时配置与永久配置。

firewalld 与iptables 的区别:

  1. iptables主要是基于接口,来设置规则,从而判断网络的安全性。
    firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

  2. iptables 在/etc/sysconfig/iptables 中储存配置,
    firewalld将配置储存在/etc/firewalld/(优先加载)和/usr/lib/firewalld/(默认的配置文件)中的各种 XMD文件里。

3.使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接。

4.iptables 防火墙类型为静态防火墙
firewalld 防火墙类型为动态防火墙

firewalld 区域的概念:
firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone〉。然后根据数据包的源Ip地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

2.2firewalld防火墙预定义了9个区域:

1、trusted(信任区域):允许所有的传入流量。
2、public(公共区域):允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。
3、external(外部区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。
默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。
4、home(家庭区域)∶允许与ssh、ipp-client、mdns、samba-client或dhcpvi-client预定义服务匹配的传入流量,其余均拒绝。
5、internal (内部区域):默认值时与home区域相同。
6、work(工作区域)∶允许与 ssh、ipp-client、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
7、dmz(隔离区域也称为非军事区域):允许与 ssh预定义服务匹配的传入流量,其余均拒绝。
8、block(限制区域) :拒绝所有传入流量。
9、drop (丢弃区域):丢弃所有传入流量,并且不产生包含ICMP的错误响应。

2.3 firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。
firewalld检查数据包的源地址的规则:
1.若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
2.若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
les主要是基于接口,来设置规则,从而判断网络的安全性。
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

  1. iptables 在/etc/sysconfig/iptables 中储存配置,
    firewalld将配置储存在/etc/firewalld/(优先加载)和/usr/lib/firewalld/(默认的配置文件)中的各种 XMD文件里。

3.使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接。

4.iptables 防火墙类型为静态防火墙
firewalld 防火墙类型为动态防火墙

firewalld 区域的概念:
firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone〉。然后根据数据包的源Ip地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

2.2firewalld防火墙预定义了9个区域:

1、trusted(信任区域):允许所有的传入流量。
2、public(公共区域):允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。
3、external(外部区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。
默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。
4、home(家庭区域)∶允许与ssh、ipp-client、mdns、samba-client或dhcpvi-client预定义服务匹配的传入流量,其余均拒绝。
5、internal (内部区域):默认值时与home区域相同。
6、work(工作区域)∶允许与 ssh、ipp-client、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
7、dmz(隔离区域也称为非军事区域):允许与 ssh预定义服务匹配的传入流量,其余均拒绝。
8、block(限制区域) :拒绝所有传入流量。
9、drop (丢弃区域):丢弃所有传入流量,并且不产生包含ICMP的错误响应。

2.3 firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。
firewalld检查数据包的源地址的规则:
1.若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
2.若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
3.若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则


http://www.ppmy.cn/news/440990.html

相关文章

Spring AOP讲解

目录 Spring AOP概念 AOP适用场景 AOP 组成 1、切面&#xff08;Aspect&#xff09; 2、切点&#xff08;Pointcut&#xff09; 3、通知&#xff08;Advice&#xff09; 4、连接点&#xff08;Join Point&#xff09; Spring AOP实现 添加AOP框架依赖 定义切面和切点…

选择排序代码

时间复杂度O&#xff08;n&#xff09;

iOS审核规则

条款和条件 • 1.1 为App Store开发程序&#xff0c;开发者必须遵守 Program License Agreement (PLA)、人机交互指南&#xff08;HIG&#xff09;以及开发者和苹果签订的任何其他协议和合同。以下规则和例证旨在帮助开发者的程序能获得App Store的认可&#xff0c;而不是修改…

苹果审核指南(中文)

前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言&#xff0c;这对于成千上万的开发员来说一直都是一项值得投入的事业&#xff0c;我们希望帮助您加入这个成功的组织。我们发布了《App Store审核指南》&#xff08;App Store Review Guidelines&a…

苹果App Store审核指南中文翻译(2014.9.1更新)

CocoaChina对《苹果应用商店审核指南》中文翻译最近一次更新时间为2014-02-27&#xff0c;文中红色部分是相对于2014-02-27版本的新增内容&#xff0c;蓝色表示苹果相关官方文档的链接。 &#xff08;注&#xff1a;CocoaChina对《苹果应用商店审核指南》中文翻译最近一次更新时…

截止9月10日苹果审核指南中文版

苹果在9月3日对App Store审核指南进行了重大更新&#xff0c;新添加了扩展、HealthKit、HomeKit以及TestFlight相关内容。另外&#xff0c;在9月10日新品发布会之后&#xff0c;苹果再次更新了App Store审核指南&#xff0c;添加Apple Pay相关内容。文中红色部分是相对于此前版…

iOS-AppStore上线被拒的各种理由...

1、程序有重大bug&#xff0c;程序不能启动&#xff0c;或者中途退出。 2、绕过苹果的付费渠道&#xff0c;我们之前游戏里的用兑换码兑换金币。 3、游戏里有实物奖励的话&#xff0c;一定要说清楚&#xff0c;奖励由本公司负责&#xff0c;和苹果没有关系。 4、用到苹果的标…

苹果App Store审核指南中文翻译(更新)

http://www.cocoachina.com/ios/20140227/7892.html &#xff08;注&#xff1a;<苹果应用商店审核指南>中文翻译最近一次更新为2013-03-04&#xff0c;文中红色部分是相对于2013-03-04版本的新增内容&#xff0c;绿色部分代表更改的内容&#xff0c;蓝色表示苹果相关官方…