Iptables 之二扩展模块

Posted liuzhiyun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Iptables 之二扩展模块相关的知识,希望对你有一定的参考价值。

问题一:如果开发被动模式的ftp服务?

21号端口是命令连接端口,数据连接端口不固定

三步骤:

  (1)装载ftp追踪时的专用的模块 

     /lib/modules/$(uname-r)/kernel/kernel下有个trace模块     

     /lib/modules/$(uname-r)/kernel/net 下有个netfilter目录nf_conntrack_ftp.ko.xz 此模块 专门为ftp追踪RELATED连接的专用模块

    #modprode  nf_conntrack_ftp 手动装载此依赖模块

[root@localhost netfilter]# modinfo nf_conntrack_ftp.ko.xz 
filename:       /lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz
alias:          nfct-helper-ftp
alias:          ip_conntrack_ftp
description:    ftp connection tracking helper
author:         Rusty Russell <rusty@rustcorp.com.au>
license:        GPL
rhelversion:    7.4
srcversion:     D43BF56A22E3D137BA1227B
depends:        nf_conntrack
intree:         Y
vermagic:       3.10.0-693.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        DA:18:7D:CA:7D:BE:53:AB:05:BD:13:BD:0C:4E:21:F4:22:B6:A4:9C
sig_hashalgo:   sha256
parm:           ports:array of ushort
parm:           loose:bool

   

     (2)放行请求报文:

    命令连接:NEW, ESTABLISHED

    数据连接:RELATED(第一次建立连接--这个连接不是新连接而是RELATED), ESTABLISHED(所有的后续通信)

只有对数据连接的第一次请求叫做RELATED;后续请求一旦达成了,双方建立起来对话,后续所有数据传输连接过程都是ESTABLISHED

 # iptables -A INPUT -d LocalIP -p tcp -m state --state RALETD,ESTABLISHED -j ACCEPT

 # iptables -A INPUT -d LocalIP -p tcp --dport 21  -m state --state NEW,ESTABLISHED -j ACCEPT

 (3)放行响应报文:ESTABLISHED

#iptables -A OUTPUT -s LocalIP -p tcp -m state --state ESTABLISHED -j ACCEPT

实例:

(1)yum -y install vsftp

ll /var/ftp

(2)cp /etc/issue /var/ftp/pub

(3)start vsftpd.service

(4)iptables-save > /root/iptables.1  另存为



(5)不加防火墙规则,ftp是否可以访问

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -F



(6)iptables-restore < /root/iptables.1  重新载入

(7)modprode  nf_conntrack_ftp
   lsmod | grep ftp
(8)放行ftp策略

这是新增规则
iptables -I INPUT -d 192.168.1.101 -p tcp --dport 21 -m state --state NEW,ESTABLISHED
-j ACCEPT
iptables -I INPUT 1 -p tcp -m state --state RALETD,ESTABLISHED -j ACCEPT

iptables -I OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

这是在原来规则上修改
iptables -R INPUT -2 -d 192.168.1.101 -p tcp -m multiport --dport 21,22,80 -m state --state NEW,
ESTABLISHED -j ACCEPT

 



 二、如何保存及重载规则:

  保存规则至指定文件:

   iptables-save > /PATH/TO/SOMEFILE

  从指定文件重载规则:

   iptables-restore < /PATH/TO/SOMEFILE

 

CentOS 6 : 

  service iptables save 相当于 iptables-save > /etc/sysconfig/iptables

  service iptables restart   比系统中的规则全清了,再把此路径下文件读进去

        相当于 iptables-restore <  /etc/sysconfig/iptables

CentOS 7:

  引入了新的iptables的前端管理服务工具:firewalld

    firewalld-cmd、firewalld-config

 注:在CentOS 7上使用iptables需要首先禁用firewalld

  systemctl disables firewalld.service

  systemctl stop firewalld.servicer

 

CentOS 6环境

service iptables start  没反应说明此前禁用了iptables

  如果此前禁用iptables那么就没有此文件/etc/sysconfig/iptables 

可以先保存service iptables save 就会产生

再重启service iptables start 

 

脚本:/etc/rc.d/init.d/iptables  (此脚本不会启动任何服务,虽然叫服务脚本,也支持start,但它没有启动任何进程;仅仅是让那些规则生效而已)

  另一个作用:此脚本能够在开机时候自动把我们某些所需要的模块装载进来;依赖于/etc/sysconfig/iptables/iptables-config此文件;

  把需要开机启动的模块写于此处,多个模块之间用空格隔开

技术图片

 

以上是关于Iptables 之二扩展模块的主要内容,如果未能解决你的问题,请参考以下文章

iptables详解:iptables扩展模块之 state 扩展

iptables详解:iptables扩展之udp扩展与icmp扩展

iptables详解:iptables扩展模块之state扩展

软件防火墙之iptables扩展模块

3.iptables 扩展模块

iptables详解(13):iptables动作总结之二