iptables命令详解
防火墙是内核的配置,iptables是使用防火墙的工具
iptables语法:
iptables [-t 表名] 动作 链名 匹配条件 -j 目标动作或跳转
详解:
一、表名TABLE
1、raw表:确定是否对数据包进行状态跟踪(目标是关闭nat表上启用的连接追踪功能)。
2、mangle表:为数据包设置标记。
3、nat表:地址转换,修改数据包中的源、目标IP地址或端口;启用connection_track;SNAT,DNAT,PNAT
4、filter表:过滤,确定是否放行该数据包
默认为filter表
二、动作COMMAND
1、对于链的动作:
-F:flush, 清空规则链;
-N:new, 自建一条自定义链
-X: delete, 删除一条自定义的空链
-Z:zero,(数据包和流量)计数器归零
-P:policy,设置默认策略,对filter表来讲,默认规则为ACCEPT或DROP,不能为REJECT;
-E:重命名自定义链
2、对于链中规则的动作:
-A:向链中添加一条规则,默认插入所有规则的最后一条。
-I:向链中插入一条规则,默认插入所有规则的第一条。
iptables -I INPUT 2 ·····
即为在链中第2条规则前添加一条规则。
-D:从链中删除一条规则。
-R:替换链中的一条规则。
3、查询动作:
-L
-n: 数字格式显示主机地址和端口;
-v: 详细格式,-vv, -vvv
--line-numbers: 显示规则编号
-x: exactly,不要对计数器的计数结果做单位换算,而显示其精确值
三、链名CHAIN
PREROUTING:路由前,进行路由选择前处理数据包
INPUT:到达本机内部的报文必经之路,处理入站数据包
FORWARD:由本机转发的报文必经之路,处理转发数据包
OUTPUT:由本机发出的报文的必经之路,处理出站数据包
POSTROUTING:路由后,进行路由选择后处理数据包
四、匹配条件CRETIRIA
1、通用匹配
-s IP地址:指定报文源IP地址匹配的范围;可以是IP,也可以是网络地址;可使用!取反;
--src, --source
-d IP地址:指定报文目标IP地址匹配的范围;
--dst, --destination
-p 协议:指定匹配报文的协议类型,一般有三种tcp, udp和icmp;
-i 网络接口名: 数据报文流入的接口;PREROUTING, INPUT, FORWARD
-o 网络接口名: 数据报文流出的接口;OUTPUT, FORWARD, POSTROUITING
2、扩展匹配
2.1隐式扩展:当使用-p {tcp|udp|icmp}中的一种时,可以直接使用扩展专用选项;
-p tcp:
--sport 源端口号: 指定源端口
--dport 目标端口号: 指定目标端口
-p udp:
--sport 源端口号: 指定源端口
--dport 目标端口号: 指定目标端口
-p icmp [-m icmp]
--icmp-type
0: echo-reply, ping响应
8: echo-request, ping请求
例:iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 8
2.2显式扩展:必须明确说明使用哪个模块进行扩展,而后才能使用其扩展专用选项;
(1)state:连接状态
-m state –-state {NEW|ESTABLISHED|RELATED|INVALID|}
接下来介绍下用iptables实现状态检测包过滤
介绍tcp以下4种状态的连接
1].NEW:即3次握手的第一次,一次新的请求
iptable -A OUTPUT -o eth0 -m state --state NEW -j DROP
分析这条规则,其中-m表示扩展加载state状态检测模块,--state NEW表示检测tcp的第一次握手,整条规则的作用就是拒绝从eth0网卡发出的新的tcp连接。
2].ESTABLISHED:二次握手以后,连接断开之前的连接
3].RELATED:相关连的状态,可解决控制ftp连接这种超麻烦的协议
4].INVALID:无法识别的状态
应用案例:
结合NEW和ESTABLISHED这2种状态,实现以下规则
iptables -A INPUT -d 192.168.1.1 -p tcp –dport 22 -m state –-state NEW,ESTABLISHED -j ACCEPT
允许外面向主机发起的新的ssh请求
iptables -A INPUT -d 192.168.1.1 -p tcp -dport 80 -m state –-state NEW,ESTABLISHED -j ACCEPT
允许外面向主机发起的新的web连接
iptables -A OUTPUT -s 192.168.1.1 -p tcp sport 22 -m state -–state ESTABLISHED -j ACCEPT
处于连接状态时,允许主机发往外部的ssh数据包
iptables -A OUTPUT -s 192.168.1.1 -p tcp sport 80 -m state –-state ESTABLISHED -j ACCEPT
处于连接状态时,允许主机发往外部的web数据包
iptables -P INTUP DROP
拒绝其它所有进来的数据包
iptables -P OUTPUT DROP
拒绝其它所有出去的数据包
这几条规则可以用在web服务器上,只允许客户向服务器发出ssh和web请求的访问,服务器不能主动向外发出任何连接,避免服务器成为***的跳板
(2)mport:多端口匹配
-m {mport|multiport}
--source-ports|--sports port[,port···]
--destination-ports|--dports port[,port···]
--ports port[,port···]
此扩展可以指定不连续的端口,在这里优化以上的案例来说明其作用
iptables -A INPUT -d 192.168.1.1 -m mport –-destination-ports 22,80,443 -m state –-state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.1 -m mport –-source-ports 22,80,443 -m state –- state ESTABLISHED -j ACCEPT
iptables -P INTUP DROP
iptables -P OUTPUT DROP
一次可以添加多个端口,端口之间用逗号隔开
(3)iprange:多IP匹配
-m iprange
--src-range IP-IP
--dst-range IP-IP
这里用一个简单的例子来说明
iptables -A INPUT -d 192.168.1.1 -m iprange –src-range 192.168.0.1-192.168.0.100 -p tcp –-dport 80 -j DROP
拒绝192.168.0.1-192.168.0.100这段地址访问192.168.1.1的web服务
(4)connlimit:并发连接请求个数限制
-m connlimit
--connlimit-above [n]
例:iptables -A INPUT -d 172.16.100.7 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP
(5)limit:速率限制
-m limit
--limit n[/second|/minute|/hour|/day]平均速率
--limit-burst n突发速率
iptables -A INPUT -d 192.168.1.1 -p tcp –dport 80 -m limit --limit 10/second --limit-burst 30 -j ACCEPT
此条规则限制了每秒10个数据包,突发最大速率是每秒30个数据包
(6)time:时间限制
-m time
--datestart YYYY[-MM][-DD[Thh[:mm[:ss]]]]
--datestop YYYY[-MM][-DD[Thh[:mm[:ss]]]]
--timestart hh:mm[:ss]
--timestop hh:mm[:ss]
--weekdays day[,day]
Mon, Tue,Wen,Thu,Fri,Sat,Sun
区分以下两种写法来理解这几个选项的意义
iptables -A INPUT -d 192.168.1.1 -p tcp –-dport 80 -m time –-datestart 2012:07:20:08:30:00 --datestop 2012:07:20:14:30:00 -j ACCEPT
从7月20号8:30到7月30号14:30允许访问本机web服务
iptables -A input -d 192.168.1.1 -p tcp –-dport 80 -m time –- timestart 08:30:00 –-timestop 14:30:00 --datestart 2012:07:20 –-datestop 2012:07:30 -j ACCEPT
从7月20号到7月30号 每天的8:30—14:30时分允许访问本机web服务
(7)string:字符限制(对中文字符匹配有限)
-m string
--algo bm|kmp 指定字符匹配算法
--string "字符" 指定字符
iptables -A out -s 172.16.100.1 -p tcp --sport 80 -m string --algo kmp –string “baidu.com” -j DROP
包含baidu.com的数据包都拒绝
例:匹配源mac地址
-m mac --mac-source mac地址
五、目标动作TARGET
1、ACCEPT
2、DROP:丢弃数据包不予处理,进行完此处理后将不再对比其他规则,直接中断过滤程序。
3、REJECT:拦阻数据包,并返回数据包通知对方,可返回的数据包。
4、LOG:将iptables日志存储在/var/log/messages文件中。
[root@localhost log]# iptables -L -v#显示的参数简单解释
Chain:链
policy:默认策略
pkts:该规则处理数据包的个数
bytes:该规则处理数据包的大小(流量)
target:目标动作
prot:协议(条件)
opt:其他选项
source:源地址
destination:目标地址
以上均为理论知识点,以后遇到具体实例后回继续添加。
转载于:https://blog.51cto.com/littlehorse/1717459
iptables命令详解相关推荐
- iptables之iptables命令详解
#iptables [OPTION] COMMAND CHAIN 匹配标准 -j TARGET [OPTION] -t TABLENAME 不指定默认为filter ...
- 全网超详细的Linux iptables命令详解以及详解iptables-save和iptables-restore命令
文章目录 1. 文章引言 2. iptables的四表五链 2.1 何为四表 2.2 何为五链 3. iptables语法格式 4. 规则的查看与清除 5. 防火墙的备份与还原 5.1 iptable ...
- Linux iptables命令详解
iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制.当数据包需要进入设备.从设备中流出或者由该设备转发.路由时,都可以使用 ...
- 摘自ubantuer-Linux防火墙iptables学习笔记(三)iptables命令详解和举例
网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能有所帮助. 网管员的安全意识要比空喊Linux安全重要得多. iptables -F iptables -X iptables ...
- iptables(三)iptables命令详解
一 语法规则 iptables [-t table] COMMAND [chain] CONDITION -j ACTION-t table 是指'操作的表',filter.nat.mangl ...
- linux 网络管理之iptables命令详解
用途 iptables是Linux上常用的防火墙软件, 工作流程 iptables 会对数据包进行过滤,所以会对请求数据包的包头进行解析,并按照指定的规则进行匹配决定是否允许该数据包进入主机,其过滤规 ...
- linux中iptables配置文件及命令详解详解
linux中iptables配置文件及命令详解详解 2018年05月04日 14:23:41 hxpjava1 阅读数 956 linux中iptables配置文件及命令详解详解 iptables配置 ...
- Linux命令详解:iptables 命令
Linux下 iptables 配置详解 一.Linux防火墙 iptables 相关知识点 1.概要 1.1 防火墙分类 1.2 iptables基础 1.3 管理和设置 iptables 规则 1 ...
- nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令
点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...
最新文章
- 在CentOS下安装apche+tomcat+mysql+php
- Spring Boot配置IDEA无法创建Spring Initializr项目
- html中选择样式,html中css三种常见的样式选择器 zz
- xml文件转换成图片_如何把pdf文件转换成图片?
- 机器人J中WPR_北方工业大学服务机器人研究项目介绍
- 第5章--电商项目-mysql实战--数据库主从配置
- yb3防爆电机型号含义_YBK3防爆电机介绍
- c# 计算圆锥的体积_急求用c#计算圆柱体和圆锥体的体积的代码,下面是要求:
- linux 日志 \var\log
- php 字符串表示,php:字符串(string)数据类型实例详解
- 平滑阴影blender_【Blender笔记】简单的创建一个平平无奇的石头
- 大学数学实验习题--统计推断 03(附答案)
- imagej得到灰度图数据_Java图像处理最快技术:ImageJ 学习第一篇
- 设计模式---外观(Facade)模式
- eclipes 快捷键操作:
- 倒排表数据结构、通配符查询、拼写纠正详解
- 游戏设计模式-原型模式
- 联想微型计算机怎么进入bios,联想怎么进入bios图文教程
- Snowflake Snow Snowflakes
- 美国计算机有读一年的学校吗,美国计算机排名多少的学校值得去读?相关院校资讯!...
热门文章
- python没有return语句的函数将返回_为什么Python没有return返回值
- MyBatis3源码解析(8)MyBatis与Spring的结合
- vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
- 华为服务器装系统一直在读盘,系统重装一直在启动服务器
- php $that,PHP中$this和$that指针使用实例
- Python 根据文件绝对路径删除文件
- Spring Boot整合Swagger3注解@ApiImplicitParam的allowMultiple属性
- 论坛中的验证码的作用
- java生产者消费者模型到精通_java生产者消费者模型
- MySQL5.7--项目数据库不同出现的问题