码迷,mamicode.com
首页 > 系统相关 > 详细

linux   防火墙

时间:2015-09-02 19:16:08      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:防火墙   linux   ip地址   

                 Iptables 防火墙 (一)

 1Linux防火墙基础

      Linux的防火墙主要工作在网络层,针对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(网络层防火墙)。

      Netfilter:指的是Linux内核实现包过滤防火墙的内部结构,属于“内核态”

      Iptables:指的是用来管理Linux防火墙的命令程序,位于/sbin/iptables目录下,属于“用户态”的管理体系。

2,表链结构

      技术分享

(1)规则表

      A.filter表:用来对数据包进行过滤,包括三个链:INPUT(入站)OUTPUT(出站)

FORWARD(转发)

      B.nat表(网络地址转换):用来修改数据包的ip地址,端口号等。包括三个链:

PREROUTING(路由选择之前)POSTROUTING(路由选择之后),OUTPUT(出站)

      C.mangle表:修改数据包的标记。包含五个链:PREROUTING,    POSTROUTING,  INPUT,           OUTPUT,               FORWARD

      D.raw表:对数据包进行状态跟踪。包括两个链:OUTPUT(出站)PREROUTING(路由选择之前)

3,规则表之间的顺序

     Raw----mangle----nat----filter

4,规则链之间的顺序

技术分享

5,防火墙规则之间的顺序

链内的过滤遵循“匹配即停止”的原则,(LOG日志操作的规则除外)

6,编写防火墙规则

   (1),命令格式:iptables -t 表名 管理选项  链名   匹配条件   -j   控制类型

       ACCEPT:允许数据包通过。

        

       DROP:直接丢弃数据包,不给任何回应

        REJECT:拒绝数据包,会给数据发送端一个响应信息。

         LOG:在/var/log/messages中记录日志信息,然后将数据包              传递给下一条规则.

@.技术分享

@.

技术分享

-D:删除规则

-I:插入规则

-R:修改规则

-L:列出指定链的所有规则

-F:清空链中的所以规则

-P:指定链的默认策略

技术分享

7,查看规则链表

  Iptables  -L  INPUT   --line-numbers(显示规则序号)

      Iptables   -nL      INPUT(以数字地址查看filterINPUT链中的所以规则)

  8,以下操作可以将filter表中FORWARD链的默认策略为丢弃,OUTPUT链的默认策略为允许。

  Iptables  -t  filter   -p    FOREARD    DROP

  Iptables    -p    OUTPUT    ACCEPT

 

9.,(协议匹配  -p 协议名)丢弃通过icmp协议访问防火墙本机的数据包,允许转发经过防火墙的除icmp协议外的数据包

Iptables    -I   INPUT  -P   icmp  -j DROP

Iptables     -A  INPUT   !  -P  icmp   -j  ACCEPT

10,(地址匹配 “-s 源地址或-d 目标地址”)拒绝转发源地址为192.168.1.11的数据,允许转发源地址位于192.168.7.0/24网段的数据。

Iptables   -A  FOREARD  -s  192.168.1.11   -j   REJECT

Iptables   -A   FOREARD   -s    192.168.7.0/24   -j  ACCEPT

11,(网络接口匹配  “-i 接口名入站-o 接口名出站),丢弃从外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包

Iptables    -A    INPUT   -i   eth1   -s  10.0.0.0/8  -j   DROP

Iptables    -A  INPUT  -i   eth1   -s  172.16.0.0/12  -j   DROP

Iptables    -A   INPUT   -i   eth1  -s  192.168.0.0/16  -j DROP

12,端口匹配( “--sport  源端口或 --dport 目标端口”)

  允许网段192.168.4.0/24转发DNS查询数据包

Iptables   -A  FORWARD   -s  192.168.4.0/24   -p  udp  --dport  53   -j   ACCEPT

Iptables    -A   FORWARD   -d  192.168.4.0/24   -p  udp  --sport   53    -j   ACCEPT

13,ICMP类型匹配(--icmp-type  icmp类型“ 【icmp类型使用字符串或数字代码表示,如”echo-request(8)“ echo-reply(0) destinetion-unreachable(3) ,分别对应ICMP协议的请求,回显,目标不可达】

禁止从其他主机ping本机,但是允许本机ping其他主机

Iptables    -A  INPUT  -p  icmp  --icmp-type  8  -j  DROP

Iptables  -A  INPUT  -p  icmp  --icmp-type   0  -j  ACCEPT

Iptables  -A  INPUT  -p  icmp  --icmp-type   3  -j  ACCEPT

Iptables  -A  INPUT  -p  icmp  -j   DROP

14,多端口匹配(”-m multiport  --dports 端口列表 或 “-m multiport  --sports 端口列表”

允许本机开发25.80.110.143端口,

Iptables  -A  INPUT   -p  tcp  -m multiport  --dport  25.80.110.143  -j  ACCEPT

15.IP范围匹配(-m iprange --src-range ip范围或“-m iprange --dst-range  IP范围”

   禁止转发源IP地址位于192.168.4.21192.168.4.28之间的TCP数据包

 Iptables   -A  FORWARD  -p   tcp   -m  iprange  --src-range  192.168.4.21-192.168.4.28   -j  REGECT

16.MAC地址匹配(-m  mac   --mac-source  MAC地址”

  根据MAC地址封锁主机,禁止访问本机的任何应用

  Iptables  -A  INPUT  -m  mac  --mac-source  00:0c:29:55:3f  -j  DROP

17.状态匹配(-m state  --state  连接状态”

   禁止转发与正常TCP连接无关的非syn请求数据包

  Iptables  -A  FORWARD  -m  state  --state  NEW  -p  tcp  !  --syn  -j  DROP

 

 

 

 


本文出自 “IT工作者” 博客,请务必保留此出处http://wn123.blog.51cto.com/10199375/1690754

linux   防火墙

标签:防火墙   linux   ip地址   

原文地址:http://wn123.blog.51cto.com/10199375/1690754

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!