在目前大多数安全解决方案中,防火墙的实施是最为重要的需求,它是每个网络基础设施必要且不可分割的组成部分。这篇博客主要介绍防火墙安全算法的原理与基本配置以及远程管理防火墙的几种方式

硬件与软件防火墙

1.软件防火墙

软件防火墙单独使用软件系统来完成防火墙功能,将软件部署到系统主机上,其安全性较硬件防火墙差,同时占用系统资源,在一定程度上影响系统性能。其一般用于单机系统或个人计算机,极少用于计算机网络,如瑞星、天网、360等。

2.硬件防火墙

硬件防火墙比软件防火墙更有优势,原因有一下两个方面

* 硬件防火墙功能强大,且明确是为抵御威胁而设计的

* 硬件防火墙比软件防火墙漏洞少

Cisco硬件防火墙技术应用于以下三个领域

* PIX 500系列安全设备

* ASA 5500系列自适应安全设备

* Catalyst 6500系列交换机和Cisco 7600系列路由器的防火墙服务模块

ASA安全设备

Cisco ASA 5500系列自适应安全设备是最新的Cisco防火墙技术产品,它提供了整合防火墙、入侵保护系统、高级自适应威胁防御服务,其中包括应用安全和简化网络安全解决方案的VPN服务。

目前,Cisco ASA 5500系列有六种型号,下表所示:

型号

价格

并发连接数

网络吞吐量

描述

ASA 5505

2600~15700

25000

150MB

适用于小型企业

ASA 5510

12000~94200

130000

300MB

适用于中型企业

ASA 5520

28000~84000

280000

450MB

适用于中型企业

ASA 5540

68000~70000

400000

650MB

适用于中型企业

ASA 5550

80000~85000

650000

1200MB

适用于大型企业及电信运营商

ASA 5580

200000~530000

1000000~2000000

5000MB~10000MB

适用于大型企业及电信运营商

ASA的安全算法

ASA首先是一个状态化防火墙,状态化防火墙维护一个关于用户信息的连接表,称为Conn表,表中关键信息如下:

* 源IP地址

* 目的IP地址

* IP协议

* IP协议信息

默认情况下,ASA对TCP和UDP协议提供状态化连接,但ICMP协议是非状态化的。

状态化防火墙进行状态化处理的过程如图所示:

(1)PC发起一个HTTP请求给Web服务器

(2)HTTP请求到达防火墙,防火墙将连接信息添加到Conn表

(3)防火墙将HTTP请求转发给Web服务器

流量返回时,状态化防火墙处理的过程如下:

(4)Web服务器响应HTTP请求,返回相应的数据流量

(5)防火墙拦截该流量,检查其连接信息

* 如果在Conn表中查找到匹配的连接信息,则流量被允许

* 如果在Conn表中查不到匹配的连接信息,则流量被丢弃

安全算法的原理

ASA使用安全算法执行一下三项基本操作

* 访问控制列表:基于特定的网络,主机和服务(TCP/UDP端口号)控制网络访问。

* 连接表:维护每个连接的状态信息。安全算法使用此信息在已建立的连接中有效转发流量

* 检测引擎:执行状态检测和应用层检测。检测规则集是预先定义的,来验证应用是否遵从每个RFC和其他标准。

数据报文穿越ASA的过程如下图所示:

(1)一个新来的TCP SYN报文到达ASA,试图建立一个新的连接。

(2)ASA检查访问列表,确定是否允许连接。

(3)ASA执行路由查询,如果路由正确,ASA使用必要的会话信息在连接表(XLATE和Conn)中创建一个新条目。

(4)ASA在检测引擎中检查预定义的一套规则,如果是已知应用,则进一步执行应用层检测。

(5)ASA根据检测引擎确定是否转发或丢弃报文。如果允许转发,则将报文转发到目的主机。

(6)目的主机响应该报文。

(7)ASA接收返回报文并进行检测,在连接数据库中查询连接,确定会话信息与现有连接是否匹配。

(8)ASA转发属于已建立的现有会话的报文。

