linux / 运维技术 · 2023年8月25日 0

知识点3

1. yum私有仓库的实现

1、安装httpd工具并启动httpd服务

#yum -y install httpd

#systemctl enable –now httpd

2、下载epel所有yum仓库的相关包和meta数据

yum仓库服务器端在/etc/yum.repo.d/目录下配置epel源

shell

复制代码[BaseOS] name=BaseOS baseurl=file:///misc/cd/BaseOS https://mirror.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/ https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/ https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/ https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ gpgcheck=0 [AppStream] name=AppStream baseurl=file:///misc/cd/AppStream https://mirror.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/ https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/ https://mirrors.cloud.tencent.com/centos/8/AppStream/x86_64/os/ https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/ gpgcheck=0 [epel] name=EPEL baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch gpgcheck=0 enabled=1 [extras] name=extras baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/os https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os gpgcheck=0 enabled=1 [PowerTools] name=CentOS- - PowerTools - mirrors.aliyun.com baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/PowerTools/$basearch/os/ https://mirrors.cloud.tencent.com/centos/$releasever/PowerTools/$basearch/os/ https://mirrors.huaweicloud.com/centos/$releasever/PowerTools/$basearch/os/ https://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/ gpgcheck=0 enabled=1 gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

2.TCP/IP

1) OSI参考模型: 由ISO国际标准化组织提出OSI网络国际标准:开放系统互联OSI

定义了网络互联的7层框架:物理层(Physical)、数据链路层(DataLink)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentaion)、应用层(Application)

2) TCP/IP参考模型: TCP/IP(Transmission Control Protocol/Internet Protocol),是当下实际的业界标准。

TCP/IP参考模型与OSI参考模型对比,TCP/IP参考模型将网络分为四层,其中“网络访问层”对应的是OSI参考模型的数据链路层和物理层,并将OSI参考模型的会话层、表示层和应用层合并为“应用层”。TCP/IP模型可以说是四层也可以说是五层,五层的TCP/IP参考模型使用最为广泛。

3.TCP协议和三次握手及四次挥手

TCP与UDP概念:

  • TCP:传输控制协议,即面向连接;
  • UDP:用户数据报协议,无连接的,即发送数据之前不需要建立连接

三次握手:

  1. 第一次握手,主机A向主机B发出一个含同步序列号的标志位的数据段给主机B ,向主机B请求建立连接。通过这个数据段,A向B声明通信请求,以及告知B可用某个序列号作为起始数据段进行响应;
  2. 第二次握手,主机B收到主机A的请求后,用一带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应A。通过此数据段,B向A声明已收到A的请求,A可以传输数据了,同时告知A可用某个序列号作为起始数据段进行响应;
  3. 第三次握手,主机A收到主机B的数据段后,再发送一个确认应答,确认已收到主机B 的数据段,之后开始正式实际传输数据。

ACK:TCP报头的控制位之一,对数据进行确认。确认由目的端发出,来告知发送端这个序列号之前的数据段都收到了。比如,确认号为X,则表示前X-1个数据段都收到了。只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,此时会要求重传数据,保证数据的完整性。

SYN:同步序列号,这个标志位只有在TCP建立连接时才会被置1,握手完成后SYN标志位被置0。

四次断开:

  1. 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求;
  2. 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;
  3. 主机B再提出反方向的关闭请求,将FIN置1;
  4. 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。

TCP与UDP的优缺点上的区别:

  • TCP的优点:

可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

  • TCP的缺点:

慢、效率低、占用系统资源高、易被攻击:TCP在传递数据之前,要先建连接,需要消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接。同时,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

DoS:拒绝服务(Denial of Servic),造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。

DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service),DDoS攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

  • UDP的优点:

快、比TCP稍安全、没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。

UDP Flood攻击检测:短时间内向特定目标不断发送 UDP 报文,致使目标系统负担过重而不能处理合法的传输任务,就发生了 UDP Flood。启用 UDP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机响应的 UDP 连接速率超过该值,防火墙会输出发生 UDP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。

  • UDP的缺点:

不可靠、不稳定。因为UDP没有那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

应用场景

  • TCP应用场景:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

  • UDP应用场景:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快。比如QQ语音、QQ视频、TFTP。

4.配置网卡IP

centos

查看网卡状态

ip a

修改网卡配置文件内容

vim /etc/sysconfig/network-scripts/ifcfg-网卡名

重启网卡服务

systemctl restart network

ubuntu 采用netplan来管理网络配置计划,在/etc/netplan/目录下有一个以yaml结尾的文件

进网卡配置文件

vim /etc/netplan/00-installer-config.yaml

使网卡配置文件生效命令

netplan apply

5.实现免密登陆脚本, expect登陆远程主机,将生成的密钥写入到目标主机, expect测试远程登陆。

  1. 通过shift读取脚本参数
  2. 通过select来选择功能,例如功能有:安装mysql;安装apache;免密钥登陆主机
  3. 通过函数封装每个功能
  4. 将免密钥登陆的过程可以重复进行, while 循环实现重复,需要有退出过程。当用户输入exit时,退出免密钥功能。
  5. 支持输入一批主机免密钥,使用数组实现

js

复制代码login_ssh(){ hostip=$1 shift password=$1 shift host=($hostip $password) echo "正在免密登录..." expect -c ' spawn ssh '${host[0]}' expect { "yes/no" { send "yes\n"; exp_continue } "password" { send "'${host[1]}'\n" } } interact ' } install_mysql(){ echo 正在安装mysql... yum -y install mysql } install_apache(){ echo 正在安装apache... yum -y install apache } menu(){ while true;do PS3="请输入1-4选择功能:" MENU=' 安装mysql 安装apache 免密码登录主机 退出 ' select num in $MENU;do case $REPLY in 1) install_mysql break; ;; 2) install_apache break; ;; 3) login_ssh #IP地址192.168.xxx.xxx #密码123456 break; ;; 4) exit ;; esac done done } menu