前文一直在介绍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。
LOG 动作:
在本博客中,前文并没有对LOG动作进行示例,此处我们来了解一下LOG动作。
使用LOG动作,可以将符合条件的报文的相关信息记录到日志中,但当前报文具体是被"接受",还是被"拒绝",都由后面的规则控制,换句话说,LOG动作只负责记录匹配到的报文的相关信息,不负责对报文的其他处理,如果想要对报文进行进一步的处理,可以在之后设置具体规则,进行进一步的处理。
示例如下,下例表示将发往22号端口的报文相关信息记录在日志中。
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
服务重启后,配置即可生效,匹配到的报文的相关信息将被记录到指定的文件中。