Linux-iptables初识

了解

  1. iptables是与Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。
  2. netfilter/iptables IP信息包过滤系统是一种强大的工具,可用于添加、编辑和去除规则,这些规则是在做信息包过滤决定时,防火墙所遵守和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组建netfilter和iptables组成。

    * netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

    * ipitables组件是一种工具,也是用户空间(userspace),它使插入、修改和除去信息包过滤表中规则变得容易。
  3. iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。

    * 四个表:filter、nat、mangle、raw,默认表是filter(没有指定表的时候就是filter表)

    filter:一般的过滤功能

    nat:端口映射、地址映射等

    mangle:用于对特定数据包的修改

    raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

    优先级:raw>mangle>nat>filter

    * 五个链:PREROUTING、

    PREROUTING:数据包进入路由表之前

    INPUT:通过路由表后,目的地为本机

    FORWARD:通过路由表后,目的地不是本机

    OUTPUT:由本机产生,向外转发

    POSTROUTING:发送到网卡接口之前

基本命令

1.查看iptables的四张表

cat /proc/net/ip_tables_names

2.查看iptables表中的规则

iptables -t nat/raw/mangle/filter –L

3.查看iptables中共有哪些target

cat /proc/net/ip_tables_targets

4.清空链中的rule。清空所选链。这等于把所有规则一个个的删除

iptables –t raw/mangle/nat/filter –F

5.删除每个非内建的链

iptables –t /raw/mangle/nat/filter –X

6.查看链中的rule

iptables –t /raw/mangle/nat/filter –L

7.查看iptables的帮助文件

iptables --help

表与链

1.Filter

iptables -L | more

当不指定表明的时候,默认指filter表。more与|连用:可用“空格”翻页,上下箭头翻行

Filter表中的INPUT、FORWARD、OUTPUT三个链

2.NAT

当内网要公布web服务器时,可以使用prerouting链做dnat映射

当内网用户想上网时,可以用postrouting链做snat映射

该NAT表中链有PREROUTING、POSTROUTING、OUTPUT

3.Mangle

主要作用是修改封包的内容。修改IP包头的TTL值,这样也可以保护我们的主机,比如我们将Linux主机送出的封包内的TTL值该为128,让Cracker误以为是Windows系统。另外,TTL(生存周期,每经过一个路由器将减少1.mangle可以修改此值设定TTL要被增加的值,比如–ttl-inc 。假设一个进来的包的TTL是53,那么当它离开我们这台机子时,TTL应是多少呢?是56,原因同–ttl-dec。使用这个选项可以使我们的 防火墙更加隐蔽,而不被trace-routes发现,方法就是设置–ttl-inc 1。原因应该很简单了,包每经过一个设备,TTL就要自动减1,但在我们的防火墙里这个1又被补上了,也就是说,TTL的值没变,那么trace- routes就会认为我们的防火墙是不存在的)。修改IP包头的DSCP值,在网络应用中,有时候需要对某些特定通信协议会有特殊的需求,例如在网络电话的应用环境里,我们会希望VOIP的封包都要能在不延迟的情况下传输出去。因此就有了QOS(Quality of Service)机制

Mangle表中有链PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

4.Raw

Raw表只使用在PREROUTING、OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前处理。一旦用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了

RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度

Filter表基本实验

1.清空指定表中的所有规则

iptables -F     #清空filter表中的所有链(默认不指定则表明filter表,可以使用-t参数指定表)

2.不允许本机telnet到其他机子

iptables -A OUTPUT -p tcp --dport 23 -j DROP

3.不允许别人ping通自己

iptables -A INPUT -p icmp --icmp-type 8 -j DROP

4.指定telnet禁止的具体的源与目的

iptables -A INPUT -p tcp -s 192.168.100.20/24 -d 192.168.100.55/24 -dport 23 -j DROP

往input输入链中添加一条过滤防火墙规则:凡是来源主机是192.168.100.20,telnet到目的主机192.168.100.55的数据包就丢弃

5.保存和恢复规则集

$iptables-save > /etc/fwdump        #保存规则集到指定文件
$iptables-restore < /etc/fwdump #恢复规则集
$cat /etc/rc.local
/sbin/iptables-restore < /etc/fwdump

