ACL 和 Iptabless

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACL
1.访问控制列表的类型
标准访问控制列表:根据数据包的源IP地址来允许或拒绝。

(标号1—99)
扩展访问控制列表:根据数据包的源IP地址、目的IP地址、指定协议、端口和标志(100-199)
命名访问控制列表:允许在标准和扩展访问控制列表中使用命名来代替标号
定时访问控制列表:提供基于时间的附加访问控制。

2.标准的ACL配置
语法:Router(config)#access-list (1—99) {permit|deny} 源ip的网段反掩码
1.允许19
2.168.1.0/24和192.168.1.2 的流量通过
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#access-list 1 permit 192.168.1.2 0.0.0.0.0
或Router(config)#access-list 1 host 192.168.1.1
2.拒绝访问任何网段 Router(config)#access-list 2 deny any
3.删除以建立的ACL Router(config)# no access-list 1
4.将ACl应用到端口 Router(config-if)#ip access-group (1——99){in | out }
3.扩展访问ACL 配置
Router(config)#access-list (100-199){permit | deny} protocol {原地址反掩码目标地址反掩码} [operator operan ]
Operator:lt-小于;gt—大于;eq—等于;neq-不等于
Protocol:TCP;UDP;IP;ICMP
1.允许网络19
2.168.1.0/24访问网络192.168.2.0/24的ip流量通过。

而拒绝其他的任何流量
Router(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 Router(config)#access-list 100 deny ip any any
2. 拒绝网络192.168.1.0/24访问FTP服务器192.168.2.2。

而其允许他的任何流量
Router(config)#access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21 Router(config)#access-list 101 permit ip any any
3.禁止192.168.1.0/24中的主机ping服务器192.168.2.2 而允许其他任何流量
Router(config)#access-list 119 deny icmp 192.168.1.0 0.0.0.255 host 192.168.2.2 echo Router(config)#access-list 119 permit ip any any
4.将ACL应用到端口Router(config)# ip access-group 101 {in|out}
5.查看
show access-list
4.命名访问控制列表
1. Router(config)#ip access-list {standard |extended} access-list-name
2.标准命名ACL:
Router(config-std-nacl)#【seq-Num】 {permit|deny}source 【source-vildcard】
3.扩展命名ACL:
Router(config-std-nacl)#【seq-Num】{permit|deny} Protocol {src src-vildcard dst
dst-vildcard} 【operator operan】
如:允许来自主机192.168.1.1/24和192.168.2.6/24的流量通过,而拒绝其他的流量通过
Router(config)#ip access-list cisco
Router(config-std-nacl)#15 permit host 192.168.2.6
Router(config-std-nacl)#permit host 192.168.1.1
4.删除
Router(config)# no ip access-list access-list-name

Router(config)#ip access-list cisco
Router(config-std-nacl)#no 15
5.将ACL应用到接口
Router(config-if)#ip access-group name {in|out}
5.定时访问控制列表
1.定义时间范围的名称 Router(config)# time-range name
2.指定时间范围何时生效
1).定义一个时间周期
Router(config-time-range)#periodic days-of-the-week hh:mm to 【days-of-the-week】hh:mm
参数days-of-the-week and month
2).定义一个决定时间
Router(config-time-range)#absolute [start hh:mm day month year ] [end hh:mm day month year
2.在扩展ACL中应用时间范围
Router(config)#access-list num {permit|deny}protocol { src src-vildcard dst dst-vildcard}
【operator operan】
3.将ACL应用到接口 Router(config-if)#ip access-group num {in|out}
应用:在每周正常工作时间,允许所有IP流量通过网络
Router(config)#time-range worktime
Router(config-time-range)#periidic weekdays 8:30 to 17:30
Router(config)#access-list 101 permit ip any any time-range worktime
Router(config)#int f0/x
Router(config-if)#ip access-group 101 in
在2009年5月10日8:30 dao 20日18:00这时间段,允许所有的ip流量通过。

Router(config)# time-range mytime
Router(config-time-range)#absolute start 8:00 10 may 2009 end 18:00 20 may 2009
Router(config)#access-list 100 permit ip any any time-range mytime
6.定义顺序和应用端口规则
1.顺序
1.确定源地址和目标地址
2.确定顺序
3.确定端口和协议
2.端口应用规则
1.一般标准ACL应用在离目的地最近的路由器上的(in的方向上)。

2.一般扩展ACL应用在离源地址最近的路由器上。

7.具体应用
配置iptables防火墙
1.iptabels的规则表、链结构
1.规则表
Filter表:包含三个规则链:INPUT FORWARD OUTPUT
主要对数据包进行过滤,
内核模块:iptables_filter
Nat 表:包含三个规则链:PREROUTIGN POSTROUTING OUTPUT
主要用于修改数据包的IP地址、端口号
内核模块:iptables_nat
Mangle 表:包含三个规则链:PREROUTIGN POSTROUTING INPUT OUTPUT 主要用于修改数据包的TOS (Type of Service 服务类型)。

