面试题总汇

一. FTP/TFTP/NFS

二. rsync

一般企业在使用 rsync 时会配合 inotify 使用,使用 inotify 监听文件修改情况,一旦文件某些 属性改变,就通知 rsync 进行备份

  • inotify + rsync 方式实现数据同步
  • sersync :金山公司周洋在 inotify 软件基础上进行开发的,功能更加强大
  • 工作原理:
    要利用监控服务(inotify),监控同步数据服务器目录中信息的变化
    发现目录中数据产生变化,就利用 rsync 服务推送到备份服务器上
  • inotify
    异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如 cron 等的轮询机制来获取事件,
    linux 内核从 2.6.13 起支持 inotify,通过 inotify 可以监控文件系统中添加、删除,修改、移动等各种事件

inotify-tools 包:

  • inotifywait: 在被监控的文件或目录上等待特定文件系统事件(open ,close,delete 等) 发生,常用于实时同步的目录监控- inotifywatch:收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计
    例:使用 inotifywait

rsync 软件包
rsync,rsync-daemon(CentOS 8)
服务文件:/usr/lib/systemd/system/rsyncd.service
配置文件:/etc/rsyncd.conf 端口:873/tcp
rsync命令

rsync 有三种工作方式:

  1. 本地文件系统上实现同步。命令行语法格式为上述”Local”段的格式。
  2. 本地主机使用远程 shell 和远程主机通信。命令行语法格式为上述”Access via remote shell”段的格式。
  3. 本地主机通过 络套接字连接远程主机上的 rsync daemon。命令行语法格式为上述 “Access viarsync daemon”段的格式。# 三. 防火墙

防火墙概念

  • 在计算机领域,防火墙(FireWall)就是基于预先定义的安全规则来监视和控制来往的 络流量的 络安全系统。防火墙的核心是隔离,其
    将受信任的内部 络和不受信任的 外部 络隔离开。内部 络一般是公司的内部局域 ,外部 络一般是 Internet。
  • 一般防火墙工作在 络或主机边缘,对进出 络或主机的数据包基于一定的规则检查, 并在匹配某规则时由规则定义的行为进行处理的
    一组功能的组件,基本上的实现都是默认 情况下关闭所有的通过型访问,只开放允许访问的策略。

防火墙分类

  • 按照防火墙的保护范围,防火墙通常被分为:
    络防火墙: 络防火墙在两个或更多的 络间监控和过滤流量,运行在 络设备上。 络防火墙保护的是防火墙某一侧的 络(一
    般是局域 络)。
    主机防火墙: 主机防火墙运行在一般的电脑主机,并控制进出这些电脑的 络流量, 主机防火墙保护的范围是当前主机。
  • 从实现方式上看,防火墙被分为:
    硬件防火墙: 在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现, 如:华为,天融信 Checkpoint,NetScreen

    软件防火墙: 运行于通用硬件平台上的防火墙应用软件,ISA –> Forefront TMG
  • 从工作交互的 络协议层及划分:
    络层防火墙: 只可以和 OSI 模型下四层的协议交互
    应用层防火墙: 运行应用层防火墙的设备可以叫代理服务器或代理 关,可以与 OSI 的七层协议交互。

Netfilter 中的 hook 函数

  • Netfilter 在内核中选取五个位置放了五个 hook(“勾子”) function(INPUT、OUTPUT、 FORWARD、PREROUTING、
    POSTROUTING),而这五个 hook function 向用户开放, 用户可以通过一个命令工具(iptables)向其写入规则,规则由信息过滤表
    (table)组成, 信息过滤表包含控制 IP 包处理的规则集(ruleset),规则被分组放在(chain)上。
  • 三种数据包流动方向
    流入本机:PREROUTING –> INPUT–>用户空间进程
    流出本机:用户空间进程 –>OUTPUT–> POSTROUTING
    转发:PREROUTING –> FORWARD –> POSTROUTING
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IwJFaoKh-1604371435755)(png/2019123117471156.png)]
    数据包大致传输过程 :
  1. 当一个 络数据包进入 卡时,数据包首先进入 PREROUTING 链,内核根据数据包目的 IP 判断是否需 要转送出去
  2. 如果数据包就是进入本机的,数据包就会沿着图向下移动,到达 INPUT 链。数据包到达 INPUT 链 后,任何进程都会收到它。本机上
    运行的程序可以发送数据包,这些数据包经过 OUTPUT 链,然后 到达 POSTROUTING 链输出3. 如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过 FORWARD 链,然后到 达 POSTROUTING 链输出

