linux中IPtables的使用基本使用及相关参数介绍
2021/12/28 7:07:06
本文主要是介绍linux中IPtables的使用基本使用及相关参数介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、IPtables的使用
1、安装iptables yum install iptables* -y 2、启动iptables systemctl start iptables 3、关闭firewalld systemctl disable --now firewalld 补充:查看当前服务运行的状态(例:防火墙,网络管理等) systemctl status firewalld iptables语法格式: iptables -t 表名 选项 链名称 条件 动作 参数介绍: 1.基本参数: -t: 指定操作的表(后跟表名) -L / --list: 列出当前防火墙的相关规则 -v: 列出数据包和数据包的大小 -n: 不反解地址 # 例:0.0.0.0表示任意ip地址,可反解为anywhere # 查看当前防火墙的相关规则 iptables -L -V -n 2.选项:选项后跟链名 -A / --append 追加一条规则到链中(尾部) -I / --insert 插入一条规则到链中,插入至顶部 -F / --flush 清空链中的规则 -Z / --zero 清空计数器(包数量、包大小) -D / --delete 删除链中的规则 -R / --replace 修改 -S / --list-rules 列出所有的规则 -N / --new-chain 创建一个自定义链 -X / --delete-chain 删除一个自定义链 -P / --policy 指定链的默认策略
2、iptables基本的条件匹配
条件后跟相应的协议 参数:-p TCP(HTTP) TCP(Transmission Control Protocol,传输控制协议)是面向连接的协 议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要 经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对 话的简单过程: 1)主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是 第一次对话; 2)主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发 送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”,这是第二次 对话; 3)主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着 吧!”, 这是第三次对话。 UDP UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传 送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 在发 送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传 输带宽的限制; 在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中 读一个消息段 ICMP(PING) 我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常, 其 实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据 包, 如果数据包是否到达的消息及时反馈回来,那么网络就是通的。 ping命令是用来探测主机到主机之间是否可通信,如果不能ping到某台主 机,表明不能和这台主机建立连接。ping命令是使用 IP 和网络控制信息协议 (ICMP),因而没有涉及到任何传输协议(UDP/TCP) 和应用程序。它发送icmp回送 请求消息给目的主机 ALL(所有)
3、iptables的相关动作
接收动作的参数: -i :进来的网卡 (一般是网卡名,eth0/eth1) -o : 出去的网卡 (一般是网卡名,eth0/eth1) -m : 指定的模块 (可以借用模块从而实现我们的需求,大大减少工作量) -p :指定协议 (接收匹配的相关条件协议) -j : 转发动作 # 相关转发动作 ACCEPT 数据包放行,进行完该动作以后,将不再比对其他规则, 直接跳到下一个规则 REJECT 阻拦数据包,并将数据包传给对方并通知对方 DROP 丢弃包不予处理(可以理解为拒绝访问),进行完该处理 动作后,将不再比对其他规则,直接终端过滤程序 REDIRECT 将包重新导向到另外一个端口,进行完该处理动作后,将 会继续比对其他规则
4、源地址、源端口、目标地址、目标端口
# 在进行网络传输的时候,涉及到两个对象,发送请求的一方,和接收请求的一方。 源地址:发送请求的地址/一方(一般遇到允许xxx访问,一般是对源地址进行限制) 参数:-s [源地址] # 和匹配条件相关协议连用 # 端口:可以认为是设备与外界通讯交流的出口 源端口:发送请求的一方的端口号 参数:--sport [源端口号] # 和源地址连用 目标地址:接收请求的地址/一方(一般遇到访问xxx或者使用xxx访问时,一般是对目标 地址进行限制) 参数:-d [目标地址] # 和匹配条件相关协议连用 目标端口:接收请求的一方的端口号 参数:--dport [目标端口号] # 和目标地址连用
5、模块
在iptables网路传输里也存在有模块的概念 作用:扩展iptables的功能 模块:具有一系列功能的集合体 如何导入模块:-m [模块名] 1、multiport模块:连续匹配多个端口号 --sport / --dport :指定多个端口,不同端口之间用逗号隔开,连续端口使用冒号分割 2、iprange模块:指定一段连续的ip地址范围 --src-range from [-to] :源地址范围 --dst-range from [-to] :目标地址范围 3、string模块: 匹配指定字符串 --string pattern # 指定要匹配的字符串 --algo {bm|kmp} # 匹配的查询算法 4、time模块: 根据时间匹配报文 --timestart hh:mm[:ss] # 开始时间 --timestop hh:mm[ss:] # 结束时间 --monthdays day[,day...] # 指定一个月的某一天 --weekdays day[,day...] # 指定周还是周天 5、禁ping,默认本机无法ping别人、别人无法ping自己 --icmp-type {type[/code]|typename} echo-request (8)请求 echo-reply (0)回应 6、connlimit模块:限制连接数,并发链接数 --connlimit-upto n # 如果现有链接数小于或等于n则匹配 --connlimit-above n # 如果现有链接数大于n则匹配 7、针对报文速率进行限制。 秒、分钟、小时、天 --limit rate [/second/minute|/hour|day] # 报文数量 即我们平时在基于网络传输文件时的传输速度:例:100kb/s --limit-burst number # 报文数量(默认:5)
这篇关于linux中IPtables的使用基本使用及相关参数介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南