TTL、
内核模块:iptables_magle
Raw 表:包含三个规则链:PREROUTIGN OUTPUT
主要用于决定数据包是否被状态跟踪机制,并且优先于其他表
内核模块:iptables_raw
2.规则链
◆INPUT:当接收到访问防火墙机地址的数据包(入站)时,应用此规则
◆FORWARD:当防火墙本机向外发送数据包(出站)时,应用此链的规则、
◆OUTPUT:当接收到需要通过防火墙发送给其他地址的数据包(转发)时
◆PREROUTIGN:在对数据包做路由选择之前,应用
◆POSTROUTING:在对数据包做路由选择之后,应用此规则。

其中,INTPUT 和OUTPUT多应用在“主机防火墙中”针对服务器本身进行数据安全控制 PREROUTIGN POSTROUTING FORWARD 应用在“网络防火墙”,特别时网关时。

2.管理iptables规则
1.基本格式:iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
iptables命令的管理控制选项
如:查看filter表中INPUT链中的所有规则,同时显示各条规则的序号
Iptables -L INPUT –line-numbers
查看filter表个链中所有规则详细信息,同时以数字形式显示地址和端口。

Iptables –vnL
清空filter 、raw、mangle 表中各链中的所有规则
Iptables –F ;iptables –t raw –F ; iptables –t mangle –F
删除filter表中INPUT链路中的di2 条规则
Iptables —D INPUT 2
2.条件匹配
1.通用(general)条件匹配
协议匹配:用于检查数据包的网络协议(允许使用的协议名包含在/etc/protocols文件中)
常见的为tcp、udp、icmp和all(针对所有的ip数据包)以“-p 协议名”
如:1.拒绝进入防火墙的所有icmp协议包
iptables —I INPUT –p icmp –j REJECT
2.允许防火墙转发icmp协议以外的所有数据包
Iptables –A FORWARD –p ! icmp –J ACCEPT
地址匹配:用于检查IP地址。

网络地址“—s 源地址和—d 目标地址”
如:拒绝转发来自192.168.1.11主机的数据包。

允许来自192.168.2.0 的数据 Iptables —A FORWARD –s 192.168.1.11 -j REJECT
Iptables –A FORWARD –s 192.168.2.0/24 —j ACCEPT
网络接口匹配:用于检查数据包从防火墙的那一个接口进入或离开。

(-i 网络接收网卡–o 网络发送网卡)如:丢弃从外网卡接口(eth1)进入防火墙本机的源地址为私有地址的数据包
Iptables –A INPUT –i eth1 –s 192.168.0.0/16 –j DROP
Iptables –A INPUT –i eth1 –s 172.16.0.0/12 –j DROP
Iptables –A INPUT –i eth1 –s 10.0.0.0/8 –j DROP
对某个IP网段(10.20.30.0/24)进行封堵
Iptables –A INPUT –s 10.20.30.0/24 –j DROP
Iptables –A FORWARD –s 10.20.30.0/24 –j DROP
2.隐含(Implict)条件匹配——以协议为前提,对应的功能有iptables 自动装在入内核
端口匹配:用于检查tcp或udp 端口,需以“-p tcp ”或“-p udp”匹配为前提
---sport 源端口 --dport 目标端口(端口可以单个或使用“:”分割端口范围)
1.仅允许管理员从20
2.1
3.0.0/16的网段的使用SSH方式远程登陆防火墙主机
Iptables –A INPUT –p tcp –dport 22 –s 202.130.0/24 –j ACCEPT
Iptables –A INPUT –p tcp –dport 22 –j DROP
2.允许本机开放tcp端口20—1024提供应用服务
Iptables –A INPUT –p tcp –dport 20:1024–j ACCEPT
Iptables –A OUTPUT –p tcp –sport 20:1024 –j ACCEPT
3.做为网关使用时,允许转发来自192.168.2.0/24局域网的DNS解析请求
Iptables –A FORWARD –p udp –dport 53 –s 192.168.2.0/24 –j ACCEPT
Iptables –A FORWARD –p udpp –sport 22 –d 192.168.2.0/24 –j ACCEPT TCP标记匹配:用于检查数据包中的tcp 标记位(-tcp-flags):如 SYN、RST、ACK、SYN 如:拒绝外网接口的(eth1)直接访问防火墙本身的数据包
Iptables –A INPUT –i eth1 –p tcp –tcp-flags SYN,RST.ACK.SYN –j ACCEPT
ICMP类型匹配: 用于检查ICMP数据包的类型
Echo-Request :数字为8,会送请求
Echo-Relay :数字为0;会送应答
Destination-Unreachable:数字为3;目标不可达
如禁止其他主机ping防火墙,但是允许从防火墙上ping 其他主机(允许接收ICMP回应数据)
Iptables –A INPUT –p icmp –icmp-type Echo-Request –j DROP
Iptables –A INPUT –p icmp --icmp-type Echo-relay –j ACCEPT
Iptables –A INPUT –p icmp –icmp-type Destination-Unreachable–j ACCEPT
3.显示(Explicit)条件匹配
需要额外的内核模块支持,需要手工指定匹配方式。

