一、简介

1)—> IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统,在redhat7.1 centos7.1以上都内置装有。

2)—> iptables 的最大优点是它可以配置有状态的防火墙,有四种有效状态,名称分别为 ESTABLISHED 、 INVALID 、 NEW 和 RELATED。

-状态 ESTABLISHED 指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。

-状态INVALID指出该信息包与任何已知的流或连接都不相关,联,它可能包含错误的数据或头。状态 NEW 意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。最后,

-RELATED 表示该信息包正在启动新连接,以及它与已建立的连接相关联。

3)—> iptables 的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来满足您的特定需求,从而只允许您想要的网络流量进入系统。

4)—> Iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的,同时iptables 是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。

二  、iptables的结构和使用

--iptables表、链结构图

1)有四张表raw、mangle、nat、filter,都有独立的相应链表。

2)包过滤匹配流程(规则链内的匹配顺序)

-顺序比对,匹配即停止(LOG除外)

-若无任何匹配,则按该链的默认策略处理

3)iptables基本用法

-iptables  [-t 表名] 选项 [链名(大写)] 条件 [-j 目标操作(大写)]

例:[root@pc88 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT

A.注意事项/整体规律

-可以不指定表,默认为filter表

-可以不指定链,默认为对应表的所有链

-除非设置默认策略,否则必须指定匹配条件

-选项/链名用大写字母/目标操作用大写字母,其余都小写

B.常见目标操作:

ACCEPT:允许通过/放行

DROP:直接丢弃,不给出任何回应

REJECT:拒绝通过,必要时会给出提示

LOG:记录日志,然后传给下一条规则

C.常用的iptables命令选项

补充:iptables -X 清除预设表filter中使用者自定链中的规则(清除默认规则)

4)规则管理示例

-iptables的默认配置文件路径:/etc/sysconfig/iptables

-用iptables命令添加规则后要使用service iptables save命令后才能永久保存

-systemctl restart iptables.service 或 service iptables restart重启iptables服务

A.添加新规则

