一.iptables基本原理

1.iptables是一个管理内核包过滤的工具,包含4个表,5个链
     表
被称为Netfilter模块的两个维度,

表提供特定的功能
内置四个表:

  • filter表:用于对数据过滤(包过滤)
  • nat表   :用于对数据包的源,目标IP地址进行修改(网络地址转换)
  • mangle表:用于对数据包进行高级修改(包重构 )
  • raw表   :包重构和数据跟踪处理,优先级最高,一般不做处理,一旦设置就是不再让iptables做数据包连接跟踪

链是数据包传播途径
iptables包含5个链,分别代表数据包在网络传输的5种状态

  • PREROUTING(路由前):
  • INPUT(通过路由表后,流入本机的数据
  • FOREWARD(通过路由表后。目的不是主机,需要转发)
  • OUTPUT(由本机流出去的数据)
  • POSTROUTING(路由后)

filter起作用的3条链:INPUT,FORWARD,OUTPUT
nat 起作用的3条链  :PREROUTING OUTPUT POSTROUTING
mangle起作用的5条链:PREROUTING INPUT FORWARD OUTPUT  POSTROUTING

2.Linux内核集成了网络访问控制的功能是通过Netfilter进行控制管理

Netfilter支持以下方式对数据包进行分类:

  • 源IP/目标IP 地址
  • 使用接口
  • 使用协议(TCP UDP ICMP等)
  • 端口号
  • 连接状态(new Established Related Invalid)

3.iptables语法
使用权限:root
使用方式:iptables [-t 参数] 指令 条件[目标|链]
说 明 :显示当前登录系统用户的信息,可以轻松显示登录账号,使用的终端,登录时间,来源ip等
参数 :分为指令集,目标集,条件集
指令集:
    -N 建立一个新的链
    -P 改变一个链的规则
    -F 清除一个链的所有规则
    -I 在链内某个位置插入一个新规则
    -D 在链内某个位置删除一条规则
    -X 删除一个空链
    -L 列出一个链的规则
    -A 在一个链的最后新增一条规则(append)
    -R 在链内某个位置替换一条规则(replace)
目标集:
    ACCEPT:通过链检验,接受这个数据包
    DROP :未通过链检验,立即丢弃这个封包
    QUEUE:将封包重导至本机端的队列
    RETURN:通过链的检验,回到原来的链中
    TOS  :改变封包TOS字段的值
    REJECT:未通过链检验,丢弃数据包
    SNAT  :改变封包来源IP字段的值
    DNAT  :改变封包目标IP字段的值
    MASQUEUE:动态的根据路由修改Source Socket
    REDIRECT:重导封包至另外一个地址或连接端口
    TTL :改变封包TTL字段的值
 条件集:
    -i -o     网络接口匹配
    -p        匹配所属协议
    -m state  匹配联机类型
    --top-flags -icmp-type 封包类型
    -s          匹配数据包源IP
    --sport   匹配数据包的源端口
    -d          匹配数据包的目的ip
    --dport   匹配数据包的目的端口
    INPUT OUTPUT FOREARD  封包在防火墙中的流向
    -j       跳至目标或自定链

4.追加规则:
语法
    iptables -A chain firewall-rule
-A chain 指定要追加的规则
firewall-rule 为具体的规则参数

  1. cat /etc/protocols #查看协议与值对应关系

-s 源地址(source)
    指定数据源IP地址:-s 192.168.1.101 指定IP地址  -s 192.168.1.10/24  指定网络地址
    如果不指定-s 参数,就代表所有地址

-d 目标地址(destination)
   与-s 相同
 -j 执行目标(jump to target)
    可能的值是ACCEPT,DROP,QUEUE,RETURN
-i 输入接口
    -i eth0 指定要处理经由eth0进入的数据包
    这些数据包即将进入 INPUT FORWARD PREROUTE
    !-i eth0 处理所有不经由eth0接口进入的数据包
    -i eth+ 处理所有经由eth开头的接口进入的数据包

5.规则扩展参数
(1)-sport 源端口(source port)针对"-p tcp "或者"-p  udp"
    默认情况下匹配所有端口
    可能指定端口号或端口名称 -sport 22 或者 -sport ssh
    /etc/services 文件描述了上述对应关系
    使用冒号匹配端口范围 -sport 22:100
(2)--dport 目的端口(destination port)针对-p tcp 或者 -p udp
    与-sport类似
(3)--tcp-flage TCP标志,针对于 -p tcp
    可以指定逗号分隔符多个参数
    有效值可以是SYN,ACK,FIN,RST,URG,PSH
    可以使用ALL或者NONE

6.iptables应用

(1)看系统内防火墙默认规则(默认查看的是filter表的防火墙规则,filter表对INPUT,FORWADRD,OUTPUT有效)

  1. iptables -L

(2)查看系统内nat表的规则

  1. iptables -t nat -L

  1. #查看系统内mangle表的防火墙规则
  2. iptables -t mangle -L

3.

  1. #在filter表的第3个位置插入一条规则允许TCP的22端口的所有数据进入
  2. iptables -I INPUT -p tcp --dport -j ACCETP

4.

  1. #删除规则 INPUT iptables -D +链+顺序 :
  2. #删除INPUT 第三条规则:iptables -D INPUT3
  3. #删除所有规则:
  4. iptables -F

5.

  1. #查看iptables服务状态
  2. service iptables status

Linux防火墙配置学习记录的更多相关文章

  1. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  2. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  3. Linux防火墙配置—SNAT2

    1.实验目标 以实验"Linux防火墙配置-SNAT1"为基础,为网关增加外网IP地址,为eth1创建虚拟接口,使外网测试主机在Wireshark中捕获到的地址为eth1虚拟接口的 ...

  4. Linux防火墙配置与管理(16)

    防火墙指的是一个由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的边界上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intra ...

  5. 要想重启后也生效LINUX防火墙配置

    新配置的一台服务器,安装的是CentOS6.3系统,在安装完LNMP之后,发现nginx进程存在,且php解析正常,但是用分配的独立IP去访问的时候发现无法访问. 查了下网上的资料,发现可能是Linu ...

  6. Linux防火墙配置—SNAT1

    1.实验目标 以实验"防火墙配置-访问外网WEB"为基础,在WEB服务器上安装Wireshark,设置Wireshark的过滤条件为捕获HTTP报文,在Wireshark中开启捕获 ...

  7. 鸟哥的linux私房菜学习记录之档案权限与目录配置

    在linux中可以通过ls来查看文件 如ls -al,可以看到类似以下的内容 给个例子来理解下 在目录中如果只有r权限没有x权限无法进入该目录

  8. Linux防火墙配置(iptables, firewalld)

    netfilter和底层实现 iptables firealld Linux中的防火墙 RHEL中有几种防火墙共存: iptables firewalld ip6tables ebtables 这些软 ...

  9. linux 防火墙--firewalld学习

    firewalld是centos7默认的防火墙,相比于iptables重要的优势: 1 支持动态更新: 2 不用重启服务: 同时增加了防火墙的“zone”概念,具体差异没做过多了解,这篇文章只记录fi ...

随机推荐

  1. SQL 连贯操作 [1]

    一. 连贯入门 查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两位. 在 Home/controller/UserController.class.php 下插入 1.连贯操作入门 $us ...

  2. Angular07 利用angular打造管理系统页面

    1 创建一个新的angular应用 ng new adminSystem 2 利用WebStorm打开adminSystem应用 3 借助AdminLTE这个开源项目来辅助开发 AdminLTE项目: ...

  3. c语言学习笔记-变量、变量的命名、变量的赋值和变量的初始化

    在学习了简单的输入输出功能和了解了一些基本的运算符号之后我们可以试着做一个非常简单的计算器. 比如说想计算23+65 输入以下代码就可以了. printf("23+65=%d",2 ...

  4. 算法Sedgewick第四版-第1章基础-1.4 Analysis of Algorithms-005计测试算法

    1. package algorithms.analysis14; import algorithms.util.StdOut; import algorithms.util.StdRandom; / ...

  5. Java-马士兵设计模式学习笔记-迭代器模式-模仿Collectin ArrayList LinckedList

    Java Iterator模式 Java Iterator模式, 模仿Collectin ArrayList LinckedList 一.有如下几个类 1.接口Collection.java 2.接口 ...

  6. oracle环境变量配置

    1.右键我的电脑--->属性--->高级系统设置 2.环境变量---->新建 总共配置三个变量(1) 变量名 ORACLE_HOME 变量值 G:\app\TH\product\11 ...

  7. 形式化验证工具(PAT)Perterson Algorithm学习

    今天学习一下Perterson Algorithm. 这个算法是使用三个变量来实现并发程序的互斥性算法. 具体看一下代码: Peterson算法是一个实现互斥锁的并发程序设计算法,核心就是三个标志位是 ...

  8. java全栈day09----继承 抽象类

    01继承的概述 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类, 构建出来的新类被称作子类,现有类被称作父类在java中 继承如何来实用呢?举个例子 继承的定义格式和使用 *A:继承的 ...

  9. IIC协议解释

    IIC协议解释 (1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量 ...

  10. NPOI读取Excel文件

    public class ExcelOperator { public static List<DataTable> Read(string fileName) { List<Dat ...