前文一直在介绍iptables的匹配条件,并没有对动作进行过总结,那么此处,我们就来总结一下iptables中的动作。

之前的举例中已经用到了一些常用动作,比如ACCEPT、DROP、REJECT等。

其实,"动作"与"匹配条件"一样,也有"基础"与"扩展"之分。

同样,使用扩展动作也需要借助扩展模块,但是,扩展动作可以直接使用,不用像使用"扩展匹配条件"那样指定特定的模块。

之前用到的ACCEPT与DROP都属于基础动作。

而REJECT则属于扩展动作。

之前举过很多例子,我们知道,使用-j可以指定动作,比如

-j ACCEPT

-j DROP

-j REJECT

其实,"动作"也有自己的选项,我们可以在使用动作时,设置对应的选项,此处以REJECT为例,展开与"动作"有关的话题。

动作REJECT

REJECT动作的常用选项为--reject-with

使用--reject-with选项,可以设置提示信息,当对方被拒绝时,会提示对方为什么被拒绝。

可用值如下

icmp-net-unreachable

icmp-host-unreachable

icmp-port-unreachable,

icmp-proto-unreachable

icmp-net-prohibited

icmp-host-pro-hibited

icmp-admin-prohibited

当不设置任何值时,默认值为icmp-port-unreachable。

我们来动手实践一下,在主机139上设置如下规则,如下图所示,当没有明确设置--reject-with的值时,默认提示信息为icmp-port-unreachable,即端口不可达之意。

此时在另一台主机上向主机139发起ping请求,如下图所示,提示目标端口不可达。

那么我们将拒绝报文的提示设置为"主机不可达",示例如下

如上图所示,我们在设置拒绝的动作时,使用了--reject-with选项,将提示信息设置为icmp-host-unreachable,完成上述操作后,我们再次在在另一台主机上向主机139发起ping请求。

如下图所示。

可以看到,ping请求被拒绝时,提示信息已经从"目标端口不可达"变成了"目标主机不可达"。

动作LOG

在本博客中,前文并没有对LOG动作进行示例,此处我们来了解一下LOG动作。

使用LOG动作,可以将符合条件的报文的相关信息记录到日志中,但当前报文具体是被"接受",还是被"拒绝",都由后面的规则控制,换句话说,LOG动作只负责记录匹配到的报文的相关信息,不负责对报文的其他处理,如果想要对报文进行进一步的处理,可以在之后设置具体规则,进行进一步的处理。

示例如下,下例表示将发往22号端口的报文相关信息记录在日志中。

如上图所示,上述规则表示所有发往22号端口的tcp报文都符合条件,所以都会被记录到日志中,查看/var/log/messages即可看到对应报文的相关信息,但是上述规则只是用于示例,因为上例中使用的匹配条件过于宽泛,所以匹配到的报文数量将会非常之多,记录到的信息也不利于分析,所以在使用LOG动作时,匹配条件应该尽量写的精确一些,匹配到的报文数量也会大幅度的减少,这样冗余的日志信息就会变少,同时日后分析日志时,日志中的信息可用程度更高。

注:请把刚才用于示例的规则删除。

从刚才的示例中我们已经了解到,LOG动作会将报文的相关信息记录在/var/log/message文件中,当然,我们有可以将相关信息记录在指定的文件中,以防止iptables的相关信息与其他日志信息相混淆,修改/etc/rsyslog.conf文件(或者/etc/syslog.conf),在rsyslog配置文件中添加如下配置即可。

#vim /etc/rsyslog.conf

kern.warning /var/log/iptables.log

加入上述配置后,报文的相关信息将会被记录到/var/log/iptables.log文件中。

完成上述配置后,重启rsyslog服务(或者syslogd)

#service rsyslog restart

服务重启后,配置即可生效,匹配到的报文的相关信息将被记录到指定的文件中。

LOG动作也有自己的选项,常用选项如下(先列出概念,后面有示例)

--log-level选项可以指定记录日志的日志级别,可用级别有emerg,alert,crit,error,warning,notice,info,debug。

--log-prefix选项可以给记录到的相关信息添加"标签"之类的信息,以便区分各种记录到的报文信息,方便在分析时进行过滤。

注:--log-prefix对应的值不能超过29个字符。

比如,我想要将主动连接22号端口的报文的相关信息都记录到日志中,并且把这类记录命名为"want-in-from-port-22",则可以使用如下命令

完成上述配置后,我在IP地址为192.168.1.98的客户端机上,尝试使用ssh工具连接上例中的主机,然后查看对应的日志文件(已经将日志文件设置为/var/log/iptables.log)

