iptables

一文带你学懂iptables命令(含扩展命令) 1 iptables 用法说明 格式 iptables [-t table] {-A|-C|-D} chain rule-specification iptables [-t table] -I chain [rulenum] rule-specification iptables [-t table] -R chain rulenum rule-specification iptables [-t table] -D chain rulenum iptables [-t table] -S [chain 阅读详情

iptables中内置五个表:
filter:过滤表,也是默认表
nat:地址转换表
mangle
raw
security

内核中内置五链:
PREROUTING
INPUT
FARWORD
OUTPUT
POSTROUTING

用户可以自定义链

查看本机iptables的filter表的规则				#本机默认关掉了firewalld,并且没有添加任何规则
[root@localhost ~]#iptables -vnL				#-L:默认展示filter表. -n:数字格式显示。-v:详细格式
Chain INPUT (policy ACCEPT 187 packets, 13224 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 111 packets, 11120 bytes)
 pkts bytes target     prot opt in     out     source               destination         

如果想要看指定表上的规则
[root@localhost ~]#iptables -vnL -t nat				#-t:指定表

例子:
[root@localhost ~]#iptables  -t filter -A INPUT -s 192.168.91.137 -j DROP
-A|--append:追加一个规则
-s|--source:源地址。可以是主机名或者网段。例如192.168.0/24
-j|--jump target:常用的有ACCEPT,DROP,RETURN,REJECT
这条命令表示禁止来自192.168.91.137的任何渠道的访问

[root@localhost ~]#iptables -vnL
Chain INPUT (policy ACCEPT 2002 packets, 199K bytes)			#ACCEPT表示在这个表的INPUT链上的默认规则
 pkts bytes target     prot opt in     out     source               destination        #prot:协议					
    0     0 DROP       all  --  *      *       192.168.91.137       0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 1799 packets, 512K bytes)
 pkts bytes target     prot opt in     out     source               destination         

