DHCP

  • DynamicHostConfigurationProtocol
  • 动态主机配置协议
  • 基于广播通信

    • 服务端端口67
    • 客户端端口68

      配置内容

  • IP

  • NETMASK
  • GATEWAY
  • DNS
  • 租约期限等

    工作原理

    image.png
    image.png

    PPT

    DHCP动态主机配置协议.pptx

    DNS

    域名解析过程

    image.png

    服务

    image.png

    三大配置文件

    主配置文件

    image.png

    区域配置文件

    image.png

    数据配置文件

    image.png

    三个相关文件

    image.png

    实战

    单机配置

  • /etc/named.conf

image.png

  • /etc/named.rfc1912.zones(一个正向解析,一个反向解析)

image.png

  • /var/named/xx.xx(一个正向解析,一个反向解析)
    • cp -a named.localhost baidu.localhost image.png
    • cp -a named.loopback baidu.loopback

image.png

  • 启动服务 ```shell systemctl stop firewalld

systemctl start named

netstat -tunlp | grep 53

  1. - 测试
  2. ```shell
  3. # 配置DNS指向自己的服务
  4. /etc/resolv.conf
  5. # 测试
  6. ping
  7. nslookup
  8. curl

主从配置

  • 在单机配置的基础上(单机即为主)做以下修改
  • 主服务器只需改动如下配置文件
    • /etc/named.rfc1912.zones

image.png

  • 从服务器配置
    • yum install -y bind
    • /etc/named.conf

image.png

  • /etc/named.rfc1912.zones

image.png

  • 启动服务并查看同步情况 ```shell systemctl start named cd /var/named/slaves ls

    查看到同步过来的数据即为同步成功

systemctl stop firewalld

  1. - 客户端测试
  2. ```shell
  3. # 配置DNS为从的IP
  4. /etc/resolv.conf
  5. # 测试
  6. ping
  7. nslookup
  8. curl

缓存配置

  • 缓存服务器可以集成多个渠道的查询结果
    • 配置的主DNS服务器
    • 缓存服务器本身的DNS服务器
    • 缓存服务器本身的/etc/hosts配置

image.png

智能解析

运营商分离

  • 移动
  • 电信

    内外网分离

  • 内网

  • 外网

主要效果

  • 内网访问时解析到内网IP
  • 外网访问时解析到外网IP

主要配置

  • 主要是通过DNS主配置文件的view段区分不同配置文件

image.png
image.png

  • 对应的zones配置

    1. cp -a /etc/named.rfc1912.zones /etc/lan.zones
    2. cp -a /etc/named.rfc1912.zones /etc/wan.zones

    image.png
    image.png

  • 对应数据配置文件

    1. cp -a /var/named/named.localhost /var/named/lan.localhost
    2. cp -a /var/named/named.localhost /var/named/wan.localhost

    image.png
    image.png

  • 启动服务并测试

    PPT

    DNS 域名系统服务.pptx

    Telnet

    服务端

    ```shell yum i -y telnet-server systemctl start telnet

服务默认开启在23端口

  1. <a name="oCJ6B"></a>
  2. ## 客户端
  3. ```shell
  4. yum i -y telnet
  5. telnet IP PORT # 测试指定IP和端口服务
  6. telnet IP # 默认请求IP的23端口
  7. # 登录到23端口,需要输入用户名、密码登录主机,类似ssh客户端工具可以远程操作,缺点是明文传输

SSH

SSH客户端

  • 客户端默认配置文件 /etc/ssh/ssh_config
  • xshell
  • terminal
  • 配置免密

image.png

SFTP客户端

  • 基于SSH22端口的ftp服务 ```shell

    登录

    sftp root@192.168.1.188

命令

ls lls

cd lcd

pwd lpwd

put get

quit

  1. <a name="EQYUs"></a>
  2. ## 服务端
  3. - 默认端口22
  4. - 默认配置文件 /etc/ssh/sshd_config
  5. ```shell
  6. # 禁用密码登录
  7. PasswordAuthentication no
  8. # 禁用root远程登录
  9. PermitRootLogin no
  10. # 修改默认端口
  11. Port 55555
  12. # 修改绑定IP
  13. ListenAddress IP

