命令(3)====ip tables

本文涉及的产品
云防火墙,500元 1000GB
简介:

1、防火墙基础

linux防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制(包过滤防火墙或网络层防火墙),linux防火墙

是基于内核编码实现,具有非常稳定的性能和高效率

(1)netfilter:包过滤防火墙:包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。

它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。

工作于网络层,能对IP数据报进行首部检查。例如:IP源地址,目的地址,源端口和目的端口等。

内核态防火墙体系

(2) iptables:指的是用于管理linux防火墙的命令程序

用户态防火墙体系

(3)iptables的表链结构

 表

1)filter表:用来对数据包进行过滤,根据规则确定如何处理一个数据包

 filter表对应的内核模块是iptable_filter,表内包含3个链

 INPUT FORWARD OUTPUT

2)    net表:nat(Network Address Translation)网络地址转换

 主要用来修改IP地址、端口号等信息

 net表对应的内核模块是iptable_nat

 PREROUTING POSTROUTING OUTPUT

3) mangle表:mangle表用来修改数据包的TOS服务类型、TTL生存周期、或者为数据包设置Mark标记

 以实现流量整形、策略路由等高级应用

 mangle表对应的内核模块为iptable_mangle,表内含5个链

 PREROUTING POSTROUTING INPUT OUTPUT FORWARD

4)   raw表:主要用来决定是否对数据包进行状态跟踪

 raw表对应的内核模块为iptable_raw,表内包含两个链

 OUTPUT PREROUTING

 链

1) INPUT链:  当收到访问防火墙本机地址的数据包(入站)时,应用此链中规则

2)OUTPUT链:  当防火墙本机向外发送数据包(出站)时,应用此链中规则

3)FORWARD链: 当接收到需要通过防火墙中转发给其他地址的数据包(转发)时,应用此链中规则

4)PREROUTING链:在对数据包做路由选择之前,应用此链中规则

5)POSTROUTING链:在对数据包做路由器选择之后,应用此链中规则

       4表5链

INPUT OUTPUT 主要用在“主机型防火墙”主要针对服务器本身进行保护

FORWARD PREROUTING POSTROUTING 多用在“网络型防火墙”中,可以做linux防火墙的网管服务器

在公司内网与互联网之间进行安全控制

规则之间的顺序

raw mangle nat filter 

1)入站数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理然后进行路由选择

 (判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么

 内核将其传递给INPUT链处理

2)转发数据流向:如果数据包的目标地址是其它外部地址,则内核将其传递给FORWARD链进行处理

 (允许转发或拦截、丢弃),最后交给POSTROUTING(是否修改数据包地址等)进行处理

3)出站数据流向:首先OUTPUT链处理,然后进行路由选择,再交给POSTROUTING链

 (是否修改数据包的地址等),进行处理

    4)每条链内的规则(匹配即停止)如果第一条通过了后续的规则将失效

2、编写防火墙规则

iptables -t 表名 管理选项 链名 匹配条件 -j 控制类型

ACCEPT 允许数据包通过

DROP   丢弃数据包

REJECT 拒绝数据包,必要时会给数据端发送一个相应信息

LOG    在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

   因为LOG只是一种辅助动作,所以“匹配即停止”,对LOG是个特例,还会继续匹配

iptables 命令的常用的几个管理选项

-A 在指定链的末尾添加一条新的规则

-D 删除指定链中的规则,可指定序号或具体内容

-I 在指定链中插入一条新的规则,未指定序号默认作为第一条规则

-R 修改、替换

-L 列出规则  list

-F 清空规则

-P 设置指定链的默认规则

-n 使用数字形式显示输出结果

-v 查看规则列表显示详细信息

-h 查看命令帮助信息

--line-numbers 查看规则列表时,同时显示规则在链中的序号

1、其它主机无法ping通主机

iptables -t filter -I INPUT -p icmp -j REJECT

2、在INPUT链末尾添加一条允许tcp协议通过的规则

iptables -t filter -A INPUT -p tcp  -j ACCEPT

3、在filter表INPUT链添加位于表中排序第一的规则和排序第二的规则

iptables -t filter -I INPUT   -p udp  -j ACCEPT

iptables -t filter -I INPUT 2 -p icmp -j ACCEPT

4、查看规则列表

iptables -L  INPUT --line-numbers

iptables -n -L  INPUT     (数据多用这个减少解析时间)

5、删除清空列表

iptables -D INPUT 3    #删除filter表INPUT链的第3条信息

iptables -F INPUT      #清空file表INPUT链中的所有信息

iptables -F            #清空filter表

iptables -t nat -F     #清空nat表

iptables -t mangle -F  #清空mangle表

6、设置默认策略

filter表FORWARD默认策略为丢弃,OUTPUT链默认策略为允许 

iptables -t filter -P FORWARD DROP

iptables -P OUTPUT ACCEPT

7、通用匹配

协议匹配

若要丢弃通过icmp协议访问防火墙本机的数据包,允许转发经过防火墙出icmp以外的的数据包

iptables -I INPUT -p icmp -j DROP

iptables -A FORWARD ! -P icmp -j ACCEPT

地址匹配

若要拒绝转发源地址为192.168.1.11的数据,允许转发源地址位于192.168.7.0/24网段的数据

iptables -A FORWARD -s 192.168.1.11 -j REJECT

iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT

若检测到来自某个网段(10.20.30.0/24)的频繁扫描添加防火墙进行封锁

iptables -I INPUT -s 10.20.30.0/24 -j DROP

iptables -I FORWARD -s 10.20.30.0/24 -j DROP

网络接口匹配

若要丢弃外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包

iptables -A INPUT -i eth1 -s 10.0.0.0/8  -j DROP