iptables默认是新添加的规则按顺序排列。如要查看编号
[root@localhost ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 434 packets, 39624 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    67 DROP       all  --  *      *       192.168.91.137       0.0.0.0/0           
2        2   168 DROP       all  --  *      *       192.168.91.132       0.0.0.0/0           

插入规则
[root@localhost ~]#iptables -I INPUT 2 -s 192.168.71.0/24 -j DROP       	
[root@localhost ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 66 packets, 4372 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    67 DROP       all  --  *      *       192.168.91.137       0.0.0.0/0           
2        0     0 DROP       all  --  *      *       192.168.71.0/24      0.0.0.0/0           
3        2   168 DROP       all  --  *      *       192.168.91.132       0.0.0.0/0           
I|--insert:插入  
2:表示插入到第二行之前。如果是1或者没有给出行号,表示插入到链的第一行。

删除规则
[root@localhost ~]#iptables -D INPUT 3				#-D|--delete:删除

[root@localhost ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 58 packets, 3828 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    67 DROP       all  --  *      *       192.168.91.137       0.0.0.0/0           
2        0     0 DROP       all  --  *      *       192.168.71.0/24      0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 30 packets, 2792 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

清空规则
[root@localhost ~]#iptables -F				#清空filter表上的所有规则

拒绝所有渠道的访问
[root@localhost ~]#iptables -A INPUT -j DROP

修改规则
[root@localhost ~]#iptables -R INPUT 2 -s 192.168.91.135				#-R|--replace:修改。规则号不能少

设定默认规则
[root@localhost ~]#iptables -P FORWARD DROP

[root@localhost ~]#iptables -vnL
Chain FORWARD (policy DROP 0 packets, 0 bytes)

如果做了WEB服务器,开启80端口.
[root@localhost ~]#iptables -A INPUT -p tcp --dport 80 -j ACCEPT

如果禁止某地址ssh本机
[root@localhost ~]#iptables -A INPUT -s 192.168.91.137 -p tcp --dport 22 -j DROP
-p:指定协议。包括tcp,udp, udplite, icmp, icmpv6,esp, ah, sctp, mh 。或者"all"表示所有协议。
--dport:目标端口

自定义链
[root@localhost ~]#iptables -N chain_name     		#-X:删除  -E:修改


扩展

查看扩展用法
[root@localhost ~]#man iptables-extensions

string
iptables -A OUTPUT -m string --algo bm --string "google" -j REJECT
表示禁止访问google

connlimit
[root@localhost ~]#iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP
限制与80端口连接的IP最大连接数为10

[root@localhost ~]#iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT

limit
iptables -I INPUT -d 192.168.91.139 -p icmp --icmp-type 8 -m limit --limit-burst 5 -j ACCEPT

state
iptables -A INPUT -p tcp -m multiport --dports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT

multiport
--sports
--dports

实现SNAT

NAT 是 network address translation 的缩写 网络地址转换

网络地址转换主要有两种:SNAT和DNAT,即源地址转换和目标地址转换


SNAT:源地址转换

eg:多台pc机使用ADSL路由器共享上网

每个pc都配置了内网IP,当pc机要访问外部网络的时候,路由器将数据包的包头的源地址替换成器的ip

解释:当外部网络的服务器比如网站web服务器接到访问请求的时候,

他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip,这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了所以叫做SNAT,基于源地址的地址转换。

DNAT是destination network address translation的 ,即目标网络地址转换

eg:典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip

互联网上的访问者使用公网ip来访问这个网站,

当访问的时候,客户端发出一个数据包

这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,

然后再把这个数据包发送到内网的web服务器上

这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换


MASQUERADE,地址伪装,在iptables中有着和SNAT相近的效果,但也有一些区别

但使用SNAT的时候,出口ip的地址范围可以是一个,也可以是多个,例如:

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去


iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3-192.168.5.5

这就是SNAT的使用方法,即可以NAT成一个地址,也可以NAT成多个地址

但是,对于SNAT,不管是几个地址,必须明确的指定要SNAT的ip

假如当前系统用的是ADSL动态拨号方式,那么每次拨号,出口ip192.168.5.3都会改变

而且改变的幅度很大,不一定是192.168.5.3到192.168.5.5范围内的地址

这个时候如果按照现在的方式来配置iptables就会出现问题了

因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的

每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip

这样是非常不好用的

MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT

比如下边的命令:

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE

如此配置的话,不用指定SNAT的目标ip了

不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做SNAT出去

这样就实现了很好的动态SNAT地址转换

实现DNAT

iptables -t nat -A PREROUTING -d 外网ip  -p tcp --dport 80 -j DNAT --to-destination 内网ip:[port]

端口转换

iptables -t nat -A PREROUTING -d 本机ip -p tcp --dport 80 -j REDIRECT --to-ports 8080 
Kubernetes IPVS和IPTABLES IPVS(IP Virtual Server,IP虚拟服务器)实现了传输层的负载平衡,通常称为4 LAN(四层局域网)交换,是Linux内核的一部分。IPVS在主机上运行,在真实服务器集群前面充当负载平衡器。IPVS可以将基于 TCP 和 UDP 的服务请求定向到真实服务器上。 阅读详情

相关推荐

iptables教程

如果一个数据包没有匹配到一个链中的任何一个规则,那么将对该数据包执行这个链的默认策略(default policy),默认策略可以是 ACCEPT 或 DROP。链中默认策略的存在使得我们在设计防火墙时可以有两种选择:设置默认策略 DROP 所有的数据包,然后添加规则接受(ACCEPT)来自可信 IP 地址的数据包,或访问我们的服务监听的端口的数据包,比如 bittorrent、FTP 服务器、Web 服务器、Samba 文件服务器等等。

3338

Linux之iptables防火墙

①自定义链添加:iptables -N web(链名) 创建链②自定义链改名:iptabels -E web(原来名称) (新名称) 自定义链改名③创建自定义链规则:iptables -t filter -I web -p icmp -j REJECT 创建自定义规则,iptables的链中添加一条对应到自定义链中才能生效④iptabales创建对应链规则然后跳转自定义链web:iptables -t filter -I INPUT -p icmp -j web。

Personal_Liberty的博客 1370

iptables详解

我们知道,防火墙的作用就在于对经过的报文匹配”规则”,然后执行对应的”动作”,所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了”链”,所以,我们把每一个”关卡”想象成如下图中的模样 ,这样来说,把他们称为”链”更为合适,每个经过这个”关卡”的报文,都要将这条”链”上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。这是后话,后面再聊,在实际使用时我们即可更加的明白。

运维老生常谈 1309

Linux环境下iptables防火墙基本用法演示

一、简单添加两台设备,防火墙关闭,防火墙规则很干净,网络通畅。当启用防火墙后,iptables -vnL显示出所有规则,但我们不使用默认规则,清空规则,自己定义1、iptable -t filter -A INPUT -s 192.168.239.70 -j DROP(末尾添加),设置源地址是192.168.239.70发出的请求,全丢弃,即不回应之前是通的,但设置完防火墙规...

weixin_33901641的博客 698

man iptables

还列出了数据包和字节计数器,后缀为“K”、“M”或“G”,分别表示1000、1000000和1000000000个乘数(但请参阅-x标志以更改此设置)。如果到达内置链的末尾,或者匹配了内置链中目标为 RETURN 的规则,则由该链策略指定的目标决定数据包的命运。目标可以是用户定义的链(而不是此规则中的链),可以是立即决定数据包命运的特殊内置目标之一,也可以是扩展(见下面的。如果匹配,则下一条规则由目标的值指定,该值可以是用户定义的链的名称、”中的一种,也可以是一个数值,表示这些协议之一或不同的协议。

2301_77336732的博客 874

ThreeJS教程:地图案例(包围盒、正投影)

推荐:将加入你的3D工具链。

jianshi2023的博客 1007

iptables命令

iptables命令的管理控制选项 -A 在指定链的末尾添加(append)一条新的规则 -D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除 -I 在指定链中插入(insert)一条新的规则,默认在第一行添加 -R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换 -L 列出(list)指定链中所有的规则进行查看 -E 重命名用户定义的链,不改变链本身 -F 清空(flush) -N 新建(new-chain)一条用户自己定义的规...

leechm的博客 1353

三电平逆变器LC滤波设计避坑指南:从SVPWM谐波到Simulink仿真验证

本文详细解析了三电平逆变器LC滤波设计中的关键问题,从SVPWM谐波特性到Simulink仿真验证,提供了800V/10kW系统的参数计算方法和优化技巧。通过实际案例和仿真配置示例,帮助工程师避免常见设计误区,提升电能质量和系统稳定性。

weixin_29261711的博客 173

iptables加强系统安全性

我的目的是关闭所有对外服务的端口,只允许ssh服务的22端口接受外面的请求。首先在我的测试服务器上进入root权限,然后用下面的命令查看iptablesroot@host2:~# iptables -vnL --line-numbers Chain INPUT (policy ACCEPT 105 packets, 10480 bytes) num pkts bytes target

Dean Chen的专栏 7595

ISMN数据处理

可批量下载,十分方便

m0_46268055的博客 1215

【软考中级】多媒体应用设计师复习笔记第十章【free】

第10章法律法规与标准规范 行业标准 缩写的大写拼音 地方标准 DB加生代码 企业标准Q加斜线企业代号国际标准是国际标准化组织ISO和国际电工委员会IEC制定的标准 国家标准是由国务院标准化行政主管部门制定,全国范围内使用 ?强制性国家标准的代号为GB,推荐性国家标准的代号为GB/T。 ?软件开发规范GB8566-88属于强制性国家标准 在这里插入图片描述 行业标准代号由大写汉语拼音字母组成,加上斜线和T,组成推荐性行业标准,如XX/T。已经发布的行业代号有QJ(航天),SJ(电子

weixin_47120900的博客 639

iptables配置实践

前言在大企业中防火墙角色主要交给硬件来支持,效果自然没话说只是需要增加一点点成本,但对于大多数个人或者互联网公司来说选择系统自带的iptables或者第三方云防火墙似乎是更加合适的选择,通过一些合理的优化和灵活的配置,我们也可以很轻松实现硬件防火墙的部分功能,够用就好。建立防火墙白名单机制很重要。

qq_23045563的博客 2087

基于Django+Vue3的智能目标检测系统设计与实现,Vue3前台系统+Django后台管理系统开发,Web前后端分离,YOLOv8 Web目标检测,实现图片、视频和摄像头检测等功能,全网独发

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv8 与 Django + Vue3,构建一个Vue3前台系统+Django后台管理系统开发,便于用户进行目标检测的操作和展示,实现对图片、视频实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。支持更换自己模型、图片检测、实时视频检测、置信度调节和IoU参数调节。同时支持目标检测、实例分割、关键点检测等任务

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 5433

防火墙之iptables详解

1、iptables 五链四表 1.1、iptables提供的链(chain) 1.2、iptables提供的表(table) 1.3、链和表的关系 1.4、规则匹配执行动作(target) 2、iptables 常用命令 2.1、查看指定表table的规则 2.2、查看指定链chain下指定表table的规则 2.3、常见例子 2.4、清空iptables的所有规则 2.5、增加规则 2.6、删除规则 2.7、修改规则 2.8、保存规则 3、常见命令参数介绍

michael_linux的博客,一个小小小学生。滴水穿石,步步为营,只为那刹那芳华。 1804

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1034

易盾滑块的js逆向分析

基于易盾的滑块验证码进行逆向分析,最种实现全系列的验证码逆向,包括滑块、点选、推理拼图等多种类型。

shanf7921的博客 3万+

IPTABLES

IPTABLES简单应用说明: iptables -A INPUT -p tcp -s 10.1.2.187 -j ACCEPT 将10.1.2.187加入允许范围 iptables -t nat -A POSTROUTING -j SNAT --to-source 10.1.2.1 参数—— -A: 添加 (跟链) -I: 插入 -p: 跟协议 -s: 源IP -d: 目标IP

tl_19的专栏 677

Lumerical 教程,包含作者个人理解及相关设计案例 (目前共计184篇,持续更新中)

4138。

u011699626的博客 1618

linux iptables

一、iptables基础 ①规则(rules):网络管理员预定义的条件 ②链(chains): 是数据包传播的路径 ③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能 ④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。 ⑤...

u013015301的博客 7632

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Iptables

iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。 netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。 iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。 iptables基础 我们知道iptabl...

bjgaocp的博客 8210

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

iptables使用详解

转载自https://blog.youkuaiyun.com/reyleon/article/details/12976341 转载自https://www.cnblogs.com/metoy/p/4320813.html 一、iptables安装以及基本使用 1.使用iptables先关闭自带的防火墙:sudo systemctl stop firewall.servicesudo systemctl disable firewall.service 2.安装与设置开机启用iptables:sudo y..

qq_38125626的博客 1329

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

iptables限制端口连接数量及端口限速

使用iptables设定特定端口连接数(万能方法) 限制端口连接数量 首先输入命令service iptables stop关闭iptables 限制端口并发数很简单,IPTABLES就能搞定了,假设你要限制端口8388的IP最大连接数为5,两句话命令: iptables -I INPUT -p tcp –dport 8388 -m connlimit –connlimit-above 5 -j ...

仅仅随笔 9634

iptables和nftables

几乎每个 Linux 管理员都使用过 iptables,它是一个 Linux 系统的防火墙。但是你可能还不太熟悉 nftables,这是一个新的防火墙,可为我们提供一些必需的升级,还有可能会取代 iptables。

l00102795的博客 3024
上一篇: ansible角色roles
下一篇: git学习
做人要开心
博客等级 码龄8年 4粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值