热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iptable使用笔记

一.基本格式1.iptable[-t表]命令选项[连名]匹配条件[-j动作]2.常用命令选项如下:-A【append】在指定的连的结尾添加规则-D【delete】删除
一.基本格式

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

推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到 ... [详细]
  • 好久没玩过C语言了,上一次还是在大二的时候。。。废话不多说,这里有一个C语言实现的学生选课系统代码,分享给大家,具体如下&# ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • linux6.5 配置邮件服务,centos 6.5服务器搭建邮件服务postfix和dovecot
    centos6.5搭建邮件服务postfix和dovecot------------------------------------------------安装DNS指定邮件交换记 ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
  • TLB 缓存延迟刷新漏洞 CVE201818281 解析 ... [详细]
  • Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,现在在企业中的使用率也是很广的。git是一个分布式的版本控制系统,不像以前的svn,svn是 ... [详细]
  • helm V3版本
    1、引入(1)之前方式部署应用基本过程*编写yaml文件**deployment**Service**Ingress(负载均衡、 ... [详细]
  • linux的一直是从windows转到linux的用户关心的问题。由于众所周知的原因,有经验的windows用户都养成了用ghost等软件windows的“优良传统” ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
author-avatar
heyuntao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有