码迷,mamicode.com
首页 > 其他好文 > 详细

IPTABLES入门

时间:2015-07-21 17:02:24      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

声明:由于查看网上资料发现无法满足我的理解能力(理解能力太差),总结的不系统(不满足我要的要求),所以将iptables总结与此,转载可以不留名,但是我相信有JJ的都会留名。纯粹菜鸟级别,大神请绕道。。。。
参考资料:鸟哥私房菜
                  www.baidu.com
                  www.google.com
                   man iptables
感谢百度文库,感谢谷歌翻译,感谢所有共享资料的大神感谢鸟哥,感谢CN哥,感谢容器哥,感谢冰冰,感谢三哥,感谢假胸,感谢linux群里的各位大神
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这里先说一条原则:iptables总是匹配最上层的,如果上层匹配成功,下面的策略则忽略
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
iptable -L(如果加-t nat 则查看nat表,如果不加则查看filter表)

首先要了解3个链表
INPUT    OUTPUT     FORWARD区别
1. 如果数据包的目的地址是本机,则系统将数据包送往Input链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。

2. 如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往Forward链。如果通过规则检查,则该包被发给相应的本地进程处理; 如果没有通过规则检查,系统就会将这个包丢掉。

3. 如果数据包是由本地系统进程产生的,则系统将其送往Output链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
========================================================================================================
查看信息的各项功能说明
  • target:代表进行的动作, ACCEPT 是放行,而 REJECT 则是拒绝,此外,尚有 DROP (丢弃) 的项目!
  • prot:代表使用的封包协议,主要有 tcp, udp 及 icmp 三种封包格式;
  • opt:额外的选项说明
  • source :代表此规则是针对哪个『来源 IP』进行限制?
  • destination :代表此规则是针对哪个『目标 IP』进行限制?
 =======================================================================================================
也可以使用iptables-save查看详细规则 ,这里看到的规则和配置文件里的规则一样
======================================================================================================= 
对iptables进行配置
一般首先需要删除原有配置
iptables -F                 ----清空所有的已定的规则
iptables -X                 ----清空掉所有自定义的chain
iptables -Z                 ----chain计数器设置为0

然后定义策略将相关的链默认设置成drop
格式为
#iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P:定义策略policy
ACCESS:代表默认允许
DROP:代表默认拒绝
例如: 
#iptables -P INPUT DROP                      ----进站数据默认拒绝,一般用于防外网
#iptables -P OUTPUT DROP                 ----出站数据默认拒绝,防止内网主动向外发送数据
#iptables -P FORWORD DROP             ----转发数据,一般linux在做路由器的时候设置
如果设置nat表
iptables -t nat -P PREROUTING    DROP

======================================================================================================= 
基本的定义完成了然可以定义详细规则了,基本命令为 

#iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源IP/网域] [-d 目标IP/网域] -j [ACCEPT|DROP|REJECT|LOG]

-AI  链名:针对哪个链表制定规则
    -A    :增加一条规则,该规则增加到最后一条。
    -I    :插入一条规则,个i规则增加到第一条,但是如果写了条目号,则插入对应条目,以下的依次下移
如:iptables -I INPUT 2 -s 192.168.3.119 -i eth0 -p icmp -j ACCEPT          ----这样会在第二条插入一条:eth0接收192.168.3.119的icmp入站请求

-io 网络接口:设定封包进出的规则
    -i:封包所进入的那个网络接口;需要与INPUT链配合使用
    -o:封包锁传出的那个网络接口;需要与OUTPUT链配合使用
-p 协议:针对哪类协议
    设定针对那类数据包:tcp udp icmp以及all(前面加!代表拒绝此类)
-s   来源ip/netmask:针对哪些来源网络主机或网段(不含netmask表示主机;前面加!代表拒绝此类)
-d   目标ip/netmask:针对哪些目的网络主机或网段(不含netmask表示主机;前面加!代表拒绝此类)一般与OUTPUT配合
-j    动作:针对以上条件所要实现的动作(接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG))           
 iptables -A INPUT -s 192.168.3.119 -i eth0 -p icmp -j  LOG                ----将进入eth0源IP为192.168.3.119的icmp协议全部记录下来(保存在/var/log/messages)
======================================================================================================= 
针对TCP/UPD的端口设置
#iptables [-AI 链] [-io 网络接口] [-p tcp,udp] [-s 来源IP/网域] [--sport 埠口范围] [-d 目标IP/网域] [--dport 埠口范围] -j [ACCEPT|DROP|REJECT]

--sport 源端口范围:限制源端口的端口号码,可以是一段如:1:1024
--dport 目的端口范围:限制目的端口号码,可以为一段
如:# iptables -A INPUT -i eth0 -p udp --dport 137:139 -j ACCEPT                ----接收eth0的udp端口为137,138,139的访问
但是以上两个参数必须在有-p udp或者-p tcp参数的命令里出现,并且可以使用--syn来对tcp的主动连接进行管控
 =======================================================================================================  
     这里告诉大家个小秘密,如果对端主机禁止了icmp协议那么你ping他他一定不会返回任何信息,但是如果对方只是禁止了icmp的type=8则在抓包工具会发现收到 icmp数据包,并且type=3 code=3 所以技术分享 你懂的 

=======================================================================================================  
那么下面就把禁止关于icmp的类型8的命令拿出来
   #iptables -A INPUT [-p icmp] [--icmp-type 类型] -j ACCEPT
         --icmp-type :后面必须要接 ICMP 的封包类型(如:echo request(类型8)),也可以使用代号
       例如: #iptables -A INPUT -p icmp --icmp-type 8 -j DROP                ----禁止icmp的type=8的数据包进入

=======================================================================================================  
iptables基础基本就这些,下面将会介绍进阶阶段的iptables使用和iptables与一些模块的配合 

版权声明:本文为博主原创文章,未经博主允许不得转载。

IPTABLES入门

标签:

原文地址:http://blog.csdn.net/bzfys/article/details/46988017

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