iptables 扩展匹配条件

multiport 扩展 以离散方式定义多端口匹配

iprange 扩展 指明连续的(但一般不是整个 络)ip 地址范围 源 IP 地址范围 目标 IP 地址范围

mac扩展 mac 模块可以指明源 MAC 地址

string 扩展 string 扩展用于对 文中的应用层数据做字符串模式匹配检测

time 扩展 根据将 文到达的时间与指定的时间范围进行匹配

limit 扩展 基于收发 文的速率做匹 令牌桶过滤器

state 扩展 state 扩展模块,可以根据”连接追踪机制”去检查连接的状态,较耗资源, 会消耗内存,使用 conntrack 机制:追踪本机
上的请求和响应之间的关系

  • 状态类型
    :新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其 识别为第一次发出的请求
    :NEW 状态之后,连接追踪信息库中为其建立的条目失效之前期间内 所进行的通信状态
    :新发起的但与已有连接相关联的连接,如:ftp 协议中的数据连接与命令 连接之间的关系
    :无效的连接,如 flag 标记不正确
    :未进行追踪的连接,如 raw 表中关闭追踪
    已经追踪到的并记录下来的连接信息库
    调整连接追踪功能所能够容纳的最大连接数量
    查看连接跟踪有多少条目
    不同的协议的连接追踪时长
    state 模块使用格式 :

开放被动模式的 ftp 服务 :

  1. 装载 ftp 连接追踪的专用模块: 跟踪模块路径:/lib/modules/kernelversion/kernel/net/netfilter1
  1. 放行请求 文: 命令连接:NEW, ESTABLISHED 数据连接:RELATED, ESTABLISHED
  1. 放行响应 文

具体操作:

iptables 规则保存

使用 iptables 命令定义的规则,手动删除之前,其生效期限为 kernel 存活期限
持久保存规则

  • CentOS 7,8
  • CentOS 6

加载规则

  • CentOS 7 重新载入预存规则文件中规则: -n, –noflush:不清除原有规则 –
    t, –test:仅分析生成规则集,但不提交- CentOS 6

开机自动重载规则

  • 用脚本保存各 iptables 命令;让此脚本开机后自动运行 /etc/rc.d/rc.local 文件中添加脚本路径 /PATH/TO/SOME_SCRIPT_FILE
  • 用规则文件保存各规则,开机时自动载入此规则文件中的规则 在/etc/rc.d/rc.local 文件添加
  • 定义 Unit File, CentOS 7,8 可以安装 iptables-services 实现 iptables.service

SNAT 实现

SNAT:基于 nat 表的 target,适用于固定的公 IP
例:10.0.1.0/24 段的主机访问外部 络时,IP 数据包源地址被替换为 172.18.1.6-172.18.1.6 中的某一个地址

另一个 target 为,适用于动态的公 IP,如拨 络

DNAT 实现

DNAT:nat 表的 target,适用于端口映射

  • 例如

转发 REDIRECTREDIRECT,是 NAT 表的 target,通过改变目标 IP 和端口,将接受的包转发至同一个主机 的不同端口,可用于 PREROUTING

OUTPUT 链

四. Linux启动流程和内核管理

系统启动流程

Centos6

启动过程总结:
或者:

  • 运行级别:为系统运行或维护等目的而设定0-6:7个级别
  • /etc/rc.d/rc.sysinit: 系统初始化脚本,主要做以下事务“`bash
    (1) 设置主机名
    (2) 设置欢迎信息
    (3) 激活udev和selinux
    (4) 挂载/etc/fstab文件中定义的文件系统
    (5) 检测根文件系统,并以读写方式重新挂载根文件系统
    (6) 设置系统时钟
    (7) 激活swap设备
    (8) 根据/etc/sysctl.conf文件设置内核参数
    (9) 激活lvm及software raid设备
    (10) 加载额外设备的驱动程序
    (11) 清理操作

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月2日
下一篇 2020年10月2日

相关推荐