ASA的引用层检测是通过检查报文的IP头和有效载荷的内容,对应用层协议流量执行深层检测,检查应用层协议是否遵守RFC标准,从而检测出应用层数据中的恶意行为。

ASA的基本配置

配置主机名

ASA初始启动后默认的主机名是ciscoasa,可以通过以下命令将主机名配置为asa。

1
2
3
ciscoasa# config terminal
ciscoasa(config)# hostname asa
asa(config)#

配置密码

可以配置特权密码和远程登录密码

1.配置特权密码

以下命令将配置特权密码为123456

1
asa(config)# enable password 123456

2.配置远程登录密码

远程登录密码是在使用Telnet或SSH时需要输入的密码。以下命令将配置远程登录密码为ysf,注意与路由器配置是不同的。

1
asa(config)# password ysf

接口的概念与配置

ASA的接口通常有两种名称,即物理名称和逻辑名称

1.物理名称

物理名称与路由器名称类似,例如Ethernet0/0、Ethernet0/1,可以简写为E0/0、E0/1,通常用来配置接口的速率,双工和IP地址等

ASA 5510及以上型号还有专门的管理接口用于管理目的,例如management0/0

2.逻辑名称

逻辑名称用于大多数的配置命令,例如配置ACL、配置路由等使用命令中都用到逻辑名称。逻辑名称用来描述安全区域,例如通常用inside表示ASA连接的内部区域(安全性高),用outside表示ASA连接的外部区域(安全性低)。

防火墙与路由器有着本质的不同,防火墙是用于安全目的,所以它的各个接口代表了不同的安全区域,而安全区域之间隔着一堵墙。

接口的安全级别

ASA的每个接口都有一个安全级别,范围是0-100,数值越大其安全级别越高。当配置接口的名称为inside时,其安全级别自动设置为100。而配置其他的接口名称例如outside时,其安全级别自动设置为0.

不同安全级别的接口之间互相访问时,遵从如下的默认规则。

* 允许出站(outbound)连接,即允许从高安全级别接口到低安全级别接口的流量通过。

* 禁止入站(inbound)连接,即禁止从低安全级别接口到高安全级别接口的流量通过。

* 禁止相同安全级别的接口之间通信。

接口的配置

配置命令语法如下:

1
2
asa(config-if)# nameif name               //配置接口名称
asa(config-if)# security-level number         //配置接口安全级别

其中number的范围为0-100。

案例:如图,使用路由器R1和R2模拟PC,要求配置ASA的接口并验证接口之间的通信。

ASA接口配置如下:

1
2
3
4
5
6
7
8
9
10
11
asa(config)# int e0/1
asa(config-if)# namaif inside
asa(config-if)# security-level 100
asa(config-if)# ip add 10.1.1.254 255.255.255.0
asa(config-if)# no sh
asa(config)# int e0/0
asa(config-if)# nameif outside
asa(config-if)# security-level 0
asa(config-if)# ip add 172.16.1.254 255.255.255.0
asa(config-if)# no sh

如果ASA的型号是5505,则不支持在物理接口上直接进行以上配置,必须通过VLAN虚接口来配置,具体配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
asa(config)# int vlan 1
asa(config-if)# nameif inside
asa(config-if)# security-level 100
asa(config-if)# ip add 10.1.1.254 255.255.255.0
asa(config-if)# no sh
asa(config-if)# int e0/1
asa(config-if)# no sh
asa(config-if)# switchport access vlan 1
asa(config)# int vlan 2
asa(config-if)# nameif outside
asa(config-if)# security-level 0
asa(config-if)# ip add 172.16.1.254 255.255.255.0
asa(config-if)# no sh
asa(config-if)# int e0/0
asa(config-if)# no sh
asa(config-if)# switchport access vlan 2

查看Conn表

1
asa# show conn dateil

通过验证,在R1可以Telnet到R2,但在R2可以Telnet到R1

配置ACL

在ASA上配置ACL有两个作用:一是允许入站连接,二是控制出站连接的流量

* 标准ACL的配置如下:

