当前位置: 首页 > news >正文

Linux iptables防火墙操作

资料:
网络运维相关 - iptables 【Main】
https://www.zsythink.net/archives/tag/iptables/
netfilter 在 Linux 内核 TCP/IP协议栈中的位置 【框架】【Aulaxiry】
https://zhuanlan.zhihu.com/p/93630586

1 概念详解

● 防火墙概念
○ 主机防火墙 + 网络防火墙
○ 硬件防火墙 + 软件防火墙
○ iptables 客户端代理 + netfilter 安全框架(真正的防火墙,位于内核空间)
○ 作用:封包过滤、数据内容修改、网络地址转换(NAT)
● iptables基础
○ 按规则执行指定动作
■ 源地址、目的地址、传输协议、服务类型;
■ 放行、拒绝、丢弃
● 链的概念
○ prerouting + input + output + forward + postrouting
● 表的概念
○ filter表:负责过滤功能,防火墙;内核模块:iptables_filter
○ nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
○ mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
○ raw表:关闭nat表上启用的连接追踪机制;iptable_raw
● 表链关系
○ 不同链上表的类型不同 , 表是功能,链是钩子
■ raw : PREROUTING,OUTPUT
■ mangle :PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
■ nat :PREROUTING,OUTPUT,POSTROUTING(centos7中还有INPUT,centos6中没有)
■ filter:INPUT,FORWARD,OUTPUT
○ 每个链上规则的匹配次序:raw –> mangle –> nat –> filter
○ 自定义链: 针对特定的应用程序,可以当做动作链入到默认的链
● 数据包经过防火墙的流程:

● 规则的概念
○ 匹配条件 + 处理动作组成
○ 匹配条件: 基本匹配条件 (src ip , dst ip 等)+ 扩展匹配条件 ( src port ,dst port 等)
○ 处理动作: ACCEPT DROP REJECT SNAT MASQUERADE DNAT REDIRECT LOG

2 iptables操作-规则查询

● 表查询操作
○ iptables -t raw -L
○ iptables -t mangle -L
○ iptables -t nat -L
○ iptables -t filter -L 查看 filter表中的内容:

■ 不同应用场景操作filter中的链不一样,禁止IP的访问需要在Iput链中设置。
■ 不指定 -t 默认 filter , iptables -L INPUT ; 
■ iptables -vL INPUT 可以查看更多信息 -v■ iptables -vnL  不对名称反解 -n

○ iptables常用命令:
■ iptables -t 表名 -L
■ iptables -t 表名 -L 链名
■ iptables -t 表名 -v -L
■ iptables -t 表名 -n -L
■ -x 选项表示显示计数器的精确 ; –line 显示规则的序号

3 iptables操作-规则管理

对iptables进行”增、删、改”操作
演示:
● 清空某个链的规则:iptables -F INPUT , 默认全部放行

● 增加规则
○ iptables -t fileter -I INPUT -s 192.168.1.146 -j DROP ( -I 首部插入 -j匹配 )
○ iptables -t fileter -A INPUT -s 192.168.1.146 -j ACEEPT ( -A 末尾追加 )
○ 规则增加有顺序之分:
■ iptables -t fileter -I INPUT 2 -s 192.168.1.146 -j ACEEPT (-I INPUT 2:编号2)
● 删除规则
○ 根据规则的编号去删除规则
■ iptables -t filter -D INPUT 3
○ 根据具体的匹配条件与动作删除规则
■ iptables -D INPUT -s 192.168.1.146 -j ACEEPT
○ 清空链上所有规则/清空
■ iptables -t tablename -F / chainName
● 修改规则
○ 可以先删除某条规则,再进行增加这么操作,直接修改可能会有操作上的风险,不建议。
○ 主要使用-R即可
■ iptables -t filter -R INPUT 1 -s 192.168.1.146 -j REJECT (-s 必须带,无论指定1)
● 保存规则
○ centos6中 :
■ service iptables save 保存在 /etc/sysconfig/iptables
■ iptables-save > /etc/sysconfig/iptables
■ iptables-restore < /etc/sysconfig/iptables (载入规则)
○ ubuntu中:
■ sudo netfilter-persistent save /save6 (需要安装iptables-persistant)
■ /etc/iptables/rules.v4 # IPv4规则 / v6

