路由器访问控制列表详解(路由器访问控制列表默认的过滤模式是( ))
nanshan 2025-03-26 14:38 15 浏览 0 评论
路由器访问控制列表详解
网络安全保障的第一道关卡
对于许多网管员来说,配置路由器的访问控制列表是一件经常性的工作,可以说,路由器的访问控制列表是网络安全保障的第一道关卡。访问列表提供了一种机制,它可以控制和过滤通过路由器的不同接口去往不同方向的信息流。这种机制允许用户使用访问表来管理信息流,以制定公司内部网络的相关策略。这些策略可以描述安全功能,并且反映流量的优先级别。例如,某个组织可能希望允许或拒绝Internet对内部Web服务器的访问,或者允许内部局域网上一个或多个工作站能够将数据流发到广域网上。这些情形,以及其他的一些功能 都可以通过访问表来达到目的。
访问列表的种类划分
目前的路由器一般都支持两种类型的访问表:基本访问表和扩展访问表。
基本访问表控制基于网络地址的信息流,且只允许过滤源地址。
扩展访问表通过网络地址和传输中的数据类型进行信息流控制,允许过滤源地址、目的地址和上层应用数据。
表1列出了路由器所支持的不同访问表的号码范围。
标准IP访问表
标准IP访问表的基本格式为:
access-list [list number][permit|deny][host/any][sourceaddress][wildcard-mask][log]
下面对标准IP访问表基本格式中的各项参数进行解释:
1.list number---表号范围
标准IP访问表的表号标识是从1到99。
2.permit/deny----允许或拒绝
关键字permit和deny用来表示满足访问表项的报文是允许通过接口,还是要过滤掉。permit表示允许报文通过接口,而deny表示匹配标准IP访问表源地址的报文要被丢弃掉。
3.source address----源地址
对于标准的IP访问表,源地址是主机或一组主机的点分十进制表示,如:198.78.46.8。
4.host/any----主机匹配
host和any分别用于指定单个主机和所有主机。host表示一种精确的匹配,其屏蔽码为0.0.0.0。例如,假定我们希望允许从198.78.46.8来的报文,则使用标准的访问控制列表语句如下:
access-list 1 permit 198.78.46.8 0.0.0.0
如果采用关键字host,则也可以用下面的语句来代替:
access-list 1 permit host 198.78.46.8
也就是说,host是0.0.0.O通配符屏蔽码的简写。
与此相对照,any是源地证/目标地址0.O.O.O/255.255.255.255的简写。假定我们要拒绝从源地址198.78.46.8来的报文,并且要允许从其他源地址来的报文,标准的IP访问表可以使用下面的语句达到这个目的:
access-list 1 deny host 198.78.46.8
access-list 1 permit any
注意,这两条语句的顺序;访问表语句的处理顺序是由上到下的。如果我们将两个语句顺序颠倒,将permit语句放在deny语句的前面,则我们将不能过滤来自主机地址198.78.46.8的报文,因为permit语句将允许所有的报文通过。所以说访问表中的语句顺序是很重要的,因为不合理语句顺序将会在网络中产生安全漏洞,或者使得用户不能很好地利用公司的网络策略。
5.wi1dcardmask------通配符屏蔽码
Cisco访问表功能所支持的通配符屏蔽码与子网屏蔽码的方式是刚好相反的,也就是说,二进制的O表示一个"匹配"条件,二进制的1表示一个"不关心"条件。假设组织机构拥有一个C类网络198.78.46.0,若不使用子网,则当配置网络中的每一个工作站时,使用于网屏蔽码255.255.255.O。在这种情况下,1表示一个 "匹配",而0表示一个"不关心"的条件。因为Cisco通配符屏蔽码与子网屏蔽码是相反的,所以匹配源网络地址198.78.46.0中的所有报文的通配符屏蔽码为:0.0.O.255。
6.Log----日志记录
log关键字只在IOS版本11.3中存在。如果该关键字用于访问表中,则对那些能够匹配访问表中的permit和deny语句的报文进行日志记录。日志信息包含访问表号、报文的允许或拒绝、源IP地址以及在显示了第一个匹配以来每5分钟间隔内的报文数目。使用log关键字,会使控制台日志提供测试和报警两种功能。系统管理员可以使用日志来观察不同活动下的报文匹配情况,从而可以测试不同访问表的设计情况。当其用于报警时,管理员可以察看显示结果,以定位那些多次尝试活动被拒绝的访问表语句。执行一个访问表语句的多次尝试活动被拒绝,很可能表明有潜在的黑客攻击活动。
扩展的IP访问控制列表
顾名思义,扩展的IP访问表用于扩展报文过滤能力。一个扩展的IP访问表允许用户根据如下内容过滤报文:源和目的地址、协议、源和目的端口以及在特定报文字段中允许进行特殊位比较等等。一个扩展的IP访问表的一般语法格或 下面简要介绍各个关键字的功能:
1.list number----表号范围
扩展IP访问表的表号标识从l00到199。
2.protocol-----协议
协议项定义了需要被过滤的协议,例如IP、TCP、UDP、1CMP等等。协议选项是很重要的,因为在TCP/IP协议栈中的各种协议之间有很密切的关系,如果管理员希望根据特殊协议进行报文过滤,就要指定该协议。
另外,管理员应该注意将相对重要的过滤项放在靠前的位置。如果管理员设置的命令中,允许IP地址的语句放在拒绝TCP地址的语句前面,则后一个语句根本不起作用。但是如果将这两条语句换一下位置,则在允许该地址上的其他协议的同时,拒绝了TCP协议。
3.源端口号和目的端口号
源端口号可以用几种不同的方法来指定。它可以显式地指定,使用一个数字或者使用一个可识别的助记符。例如,我们可以使用80或者http来指定Web的超文本传输协议。对于TCP和UDP,读者可以使用操作符 ""(大于)"="(等于)以及""(不等于)来进行设置。
目的端口号的指定方法与源端口号的指定方法相同。读者可以使用数字、助记符或者使用操作符与数字或助记符相结合的格式来指定一个端口范围。
下面的实例说明了扩展IP访问表中部分关键字使用方法:
access-list 101 permit tcp any host 198.78.46.8 eq smtp
access-list 101 permit tcp any host 198.78.46.3 eq www
第一个语句允许来自任何主机的TCP报文到达特定主机198.78.46.8的smtp服务端口(25);第二个语句允许任何来自任何主机的TCP报文到达指定的主机198.78.46.3的www或http服务端口(80)。
4.选项
扩展的IP访问表支持很多选项。其中一个常用的选项有log,它已在前面讨论标准访问表时介绍过了。另一个常用的选项是fistahlishfid,该选项只用于TCP协议并且只在TCP通信流的一个方向上来响应由另一端发起的会话。为了实现该功能,使用estab1ished选项的访问表语句检查每个 TCP报文,以确定报文的ACK或RST位是否已设置。
例如,考虑如下扩展的IP访问表语句:
access-list 101 permit tcp any host 198.78.46.8 established
该语句的作用是:只要报文的ACK和RST位被设置,该访问表语句就允许来自任何源地址的TCP报文流到指定的主机198.78.46.8。这意味着主机198.78.46.8此前必须发起TCP会话。
5.其他关键字
deny/permit、源地址和通配符屏蔽码、目的地址和通配符屏蔽码以及host/any的使用均与标准IP访问表中的相同。
管理和使用访问表
在一个接口上配置访问表需要三个步骤:
(1)定义访问表;
(2)指定访问表所应用的接口;
(3)定义访问表作用于接口上的方向。
我们已经讨论了如何定义标准的和扩展的IP访问表,下面将讨论如何指定访问表所用的接口以及接口应用的方向。
一般地,采用interface命令指定一个接口。例如,为了将访问表应用于串口0,应使用如下命令指定此端口:
interface serial0
类似地,为将访问表应用于路由器的以太网端口上时,假定端口为Ethernet0,则应使用如下命令来指定此端口:
interface ethernet0
在上述三个步骤中的第三步是定义访问表所应用的接口方向,通常使用ip access-group命令来指定。其中,列表号标识访问表,而关键字in或out则指明访问表所使用的方向。方向用于指出是在报文进入或离开路由器接口时对其进行过滤。如下的实例将这三个步骤综合在一起:
intface serial0
ip access-group 107 in
access-list 107 remark allow traffic to tom's pc
access-list 107 ip any host 198.78.46.8
access-list 107 remark allow only web traffic to webserver
access-list 107 tcp any host 198.78.46.12 eq 80
access-list 107 remark block everything else
access-list 107 deny any any
在本例中,先使用interface命令指定串行端口0,并使用ipaccess-group命令来将访问表l07中的语句应用于串行接口的向内方向上。最后,输入6个访问表语句,其中三条访问表语句使用关键字remark,以提供关于列表中后继语句的注解说明。注意访问表中的最后一条语句,它表示了每个访问表相关的隐含denyall设置,并且如果不显式地列出是不会看到该语句的。如果读者希望从路由器的控制台端口相连的终端上直接输入这些命令和语句,则应该先使用EXEC特权命令。这个终端会话过程的实例如下图所示:
此外,当读者配置访问表后使用IOS的show命令查看列表时,有时很容易被显示出来的内容所迷惑,这是由于当通配符屏蔽码位被置为1(无关)时,1OS将该访问表表项的IP地址部分的该位设置为二进制0。
例如,输入如下的配置命令,用于创建一个扩展的IP访问表,并将其列表内容显示出来:
在本例中,由于C类地址的通配符屏蔽码的主机子段被设置为全1(255),所以网络198.78.46.0上的主机地址198.78.46.20被自动转换为网段地址。
相关推荐
- 0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)
-
文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...
- ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes
-
为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...
- 生产环境starrocks 3.1存算一体集群部署
-
集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...
- 在CentOS上添加swap虚拟内存并设置优先级
-
现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...
- 国产深度(deepin)操作系统优化指南
-
1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...
- postgresql-15.4 多节点主从(读写分离)
-
1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...
- Docker 容器 Java 服务内存与 GC 优化实施方案
-
一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...
- 虚拟内存设置、解决linux内存不够问题
-
虚拟内存设置(解决linux内存不够情况)背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...
- Elasticsearch性能调优(5):服务器配置选择
-
在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...
- Es如何落地
-
一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...
- 针对Linux内存管理知识学习总结
-
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...
- MySQL进阶之性能优化
-
概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...
- Linux Cgroups(Control Groups)原理
-
LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...
- linux 常用性能优化参数及理解
-
1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...
- 如何在 Linux 中使用 Sysctl 命令?
-
sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
手机如何设置与显示准确时间的详细指南
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
一加手机与电脑互传文件的便捷方法FileDash
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)