嵌入式 iptables防火墙选项参数介绍和配置实例

来源:互联网 发布:scada数据库 编辑:程序博客网 时间:2024/06/16 13:51
iptables的5个规则链:
PREROUTING
FORWARD
POSTROUTING
INPUT
OUTPUT

iptables的3个规则表:5个规则链分别包含在3个规则表中
filter:针对包过滤   INPUT、 FORWARD、 OUTPUT
nat:   地址转换     PREROUTING、POSTROUTING 、OUTPUT
mangle: 策略路由和特殊应用   PREROUTING、 POSTROUTING、 INPUT、 OUTPUT、 FORWARD


1 安装iptables软件包(默认安装的)
 
 [root@localhost ~]# rpm -q iptables
 iptables-1.2.11-3.1.RHEL4
 [root@localhost ~]# rpm -ql iptables |grep bin 查看软件包的程序目录
 /sbin/iptables
 /sbin/iptables-restore
 /sbin/iptables-save 
iptables包含的三个主要管理工具:
 iptables:对iptables命令的管理和实现
 iptables-save和iptables-restore:是一对辅助工具,iptables-save对当前防火墙设置进行保存,  
 iptables-restore将iptables-save保存的配置恢复到当前系统。
 
 
2 iptables服务的启动和停止:
  系统以iptables服务程序运行,启动脚本保存在/etc/rc.d/init.d中,脚本文件名iptables。
  启动级别3和5默认
 
 [root@localhost init.d]# chkconfig --list iptables
 iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off 
  启动与停止
 #service iptables start  启动
 #service iptables stop   停止
 #service iptables status  允许状态 
 3 iptables的配置文件和策略设置文件
配置文件:/etc/sysconfig/iptables-config,用户设置iptables服务启动时加载的内核模块,一般不用修改。
策略设置文件:/etc/sysconfig/iptables,在iptables服务启动时将调用iptables-restore命令将该策略设置内容应用到防火墙中。


4 查看iptables表的内容
语法:iptables [-t table] -L
-t:选择要查看哪个表
不加-t默认查看filter表


5 iptables防火墙的手动配置
  1)清空表中规则
     清空规则表中所有规则链的规则
    #iptables -F
   2)删除表中规则链
    用于删除表中指定的规则链,如果不指定删除表中所有自定义规则链
    #iptables -X
   3)添加规则
    iptables -A 规则链 -i 网络接口 -j 对数据的操作
    -A:指定需要添加规则的规则链
    -i:指定数据包流入的网络接口
    -p:数据包的协议
    -j:对数据包的处理。ACCEPT/DROP
   例如:在INPUT链中添加规则,允许eth0接口中来自192.168.1.0/24的所有数据包
   
 #iptables -A INPUT -i eht0 -s 192.168.1.0/24 -j ACCEPT 
     4)导入导出iptables规则:
导出:  iptables-save 比如导出到/home/aaa这个文件里
 #iptables-save > /home/aaa 
导入:iptables-restore 比如把一个aaa文件导入
 #iptables-restore < aaa 
 
    4)删除规则
     iptables -D  删除指定的规则
   
 # iptables -D INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT 
    5)设置内置规则链的默认策略
 规则链的默认规则是ACCEPT,iptables -P 设置指定规则的默认策略
  例如:设置INPUT链的默认策略为DROP,然后再逐个添加允许,这样是添加规则比较严谨的方法
 
 #iptables -P INPUT DROP 
   6) 针对数据报状态设定
      iptables -A INPUT -m state --state 状态 -j [ACCEPT,DROP,LOG]
      --state:后接数据报状态:
        INVALID:无效数据报
        ESTABLISHED:连结成功的连线
        NEW:请求建立连接
        RELATED:表示数据报与我们发出去的数据报有关系 例:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //接受数据报状态为RELATED和ESTABLISHED数据报.
 
 
设置实例:
  允许来自eth1网络接口的所有数据包。
  在eth0接口上允许Web、SSH、和squid代理服务,即开放80、22、3128端口
  其他的数据包都不允许通过
 #iptables -F
 #iptables -X
 #iptables -P INPUT DROP
 #iptables -A INPUT -i eth1 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
 #service iptables save   对规则的修改是马上就生效的,但没有保存,可以用service iptables save保存到默认位置/etc/sysconfig/iptables。也可以用iptables-save > /tmp/iptables.new 将防火墙规则保存到/tmp或者保存到其他地方,然后用iptables-restore < /tmp/iptables.new加载/tmp下的防火墙规则文件iptables.new

 -p:指定数据包指定的协议
 --dport:指定数据包的目的端口
 #service iptables save :只有使用这个命令后,/etc/sysconfig/iptables文件才有
 
附加模块

 按包状态匹配(state)
