南宁网站建设公司排名,广州公司招聘,用什么网软件做网站,陕西省建设工程招投标信息网官网一、防火墙是什么
防火墙#xff08;FireWall#xff09;#xff1a;隔离功能#xff0c;工作在网络或主机的边缘#xff0c;数据包的匹配规则与由一组功能定义的操作组件处理的规则相匹配#xff0c;根据特定规则检查网络或主机的入口和出口 当要这样做时#xff0c;基… 一、防火墙是什么
防火墙FireWall隔离功能工作在网络或主机的边缘数据包的匹配规则与由一组功能定义的操作组件处理的规则相匹配根据特定规则检查网络或主机的入口和出口 当要这样做时基本上默认情况下执行的是关闭所有通过访问类型的访问只开放允许访问的策略外网访问的主机希望位于网络中的 DMZ非军事区。
1.1 防火墙的分类
按网络协议划分
网络层防火墙OSI模型下四层
应用层防火墙/代理服务器
按保护范围划分
主机防火墙服务范围为当前一台主机
网络防火墙服务范围为防火墙一侧的局域网
按实现方式划分
硬件防火墙在专用硬件级别实现部分功能的防火墙另一个部分功能基于软件实现如华为 山石hillstone,天融信启明星辰绿盟深信服, PaloAlto , fortinet, Cisco, Checkpoint NetScreen
软件防火墙运行于通用硬件平台之上的防火墙的应用软件 1.2 Linux防火墙
1.2.1 基本认识
Linux防火墙是由netfilter提供集成在Linux内核中
1.2.2 防火墙工具
1. firewalld
从CentOS 7 版开始引入了新的前端管理工具
软件包
firewalld
firewalld-config
管理工具
firewall-cmd 命令行工具
firewall-config 图形工作
2. iptables
由软件包iptables提供的命令行工具工作在用户空间用来编写规则写好的规则被送往netfilter告
诉内核如何去处理信息包
3.nftables
nftables 是新的数据包分类框架旨在替代现存的 {ip,ip6,arp,eb}_tables。 简而言之
它在 Linux 内核版本高于 3.13 时可用。它有一个新的命令行工具 ntf它的语法与 iptables 不同。它也包含了一个兼容层让你在新的 nftables 内核框架之上运行 iptables 命令。它提供了通用的集合基础允许你建立映射和关联。你可以使用这个新特性把你的规则集分类到多维树中这大大地减少了找到包最终的行为之前需要检查的规则的数量。
1.2.3 netfilter 的钩子函数
内核中的 Netfilter 会选择五个位置放置五个钩子hook函数INPUT、OUTPUT、FORWARD、 PEROUTING、POSTROUTING这五个钩子函数暴露给用户用户可以使用命令工具iptables (iptables编写规则。 iptables 由一个信息过滤器表组成其中包含控制 IP 数据包处理的规则规则以链的形式分组。 提示自 Linux 内核 4.2 版起Netfilter 在预路由前增加了入口钩子功能。可以使用 这个新的入口钩子早于预路由基本上取代了 tc 命令流量控制工具。 这个新的钩子早于预路由基本上取代了 tc 命令流量控制工具。 四表五链
四表
RAW表跟踪数据包
MAGLE表标记优先级
NAT表地址转换
FILTER表流量过滤筛选哪些数据包可以通过哪些数据包不可以
五链
INPUT:进入本机的流量
OUTPUT:出去本机的流量
FORWARD:转发数据包
PREROUTING:路由选择前
POSTROUTING:路由选择后
链的作用是控制流量的时机
表的作用是如何控制流量
表中有链链中有规则
二、iptables
2.1 iptables的组成
iptables 是 Linux 中用于配置和管理防火墙规则的工具。它由一系列表、链和规则组成以实现网络数据包的过滤和转发。 表 (Tables): filter 表默认表用于过滤数据包。大多数防火墙规则都是在这个表上配置的。nat 表用于网络地址转换 (NAT)。它用于修改数据包的源或目标地址通常用于实现网络地址转换。mangle 表用于修改数据包的特定字段。可以用于修改 TOS (Type of Service) 字段等。 链 (Chains): INPUT处理到达本地系统的数据包。OUTPUT处理从本地系统发出的数据包。FORWARD处理通过系统的路由功能转发的数据包。PREROUTING在数据包进入本地系统之前应用的规则仅适用于 nat 表和 mangle 表。POSTROUTING在数据包离开本地系统之前应用的规则仅适用于 nat 表和 mangle 表。 规则 (Rules): iptables 规则是用户定义的规则用于指定数据包的处理方式。规则通常包括匹配条件和动作。例如匹配源 IP 地址并拒绝或允许数据包。 匹配条件 (Matches): iptables 允许您在规则中使用匹配条件以确定是否应用该规则。常见的匹配条件包括源 IP 地址、目标 IP 地址、端口号等。 动作 (Targets): 当规则匹配时可以指定要执行的动作。常见的动作包括 ACCEPT接受数据包、DROP丢弃数据包、REJECT拒绝数据包并发送拒绝通知等。
2.2 配置操作及语法
iptables防火墙的配置方法:
1、使用iptables命令行。
2、使用firewalld
语法
iptables [选项] 命令 [链名] 规则规范选项用于指定一些额外的配置参数。
命令表示对 iptables 进行的操作如 -A追加规则、-D删除规则、-I插入规则等。链名表示要操作的防火墙链的名称如 INPUT、OUTPUT、FORWARD 等。
规则规范定义要添加或操作的规则的规范。
iptables 规则规范
规则规范由匹配条件和动作两部分组成。
匹配条件
-p指定协议如 tcp、udp、icmp 等。
--sport 和 --dport指定源端口和目标端口。
-s 和 -d指定源地址和目标地址。
-i 和 -o指定进入和离开的网络接口。
动作
-j指定动作如 ACCEPT允许数据包通过。、DROP直接丢弃数据包不给出任何回 应信息、REJECT拒绝数据包通过必要时会给数据发送端一个响应信息、LOG(在/var/log/messages 文件中记录日志信息然后将数据包传递给下一条规则) 等。
常见的 iptables 命令
指令作用-A追加-I插入-D删除-P修改默认策略-F清空策略-R替换策略
iptables语法总结 2.3 添加新的防火墙规则
添加新的防火墙规则时使用管理选项“-A”、“-I”前者用来追加规则后者用来插入规则。 这条规则的含义是禁止66主机ping通自己 2.4 查看规则表
格式
iptables [-t表名] -n -L [链名] |[-- line-numbers]
或
iptables - [vn]L 2.5 删除、清空、替换规则
格式
删除iptables -D INPUT 序号 -s -j
清空iptables -F
替换iptables -I INPUT 序号 -s -j
主意: 1.若规则列表中有多条相同的规则时按内容匹配只删除的序号最小的一条 2.按号码匹配删除时确保规则号码小于等于已有规则数否则报错 3.按内容匹配删数时确保规则存在否则报错
2.6 设置默认策略
格式
iptables [-t表名] -P 链名 控制类型 2.7 通用匹配
直接使用不依赖于其他条件或扩展如网络协议、IP 地址或网络接口。
协议匹配-p 协议名称
地址匹配-s 源地址-d 目标地址
#IP、网段、域名、NULL任意地址。
接口匹配-i 入站网卡-o 出站网卡 白名单的创建 可以ping通真机和自己 不可以让其他人png自己 2.8 隐含扩展
iptables 在使用-p选项指明了特定的协议时无需再用-m选项指明扩展模块的扩展机制不需要手动加载扩展模块要求以特定的协议匹配作为前提包括端口、TCP标记、ICMP类型等条件。
端口匹配: --sport 源端口、--dport 目的端口
#可以是个别端口、端口范围
要求主机cxk可以ping通cxk2cxk2不可以ping通cxk 有点不符合要求可以稍加改进一下在后面指定ip地址即可 2.9 显示 扩展模块
显示扩展即必须使用-m选项指明要调用的扩展模块名称需要手动加载扩展模块
格式
[-m matchname [per-match-options]]
2.9.1 multiport扩展
以离散方式定义多端口匹配,最多指定15个端口
[!] --source-ports,--sports port[,port|,port:port]...
#指定多个源端口 逗号隔开
[!] --destination-ports,--dports port[,port|,port:port]...
# 指定多个目标端口 逗号隔开
[!] --ports port[,port|,port:port]...
#多个源或目标端
例子 2.9.2 iprange扩展
指明连续的但一般不是整个网络ip地址范围
[!] --src-range from[-to] 源IP地址范围
[!] --dst-range from[-to] 目标IP地址范围
例子 2.9.3 time模块 根据将报文到达的时间与指定的时间范围进行匹配
--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]] 日期
--datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
--timestart hh:mm[:ss] 时间
--timestop hh:mm[:ss]
[!] --monthdays day[,day...] 每个月的几号
[!] --weekdays day[,day...] 星期几1 – 7 分别表示星期一到星期日
--kerneltz内核时区当地时间不建议使用CentOS 7版本以上系统默认为 UTC
注意 centos6 不支持kerneltz --localtz指定本地时区(默认)
例子 按下确认键就失效了解决办法就是把时间改掉注意要关掉时间同步不然一会又失效了 xshell恢复正常 2.9.4 connlimit扩展
根据每客户端IP做并发连接数数量匹配
可防止Dos(Denial of Service拒绝服务)攻击
--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配 2.9.5 state 状态类型
NEW新发出请求连接追踪信息库中不存在此连接的相关信息条目因此将其识别为第一次发出的请求
ESTABLISHEDNEW状态之后连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
RELATED新发起的但与已有连接相关联的连接如ftp协议中的数据连接与命令连接之间的关系
INVALID无效的连接如flag标记不正确
UNTRACKED未进行追踪的连接如raw表中关闭追踪
格式--state state
例子
ipatables -A INPUT -m state --state NEW -j REJECT
ipatables -A INPUT -m state --state ESTABLISHED -j ACCEPT
要求服务器维护需要禁止新访问已经在访问的用户无影响