1
asa(config)# access-list acl_name [ standrad ] { permit | deny } ip_addr mask

* 扩展ACL的配置如下:

1
asa(config)# access-list acl_name [ extended ] { permit | deny } protocol src_ip_addr src_mask dst_ip_addr dst_mask [ operator port ]

* 将ACL应用到接口,配置如下:

1
asa(config)# access-group acl_name { in | out } interface interface_name

需要注意的是,路由器上的ACL使用的是反码,而ASA上的ACL使用正常的掩码。另外,标准ACL过滤流量时不能应用到接口,它应用到其他场合,如远程访问VPN中分离隧道的配置

允许入站连接

ASA的默认规则是禁止入站连接,如果要允许入站连接,就需要配置ACL。

例如:在上个案例中,要在R2上Telnet到R1,可以在ASA上做如下配置

1
2
asa(config)# access-list out_to_in permit ip host 172.16.1.1 host 10.1.1.1
asa(config)# access-group out_to_in in int outside

控制出站连接的流量

例如:在上个案例中,如果inside区域有多个子网。例如,10.1.1.0/24、10.1.2.0/24等,要禁止子网10.1.1.0/24的流量出站,可以在ASA上做如下配置

1
2
3
asa(config)# access-list in_to_out deny ip 10.1.1.0 255.255.255.0 any
asa(config)# access-list in_to_out permit ip any any
asa(config)# access-group in_to_out in int inside

配置静态路由

ASA支持静态和默认路由、动态路由(例如OSPF等)

配置静态路由的命令语法如下

1
asa(config)# route interface-name network mask next-hop-address

ICMP协议

默认情况下,禁止ICMP报文穿越ASA是基于安全性的考虑。为了方便调试,可以配置暂时允许ICMP应答报文穿越ASA

1
2
asa(config)# access-list 111 permit icmp any any
asa(config)# access-group 111 in int outside

在调试完毕后,通常建议禁止ICMP报文穿越ASA

其他配置命令

(1)保存running-configuration配置到startup configuration,可以使用以下两种命令:

1
2
asa(config)#write memory      //第一种
asa(config)#copy running-config startup-config       //第二种

(2)清除running configuration的所有配置,可以使用以下命令

1
asa(config)#clear configure all

(3)清除running configuration中指定命令的配置,可以使用以下命令

1
asa(config)#clear configure configurationcommand [ leve12configurationcommand ]

例如:要清除所有access-list命令的配置,可以使用以下命令

1
asa(config)#clear configure access-list

只清除access-list in_to_out的配置,可以使用以下命令

1
asa(config)#clear configure access-list in_to_out

远程管理ASA

ASA支持三种主要的远程管理接入方式:Telnet、SSH和ASDM

1.配置Telnet接入

由于使用Telnet远程管理是不安全的,所以一般禁止从外部接口使用Telnet接入,而只允许在内网使用Telnet。

(1)配置允许Telnet接入

1
asa(config)# telnet {network|ip-address} mask interface_name

例如:配置允许从inside区域内的192.168.0.0/24使用Telnet接入,命令如下

1
asa(config)# telnet 192.168.0.0 255.255.255.0 inside

可以配置为只允许主机192.168.0.1/24使用Telnet接入,命令如下

1
asa(config)# telnet 192.168.0.1 255.255.255.255 inside

(2)(可选)配置空闲超时时间

1
asa(config)# telnet timeout minutes

参数minutes的取值范围为1-1440分钟,默认值是5分钟。

2.配置SSH接入

使用SSH可以安全地对ASA进行远程管理,配置SSH接入分为四个步骤。

(1)配置主机名和域名

在生成RSA密钥对的过程中需要用到主机名和域名,以下命令为ASA配置主机名为asa802,配置域名为asadomain.com

1
2
asa(config)# host asa802
asa802(config)# domain-name asadomain.com

(2)生成RSA密钥对

1
asa802(config)# crypto key generate rsa modulus 1024

可以指定modulus的大小为512、768、1024或2048位,默认是1024,表示生成的RSA密钥的长度。