VSFTP

  • VerySecureFTP

    连接类型

    控制连接

  • 持续连接

  • TCP 21
  • 命令信道
  • 用于收发FTP命令

    数据连接

  • 按需连接

  • TCP 20
  • 数据信道
  • 用于上传下载数据

    工作模式

    Port

  • 主动模式

  • 默认

image.png

Passive

  • 被动模式

image.png

传输模式

Binary

ASCII

image.png

登录验证方式

匿名用户

  • 账号
    • ftp
    • anonymous
  • 密码
  • 工作目录
    • /var/ftp
  • 默认权限

    • 默认可下载,不可上传
    • 上传权限
      • 文件系统目录权限
      • 服务主配置文件

        本地用户

  • 账号

    • /etc/passwd中的系统用户
  • 密码
    • /etc/shadow中的对应的密码
  • 工作目录
    • 用户家目录
  • 默认权限
    • 家目录的最大权限
  • (特殊设置)

    • 如果把对应的用户的shell改为/sbin/nologin则该用户无法远程登录系统
    • 同样也无法登录ftp服务
    • 需要把/sbin/nologin配置到/etc/shells中,这样用户既不能远程登录系统,也可以登录ftp

      虚拟用户

  • 创建虚拟用户代替本地用户,减少本地用户曝光率

  • 把虚拟用户的映射到本地用户,为虚拟用户提供工作目录和权限控制
  • 为每个用户生成单独的配置文件

    客户端

    GUI

  • xshell

  • ftp://username:password@ip

    CLI

    ```shell ftp IP

    用户名

    密码

    ? # 查看帮助 put get

ascii binary

ls

quit

  1. <a name="mbzWE"></a>
  2. ## 服务端
  3. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654413657533-c13cad07-28df-4168-8bd3-30a89300549e.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=193&id=u91404675&margin=%5Bobject%20Object%5D&name=image.png&originHeight=386&originWidth=986&originalType=binary&ratio=1&rotation=0&showTitle=false&size=272160&status=done&style=none&taskId=u145f144d-6445-49c4-aa02-e6e9f8be214&title=&width=493)
  4. <a name="KrjAo"></a>
  5. ### 匿名用户相关配置
  6. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654416814140-134da044-4796-41c8-b678-eefdec4c085a.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=325&id=uaf2ca045&margin=%5Bobject%20Object%5D&name=image.png&originHeight=650&originWidth=1646&originalType=binary&ratio=1&rotation=0&showTitle=false&size=712385&status=done&style=none&taskId=u76c43be0-d5d8-41ea-917c-6208d03a3a9&title=&width=823)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654416910906-535d751f-f89e-455a-980b-33615948dad2.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=404&id=u32b054a0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=808&originWidth=1348&originalType=binary&ratio=1&rotation=0&showTitle=false&size=664965&status=done&style=none&taskId=u33406ffa-edab-42e3-8cfb-8fdaf5f814b&title=&width=674)
  7. <a name="rt1t8"></a>
  8. ### 本地用户相关配置
  9. - **chroot_local_usser=YES # 将用户禁锢在家目录,防止切换到其他目录**
  10. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654417705285-fc769867-7502-4677-a5b3-047941ec8f58.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=333&id=u1b932ada&margin=%5Bobject%20Object%5D&name=image.png&originHeight=666&originWidth=1366&originalType=binary&ratio=1&rotation=0&showTitle=false&size=603523&status=done&style=none&taskId=u339f2ec6-56a2-4b68-af52-2368d593a06&title=&width=683)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654418784679-252ed444-c4a8-4572-b157-fadebe22d007.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=623&id=ua6199710&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1246&originWidth=2556&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1788848&status=done&style=none&taskId=u5b5c6204-a320-425f-ad39-14dabb94206&title=&width=1278)
  11. <a name="VYRrN"></a>
  12. ### 虚拟用户相关配置
  13. - 见PPT
  14. <a name="NdEAf"></a>
  15. ## tcpdump抓包
  16. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654421090805-3ab43f7d-49cb-4e1c-83d2-d4ff1eb9344d.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=343&id=u77c5ccd9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=686&originWidth=1674&originalType=binary&ratio=1&rotation=0&showTitle=false&size=710183&status=done&style=none&taskId=u6445dc5d-6606-4efd-bdbc-046c537562e&title=&width=837)
  17. <a name="MuRJ6"></a>
  18. ## openssl+vsftp
  19. <a name="ensG3"></a>
  20. ### 生成自签名证书
  21. ```shell
  22. cd /etc/ssl/certs/
  23. # 生成私钥
  24. openssl genrsa -out vsftpd.key 2048
  25. # 创建CSR
  26. openssl req -new -key vsftpd.key -out vsftpd.csr
  27. ## 国家
  28. ## 地区
  29. ## 城市
  30. ## 组织
  31. ## 单位
  32. ## Email
  33. # 自签名
  34. openssl x509 -req -days 365 -sha256 -in vsftpd.csr -singkey vsftpd.key -out vsftpd.csr
  35. # 设置目录权限,防止误修改
  36. chmod 500 /etc/ssl/certs/

