汇总
操作系统三大类:windows unix linux
信号传输
物理:无线电波、电流、光纤
了解: console口 : 为网络设备用来与计算机或终端设备==进行连接的常用端口(console接口是用来配置交换机的)还有AUX口。
主流服务器类型(刀片、小型机...)
小型机:只适合集中式应用
特点:高运算处理能力(多cpu,高速I/O通道)、高可靠性(unix系统)、高服务性(精准定位故障)、高可用性(冗余电源、I/O、散热)
刀片机:是趋势
特点:降低硬件成本、简化部署和维护(减少机架安装和布线)、减小占地面积、方便管理(不依赖特定软件和电脑应用)、分布式应用系统(适合集中式和分布式应用)、灵活、支持热插拔
CI/CD(持续集成、持续交互) 比如Jenkins
代码的持续集成和持续交互
优点:重复的工作用自动化代替,减少时间成本,缩短版本发布的时间。
IAAS(基础设施即服务) PAAS(平台即服务) SAAS(软件即服务)
物理层(服务器、交换路由设备、防火墙、负载均衡器...) --->> 部署(操作系统)、基础架构及软件(云) --->> 部署应用代码(为用户提供服务)
redhat7 默认xfs innode size=256 mkfs.xfs -i size=512 /dev/sdb5
端口:每一个端口对应一个应用 ;端口是内核的功能,工作在内核的tcp/ip协议栈中
固定端口:0-1023
随机端口:半随机:1024-32767
纯随机:32768-65535
如何对软件做优化方法:配置文件,主程序,内存(调缓冲缓存等)
存储(常见三类):DAS(直接附加存储),NAS(网络附加存储),SAN(光纤存储)
IP-SAN (集三种方式优点;在san外面加一层ip封装):iscsi ---->>共享存储
端口:3260/tcp
iscsi:根据物理存储设备建立后端卷,将后端卷与“(lun)逻辑名称”iqn(逻辑名称的唯一标识符)关联(关联就叫lun)起来--->(即:访问iqn就是访问那个后端卷;即底层那个物理存储)一个iqn就是客户端的一个target(目标)
sudo :让普通用户能以root身份运行各种命令,且不需要root密码
tcp:是面向连接的协议,带有差错恢复机制,是可靠的数据连接协议
udp:面向非连接的协议,尽力而为的转发,不可靠,连接传输速度快
如何对操作系统做优化:改内核 更新升级内核
更新内核:增加减少一些功能
对内核做优化:修改内核配置文件 --/etc/sysctl.conf
服务软件运行所需:主程序,配置文件,块设备,文件系统,ip地址
smtp :port=25 邮局协议 服务器端
pop3 :port=110
imap : port=143 邮件客户端
ntp服务(ntp协议)*****端口123
snmp :简单网络管理协议(从远端采集数据) port=161/udp
zabbix :server-default-listen-port=10051
agent-default-listen-port=10050
tcpwrapper的功能
#vim /etc/hosts.allow
sshd:192.168.0.248:tom 允许tom在192.168.0.248访问sshd
一·openssh port=22 ----c/s架构 telnet-port=23
是: (基于TCP连接加密的远程传输协议)支持X11 相比于Telnet更加安全
做: 远程连接服务器对数据传输加密(远程连接和远程拷贝)
**ssh充分利用了公钥加密,对称加密,单向加密实现数据安全登录
模式:两种认证方式:基于口令 :用户名密码
基于秘钥 : 非对称加密(rsa或dsa算法)
双向加解密:甲方收到请求随机生成字符串用乙方的公钥加密后发给乙方,乙方用私钥解密得到的字符串用甲方的公钥加密返还,甲方私钥解密后与原字符串对比一致 ok。
ssh优化可从(配置文件)哪几个方面:1·端口
也可称为服务访问控制手段------ 2·监听地址
3·不允许root用户远程登录
4·不允许使用密码登录
5·设定黑白名单
6·重要服务器一般不使用公网ip
7·防火墙限制登录ip
ssh连接效率影响-----
1·dns反向解析
2·是否进行认证(gssapiauthentication)
--@ ssh(22端口)的客户端sftp-server(port=115)---支持批量上传,支持单个文件超过4G,支持断点续传(可远程登录目录)。
#sftp 用户@远程Ip:远程目录
二·ftp服务 c/s架构
port=(命令连接21,data连接主动20,data连接被动随机)
是:基于TCP(文件传输协议)默认持久连接,靠超时断开连接
做:文件的上传下载
文件传输格式:主-binary 辅-ascii
**工作模式(相对服务器):主动模式,被动模式(推荐)
**两个连接:命令连接,数据连接
三类用户: 1·匿名用户
2·本地用户(本地用户禁锢)
禁锢: *****
chroot_local_user=YES
禁锢的白名单:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
黑白名单:
ftpusers 允许输入密码,但是登陆不成功
user_list 根本不允许输入密码
默认两个文件都为黑名单
设定白名单: user_list可以切换成白名单
userlist_deny=NO
3·虚拟用户
---生成账号密码文件
---文件导入数据库
---修改pam认证
---修改主配文件(开启虚拟用户,设定映射用户)
---为虚拟用户设定根目录
修改主配置文件: 指定虚拟用户配置文件的根目录
#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/virtualusers
#mkdir /etc/vsftpd/virtualusers
#vim /etc/vsftpd/virtualusers/zhangsan
local_root=/etc/vsftpd/zhangsandir
注释: 在virtualusers目录中,跟虚拟用户同名的文件,为该虚拟用户的配置文件
local_root代表去指定虚拟用户的根目录
虚拟ftp:在一台主机,提供多个ftp服务进程,为不同网络提供服务
--@tftp-port=69:简单文件传输协议,基于udp不支持交互
三·DHCP port=67(服务器),68(客户端)
是: 基于udp 动态主机配置协议 由bootp发展而来
**做: 自动分配和管理ip地址,更多在交换路由设备上实现
优点:减少人为配置错误,方便管理,ip地址可回收利用
缺点:只能去管理自己分配的ip地址,默认不能跨路由转发(跨路由需‘中继’)
**客户端获取ip地址过程:
----discover 客户端广播找dhcp服务器(广播靠mac地址)
----offer 服务器端响应广播回复ip包
----request 客户端请求选择ip,发送广播回应,要使用该ip
----ack 服务器确认向客户端单播提供此ip地址
主机绑定:客户端mac地址与ip绑定
租约: (续约只发送request)默认组约时间逢半续约,三次后重新发送
discover发现服务器
中继器: 对客户端发送的广播包做数据的封装,发送给服务器
四·NFS port=2049 mount-port=892(不常用)(udp)rpcbind-port=111 软件:nfs-utils、nfs-utils-lib
(侧重Linux主机之间资源访问)
是: 基于TCP 靠远程过程调用实现网络文件系统共享
优点:节省本地存储,集中存储方便管理,可减少网络上可移动介质设备数量
可实现:虚拟用户映射,nfs服务自动挂载与卸载
**原理细说:远程过程调用的过程(首先由本地发起本地系统调用将调用的过程由rpcbind发往远端,远端进行认证映射用户,开启nfs进程,向内核发起系统调用后返还)
共享目录配置文件
/etc/exports
目录 IP(选项)
选项:
ro/rw : 只读/读写
root_squash: root用户的所有请求被映射为anonymous,默认
all_squash: 映射所有的用户为匿名用户
anonuid: 指定匿名用户的UID
anongid: 指定匿名用户的GID
sync: 同步写入
async: 异步写入
目录导出
exportfs
-a:重新导出所有,重新挂载所有文件系统,或者取消所有
-u: 取消导出
-r: 重新导出
-v: 显示详细信息
showmount -e NFS_SERVER: 查看NFS服务器“导出”的各文件系统
客户端挂载使用
# mount -t nfs 192.168.0.236:/nfsshare 挂载点 //此处IP为nfs服务器IP
五·Samba、c/s架构 port=(‘tcp’smb=139,445 ‘udp’nmb=137,138)
cifs协议是smb协议的一个版本
可实现windows与Linux之间资源共享(netbios是Windows基于主机实现的互通机制)
不同于nfs,samba可直接授权不同的用户不同权限来在线修改数据
Samba是Linux和unix系统上实现SMB协议的软件;SMB是一种在局域网上共享文件和打印机的一种通信协议
实现:nmbd udp协议负责名称解析(netbios)
smbd tcp协议可靠的数据传输来管理共享目录 档案 打印机(smb)
可做访问控制:黑白名单 监听地址 用户映射权限
配置共享:
[share_name]
comment =
path =
browseable =
public =
guest ok =
valid users =
write list =
read list =
writeable =
read only =
使用共享:
登录: smbclient -U user_name //192.168.0.246/share_name
挂载: mount -t cifs -o username=,password= //192.168.0.246/share_name /mount_point
windows: 映射
添加smb用户:
smbpasswd -a -x -d -e
pdbedit -L -a -x -u
下载文件:
smbget smb://192.168.0.246/share_name/file_name -u username -ppassword
用户映射:
username map = /etc/samba/smbusers
smbusers --> loring = zhangsan lisi wangwu
监听地址:
interfaces = eth0
bind interfaces only = yes
访问控制:
host allow = 192.168.0.
六·DNS port=(udp)53 c/s架构 解析ip和域名 软件 : bind
dns服务器的分类
主DNS服务器、从DNS服务器、转发DNS服务器、缓存服务器
是:层次化分布式域名系统,将域名转化为ip的服务
结构体系:根域,顶级域,二级域,子域,主机名
dns查询:递归查询(客户端与服务器),迭代查询(服务器与服务器)
使用的协议及端口
tcp 53:主要用于主从同步,需要的是可靠的数据传输
主udp 53:主要用于客户端查询域名
域名解析过程(udp报文)
客户机向本地域名服务器发送dns请求报文,本地收到后查询有则返回,无则向根域请求,从根域向下逐级往复询问。
高速缓存:提高dns查询效率。减轻服务器负荷
优化:dns-prefetch,即dns预获取
内容-----
主从: 可以实现一主多从;主要是为了减轻主服务器压力
主备: 为了保证主服务器正常运行,一旦主服务器坏掉,备服务器接管服务;保证服务不间断(在主从中,找其中一个从服务器,当作备服务器;主备靠资源转移实现)
正向解析:由域名到IP
反向解析:由IP到域名
DNS转发 --全局转发和特定区域转发
虚拟子域
泛解析 --可以让域名支持很多子域名,实现所有次子域名均指向同一域名ip
访问控制 ---acl
负载均衡: 为了减轻单体服务器压力
高可用: 保证服务不间断
SOA:起始授权记录,一个区域只能有一个SOA记录,必须在第一条
NS:域名服务记录
A:FQDN-->IPV4
AAAA:FQDN-->IPV6
CNAME:别名记录
PTR:IP-->FQDN
MX:邮件交换,必须要有一个邮件交换,具有优先级的概念 0--99 数字小的优先级高
序列号:serial, 也即是数据库的版本号;
刷新时间间隔:refresh, 从服务器每多久到主服务器检查序列号更新状况;
重试时间间隔:retry, 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;
过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;
fqdn -----> 完全合格域名
七·web主流服务器 apache (httpd主程序)https-port=443
port=80(tcp)
HTTP:超文本传输协议 是一个无状态的协议,随用随连,数据传输结束可自动断开
URL :统一资源定位器
http协议:
客户端:头文件请求
服务端:头文件回应
客户端:实体请求
服务端:实体回应
web服务器的工作原理:
1)连接过程
2)请求过程
3)应答过程
4)关闭连接
apache工作模式: *****
三种工作模式:
基于进程方式:prefork 子进程
基于线程方式:worker
基于事件方式:events
-----基于进程:
<IfModule prefork.c>
StartServers 8 默认开启8个服务进程
MinSpareServers 5 最少的空闲进程为5
MaxSpareServers 20 最多的空闲进程为20
ServerLimit 256 一个进程最多响应多少个客户端
MaxClients 256 每个服务进程能开启多少个子进程
MaxRequestsPerChild 4000 每个子进程最大请求数量,子进程生命周期
</IfModule>
基于线程:
<IfModule worker.c>
StartServers 4 开启多少个服务进程
MaxClients 300 最大的客户端连接数
MinSpareThreads 25 最小的空闲线程数量
MaxSpareThreads 75 最大的空闲线程数量
ThreadsPerChild 25 每个进程开启多少个线程
MaxRequestsPerChild 0 子进程不会自动消亡
基于事件:
一旦有事件请求,才产生进程
------访问页面的状态码:
2XX: 正确访问
3XX: 页面发生了重定向
4XX: 客户端错误
5XX: 服务器端错误
可实现 ----
虚拟主机:基于ip,基于端口,基于域名
《四种控制》
目录控制:<Directory /var/www/html> 索引 软连接 基本认证(类型basic,digest)
模块控制:<IfModule mod_userdir.c> 加载哪些核心模块(静态模块以.c结尾) “loadModule -- 加载的为功能模块(动态模块以.so结尾)”
命令 :apachectl -l 查看http加载的核心模块 -M 查看http加载的所有模块
文件控制:<Files ~ "^.ht"> (Order allow,deny Deny from all)控制文件可不可以被看到,(Satisfy All)可不可以被引用
客户端搜索路径控制:#<Location /server-status> 开启该配置段也要开启 --> #ExtendedStatus On
个人站点
虚拟目录
网页重定向
检测apache服务器状态和信息 一)利用status模块 或者是info模块
二)webalizer
https
日志文件---面试题:统计访问apache服务的每个客户端及其访问次数
八·PXE无人值守
设置客户机bios从pxe启动
客户机网路中请求dhcp获取IP地址
dhcp下发ip,引导文件(pxelinux.0)位置,tftp服务器地址
客户机请求dhcp获取引导文件,
并执行,请求tftp获取配置文件(pxelinux.cfg),找到vmlinux,initrd.img,ks文件
启动内核,开启临时文件系统,通过ks文件找到网络yum源安装所需软件
完成,重启
-----------------------------------------------------------------------------------------------------
防火墙
硬件: 一层,阻止数据到达目标物理设备
软件: 四层,阻止数据流入内核的某个位置
----@ DDOS:攻击 措施:首先增大带宽,设定物理防火墙
概念:防火墙是位于两个或多个网络间,实行网络间访问控制的一组组件集合的硬件或软件(用于互联网与企业间信息安全,监控往来传输)。
功能:隔离网络,划分网络区域,指定访问策略控制在不同区域间数据传输。
实现:Linux防火墙功能由内核实现
iptables: rhel6
靠内核中一个名称为netfilter的模块实现
用户空间管理工具: iptables --> 向内核发起系统调用,调用netfilter模块
netfilter: 调用其它5个内核函数
五个链: 五个内核工作区域;五个内置链(主链)-------对应五个钩子函数
五链:是规则的实现;本质就是向函数传递参数;规则一旦定义,立即生效
PREROUTING INPUT FORWARD OUTPUT POSTROUTING
四表:逻辑概念,功能的集合(功能的体现);是具有相同功能链的集合
filter: 过滤;默认就使用该表
INPUT FORWARD OUTPUT
nat: 地址转换
PREROUTING OUTPUT POSTROUTING
mangle: 标记
PREROUTING INPUT FORWARD OUTPUT POSTROUTING
raw: 追踪
PREROUTING OUTPUT
匹配条件
地址转换
自定义链