一.基本格式
1. iptable [-t 表] 命令选项 [连名] 匹配条件 [-j 动作]
2.常用命令选项如下:
-A 【append】 在指定的连的结尾添加规则
-D 【delete】删除指定连中的规则,可以按规则号或规则内容匹配
-I 【insert】插入一条新规则,默认是在最前面
-R 【replace】 替换某一条规则
-L 【list】列出所有规则
-F 【flush】清空所有规则
-N 【new】自定义一条规则连
-X 【--delete-chain】 删除用户自定义规则连
-P 【policy】设置默认策略
-n 【numeric】以数字方式显示,如:显示ip,但不显示主机名
-v 【verbose】显示详细信息
-V 【version】查看iptable的版本信息
--line-number 查看规则连是,显示列表号
-Z 清空计数器值
二.举例
# iptable -t filter -F【清空filter表中所有规则】
# iptable -t filter -Z【清空filter表中的计数器值】
#iptable -t filter -X 【清除filter表中自定义连】
# iptable -t filter -P INPUT DROP 【设置INPUT连默认策略为DROP】
# iptable -t filter -P OUTPUT DROP
# iptable -t filter -P FORWROD DROP
# iptable -t filter -A INPUT -p tcp -j ACCEPT 【在INPUT连最后添加一条允许tcp协议的数据包进入的规则】
# iptable -t filter -R INPUT 1 -p tcp -j DROP 【替换INPUT连的第1条规则为拒绝tcp数据包进入】
# iptable -t nat -vnL --line-number 【以详细的、数字的格式列出nat表中的所有规则】
# iptable -t nat -D POSTROUTING 1 【删除nat表POSTROUTING 连中的第1条规则】
三.条件匹配
1. 协议匹配:用于检查数据包使用的协议,符合规则就允许,反之拒绝。允许使用的协议名在/etc/protocols文件中。
常用的协议有tcp,udp,icmp,ip 和all。【 -p 协议名 】
# iptable -I INPUT -p icmp -j REJECT 【拒绝进入防火墙本身的icmp数据包】
# iptable -A FORWARD -p udp -j ACCEPT 【允许转发udp的所有数据包】
2. 地址匹配:用于检查数据包的地址是否符合规则,包括源地址和目的地址。【-s 源地址, -d 目的地址】
# iptable -A FORWARD -s 10.0.0.0/8 -j DROP 【拒绝转发来自10.0.0.0/8 网段的数据包】
# iptable -A FORWARD -d 80.0.0.0/8 -j DROP 【 拒绝转发目的是80.0.0.0/8 网段的数据包】
3.端口匹配:用于检查数据包的tcp或udp端口,需要和 “-p 协议类型” 一起使用【-sport 源端口,-dport 目的端口】
# iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT 【允许转发来自10.0.0.0/8网段,目的端口是80的数据包】
# iptables -I FORWARD -s 10.0.0.0/8 -p tcp --sport 21 -j ACCEPT【允许转发来自10.0.0.0/8网段,源端口是21的数据包】
4.接口匹配:用于检查数据包从防火墙那个接口进入或出去,来判断是否允许。
# iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
【允许转发从eth0进入,来自10.0.0.0/8网段,使用tcp 协议,目的端口椒80的数据包】
# iptables -A INPUT -i eth0 -s 80.0.0.0/8 -j DORP 【拒绝从eth0进入,来自80.0.0.0/8的数据包】
5.SNAT转换:一般linux充当网关服务器时使用
SNAT只能用在nat表的POSTROUTING连,用于对源地址进行转换。要结合 --to 使用。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j SNAT --to 202.106.1.1
【将来自10.0.0.0/8网段的所有数据包的源地址转为202.106.1.1】
# iptables -t nat -A POSTROUTING -i eth0 -s 80.0.0.0/8 -p tcp --dport 25 -j SNAT --to 202.106.1.1
6.DNAT转换:只能用在nat表中的PREROUTING连,用于对目的地址或端口进行转换。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1 -p tcp --dport 80 -j DNAT --to 10.0.0.10
【将从eth1 进入,目的地址是202.106.1.1,使用tcp 协议,目的端口是80的数据包的目的地址转为10.0.0.1】
7.MASQUERADE:伪装,是SNAT的特例。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE
【将来自10.0.0.0/8网段,从eth1出去的数据包的源地址伪装为eth1接口地址】
四.拓展模块
1.按来源MAC地址匹配
# iptables -t filter -A FORWARD -m --mac-source 00:02:b2:03:a5:f6 -j DROP
【拒绝转发来自该MAC地址的数据包】
2.按多端口或连续端口匹配
20: 表示20以后的所有端口
20:100 表示20到100的端口
:20 表示20之前的所有端口
-m multiport [--prots, --sports,--dports]
# iptables -A INPUT -p tcp -m multiport --dports 21,20,25,53,80 -j ACCEPT 【多端口匹配】
# iptables -A INPUT -p tcp -dport 20: -j ACCEPT
# iptables -A INPUT -p tcp -sport 20:80 -j ACCEPT
# iptables -A INPUT -p tcp -sport :80 -j ACCEPT
3.还可以按数据包速率和状态匹配
-m limit --limit 匹配速率 如: -m limit --limit 50/s -j ACCEPT
-m state --state 状态 如: -m state --state INVALID,RELATED -j ACCEPT
iptable使用笔记相关推荐
- iptable 笔记
Iptables和netfilter的关系: 这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题.很多的知道iptables却不知道netfilter.其实i ...
- OpenResty简介及学习笔记
OpenResty简介及学习笔记 摘要 简介 一.OpenResty综述 二.指令说明: *_by_lua *_by_lua_block {lua_script} *_by_lua_file 三.登陆 ...
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
8.1 云数据中心面临的安全挑战 因为云化和SDN化的网络特点(网元出现的位置随意性更大,出现和消失的时间不定): 首先会导致安全业务开通周期长: 其次SDN的自动化能力是现在安全业务所不能达到的,很 ...
- 【安全牛学习笔记】Smurf攻击、Sockstress
Smurf攻击 世界上最古老的DDOS攻击技术 - 向广播地址发送伪造源地址的ICMP echo Request (ping) 包 - LAN所有计算机向伪造源地址返回响应包 - 对现代操作系统几乎无 ...
- 自己动手写Docker学习笔记
零.前言 本文为<自己动手写 Docker>的学习,对于各位学习 docker 的同学非常友好,非常建议买一本来学习. 书中有摘录书中的一些知识点,不过限于篇幅,没有全部摘录 (主要也是懒 ...
- 【读书笔记】知易行难,多实践
前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- pandas以前笔记
# -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...
最新文章
- 【只需简单三个步骤】ACE系统前后端不分离情况下如何增加一个JSP嵌入页面
- Harvard's CS50
- 测试用html文件是否存在,ASP如何检测某文件夹是否存在,不存在则自动创建
- 呢篇唔系教程 -- 记录自己第一次Android刷机
- 我现在的简历以及后面的更改方向
- 科大星云诗社动态20210901
- 什么是Vue?Vue的工作原理是什么?
- linux父子进程字写父读无效,linux父子进程
- 【做题记录】图论杂题
- Spring Boot删除嵌入式Tomcat服务器,启用Jetty服务器
- 3.1 API : DecisionTreeClassifier、DecisionTreeRegressor
- win10系统迁移到新固态硬盘,win10系统备份还原
- 新加坡国立大学计算机系访学,从实践中来,到实践中去——记新加坡国立大学访学项目...
- 自动清理垃圾文件与文件夹脚本.bat
- ioi 赛制_如何评价 IOI 2017(国际信息学奥林匹克竞赛)?
- Ubuntu11.10安装科磊NW336驱动
- java中字段可以取名is开头吗
- 关于网易新游猫和老鼠我的吐槽:来啊,一起来虐猫啊
- Codeforce 1296 E	 String Coloring
- 服务器如何与手机互传文件,两个云服务器怎么互传文件
热门文章
- js按下回车键调用方法
- Java操作Excel 并 保存新Excel
- 人到中年——IT男择业感悟
- 数据结构 — 图 之 关键路径、关键活动 (文字表述)
- MySQL - 用户管理
- 流行的软件测试工具介绍
- php文件是不是死链,什么是死链?
- 哈工大关系抽取模型CasRel代码解读
- Vue项目中ico问题
- 数学建模:整数规划示例模型 (Python 求解)