[root@pc88 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT  //允许接收tcp协议进来的数据包

(在表filter的INPUT链中追加规则)(-A末尾追加这条规则)

[root@pc88 ~]# iptables -I INPUT -p udp -j ACCEPT    //允许接收udp协议进来的数据包

(没写表名时,默认是指filter)(在INPUT规则表中首行插入这条规则)

[root@pc88 ~]# iptables -I INPUT 2 -p icmp -j ACCEPT   //允许接收icmp协议进来的数据包

(没写表名时,默认是指filter)(在INPUT规则表中第2行插入这条规则)

B.查看规则

[root@pc88 ~]# iptables -nL -t nat    //查看nat 的全部规则表

[root@pc88 ~]# iptables -nL POSTROUTING -t nat   //查看nat表中POSTROUTING链的规则表

[root@pc88 ~]# iptables -L POSTROUTING -t nat --line-numbers  //以规则序号的方式查看

C.删除、清空规则

-D删除规则 -F清空规则

[root@pc88 ~]# iptables -D INPUT 1 -t filter

//删除表filter中INPUT链的第1条规则(-t filter没写时,默认为filter表)

[root@pc88 ~]# iptables -D POSTROUTING 2 -t nat

//删除表nat中POSTROUTING链中的第2条规则

-F清空规则(分别清空四个表,第一个默认为filter表)

[root@pc88 ~]# iptables -F

[root@pc88 ~]# iptables -t nat -F

[root@pc88 ~]# iptables -t mangle -F

[root@pc88 ~]# iptables -t raw -F

D.设置默认规则

当用户添加的规则都不匹配时,为匹配默认规则

所有链的始默认规则均为ACCEPT(接收状态)

通过-P选项可重置默认规则,常用两种状态ACCEPT或DROP

[root@pc88 ~]# iptables -t nat -P POSTROUTING DROP

//将nat表中POSTROUTING链默认规则设置为DROP(弃包状态)

[root@pc88 ~]# iptables -t filter -P INPUT ACCEPT

//将filter表中INPUT链默认规则设置为ACCEPT(接收状态)

E.常见的防火墙设置类型:主机型和网络型

根据防火墙保护的对象不同,防火墙可以分为主机型防火墙与网络型防火墙,如图所示。

主机型防火墙,主要保护的是服务器本机(过滤威胁本机的数据包)。

网络防火墙,主要保护的是防火墙后面的其他服务器,如web服务器、FTP服务器等。

F.常见的扩展条件类型

前提条件:有对应的防火墙模块支持

基本用法:

-m 扩展模块 --扩展条件 条件值

示列:-m mac --mac-source 00:0D:33:88:BC:66

实用案例1

功能:拒绝某主机的访问,锁定该主机的MAC地址,这样不管变成什么IP都无法访问本机

[root@pc88 ~]# iptables -A INPUT -m mac --mac-source 00:0D:33:88:BC:66 -j DROP

实用案例2

功能:一条规则开放多个端口

[root@pc88 ~]# iptables -A INPUT -p tcp -m multiport --dports 21:23,25,80,110,16500:16800 -j ACCEPT

//先指定大的协议如tcp,然后再指定扩展协议

//21:23指21到23间的所有端口,16500:16800同理,不连续的用,分开

实用案例3

功能:根据IP范围指定可以访问本机相关端口的IP段(例如SSH远程登陆本机)

-先写允许访问的IP段,然后再写禁止IP段

[root@pc88 ~]# iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 192.168.8.20-192.168.8.60 -j ACCEPT

//先写允许20-60间的主机可以通过22端口远程访问本机

[root@pc88 ~]# iptables -A INPUT -p tcp --dport 22 -s 92.168.4.0/24 -j DROP

//当进来的IP不符合第一条规则时,会开始中匹配第二条,就在第二条上执行禁止4.0/24网段的访问。相当于只允许第一条的人访问。

实用案例4

功能:通过iptables实现局域网内不同网段间的两台主机的互联网共享.

假如A主机IP192.168.0.5/192.168.2.5(双网卡)可以上网,B主机IP192.168.2.100不能上网

-首先确保A和B要能相互ping通,A主机能上网

-然后把B主机的IP网关设置成192.168.2.5,DNS设置成和主机A的DNS一样

-开始添加修改主机A的iptables规则

[root@pca ~]# echo 0 > /proc/sys/net/ipv4/ip_forward

//echo ‘net.ipv4.ip_forward=1’ >> /etc/sysctl.conf

//修改/etc/sysctl.conf配置文件,可以实现永久有效规则

//首先开启主机A的路由转发功能

[root@pca ~]# iptables -t nat -A POSTROUTING -s 192.168.2.100 -p tcp --dport 80 -j SNAT --to-source 192.168.0.5

//将主机B访问主机A的80端口上的数据转发到主机A另一个能访问外网的网卡上ip是192.168.0.5 ,其中-p tcp --dport 80 可以不写,就变成访问A的所有端口数据都转到ip为192.168.0.5的网卡上,借由这个网卡再加上路由功能转的开启,从而实现连接外网。

实用案例5

功能:实现A可以ping能B,B无法ping通A(只是回应拒绝访问)

[root@pca ~]# iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT

//在主机A上添加上面规则

实用案例6

功能:实现禁止路由访问代理服务器后面的服务器主机

-在代理服务器开启路由转发的前提下

[root@server ~]# iptables -I FORWARD -s 192.168.2.200 -p tcp --dport 80 -j DROP

//192.168.2.200是要访问server的客户机,当客户机通过server访问80转发端口时丢弃数据包

实用案例7

[root@pc88 ~]#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

//如上例,添加一条入站规则:对进来的包的状态进行检测。已经建立tcp连接的包以及该连接相关的包允许通过!

//ESTABLISHED:已建立的链接状态。RELATED:该数据包与本机发出的数据包有关。

实用案例8

//防止骇客使用洪水攻击

[root@pc88 ~]#iptables -A INPUT -m limit --limit 3/hour

//说明 用来比对某段时间内封包的平均流量,上面的例子是用来比对:每小时平均流量是

否超过一次 3 个封包。 除了每小时平均次外,也可以每秒钟、每分钟或每天平均一次,

默认值为每小时平均一次,参数如后: /second、 /minute、/day。 除了进行封数量的

比对外,设定这个参数也会在条件达成时,暂停封包的比对动作,以避免因骇客使用洪水

攻击法,导致服务被阻断
————————————————
版权声明:本文为CSDN博主「璐程风」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cbuy888/article/details/80383770

iptables介绍和使用相关推荐

  1. firewalld、netfilter、 netfilter5表5链、iptables介绍

    1. Linux网络相关 ifconfig查看网卡ip(如果没有这个命令请使用yum install net-tools安装) ifdown ens33 //关闭网卡ens33(在使用远程终端连接时不 ...

  2. 防火墙iptables介绍

    防火墙: netfilter/iptables是集成在Linux2.4.X版本内核中的包过滤防火墙系统.该架构可以实现数据包过滤,网络地址转换以及数据包管理功能.linux中防火墙分为两部分:netf ...

  3. linux中iptables入门教程--设置静态防火墙

    1.iptables介绍 iptables是复杂的,它集成到linux内核中.用户通过iptables,可以对进出你的计算机的数据包进行过滤.通过iptables命令设置你的规则,来把守你的计算机网络 ...

  4. Linux 防火墙工具--iptables

    iptables介绍 iptables是基于内核的防火墙,功能非常强大,iptables内置了"三表五链" 三张表 1.filter     定义允许或者不允许的 2.nat    ...

  5. iptables--静态防火墙实例教程

    iptables--静态防火墙实例教程 follow me 介绍: 这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理.在这篇教程之后 ...

  6. iptables(上)

    iptables介绍 iptables 是通过分析数据包的包头信息,根据包头中的信息是否匹配到一定的规则,在对这些数据进行放行.拒绝或者丢弃等动作 包头信息: 源地址 目标地址 源端口 目标端口 源m ...

  7. linux中有fd set函数吗,LINUX下FD_SET介绍

    刚刚了解了linux下select系统调用,函数原型是 #include #include int select(int maxfdpl, fd_set *readset, fd_set *write ...

  8. linux防火墙策略文件夹,Linux防火墙iptables的策略

    iptables策略 iptables -L #查看现有防火墙所有策略 iptables -F #清除现有防火墙策略 只允许特定流量通过,禁用其他流量 1.允许SSH流量(重要) iptables - ...

  9. iptables防火墙火墙服务

    一.iptables介绍 二.安装服务并开启服务 yum install iptables-services.x86_64 systemctl stop firewalld systemctl dis ...

最新文章

  1. CentOS搭建本地光盘YUM源
  2. 查看mysql,apache,php,nginx编译参数
  3. Java 基本功之(一)入门知识点
  4. 吴恩达机器学习(第六章)——正则化
  5. juqery 获取radio选中的值
  6. LeetCode_每日一题今日份_167.两数之和II-输入有序数组
  7. tensorflow 调试_如何开始调试TensorFlow
  8. geetest文件夹什么意思_手机文件夹是英文不敢删?只要找出这5个文件夹,能腾出大量内存...
  9. UVA - 208 Firetruck
  10. html5小游戏需求分析,2015年HTML5就业需求走势总结分析
  11. clickhouse代理Chproxy
  12. SaltStack系列(二)之常用模块介绍
  13. mysql php 类 缓存_记录一个实用的PHP缓存类
  14. oracle12c如何完全卸载_如何卸载oracle12c
  15. 执行maven install 报如下错是什么原因呢?
  16. c语言while循环作用,c语言中while循环的用法
  17. php7 yar扩展,php扩展之Yar使用
  18. php laravel model,如何使用 Laravel Eloquent Model
  19. 片上总线Wishbone 学习(三)Wishbone互联的类型
  20. 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句

热门文章

  1. android listview数据错乱,AndroidListview 滑动过程中图片显示重复错乱解决方案
  2. 批量验证ssh账号密码登录shell脚本
  3. 图表示学习和异质信息网络
  4. win7配色方案_自制的基于rime的简体拼音输入方案,尽可能接近搜狗拼音
  5. 1.html基础标签
  6. 高考计算机机房固态硬盘风险,【单选题】(2016年高考)下列有关固态硬盘的叙述中,正确的是()...
  7. 用Python打印斜三角形图案
  8. 如何知道页面浏览时长?
  9. wordpress主机搬家
  10. 无监督DWI图像去噪:Patch2Self