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

iptables的使用规则

环境中为了安全要限制swagger的访问,最简单的方式是通过iptables防火墙设置规则限制。

在测试服务器中设置访问swagger-ui.html显示如下,区分大小写:

 

 iptables设置限制访问9783端口的swagger字段的请求:

iptables -A INPUT -p tcp --dport 9783 -m string --algo bm --string "swagger-" -j DROP

 访问小写swagger已被禁止,但是访问SWAGGer大写还是正常,需要加忽略大小写设置:

iptables -A INPUT -p tcp --dport 9783 -m string --icase  --algo bm --string "swagger-" -j DROP

经过以上设置后,再增加本机访问swagger的设置:

iptables -I INPUT -s 192.168.108.27 -p tcp --dport 9783 -m string --icase --string "swagger-" --algo bm -j ACCEPT

iptables常用命令:

插入修改选项:

[-t 表名]:该规则所操作的哪个表,可以使用filter、nat等,如果没有指定则默认为filter
-A:新增一条规则,到该规则链列表的最后一行
-I:插入一条规则,原本该位置上的规则会往后顺序移动,没有指定编号则为1
-D:从规则链中删除一条规则,要么输入完整的规则,或者指定规则编号加以删除
-R:替换某条规则,规则替换不会改变顺序,而且必须指定编号。
-P:设置某条规则链的默认动作
-nL:-L、-n,查看当前运行的防火墙规则列表
chain名:指定规则表的哪个链,如INPUT、OUPUT、FORWARD、PREROUTING等
[规则编号]:插入、删除、替换规则时用,--line-numbers显示号码
[-i|o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出
[-p 协议类型]:可以指定规则应用的协议,包含tcp、udp和icmp等
[-s 源IP地址]:源主机的IP地址或子网地址
[--sport 源端口号]:数据包的IP的源端口号
[-d目标IP地址]:目标主机的IP地址或子网地址
[--dport目标端口号]:数据包的IP的目标端口号
-m:extend matches,这个选项用于提供更多的匹配参数,如:
-m state –state ESTABLISHED,RELATED,INVALID,RELATED
-m tcp –dport 22
-m multiport –dports 80,8080
-m icmp –icmp-type 8
<-j 动作>:处理数据包的动作,包括ACCEPT、DROP、REJECT等
 

查看当前防火墙规则
iptables -L -n
iptables -nL 效果一样删除对应规则,可命令查看到每个规则chain的序列号。iptables -L -n --line-number
iptables -D INPUT 3 #删除INPUT的第三条已添加规则,这里3代表第几行规则

 如下所示

选项名称选项说明
--algo {bm|kmp}设置匹配模式。bm 和 kmp 为两种不同的字符串匹配算法。bm 是 Boyer-Moore 算法,kmp 是 Knuth-Pratt-Morris 算法。
--from offset设置搜索的开始便宜量,默认为 0。
--to offset设置搜索的结束偏移量,默认为数据包的大小。
[!] --string pattern匹配指定的字符串规则。
[!] --hex-string pattern匹配指定的 16 进制格式字符串规则。
--icase搜索时忽略大小写。

参考文章:

iptables防火墙_Jerry00713的博客-CSDN博客

https://www.cnblogs.com/balzac/p/15738052.html

http://www.lryc.cn/news/138617.html

相关文章:

  • JS 动画 vs CSS 动画:究竟有何不同?
  • 供应链 | 大数据报童模型:基于机器学习的实践见解
  • Java开发工作问题整理与记录
  • 静态代码扫描持续构建(Jenkins)
  • Git gui教程---汇总篇
  • flink sql checkpoint 调优配置
  • Linux 网络文件共享介绍
  • Qt中如何在qml文件中使用其他的qml文件并创建对象
  • 学习心得04:CUDA
  • OpenCV实现摄像头图像分类(Python版)
  • 计算机竞赛 地铁大数据客流分析系统 设计与实现
  • sonarqube报错http status 500-internal server error,什么原因,怎么解决
  • 工业设计的四个主要阶段,你都知道吗?优漫动游
  • 【DevOps视频笔记】4.Build 阶段 - Maven安装配置
  • linux非GUI模式执行带有jpgc线程组jmeter脚本报错
  • mysql处理json格式的字段,一文搞懂mysql解析json数据
  • 测试数据生成
  • 网安周报|国防承包商Belcan泄露了带有漏洞列表的管理员密码
  • Vue3语法系统进阶 - 全面掌握Vue3特性
  • 第9天----【位运算进阶之----按位取反(~)】(附补码,原码讲解)
  • 如何获取当前 JAR 包的存放位置?
  • 微调llama2模型教程:创建自己的Python代码生成器
  • Java【手撕双指针】LeetCode 57. “两数之和“, 图文详解思路分析 + 代码
  • 大数据(一)定义、特性
  • 【C++】构造函数和初始化列表的性能差距
  • Linux下套接字TCP实现网络通信
  • ❤ vue清除定时器Bug
  • IDEA创建Spring,Maven项目没有resources文件夹
  • Unity 结构少继承多组合
  • 保研之旅2:中科院声学所“声学和信息学科”夏令营