(3)配置允许SSH接入

配置SSH的命令语法与配置Telnet是类似的,但是SSH可以配置为从外部接口接入,命令如下

1
2
asa802(config)# ssh 192.168.0.0 255.255.255.0 inside
asa802(config)# ssh 0 0 outside

(4)其他可选配置

配置空闲超时时间。与配置Telnet类似,例如设置为30分钟,命令如下

1
asa802(config)# ssh timeout 30

配置SSH的版本。默认情况下支持版本1和版本2.要限定使用哪个版本,可以使用如下命令

1
asa802(config)# ssh version 2

配置完后,可以在Outside 区域内的主机上使用Putty登录ASA的Oouside接口。注意ASA默认使用用户名pix,密码为使用passwd命令设置的密码,即可登录成功

3.配置ASDM接入

除了使用命令行外,ASA还支持GUI远程管理方式,即自适应安全设备管理器(ASDM)

要使用ASDM,首先要保证ASA的Flash中有ASDM映像,可以通过dir命令查看

1
2
3
asa# dir
 Directory of disk0:/
 55   -rwx  6889764   14:16:34  Dec  09  2017   asdm-602.bin

(1)启用HTTPS服务器功能,命令如下

1
asa(config)# http server enable [port]       //默认端口是443

(2)配置允许HTTPS接入,命令如下:

1
asa(config)# http {network|ip-address} mask interface-name

(3)指定ASDM映像的位置,命令如下:

1
asa(config)# asdm image disk0:/asdm-602.bin

(4)配置客户端登陆使用的用户名和密码,命令如下:

1
asa(config)# username user password password privilege 15

如果不配置用户名和密码,ASDM默认使用用户名admin,密码为使用enable password命令设置的密码。

例如:以下是一个ASA的配置案例

1
2
3
4
asa(config)# http server enable
asa(config)# http 192.168.0.0 255.255.255.0 inside
asa(config)# asdm image disk0:/asdm-602.bin
asa(config)# username ysf password 123456 privilege 15

客户端主机使用ASDM需要首先安装Java Runtiime Environment(JRE),然后在主机启动浏览器,输入https://192.168.0.254(inside接口的IP地址)进行访问。

多安全区域(配置DMZ) 

上面介绍了ASA的基本配置,其中只用到了inside和outside两个安全区域,实际上ASA可以配置多个安全区域,比较常用的是DMZ

DMZ(隔离区)位于企业内部网络和外部网络之间的一个网络区域,通常用来放置一些必须公开的服务器,如Web服务器、FTP服务器和论坛等。下图所示

DMZ默认的访问规则

DMZ的安全级别介于inside和outside之间,在存在DMZ的情况下,默认的访问规则如下图所示:

* 允许从高安全级别接口到低安全级别接口的流量通过

* 禁止从低安全级别接口到高安全级别接口的流量通过

在实际应用中,通常需要配置访问规则和地址转换允许outside访问DMZ

DMZ的基本配置

1
2
3
4
5
asa(config)# int e0/1
asa(config-if)# namaif dmz
asa(config-if)# security-level 50
asa(config-if)# ip add 192.168.1.1 255.255.255.0
asa(config-if)# no sh

本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/1965568,如需转载请自行联系原作者