lsmod | grep xt 来查看扩展的内核模块 MAC地址匹配:主要用于检查数据包的源MAC地址
禁止转发来自MAC:00:02:5E:00:00:00的主机数据包
Iptables –A FORWARD –m mac –mac-source 00:02:5E:00:00:00 –j DROP
多端口匹配:检查数据包的源端口、目标端口(--dport目标端口地址)(-sport源端口地址列表)如:允许防火墙本身对外开放tcp端口:20、21、25、110以及FTP的被动的端口1250—1280 Iptables –A INPUT –p tcp -m multiport –dport 20、21、25、110、1250:1280–j ACCEPT 多ip地址匹配:检查数据包的源地址、目标地址时,用于匹配一段范围内IP地址
--src-range IP地址范围或—dst-range IP地址范围
如:禁止转发源IP为192.168.2.12-192.168.2.56的TCP数据包
Iptables –A FORWARD –p tcp –m iprange –src-range 192.168.2.12-192.168.2.56 –j DROP 状态匹配:
检查数据包的连接状态(常见的状态)
NEW:于任何连接无关
ESTABLISHED:响应请求或者以建立连接的
RELATED:与已有的连接有相关性的
如:1.禁止转发与正常的TCP连接无关的—syn请求数据包
Iptables –A FORWARD –p tcp ! --syn -m state –state NEW –j DROP
2.拒绝访问防火墙的新数据包,但允许响应连接或已有连接相关的数据
Iptables –A INPUT –p tcp -m state –state NEW –j DROP
Iptables –A INPUT –p tcp –m state –state ESTALISHED、RELATED–j ACCEPT
3.只开放web服务器、fTP服务器(20、21、20450-20480),放行外部发往服务器其他
端口的应答数据包,将其他入站数据包均予丢弃。

Iptables –A FORWARD –p tcp -m multiport --dport 20、21、80 –j ACCEPT
Iptables –A FORWARD –p tcp --dport 20450:20490–j ACCEPT
Iptables –A FORWARD –p tcp -m state –-state ESTALISHED –j ACCEPT
Iptables –P INPUT–j DROP
3.数据包的控制:
ACCEPT:允许数据包通过
DROP:直接丢弃,不做任何响应
REJECT:拒绝数据包通过,必要时给一个响应信息
LOG:在/var/log/messages文件中记录日志信息,然后将数据传给下个规则
SNAT:修改数据包的源IP地址
DNAT:修改数据包的目标IP地址
如:对于尝试通过SSH方式登陆防火墙的主机的访问数据,记录日志信息(为了避免日志频繁,日志记录的频率为平均三次/分钟,允许峰值为八次)
Iptables –A INNPUT –p tcp –dport 22 –m limit –-limit 3/minute –limit-burst 8 –j LOG Iptables –A INPUT –p tcp –dport 22 –j DROP
4.导入、导出防火墙规则
1.导入。

Iptables 软件包提供了iptables-save 用于保存防火墙规则,通常情况下,将规则重定向
到指定的配置文件中,结合系统默认提供的iptables服务脚本,自动加载为
“/etc/sysconfig/iptables”文件中。

如。

将当前调试号的iptables规则保存到配置文件中,并通过iptables服务脚本自动加载。

Iptables-save > /etc/sysconfig/iptables
Service iptahles restart
2.iptables-restore—从以保存的配置文件中导入的哦iptables规则(文件必须是使用iptables-save
导出的配置数据)
5.综合使用
1.
1.入站规则:
1.iptables –A INPUT –i eth0 –p tcp –m multiport –dport 21、25、80、110、143-j ACCEPT
2. iptables –A INPUT -s 201.1
3.12.14 –p tcp --dport 22 –m limit –limit 4/hour –j ACCEPT
iptables –A INPUT -s 201.13.12.14 –p tcp --dport 22 –j ACCEPT
3. iptables –A INPUT -s 192.168.1.5–p tcp --dport 22 –m mac –mac-source00:0C:27:
30:4E:5D –j ACCEPT
4. iptables –A INPUT -s 192.168.1.0/24 –p tcp --dport 3128 –j ACCEPT
2.转发规则:
1.iptables –A FORWARD –s 19
2.168.1.0/24 –d 192.168.2.2 -p udp –dport 53 –j ACCEPT
2. iptables –A FORWARD –d 192.168.1.0/24 –s 192.168.2.2 -p udp –sport 53 –j ACCEPT
3.默认规则
Iptables –P INPUT DROP
Iptahles -P FORWARD DROP
Iptahles –P OUTPUT ACCEPT
2.项目综合实战中的访问控制
GW2 上的iptables的脚本文件。

相关文档
最新文档