马哥教育第十六天至十九天学习总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了马哥教育第十六天至十九天学习总结相关的知识,希望对你有一定的参考价值。

第十七天

raid

raid 0 条带化 chunk size nmin(size) 读写的提升 至少2块盘
raid 1 镜像 min(size) 写性能略降低,读性能提升 至少2块盘
raid 5 奇偶校验 (n-1)
min(size) 至少3块盘
raid 6 奇偶校验 (n-2)*min(size) 至少4块盘
raid 10 先做多个raid1,再组成raid0 安全性优于raid01
raid 01 先做多个raid0,再组成raid1
raid 50 先做多个raid5,再组成raid0,安全性略低于raid10

mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sdc /dev/sdd
mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sde /dev/sdf
mdadm -C /dev/md1 -a yes -n 2 -l 1 -x 1 /dev/sd{e,f,g}
-C 创建raid
-a yes 自动创建raid设备/dev/mdX
-n num 阵列中磁盘的数量
-l num 阵列的等级
-x num 热备盘的数量
mdadm -D /dev/md0 查看raid信息
cat /proc/mdstat 查看全部的raid信息
mdadm -S /dev/md0 停止raid
mdadm -A /dev/md0 /dev/sdc /dev/sdd
cat /proc/mdstat
mdadm -D -s > /etc/mdadm.conf 将raid信息保存至文件
mdadm -A -s 激活/etc/mdadm.conf中的所有raid设备
mdadm -F /dev/md1 实时监控raid状态
------------------以下四条命令,仅限raid1,raid5
mdadm /dev/md1 -f /dev/sdf 将md1中的sdf设置为坏的设备
mdadm /dev/md1 -r /dev/sdf 将md1中的sdf从raid成员中删除
mdadm /dev/md1 -a /dev/sdf 向md1中增加新成员sdf
mdadm -G /dev/md1 -n 3 -a /dev/sdh 将raid1 md1的成员数量改为3,并加入新的成员(不是加为热备盘)

mdadm --zero-superblock /dev/sdc 删除某块硬盘的raid信息

共享热备盘实现方式
mdadm -D -s > /etc/mdadm.conf
在需要共享的多组raid信息最后分别都写上spare-group=magedu
然后再加一新行,顶头写MAILADDR [email protected]
service mdmonitor restart

作业
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录
3:创建一个raid50,由7块盘组成,其中一块为热备盘,最终容量为6G大小,chunk大小为1M,要求热备盘共享,创建为ext4文件系统,开机自动挂载到/magedata目录下。

第十八天

LVM
pvcreate /dev/sda9 /dev/md1
pvs
pvdisplay

vgcreate vgmagedu /dev/sda9
vgs
vgdisplay

lvcreate -L 55M -n lv2801 vgmagedu
lvcreate -l 10 -n lv2802 vgmagedu
lvcreate -l +100%FREE -n lv2803 vgmagedu

lvs
lvdisplay

扩展逻辑卷
如果卷组空间不够扩展需求,应先扩展卷组
vgextend vgmagedu /dev/md1 (如没有可用pv,应该先创建pv)
lvextend /dev/vgmagedu/lv2801 -L 100M
resize2fs /dev/vgmagedu/lv2801

如果卷组空间足够,直接扩展
lvextend -L 200M /dev/vgmagedu/lv2801 -r (加上-r一步到位,即扩展逻辑卷,同时扩展文件系统大小)

对于xfs文件系统,也可直接在lvextend中直接用-r,一步到位,如果要分开操作,先扩展逻辑卷,再拉伸文件系统,则应该使用xfs_growfs如下
xfs_growfs /dev/vgmagedu/lv2801

减小逻辑卷
1.umount
2.e2fsck -f /dev/vgmage01/lv2801
3.resize2fs /dev/vgmage01/lv2801 100M
4.lvreduce -L 100M /dev/vgmage01/lv2801

将包含lvm的磁盘迁移到其他主机
1.umount /mnt/datatest/
2.vgchange -an vgtest
3.vgexport vgtest
4.迁移硬盘
5.在新的主机pvscan
6.vgimport vgtest
7.vgchange -ay

将某个pv从vg中删除,但该pv包含数据
1.pvmove /dev/sda9 [/dev/md1]
2.vgreduce vgmagedu /dev/sda9
3.pvremove /dev/sda9

逻辑卷快照
copy on write (COW)
lvcreate -s -L 100M -n lvmagedu-snap /dev/vgmagedu/lvmagedu

练习:
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

网络管理
curl -I www.microsoft.com 查看目标网站使用的web server信息
smb samba

99.999%

OSI
ISO
ios

802.11 a/b/g/n 2.4G ac ad

80 http
443 https
3168 代理
53 dns tcp/udp
25 smtp
110 pop3
143 imap
993 imaps
995 pop3s
21 ftp
22 ssh
23 telnet

修改孤儿进程等待时间
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

修改内核管理的孤儿进程的数量
echo 100000 > /proc/sys/net/ipv4/tcp_max_orphans

作业:
1.在centos6上部署http服务,将页面内容设置为It works.
2.在centos6上清空所有的防火墙策略,并设置仅centos7的主机可以访问到Centos6上的http服务。
3.在物理机上安装wireshark,对虚拟机网卡进行监控状态。
4.在centos7上使用curl 访问centos6主机的http服务,并在wireshark上查看tcp包的抓包信息
5.在自习课时间(可访问internet),使用centos6主机利用nslookup命令查看www.baidu.com的ip地址,并查看wireshark包中对udp协议的抓包信息。
6.在centos7上ping centos6主机,并在wireshark中查看icmp包的抓包状态。

TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接,

一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的 描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同 步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数 据。

需要了解的信息:

ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。

FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
技术分享图片
技术分享图片
首先由Client发出请求连接即 SYN=1 ACK=0 (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=x
然后 Server 进行回复确认,即 SYN=1 ACK=1 seq=y, ack=x+1, 再然后 Client 再进行一次确认,但不用SYN 了,这时即为 ACK=1, seq=x+1, ack=y+1.
然后连接建立,为什么要进行三次握手呢(两次确认)。
建立三次握手主要是因为A发送了再一次的确认,那么A为什么会再确认一次呢,主要是为了防止已失效的连接请求报文段又突然传送给B,从而产生了错误。
所谓“已失效的连接请求报文”是这样产生的,正常情况下,A发出连接请求,但是因为连接报文请求丢失而未收到确认,于是A再重传一次连接请求,后来收到了请求,并收到了确认,建立了连接,数据传输完毕后,就释放链接,A共发送了两次连接请求报文段,其中第一个丢失,第二个到达了B,没有“已失效的连接请求报文段”,但是还有异常情况下,A发送的请求报文连接段并没有丢失,而是在某个网络节点滞留较长时间,以致延误到请求释放后的某个时间到达B,本来是一个早已失效的报文段,但是B收到了此失效连接请求报文段后,就误以为A又重新发送的连接请求报文段,并发送确认报文段给A,同意建立连接,如果没有三次握手,那么B发送确认后,连接就建立了,而此时A没有发送建立连接的请求报文段,于是不理会B的确认,也不会给B发送数据,而B却一直等待A发送数据,因此B的许多资源就浪费了,采用三次握手的方式就可以防止这种事情发生,例如刚刚,A不理会B,就不会给B发送确认,B收不到A的确认,就知道A不要求建立连接,就不会白白浪费资源,

技术分享图片
当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接, B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图), A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。
为什么要等待呢?
为了这种情况: B向A发送 FIN = 1 的释放连接请求,但这个报文丢失了, A没有接到不会发送确认信息, B 超时会重传,这时A在 WAIT_TIME 还能够接收到这个请求,这时再回复一个确认就行了。(A收到 FIN = 1 的请求后 WAIT_TIME会重新记时)

另外服务器B存在一个保活状态,即如果A突然故障死机了,那B那边的连接资源什么时候能释放呢? 就是保活时间到了后,B会发送探测信息, 以决定是否释放连接

为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

ARP欺骗
由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。

ARP解释
ARP(Address Resolution Protocol)是地址解析协议,
是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(也就是相当于OSI的第三层)地址解析为数据链路层(也就是相当于OSI的第二层)的物理地址(注:此处物理地址并不一定指MAC地址)。
ARP原理
某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的

ARP协议
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。

1) 什么是ARP欺骗?在局域网中,黑客经过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC) 地址, 黑客就伪装为A,告诉B (受害者) 一个假地址,使得B在发送给A 的数据包都被黑客截取,而B 浑然不知。
2) 为什么黑客能够进行ARP欺骗? ARP 是个早期的网络协议,RFC826在 1980就出版了。早期的互联网采取的是信任模式,在科研、大学内部使用,追求功能、速度,没考虑网络安全。尤其以太网的洪泛特点,能够很方便的用来查询。但这也为日后的黑客开了方便之门。黑客只要在局域网内阅读送上门来的ARP Request就能偷听到网内所有的 (IP, MAC)地址。而节点收到ARP Reply时,也不会质疑。黑客很容易冒充他人
3) 能够防止欺骗吗?不能。但这种伤害的伤害已经很小。因为局域网的工作环境有了改变, 服务器通常不会和终端主机在同一个局域网。但如果黑客对主机发送ARP欺骗分组,向它伪造了网关的地址,或对网关发送ARP欺骗分组,向网关伪造了主机的mac地址,则主机也无法正常和因特网上服务器交流。

ARP缓存表
在每台装有tcp/ip协议的电脑里都有一个ARP缓存表,表里的ip地址与mac地址是一一对应的,如图。
arp缓存表
arp缓存表
以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标的mac地址,直接把目标的mac地址写入帧里面发送就可以了;如果在ARP缓存表里面没有目标的MAC地址,主机A就会在网络上发送一个广播,目标mac地址是“ff-ff-ff-ff-ff-ff”,这表示向同一网段的所有主机发出这样的询问:“192.168.1.1的mac地址是什么呀?”网络上的其他主机并不回应这一询问,只有主机B接受到这个帧时才向A作出回应:“192.168.1.1的mac地址是00-aa-0-62-c6-09。(如上表)”这样,主机A就知道了主机B的mac地址,就可以向主机B发送信息了。同时,它还更新了自己的ARP缓存表,下次再向B发送数据时,直接在ARP缓存表找就可以了。ARP缓存表采用老化的机制,在一段时间里表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询的速度。
查看ARP缓存表
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看arp缓存表的内容了。
用“arp -d”可以删除arp缓存表里的所有内容。
用“arp -s“可以手动在arp表中指定ip地址与mac地址的对应关系。

以上是关于马哥教育第十六天至十九天学习总结的主要内容,如果未能解决你的问题,请参考以下文章

马哥教育第20天至23天学习总结

学习python第十六天, 一周总结

马哥教育M28第十三天到第十五天学习总结

Python 学习第十六天 html 前端内容总结

IT十八掌掌第十六天课程总结

Python 基础学习第十六天