配置vsftp开启ssl

  • /etc/vsftpd/vsftpd.conf

    测试

  • 重启服务

  • 抓包测试

    PPT

    VSFTP.pptx
    VSFTP配置文件详解.docx

    SAMBA

    特性

  • 使用SMB/CIFS协议、可跨平台

    • SMB Server Messages Block 信息服务块
    • CIFS Common Internet File System 程序可访问远程Internet上的文件
  • 可实现文件系统挂载
  • 可实现服务端修改文件
  • 局域网内共享文件和打印机

    服务相关信息

    ```shell yum install -y samba systemctl start smb

查看tcp 的2个端口

netstat -tunlp | grep -e 139 -e 445

  1. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654435899453-09e70aea-ff96-4534-ae72-748b0d69debf.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=260&id=ue9a31aeb&margin=%5Bobject%20Object%5D&name=image.png&originHeight=520&originWidth=1030&originalType=binary&ratio=1&rotation=0&showTitle=false&size=264621&status=done&style=none&taskId=u43657a22-27ba-4186-96ff-29d20c99db7&title=&width=515)
  2. <a name="Qo6ln"></a>
  3. ## 登录验证模式
  4. <a name="SN4dl"></a>
  5. ### share匿名验证
  6. - 不需要用户名密码
  7. <a name="rjOgV"></a>
  8. ### user本地验证
  9. - 使用系统用户
  10. - 新增nologin的系统用户
  11. - useradd -s /sbin/nologin samba
  12. - 使用自定义密码
  13. - tdbsam,是使用一个数据库文件(passdb.tdb)来验证
  14. - pdbedit -a username # 新增用户(将系统用户转换为samba用户,并设置密码)
  15. - pdbedit -x username # 删除用户
  16. - pdbedit -L # 列出samba用户列表
  17. - samba默认的安全级别
  18. - 权限配置![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654439908772-3c76551b-4821-48ab-9cfe-5cf52decd736.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=385&id=u1b65f5a0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=770&originWidth=1462&originalType=binary&ratio=1&rotation=0&showTitle=false&size=622187&status=done&style=none&taskId=u62ba00d9-9e3e-4333-9464-4799c918431&title=&width=731)
  19. <a name="Rdd8y"></a>
  20. ### 别名用户访问
  21. - 给上面user本地用户的用户名创建一个别名,类似虚拟用户,防止过度暴露
  22. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654440127834-cfcfb47b-290e-4028-bb7b-740de1f1d234.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=344&id=uef941f89&margin=%5Bobject%20Object%5D&name=image.png&originHeight=688&originWidth=994&originalType=binary&ratio=1&rotation=0&showTitle=false&size=312362&status=done&style=none&taskId=ud5234b22-0d45-4b58-a253-b6fa1eeb744&title=&width=497)
  23. <a name="lQgvF"></a>
  24. ## 客户端
  25. <a name="kdN84"></a>
  26. ### windows
  27. - 开启客户端支持
  28. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654437256768-32ed9ff5-72d3-4897-878e-bd8561711da9.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=309&id=u3f041617&margin=%5Bobject%20Object%5D&name=image.png&originHeight=618&originWidth=698&originalType=binary&ratio=1&rotation=0&showTitle=false&size=248972&status=done&style=none&taskId=u61c1db6d-01b7-4786-a1a3-bb577508909&title=&width=349)
  29. - 开启临时挂载连接
  30. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654437387123-a0647a49-6b90-4ee9-828c-e63ce91783a6.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=472&id=u110ab9c0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=944&originWidth=1610&originalType=binary&ratio=1&rotation=0&showTitle=false&size=301830&status=done&style=none&taskId=udadac233-8c5d-485c-a5ed-f31b133445f&title=&width=805)
  31. - 开启挂载连接(映射网络驱动器)
  32. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654437617256-3559dba4-0cc6-4235-8c93-d26560989cf0.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=214&id=uf8db09f6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=428&originWidth=452&originalType=binary&ratio=1&rotation=0&showTitle=false&size=75318&status=done&style=none&taskId=u429fc476-93da-4c78-aa5f-46c16d8eb58&title=&width=226)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654437677106-a8447776-866c-4978-8537-89cc122ee4a0.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=307&id=u9ca971dc&margin=%5Bobject%20Object%5D&name=image.png&originHeight=614&originWidth=778&originalType=binary&ratio=1&rotation=0&showTitle=false&size=131199&status=done&style=none&taskId=u0f84d39f-3ceb-4566-94d3-7357596693d&title=&width=389)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654437698133-001893e2-2c3e-4784-a04b-17637b143f5e.png#clientId=u83a3ca49-fe5c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=309&id=udb2108c2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=618&originWidth=504&originalType=binary&ratio=1&rotation=0&showTitle=false&size=127016&status=done&style=none&taskId=u6dc2199b-5a95-41e4-913a-0f08b37ff27&title=&width=252)
  33. - 清除缓存
  34. ```shell
  35. # 清空登录缓存
  36. net use * /del