按来源MAC 匹配(mac)
按包速率匹配(limit)
多端口匹配(multiport)
3.5.1 state
-m state --state 状态iptables的5个规则链:

PREROUTING
FORWARD
POSTROUTING
INPUT
OUTPUT

iptables的3个规则表:5个规则链分别包含在3个规则表中
filter:针对包过滤   INPUT、 FORWARD、 OUTPUT
nat:   地址转换     PREROUTING、POSTROUTING 、OUTPUT
mangle: 策略路由和特殊应用   PREROUTING、 POSTROUTING、 INPUT、 OUTPUT、 FORWARD


1 安装iptables软件包(默认安装的)
 
 [root@localhost ~]# rpm -q iptables
 iptables-1.2.11-3.1.RHEL4
 [root@localhost ~]# rpm -ql iptables |grep bin 查看软件包的程序目录
 /sbin/iptables
 /sbin/iptables-restore
 /sbin/iptables-save
 
iptables包含的三个主要管理工具:
 iptables:对iptables命令的管理和实现
 iptables-save和iptables-restore:是一对辅助工具,iptables-save对当前防火墙设置进行保存,  
 iptables-restore将iptables-save保存的配置恢复到当前系统。
 
 
2 iptables服务的启动和停止:
  系统以iptables服务程序运行,启动脚本保存在/etc/rc.d/init.d中,脚本文件名iptables。
  启动级别3和5默认
 
 [root@localhost init.d]# chkconfig --list iptables
 iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
 
  启动与停止
 #service iptables start  启动
 #service iptables stop   停止
 #service iptables status  允许状态
 
 3 iptables的配置文件和策略设置文件
配置文件:/etc/sysconfig/iptables-config,用户设置iptables服务启动时加载的内核模块,一般不用修改。
策略设置文件:/etc/sysconfig/iptables,在iptables服务启动时将调用iptables-restore命令将该策略设置内容应用到防火墙中。


4 查看iptables表的内容
语法:iptables [-t table] -L
-t:选择要查看哪个表
不加-t默认查看filter表


5 iptables防火墙的手动配置
  1)清空表中规则
     清空规则表中所有规则链的规则
    #iptables -F
   2)删除表中规则链
    用于删除表中指定的规则链,如果不指定删除表中所有自定义规则链
    #iptables -X
   3)添加规则
    iptables -A 规则链 -i 网络接口 -j 对数据的操作
    -A:指定需要添加规则的规则链
    -i:指定数据包流入的网络接口
    -p:数据包的协议
    -j:对数据包的处理。ACCEPT/DROP
   例如:在INPUT链中添加规则,允许eth0接口中来自192.168.1.0/24的所有数据包
   
 #iptables -A INPUT -i eht0 -s 192.168.1.0/24 -j ACCEPT 
     4)导入导出iptables规则:
导出:  iptables-save 比如导出到/home/aaa这个文件里
 #iptables-save > /home/aaa 
导入:iptables-restore 比如把一个aaa文件导入
 #iptables-restore < aaa 
 
    4)删除规则
     iptables -D  删除指定的规则
   
 # iptables -D INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT 
    5)设置内置规则链的默认策略
 规则链的默认规则是ACCEPT,iptables -P 设置指定规则的默认策略
  例如:设置INPUT链的默认策略为DROP,然后再逐个添加允许,这样是添加规则比较严谨的方法
 
 #iptables -P INPUT DROP 
   6) 针对数据报状态设定
      iptables -A INPUT -m state --state 状态 -j [ACCEPT,DROP,LOG]
      --state:后接数据报状态:
        INVALID:无效数据报
        ESTABLISHED:连结成功的连线
        NEW:请求建立连接
        RELATED:表示数据报与我们发出去的数据报有关系 例:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //接受数据报状态为RELATED和ESTABLISHED数据报.
 
 
设置实例:
  允许来自eth1网络接口的所有数据包。
  在eth0接口上允许Web、SSH、和squid代理服务,即开放80、22、3128端口
  其他的数据包都不允许通过
 #iptables -F
 #iptables -X
 #iptables -P INPUT DROP
 #iptables -A INPUT -i eth1 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
 #iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
 #service iptables save
   对规则的修改是马上就生效的,但没有保存,可以用service iptables save保存到默认位置/etc/sysconfig/iptables。也可以用iptables-save > /tmp/iptables.new 将防火墙规则保存到/tmp或者保存到其他地方,然后用iptables-restore < /tmp/iptables.new加载/tmp下的防火墙规则文件iptables.new

 -p:指定数据包指定的协议
 --dport:指定数据包的目的端口
 #service iptables save :只有使用这个命令后,/etc/sysconfig/iptables文件才有
 
附加模块

 按包状态匹配(state)
按来源MAC 匹配(mac)
按包速率匹配(limit)
多端口匹配(multiport)
3.5.1 state
-m state --state 状态
0 0