利用 TinyCA 和 TinyWeb 快速搭建 HTTPS 环境

搭建一个 HTTPS 环境需要一个 CA 和一个 HTTPS 服务器,TinyCA 可以在 Ubantu 上快速的安装并创建一个 Private CA,TinyWeb 可以在 Windows 平台上利用 TinyCA 签发证书从而搭建出 HTTPS 服务。

搭建 TinyCA

在 Ubantu 上使用 apt-get 安装 TinyCA

sudo apt-get update -y
sudo apt-get install -y tinyca

安装完成后在 terminal 使用 tinyca2 命令打开 GUI 界面,通过界面我们可以快速的创建一个自己的 CA。

继续阅读“利用 TinyCA 和 TinyWeb 快速搭建 HTTPS 环境”

Cisco IOS IPsec 配置专题(5) – IPsec PMTUD 详解

在 《Cisco IOS IPsec 配置专题(3) – 使用 Crypto Map 时 Fragmentation 的问题》中我们介绍了 PMTUD 在避免 fragmentation 时的作用但是并没有深入的对 PMTUD 的实际部署进行分析,当我们在使用 IPsec 的时候这里有两类 PMTUD 需要讨论,第一种是普通的 Path PMTUD,另一种是 IPsec PMTUD。

在 RFC 4301 中规定了每一个 IPsec SA 都需要包含一个 Path MTU,这个 Path MTU 代表的是该 IPsec 可以承载的最大未加密载荷 (plaintext packet size)。该 MTU 可以被称为 IPsec Path MTU 或 SA Path MTU,它的计算方式是 IPsec 的源出站接口 MTU 减去最大的 IPsec overhead(IPsec 的 overhead 由配置的具体加密算法等决定),如下图:

继续阅读“Cisco IOS IPsec 配置专题(5) – IPsec PMTUD 详解”

Cisco IOS IPsec 配置专题(4) – Reverse Route Injection 配置方法

使用 Crypto Map 进行 IPsec 的配置无法支持 multicast,也就意味着不能支持 dynamic routing,这样该方法在大规模实施的时候具有局限性。为了减少无法使用 dynamic routing 带来的不便我们可以使用 Reverse Route Injection (RRI) 动态的向 IPsec peer 注入路由。实验拓扑如下:

继续阅读“Cisco IOS IPsec 配置专题(4) – Reverse Route Injection 配置方法”

Cisco IOS IPsec 配置专题(3) – 使用 Crypto Map 时 Fragmentation 的问题

不同的 IPsec 配置方式会导致数据包的 overhead 不同,通过本文我们对 overhead 产生的原因进行梳理,对使用 crypto map 的情况下 MTU 的取值进行讨论。其他 IPsec 配置方式的 MTU 取值放在相对应的章节里。

Overhead 形成的原因

Overhead 形成的原因主要是因为我们对原始数据进行了加密和二次封装 (例如使用 GRE over IPsec),不同的协议和加密方式会造成不同大小的 overhead,具体的参数我们可以使用 Cisco 提供的一个工具 IPSec Overhead Calculator Tool 来查看 (https://cway.cisco.com/tools/ipsec-overhead-calc/)。

值得注意的是并不是原始数据越大产生的 overhead 就越大,例如一个原始大小为 500 bytes 的数据包使用 GRE 封装,IPsec 设置为 transport mode,ESP-DES 加密,MD5 做验证,会产生 60 bytes 的 overhead。

继续阅读“Cisco IOS IPsec 配置专题(3) – 使用 Crypto Map 时 Fragmentation 的问题”

Cisco IOS IPsec 配置专题(2) – IPsec on Loopback Interface

在上一篇文章中我们展示了 static crypto map 和 dynamic crypto map 的配置方式,在这里我们利用 static crypto map 这种最简单的方法来展示如何在 loopback 接口上建立 IPsec。

当我们的 router 形成 dual-home 的拓扑,并且需要在两个接口上同时建立 IPsec 时我们有两种配置方法。第一种就是创建两个 crypto map 分别挂载到两个接口上;第二种就是创建一个 crypto map 并将其挂载到一个 loopback 接口上。

继续阅读“Cisco IOS IPsec 配置专题(2) – IPsec on Loopback Interface”

Cisco IOS IPsec 配置专题(1) – Static & Dynamic Crypto Map

Cisco IOS IPsec 的配置方式

Cisco IOS 中可以使用很多不同的方式配置 IPsec VPN,每种方式各有优缺点,这个系列的文章将会对以下配置方式进行讲解:

    • Static & Dynamic Crypto Map
    • GRE over IPsec
    • Static & Dynamic Virtual Tunnel Interface (VTI)
    • Group Encrypted Transport VPN (GETVPN)
    • Dynamic Multipoint VPN (DMVPN)
    • FlexVPN

Crypto Map 的历史

在 WAN 技术的初期并没有一种可以对数据进行加密的机制,后来 Cisco 开发出了一种私有的加密机制 – Cisco Encryption Technology (CET),CET 会对两个 Cisco 路由器之间的通信进行加密。随着安全问题的增加,IETF 定义了 IPsec,Cisco 在 IOS 里面引进 IPsec 来替代 CET,但是 CET 的配置命令结构得以保留。Crypto Map 就是 CET 时期的产物。

继续阅读“Cisco IOS IPsec 配置专题(1) – Static & Dynamic Crypto Map”

ASA 与 ASA 之间建立 IPsec (IKEv1 with PSK)

ASA-1 预配

interface GigabitEthernet0/0
 nameif OUT
 security-level 0
 ip address 1.1.1.1 255.255.255.0
!
interface GigabitEthernet0/1
 nameif IN
 security-level 100
 ip address 192.168.1.1 255.255.255.0
!
route OUT 0.0.0.0 0.0.0.0 1.1.1.2

ASA-2 预配

interface GigabitEthernet0/0
 nameif OUT
 security-level 0
 ip address 1.1.1.2 255.255.255.252
!
interface GigabitEthernet0/1
 nameif IN
 security-level 100
 ip address 172.16.1.1 255.255.255.0
!
route OUT 0.0.0.0 0.0.0.0 1.1.1.1

继续阅读“ASA 与 ASA 之间建立 IPsec (IKEv1 with PSK)”

IPsec 基础知识点总结

IPsec Framework

IPsec 是一种 L3VPN 技术,它提供以下 4 种 security services:

      • Authentication
      • Data confidentiality
      • Data Integrity
      • Anti-reply

IPsec 本身并不是一种协议,它是一种 framework,由多种协议及标准组成。在实施部署时可以根据具体的要求在一个统一的 framework 下选择不同的协议,下图很好的展示了 framework 和 implementation 之间的区别和关联:

继续阅读“IPsec 基础知识点总结”

Cisco IOS 自身集成的 PKI 功能

Cisco IOS 自身已经集成了 PKI 的功能,也就是说我们可以将 IOS 设置为 CA 并且签发 certificate。

为了设置 CA 我们首先需要 CA 给自己签发一张证书 (self-sign certificate),证书的签发需要用到 key,所以第一步就需要产生 key-pair。key-pair 可以自动产生也可以手动配置,自动产生的 key-pair 长度不可控,而且较短,下面的实例都是基于手动产生 key-pair 的方法。

继续阅读“Cisco IOS 自身集成的 PKI 功能”