4 iptables匹配条件

基本匹配条件:
● 源IP
○ -s ip ; -s ip,ip; -s ip/16 设置单IP 多个IP 网段
○ ! -s ip ; 相当于取反

● 目标IP
● 协议类型
● 网卡接口
○ -i选项用于匹配报文从哪个网卡流入
○ -o选项用于匹配报文将从哪个网卡流出

扩展匹配条件:
● tcp扩展模块
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPT
● multiport扩展模块
iptables -t filter -I OUTPUT -d 192.168.1.146 -p udp -m multiport --sports 137,138 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport ! --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 80:88 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80:88 -j REJECT

5 iptables黑白名单

当链的默认策略为ACCEPT时,链中的规则对应的动作应该为DROP或者REJECT,表示只有匹配到规则的报文才会被拒绝,没有被规则匹配到的报文都会被默认接受,这就是”黑名单”机制。

当链的默认策略为DROP时,链中的规则对应的动作应该为ACCEPT,表示只有匹配到规则的报文才会被放行,没有被规则匹配到的报文都会被默认拒绝,这就是”白名单”机制。

白名单机制似乎更加安全一些,黑名单机制似乎更加灵活一些。

6 iptables防火墙

iptables往往作为主机防火墙,此处讲解为 如何作为网络防火墙

7 iptables动作总结2

http://www.dtcms.com/a/311099.html

相关文章:

  • 一种基于入侵杂草优化算法(IWO)的聚类算法,并与K-Means、高斯混合模型(GMM)进行对比,Matlab
  • 网安-中间件(updating..)
  • HarmonyOS NEXT系列之定制化构建制品
  • HarmonyOS 开发:基于 ArkUI 实现复杂表单验证的最佳实践
  • 电子电气架构 --- 汽车网络安全概述
  • lumerical——布拉格光栅(2)
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现道路车辆事故的检测识别(C#代码UI界面版)
  • LLM隐藏层状态: outputs.hidden_states 是 MLP Residual 还是 Layer Norm
  • 【前端:Html】--1.1.基础语法
  • 在 Elasticsearch 中落地 Learning to Rank(LTR)
  • 修改git commit 提交版本的描述信息
  • 【算法笔记 day four】二分查找
  • realIADD3复现笔记
  • 记录一次ESP32报错Guru Meditation Error: Core 1 panic‘ed (Double exception).
  • 大模型Agent记忆的主流技术与优缺点解析
  • OpenCV HSV与RGB颜色模型的区别
  • 深度学习核心:神经网络-激活函数 - 原理、实现及在医学影像领域的应用
  • 【matlab例程】无迹粒子滤波(UPF)的例程,用于三维环境下多雷达目标跟踪,非线性系统
  • Maven引入其他模块无法调用,出现Unable to find main class
  • [Windows] 微软.Net运行库离线合集包 Microsoft .Net Packages AIO v13.05.25
  • chrome的数据采集插件chat4data的使用
  • Vue 服务端渲染 Nuxt 使用详解
  • WinForm之ListBox 控件
  • Android内存优化核弹方案:LeakCanary 3.0定制化与Heap Dump自动化分析实战
  • WordPress AI写作插件开发实战:从GPT集成到企业级部署
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势柱状图
  • uniapp倒计时计算
  • 【Linux系统】详解,进程控制
  • NCV8402ASTT1G自保护N沟道功率MOSFET安森美/ONSEMI 过流过温保护汽车级驱动NCV8402ASTT1
  • 【论文精读】3D Gaussian Splatting for Real-Time Radiance Field Rendering