strongSwan:ipsec.secrets - 用于IKE/IPsec身份验证的机密

文件描述

        文件ipsec.secrets包含一个机密表。这些机密被StrongSwan的网络密钥交换(IKE)守护程序pluto(IKEv1)和charon(IKEv2)使用,来验证其他主机。

        保护这些机密至关重要。 该文件应由超级用户拥有,其权限应设置为阻止其他人访问。

文件内容

        该文件是一系列条目并包含指令。如下示例:

# /etc/ipsec.secrets - strongSwan IPsec secrets file
192.168.0.1 %any : PSK "v+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"

: RSA moonKey.pem

alice@strongswan.org : EAP "x3.dEhgN"

carol : XAUTH "4iChxLT3"

dave  : XAUTH "ryftzG4A"

# get secrets from other files
include ipsec.*.secrets

如上示例包含了可能在一个ipsec.secrets文件中出现的三种类型的内容:

  • 机密条目;
  • 注释;
  • 包含(include)指令。

包含指令

        指令include导致在继续当前文件之前处理指定文件的内容。 文件名受sh(1)中的“globbing”影响,因此每个具有匹配名称的文件都会被处理。 包含可以嵌套到适度的深度(当前为10)。 如果文件名不以“/”开头,则包含当前文件的目录将添加到名称前面。 include指令是以include开头的一行,后跟空白,后跟文件名(不能包含空格)。

注释

        行末尾的空格将被忽略。在行的开头或空白之后,如果是“#”,则其后直到行尾的文本被视为注释。

机密条目

        文件中的每个条目都是由可选的”ID选择器“,后跟一个“机密”的形式组成。这两个部分由冒号(:)分隔,冒号被空格包围。如果未指定“ID选择器”,则该行必须以冒号开头。

        ”ID选择器“可以是

  • IP地址
  • 完全限定域名
  • 用户@FQDN
  • %any
  • %any6
  • 以后可能会有其他类型

        匹配”ID选择器“非常简单:它们必须相同。在“Road Warrior(经常出差的人)”连接的情况下,如果没有找到对等ID的相等匹配,并且它是IP地址的形式,则选择器%any将匹配对等方的IP地址(如果IPv4的情况);在IPv6情况中,%any6将匹配对等方的IP地址。目前,可以使用过时的符号0.0.0.0代替%any。

        在IKEv1中,在通过预共享密钥进行认证的情况下出现了额外的复杂性:响应者将需要在对等的ID有效载荷被解码之前查找“机密”,因此使用的“ID选择器”将是IP地址。

        为了验证两台主机之间的连接,将使用最匹配主机和对等ID的条目。没有选择器的条目将匹配任何主机和对等体。更具体地说,如果“ID选择器”与主机的ID匹配(不考虑对等体),则具有一个选择器的条目将匹配主机和对等体。更具体地说,如果主机ID和对等ID分别与选择器之一匹配,则具有多个选择器的条目将匹配主机和对等体。如果密钥用于非对称认证技术(即诸如RSA的公共密钥系统),则具有多个选择器的条目将匹配主机和对等体,即使仅主机ID与选择器匹配(假设选择器是主机所有标识符)。只要他们就机密或私钥达成一致,两个条目就是最佳匹配是可以接受的。

        通过预共享机密进行认证要求两个系统都找到相同的机密(机密实际上不是由IKE协议传输的)。如果主机和对等体都出现在选择器列表中,则相同的条目将适用于两个系统,因此可以使用系统之间的逐字复制。这自然延伸到共享相同机密的较大群体。因此,对于PSK认证,多选择器条目是最适合的。

        通过RSA等公钥系统进行身份验证,需要每个主机都有自己的私钥。主机可以合理地为不同的接口和不同的对等体使用不同的私钥。但是在系统之间共享条目是不正常的。因此,无选择器和单选择器形式的入口通常对公钥认证有意义。

        条目的“机密”部分必须以表示密钥类型的标记开头。 目前支持以下类型的机密:

	PSK    defines a pre-shared key
	RSA    defines an RSA private key
	ECDSA  defines an ECDSA private key
	P12    defines a PKCS#12 container
	EAP    defines EAP credentials
	NTLM   defines NTLM credentials
	XAUTH  defines XAUTH credentials
	PIN    defines a smartcard PIN

下面给出了每种机密的详细信息。

TYPES OF SECRETS

[ <selectors> ] : PSK <secret>
预共享密钥最方便地表示为字符序列,由双引号字符(”)分隔。序列不能包含换行符或双引号字符。
或者,预共享机密可以表示为十六进制或Base64编码的二进制值。 以0x开头的字符序列被解释为十六进制数字序列。 类似地,以0开头的字符序列被解释为Base64编码的二进制数据

: RSA <private key file> [ <passphrase> | %prompt ]
: ECDSA <private key file> [ <passphrase> | %prompt ]
对于私钥文件,接受相对于/etc/ipsec.d/private的绝对路径或路径。 如果私钥文件已加密,则必须定义密码。 可以使用密码短语%prompt,而不是密码短语,然后在需要解密密钥时使守护进程向用户询问密码。

: P12 <PKCS#12 file> [ <passphrase> | %prompt ]
对于PKCS#12文件,接受相对于/etc/ipsec.d/private的绝对路径或路径。 如果容器已加密,则必须定义passphrase。 可以使用密码短语%prompt,而不是密码短语,然后在需要解密容器时使守护进程向用户询问密码。 从容器中提取私钥,客户端和CA证书。 在连接集中使用此类客户端证书,该证书的主题之一是leftid。

<user id> : EAP <secret>
机密的格式与PSK机密的格式相同。
EAP机密仅限IKEv2。

<user id> : NTLM <secret>
机密的格式与PSK机密的格式相同,但机密存储为NTLM哈希,即MD4(UTF-16LE(机密)),而不是明文。
NTLM机密只能与eap-mschapv2插件一起使用。

[ <servername> ] <username> : XAUTH <password>
密码的格式与PSK机密的格式相同。 XAUTH机密只是IKEv1。

: PIN %smartcard[<slot nr>[@<module>]]:<keyid> <pin code> | %prompt
智能卡选择器始终需要keyid来唯一地选择正确的密钥。 插槽号定义令牌上的插槽,模块名称指的是在strongswan.conf(5)中定义的模块名称。 可以指定%prompt,而不是静态指定pin代码,这会导致守护进程向用户询问pin代码。

注意事项

        如果ID为0.0.0.0,则匹配%any;如果它是0::0,它将匹配%any6。

参考手册

ipsec.conf(5), strongswan.conf(5), ipsec(8)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值