iptables -A INPUT -i eth1 -s 172.16.0.0/12  -j DROP

iptables -A INPUT -i eth1 -s 192.168.0.0/16  -j DROP

端口匹配

若要允许为网段192.168.4.0/24转发DNS查询数据包

iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -d 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

构建vsftpd服务器时,若要开放20.21端口,以及用于被动模式的端口范围24500~24600

iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

iptables -A INPUT -p tcp --dport 24500:24600 -j ACCEPT

ICMP类型匹配                                      #icmp-type检查icmp协议

iptables -A INPUT -p icmp --icmp-type 8 -j DROP   #拒绝其他请求但是自己可以ping其它机器

iptables -A INPUT -p icmp --icmp-type 0 -j DROP   #我ping其它的主机返回来的信息我接收

iptables -A INPUT -p icmp --icmp-type 3 -j DROP   #对方不存在返回值我接收

iptables -A INPUT -p icmp -j DROP                 #禁止所有机器ping

显示匹配

若要允许本机开放25.80.110.143端口 

iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

IP范围匹配

若要禁止转发源IP地址位于192.168.4.21与192.168.4.28之间的tcp数据包

iptables -A FORWARD -p tcp -m iprange -src-range 192.168.4.21-192.168.4.28 -j REJECT

MAC地址匹配 -m 模块

若要根据MAC地址封锁主机,禁止其访问本机的任何应用 

iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -DROP

状态匹配

若要禁止转发与正常TCP连接无关的非--syn请求的数据包

iptables -A FORWARD -m state --state NEW -p tcp !--syn -j DROP #无正常连接的状态是NEW

#NEW状态模块的非syn选项

若只开放本机的web服务(80端口)

iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT  #插入行首一条将有关联的包放行

iptables -A INPUT -p tcp --dport 80 -j ACCEPT                    #紧随其后添加一条允许80端口开放

iptables -P INPUT DROP                               #当前两条规则都没匹配上执行默认规则丢弃数据包



本文转自 大雪儿 51CTO博客,原文链接:http://blog.51cto.com/dingxue/1974853,如需转载请自行联系原作者

相关文章
|
自然语言处理 算法 搜索推荐
ES-IK分词器的概念和基本使用
ES-IK分词器的概念和基本使用
611 2
|
机器学习/深度学习 编解码 算法
超详细!手把手带你轻松掌握 MMDetection 整体构建流程(一)
作为系列文章的第一篇解读,本文主要是从整体框架构建角度来解析,不会涉及到具体算法和代码,希望通过本文讲解: - MMDetection 整体构建流程和思想 - 目标检测算法核心组件划分 - 目标检测核心组件功能
1166 0
超详细!手把手带你轻松掌握 MMDetection 整体构建流程(一)
|
人工智能 边缘计算 监控
冼峰:数字化成为衡量水务企业竞争力新标志 | 阿里CIO学院名人堂
基于大数据、人工智能技术的数字化、智能化水平已经成为衡量水务企业竞争力的重要标志。
冼峰:数字化成为衡量水务企业竞争力新标志  | 阿里CIO学院名人堂
|
JavaScript 数据可视化
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
这篇文章介绍了如何使用vue-cli 2和3版本来创建Vue项目,并详细说明了两者之间的主要区别。
349 5
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
|
6月前
|
传感器 人工智能 自然语言处理
火热邀测!DataWorks数据集成支持大模型AI处理
阿里云DataWorks数据集成新增大模型AI处理功能,支持在数据同步中无缝调用通义千问等AI模型,实现文本翻译、情感分析、摘要生成等功能。适用于电商客服、智能汽车、供应链、医疗、金融、法律及教育等多个场景,大幅提升数据处理效率与洞察深度。用户可通过自然语言配置,快速完成高级数据分析与处理,无需额外部署调试。立即申请测试资格,体验智能化数据处理!
1316 4
火热邀测!DataWorks数据集成支持大模型AI处理
|
5月前
|
IDE Shell 开发工具
灵码使用体验
上周使用了通义灵码三天,分享一下体验。相较于Trae、VSCode和CodeBuddy,灵码存在一些不足:响应速度较慢,生成代码效率低;汉化不够完善,菜单仍为英文;纠错能力弱,无法有效提示代码问题;Shell集成效果差,终端命令错误处理不佳;MCP工具集成不如Trae便捷。不过,灵码也有亮点:支持超长上下文输入,有助于精确开发;Qwen3推理能力强,能较好理解用户意图并编辑代码。希望后续更新能优化这些问题,提升用户体验。
698 0
|
SQL 数据库 索引
常见的SQL语句
【10月更文挑战第26天】常见的SQL语句
362 2
|
存储 固态存储 算法
OS—磁盘和固态硬盘
OS—磁盘和固态硬盘
358 0
|
XML 监控 安全
OWASP-TOP 10 漏洞概述
OWASP-TOP 10 漏洞是指由开放式Web应用程序安全项目(OWASP)发布的,关于Web应用程序最可能、最常见、最危险的十大安全漏洞的列表。
1106 0
|
Web App开发 网络协议 安全
C# | 实现QUIC协议的客户端与服务端
QUIC(Quick UDP Internet Connections)是一种基于UDP协议的可靠、安全、高效的传输协议,由Google开发。它是HTTP/3协议的基础,并被视为未来互联网传输层协议的重要候选者之一。 与TCP不同,QUIC协议使用多路复用(Multiplexing)技术,可以在一个连接上同时传输多个数据流,这些数据流可以独立于彼此进行流量控制和拥塞控制,从而提高了传输效率。此外,QUIC协议还支持零RTT握手,即在第一次连接时就可以发送数据,进一步减少了延迟。
506 0
C# | 实现QUIC协议的客户端与服务端