如上图所示,ssh连接操作的报文的相关信息已经被记录到了iptables.log日志文件中,而且这条日志中包含"标签":want-in-from-port-22,如果有很多日志记录,我们就能通过这个"标签"进行筛选了,这样方便我们查看日志,同时,从上述记录中还能够得知报文的源IP与目标IP,源端口与目标端口等信息,从上述日志我们能够看出,192.168.1.98这个IP想要在14点11分连接到192.168.1.139(当前主机的IP)的22号端口,报文由eth4网卡进入,eth4网卡的MAC地址为00:0C:29:B7:F4:D1,客户端网卡的mac地址为F4-8E-38-82-B1-29。

除了ACCEPT、DROP、REJECT、LOG等动作,还有一些其他的常用动作,比如DNAT、SNAT等,我们会在之后的文章中对它们进行总结。

希望这篇文章能够对你有所帮助。

iptables详解(12):iptables动作总结之一的更多相关文章

  1. Iptables详解七层过滤

    <Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需 ...

  2. 《iptables详解 》RHEL6

          iptables详解    Iptables原理 现在防火墙主要分以下三种类型:包过滤.应用代理.状态检测 包过滤防火墙:现在静态包过滤防火墙市面上已经看不到了,取而代之的是动态包过滤技术 ...

  3. iptables详解--转

    出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定 ...

  4. iptables详解之filter

    iptables详解之filter iptables令很多小伙伴脑阔疼,下面我们来说说如何使用iptables. 一.iptables格式 1.1.iptables 帮助 通过iptables --h ...

  5. Linux防火墙iptables详解

    iptables详解(思维导图) 1. 概述 1.1 iptable简介 1.2 防火墙的种类 1.3 netfilter 2. iptables的工作流程 2.1 iptables工作图示 2.2 ...

  6. 防火墙之netfailt、iptables详解

    [TOC] Iptables入门 # 1.iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. netfilter 组件也称为 ...

  7. iptables详解

    Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则.即表包含若干链,链包含若干规则.  (一)三种表为:filter   nat  mangle 1.filter:处理与本机有 ...

  8. iptables 详解

    一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防 ...

  9. [转]iptables详解

    FROM : http://blog.chinaunix.net/uid-26495963-id-3279216.html 一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的 ...

  10. 转载+++++iptables详解+++++转载

    转载:http://blog.chinaunix.net/uid-26495963-id-3279216.html 一.前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件 ...

随机推荐

  1. mysql update 多表 (复制)

    定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价 ...

  2. PHP闭包(Closure)初探(转载 http://my.oschina.net/melonol/blog/126694?p=2#comments)

    匿名函数 提到闭包就不得不想起匿名函数,也叫闭包函数(closures),貌似PHP闭包实现主要就是靠它.声明一个匿名函数是这样: ? 1 2 3 $func = function() {       ...

  3. 51Nod 1079

    题目大意: 一个正整数K,给出K Mod一些质数的结果,求符合条件的最小的K.例如,K%2=1,K%3=2,K%5=3符合条件的最小的K=23. Input 第1行:1个数N表示后面输入的质数及模的数 ...

  4. Codeforces Round #425 (Div. 2) C - Strange Radiation

    地址:http://codeforces.com/contest/832/problem/C 题目: C. Strange Radiation time limit per test 3 second ...

  5. yarn 与 resource manager ha

    YARN最初的思想是把hadoop1中的job tracker的功能拆分出来,把它的资源管理与任务调度功能分成两个单独的进程.yarn体系结构中有两个进程,resource manager和nodem ...

  6. NOIP2019前的训练记录

    \(April\):肛多项式,学\(FWT\)一个小时无果后背了六个公式,看来证明又得咕很久了

  7. Sublime text3:安装插件SublimeREPL解决不支持input

    Sublime text3:安装插件SublimeREPL解决不支持input 安装SublimeREPL 1,调用ctrl+shift+p 输入install回车: 2,输出:sublimerepl ...

  8. pxe基于虚拟机的自启动

    环境系统:centos6.4 min版 虚拟机实现:提供的服务器ip为192.168.0.105,桥接 安装dhcp服务: yum -y install dhcp 配置dhcp服务,使能够成功启动: ...

  9. 临时变量不能作为非const引用

    转自:http://blog.csdn.net/u011068702/article/details/64443949 1.看代码 2.编译结果 3.分析和解决 就拿f(a + b)来说,a+b的值会 ...

  10. [BZOJ1117]救火站gas

    Description 给你一棵树,现在要建立一些消防站,有以下要求: 1. 消防站要建立在节点上,每个节点可能建立不只一个消防站. 2. 每个节点应该被一个消防站管理,这个消防站不一定建立在该节点上 ...