IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Linux-iptables 防火墙 -> 正文阅读

[网络协议]Linux-iptables 防火墙

目录

一.iptables概述

二.netfilter/iptables关系

三.四表五链

四.规则链之间的匹配顺序

五.规则链内的匹配顺序

六.iptables的安装


一.iptables概述

二.netfilter/iptables关系

三.四表五链

四表

raw表确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT、 PREROUTING
mangle表修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,NPUT、 OUTPUT、FORWARD、 PREROUTING、 POSTROUTING
nat表负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,? OUTPUT、PREROUTING、 POSTROUTING
ilter表负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、? ? ? ? ? ? FORWARD、OUTPUTf

注意:在ptables 的四个规则表中,mangle 表和raw表的应用相对较少

五链

INPUT处理入站数据包,匹配目标IP为本机的数据包
OUTPUT处理出站数据包,–般不在此链.上做配置
FORWARD处理转发数据包,匹配流经本机的数据包
PREROUTING在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于? 把内网服务器的IP和端口映射到路由器的外网IP和端口上
POSTROUTING在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网

数据包到达防火墙时,规则表之间的优先顺序:

raw > mangle > nat > filter

表、链结构示意图:

四.规则链之间的匹配顺序

主机型防火墙

网络型防火墙:

五.规则链内的匹配顺序

? 自上向下按顺序匹配,找到就会停止

? 若在该链内匹配不到规则,则按该链的默认策略处理

匹配流程示意图:

六.iptables的安装

Centos 7默认使用firewalld防火墙,没有安装iptables,应先关闭firewalld防火墙,再安装iptables

iptables防火墙的配置方法

1 .使用iptables 命令行
2. 使用system-config-firewall

iptables 命令行配置方法

命令格式:?iptables [-t 表名]管理选项 [链名] [匹配条件] [-j 控制类型]

注意事项:

常用的控制类型

常用的管理选项

添加新的规则

?

查看规则列表

设置默认策略

删除规则

?清空规则

规则的匹配

1.通用匹配

可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件

2.隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件

TCP标记匹配: - - tcp-flags TCP标记

iptables -I INPUT -i erns33 -p tcp --tcp-flags SYN, RST,ACK SYN -j ACCEPT
#丢弃SYN请求包,放行其他包

CMP类型匹配: – icmp-type ICMP类型? ? ? ? ? ?#可以是字符串、数字代码

3.显式匹配

要求以“-m扩展模块"的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

多端口匹配: -m multiport --sport 源端口列表
           -m multiport --dport 目的端口列表
           
iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

IP范围匹配: -m iprange --src-range IP范围
iptables -A FORWARD -p udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP
#禁止转发源地址位于192.168.80.100-192.168.80.200的udp数据包

MAC地址匹配: -m mac --mac-source MAC地址
iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP
#禁止来自某MAC地址的数据包通过本机转发

状态匹配: -m state --state连接状态
常见的连接状态:
NEW: 与任何连接无关的,还没开始连接
ESTABLISHED: 响应请求或者已建立连接的,连接态
RELATED: 与已有连接有相关性的( 如FTP主被动模式的数据连接),衍生态,一般与ESTABLISHED配合使用
INVALID: 不能被识别属于哪个连接或没有任何状态

iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
#禁止转发与正常TCP 连接无关的非--syn请求数据包(如伪造的网络攻击数据包)

iptables -I INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED, RELATED -j ACCEPT
#对进来的包的状态进行检测。已经建立tcp连接的包以及该连接相关的包允许通过。
#比如我和你做生意,我们谈成了生意,到了支付的时候,就可以直接调用与这笔生意相关的支付功能
iptables -P INPUT DROP

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:25:58  更:2021-08-07 12:28:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:58:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码