linux

  1. yum -y install samba-client samba-common cifs-utils samba
  2. # 查看服务器共享
  3. smbclient -U username -L //serverIP
  4. # 登录服务器共享
  5. smbclient -U username //serverIP/shareName
  6. smb: \> ? # 查看帮助命令
  7. # 挂载
  8. ## 临时挂载
  9. mount -t cifs -o username=xxx,password=xxx //serverIP/shareName /本地挂载目录
  10. ## 永久挂载
  11. /etc/fstab
  12. //serverIP/shareName /本地挂载目录 cifs defaults,username=xxx,password=xxx 0 0
  13. mount -a

PPT

SAMBA.pptx
SAMBA配置文件详解.docx

NFS

基础

  • 一般用来存储和共享静态文件
  • 区别与SAMBA可以windows、linux跨平台,NFS只在类unix平台上可用
  • 服务挂载通信原理
    • Server
      • 首先启动RPC服务(之前是portmap服务,现在是rpcbind)在111端口
      • NFS服务启动在随机端口,启动后向RPC服务进行注册
      • 如果RPC服务重启了,相关信息也会丢失,NFS服务也需要重启
      • 为了防止频繁重启,一般修改NFS配置文件后,不需重启RPC,也不重启NFS,只需执行reload
    • Client
      • 首先启动RPC服务向Server的RPC通信,交换信息
      • 和NFS服务端口进行通信