Linux-iptables初识的更多相关文章

  1. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  2. Linux iptables原理--数据包流向

    Iptable与Netfilter 在上一篇文章 linux iptables常用命令--配置一个生产环境的iptables 我们知道iptables有好几个表,如raw,mangle,nat,fil ...

  3. Linux iptables

    一.简介 http://liaoph.com/iptables/ 二.操作 1)查看规则 iptables -t filter -L -n iptables -t nat -L -n iptables ...

  4. Linux iptables 应用控制访问SSH服务

    Title:Linux iptables 应用控制访问SSH服务  --2012-02-23 17:51 今天用到了以前从来没有用到过的,iptables控制访问,只允许外部访问SSH服务(22号端口 ...

  5. Linux iptables 配置规则

    Linux iptables 防火墙配置规则 前言:把网上我感觉不错iptables的访问规则都统一在这里,以后做参考. modprobe ipt_MASQUERADE modprobe ip_con ...

  6. Linux iptables用法与NAT

    1.相关概念 2.iptables相关用法 3.NAT(DNAT与SNAT) 相关概念 防火墙除了软件及硬件的分类,也可对数据封包的取得方式来分类,可分为代理服务器(Proxy)及封包过滤机制(IP ...

  7. [svc]linux iptables实战

    参考: http://blog.51yip.com/linux/1404.html 链和表 参考: https://aliang.org/Linux/iptables.html 配置 作为服务器 用途 ...

  8. 常用的 Linux iptables 规则

    一些常用的 Linux iptables 规则,请根据自己的具体需要再修改. 转载自:http://mp.weixin.qq.com/s/uAPzh9_D4Qk6a3zBh7Jq5A # 1. 删除所 ...

  9. 25 个常用的 Linux iptables 规则【转】

    转自 25 个常用的 Linux iptables 规则 - 文章 - 伯乐在线http://blog.jobbole.com/108468/ # 1. 删除所有现有规则 iptables -F # ...

  10. Linux iptables:场景实战一

    <Linux iptables:规则原理和基础>和<Linux iptables:规则组成>介绍了iptables的基础及iptables规则的组成,本篇通过实际操作进行ipt ...

随机推荐

  1. DbUtility v3 背后的故事

    DbUtility v3 背后的故事 时间 DbUtility v3构思了差不多大半年,真正开发到第一个版本发布到NuGet却只花了50天.中途大量时间在完善 Jumony 3,只有三周来开发DbUt ...

  2. mysql Workbench 执行删除命令

    SET SQL_SAFE_UPDATES = 0;delete from table1; SET SQL_SAFE_UPDATES = 1;

  3. 更好的pip工作流

    转自:http://codingpy.com/article/a-better-pip-workflow-recommended-by-kenneth/ 现在大家开发Python应用时,在代码库的根目 ...

  4. nginx 报错 HTTP ERROR 500 (PHP数组简写模式)

    同样的代码放在Apache上执行可以执行,在nginx上面就报错了. 百度出来一堆结果貌似都不对,然后只有注释代码->运行程序,一步步找到问题所在 $buffer = []; 这一步报错了 原来 ...

  5. 移植eac3音频库

    2016-5-26 移植eac3音频库,从ffmpeg库中移植.经过验证是切实可行的. 感觉开源软件就是时间黑洞,有多少时间搭进去都不为过.已经3周过去了,ffmpeg还是没有熟悉完. 真正的移植工作 ...

  6. elk系列4之kibana图形化操作

    preface 我们都搭建了ELK系统,且日志也能够正常收集的时候,那么就配置下kibana.我们可以通过kibana配置柱状图,趋势图,统计图,圆饼图等等各类图.下面就拿配置统计图和柱状图为例,结合 ...

  7. 20145204&20145212信息安全系统实验三报告

    实时系统的移植 实验目的与要求 1.根据实验指导书进行实时软件的安装 2.配置实验环境,并对软件进行测试. 3.正确使用连接线等仪器,注意保护试验箱. 实验内容与步骤 1.连接 arm 开发板 连接实 ...

  8. PHP常用数据库代码汇总

    连接MYSQL //MYSQL数据库配置 define(DB_HOST, '127.0.0.1'); define(DB_USER, 'user'); define(DB_PASS, 'pass'); ...

  9. C语言基础(5)-有符号数、无符号数、printf、大小端对齐

    1.有符号数和无符号数 有符号数就是最高位为符号位,0代表正数,1代表负数 无符号数最高位不是符号位,而就是数的一部分而已. 1011 1111 0000 1111 1111 0000 1011 10 ...

  10. 关于学习JavaScript 的 高三编程 一些心得

    面对JS 问题来说,很多的细节问题以及 弱类型转换的问题,往往会成为学习js 路上的一个阻碍. 那么问题来了,今天我看到的是  高三 里面的  基本概念的 语法问题. 直奔主题.(还是帖代码先) sw ...