防火墙(ASA)的基本配置与远程管理相关推荐

  1. asa 防火墙拦截了https_防火墙(ASA)的基本配置与远程管理

    在目前大多数安全解决方案中,防火墙的实施是最为重要的需求,它是每个网络基础设施必要且不可分割的组成部分.这篇博客主要介绍防火墙安全算法的原理与基本配置以及远程管理防火墙的几种方式 硬件与软件防火墙 1 ...

  2. 华为防火墙配置(远程管理)

    目录 前言 一.设备管理方式 1.AAA介绍 2.常见管理方式 (1)Console (2)Telnet (3)Web (4)SSH 3.密码遗忘 (1)Console口密码遗忘 (2)管理员账号/密 ...

  3. telnet配置设备远程管理—eNSP

    案例:给路由器配置远程管理,使一台路由器远程管理另一台. 所需设备:两台路由器,一根网线 图示 一.给两台设备配置IP地址 AR1(以下命令) a. sy b. int g0/0/0 c. ip ad ...

  4. 华为交换机配置Telnet远程管理(亲测)

    最简单(password形式)开启telnet 1.网络拓扑如下: 第一步:首先搭建网络 R1配置: <Huawei>system-view [Huawei]sysname R1 [R1] ...

  5. HCNA配置telnet远程管理

    1.拓扑图 说明:通过配置最终能通过R5 用telnet协议登陆到R4上并将R4改名为R44 2.R4配置 <Huawei>sys Enter system view, return us ...

  6. 零基础教程:Dell远程管理idrac配置

    1.准备工作 配置idrac远程管理之前,需要提前配置端口重定向,将服务器显示器的内容重定向到idrac远程管理主机上 2.配置教程 (1)开机 打开服务器电源,等待服务器加载 出现这个提示符的还是, ...

  7. 防火墙(ASA)高级配置之URL过滤、日志管理、透明模式

    对于防火墙产品来说,最重要的一个功能就是对事件进行日志记录.本篇博客将介绍如何对ASA进行日志管理与分析.ASA透明模式的原理与配置.利用ASA防火墙的IOS特性实施URL过滤. 一.URL过滤 利用 ...

  8. ASA 防火墙 工作原理与配置实例

    ASA是状态化防火墙,会建立一个用户信息连接表(Conn),连接表中包含的相关信息有源IP地址.目的IP地址.IP协议(如TCP或UDP).IP协议信息(如TCP/UDP的端口号.TCP序列号和TCP ...

  9. 防火墙命令补充和dmz_远程管理

    ♥️作者:小刘在C站 ♥️每天分享云计算网络运维课堂笔记,一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放. 禁止出站 ciscoasa(config)# access-list r1_to_r2 ...

最新文章

  1. Programming Computer Vision with Python (学习笔记十)
  2. WLAN与WIFI的区别
  3. 很想去摆地摊,可是不知道怎么开始,前期需要做什么准备工作吗?
  4. Linux-HA 高可用开源方案 Keepalived VS Heartbeat 的选择
  5. 【技术美术图形部分】纹理基础2.0-凹凸映射
  6. ruoyi 项目启动步骤
  7. DSPE-PEG3-Mal,小分子PEG连接马来酰亚胺基团
  8. 干货 | 18个 Python 高效编程技巧
  9. 数据库之操作MySQL
  10. 人工智能入门四件套,你学人工智能避不开的知识点
  11. idea maven子项目图标右下角没有小蓝方块
  12. 傻妞对接TG/监控变量国内国外机视频教程 6.16
  13. 「码力全开」假如今年公司中秋的月饼由你来设计
  14. 360全景拍摄有哪些技巧?
  15. 如何提高自己的编程能力
  16. N沟道增强型MOS管双向低频开关电路
  17. C++设计模式——状态模式(高屋建瓴)
  18. Linux安装RPM包、查看本机ip和端口、手动配置ip、中标麒麟无法显示ip地址的详细解决方法
  19. docker指定网桥和网段
  20. 为什么说Vue是渐进式框架?

热门文章

  1. 织梦gbk下文章随机文字转换为图片
  2. 关于-超融合架构(Hyper-converged)市场产品区别和决策标准
  3. 基于ADSP-BF561的H.264视频编码器的实现
  4. springBoot整合mybatis-plus 报错 No qualifying bean of type
  5. UML——员工请假状态转换图
  6. 郭炜:就算倒在离开源成功最近的五米,也要让下一代开源人坚定前行
  7. 全媒体运营师胡耀文教你:2021年活动运营5大核心要素
  8. react项目在ie11浏览器运行报错Instance method `debug.destroy()` is deprecated and no longer does anything
  9. 每日力扣009——575. 分糖果(OnO1)
  10. DeepCTR:易用可扩展的深度学习点击率预测算法库