image.png

  • 相关软件
    • nfs-utils 包括nfs命令和监控程序
    • rpcbind 支持安全NFS RPC服务的连接
      • 通常是默认安装的
      • centos6之前该软件叫portmap ```shell yum install -y rpcbind nfs-utils

systemctl start rpcbind systemctl enable rpcbind netstat -tunlp | grep 111

查看IP上rpcbind管理的端口号

rpcinfo -p IP

配置文件

/exportsdir *(rw)

systemctl start nfs-server systemctl status nfs-server systemctl reload nfs-server

查看nfs共享的目录

exportfs -v

相关命令

exportfs -a 全部挂载或卸载/etc/exports中的内容 -r 重新读取配置信息 -u 卸载单一目录(和-a一起使用为卸载/etc/exports文件中的目录)

  1. ## 常用
  2. -au 卸载所有共享目录
  3. -ar 重新共享所有目录

默认客户端是nobody用户角色进来,所以要注意exports出去的目录权限

chmod o+rw /exportsdir

client

在客户端机器这边查询服务端IP暴露的可以挂载的目录

showmount -e IP

ver3版本避免同步延迟

mount -o vers=3 IP:/exportsdir /data

查询

mount | grep nfs

卸载

umount /data

开机挂载

/etc/fstab IP:/dir /mountpoint nfs defaults,vers=3 0 0

mount -a

  1. <a name="Uv12J"></a>
  2. ## 配置文件
  3. - /etc/exports
  4. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654496413994-dc0d0be6-e77a-4066-99ac-71fd766e218d.png#clientId=u1a4eb900-e04b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=381&id=u3c405120&margin=%5Bobject%20Object%5D&name=image.png&originHeight=762&originWidth=1584&originalType=binary&ratio=1&rotation=0&showTitle=false&size=529576&status=done&style=none&taskId=u3308541b-3405-424d-8790-03e0133639d&title=&width=792)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654496450944-071dee56-2e73-46c2-b8f3-fc85fb2e0ff5.png#clientId=u1a4eb900-e04b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=372&id=ubdc1438e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=744&originWidth=1142&originalType=binary&ratio=1&rotation=0&showTitle=false&size=425537&status=done&style=none&taskId=uddc84183-1968-438e-940a-0f0fb40336f&title=&width=571)
  5. <a name="GChTG"></a>
  6. ## PPT
  7. [NFS.pptx](https://www.yuque.com/attachments/yuque/0/2022/pptx/1491874/1654499935106-f09702da-14a3-407e-8adc-b6bae05bbcd2.pptx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpptx%2F1491874%2F1654499935106-f09702da-14a3-407e-8adc-b6bae05bbcd2.pptx%22%2C%22name%22%3A%22NFS.pptx%22%2C%22size%22%3A528053%2C%22type%22%3A%22%22%2C%22ext%22%3A%22pptx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u392082e4-57d1-4393-81ee-4e7200b18d8%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22u62584819%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
  8. <a name="t6uyM"></a>
  9. # Rsync
  10. <a name="be18a"></a>
  11. ## 基础
  12. - 数据镜像备份工具
  13. - 支持全量备份和增量备份
  14. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654857103421-cac8cf09-7d6b-4e6d-a558-98c1de52152f.png#clientId=u896b22bf-0dad-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=361&id=u6ec47e17&margin=%5Bobject%20Object%5D&name=image.png&originHeight=722&originWidth=1608&originalType=binary&ratio=1&rotation=0&showTitle=false&size=694092&status=done&style=none&taskId=u8d6343d3-6407-403d-99fb-6a600041158&title=&width=804)
  15. <a name="nrJQo"></a>
  16. ## 定期同步
  17. <a name="TEq4h"></a>
  18. ### ssh协议
  19. - 使用ssh协议,就类似scp
  20. ```shell
  21. # 配置免密
  22. # 下载
  23. rsync -avz --delete Username@SourceIP:/SRC /DEST
  24. # 上传
  25. rsync -avz /DEST Username@SourceIP:/SRC

rsync协议

  • 此协议需要先启动rsync服务
  • 是SAMBA服务的子项目,所以和SAMBA类似 ```shell

    配置文件

    /etc/rsyncd.conf

用户名密码文件(明文)

/etc/rsyncd_users.db user1:123456

启动服务

rsync —daemon

查看端口

netstat -tunlp | grep 873

服务启动后使用rsync协议传输

下载

rsync -avz —delete rsync://user@SourceIP:/ShareName /DEST

上传

rsync -avz rsync:///DEST user@SourceIP:/ShareName

rsync协议免密

export RSYNC_PASSWORD=123456 rsync -avz —delete rsync://user@SourceIP:/ShareName /DEST

  1. <a name="tpWcm"></a>
  2. ## 实时同步
  3. - 实时性好
  4. - 如果无变化则不会备份,节省资源
  5. <a name="y3NGA"></a>
  6. ### inotify
  7. - 是内核特性,监控文件系统的事件发出通知
  8. ```shell
  9. # 两个监控命令
  10. inotifywait 持续监控,实时输出结果,常用
  11. inotifywatch 短期监控,任务完成后再出结果
  12. # 部署
  13. yum install -y gcc*
  14. tar xf inotify-tools-3.14.tar.gz
  15. cd inotify-tools-3.14
  16. ./configure
  17. make && make install

image.png

rsync+inotifywait单向同步

image.png

unison+inotify双向同步