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.pemalice@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 keyRSA defines an RSA private keyECDSA defines an ECDSA private keyP12 defines a PKCS#12 containerEAP defines EAP credentialsNTLM defines NTLM credentialsXAUTH defines XAUTH credentialsPIN 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)
strongSwan:ipsec.secrets - 用于IKE/IPsec身份验证的机密相关推荐
- 【网络安全】身份验证凭证为何如此重要?
隐私管理在保持必要信息的安全和远离攻击者方面起着重要的作用,本文我们就将讨论什么是隐私以及如何安全地存储它们. 隐私管理之所以重要,是因为密码泄露可能导致严重的数据泄露,随着越来越多的工作数据被保存在 ...
- c# WebApi之身份验证:Basic基础认证
为什么需要身份认证 身份认证是为了提高接口访问的安全性,如果没有身份验证,那么任何匿名用户只要知道服务器的url,就可以随意访问服务器,从而访问或者操作数据库,这会是很恐怖的事. 什么是Basic基础 ...
- ASP.NET身份验证机制membership入门——配置篇(1){转}
几乎所有的系统中都会使用到访问控制和角色管理这样的功能,例如:新建.修改.删除用户和角色,为用户分配角色,管理角色中的用户等等.于是MS在ASP.NET 2.0开始,实现了这些功能,使得我们在开发中, ...
- ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)
ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) 收藏 转自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介绍了在ASP ...
- 使用基本身份验证来保护Spring Boot REST API
这是我的Spring Boot Blog帖子系列的第三篇文章. 在第一篇文章中,我谈到了我使用Spring Boot创建RESTFul Services的经验. 然后我将样本扩展到 与Swagger文 ...
- 如何在Python Django中处理用户身份验证
by Mohammed Subhan Khan 由Mohammed Subhan Khan 如何在Python Django中处理用户身份验证 (How to handle user authenti ...
- ASP.NET Core与Dapper和VS 2017使用JWT身份验证WEB API并在Angular2客户端应用程序中使用它
目录 介绍 背景 步骤1 创建ASP.NET Core Web API项目 Fitness.JWT.API项目说明 使用代码 startup.cs JwtIssuerOptions.cs JwtCon ...
- 两因素身份验证增强您的Spring Security
通过要求用户提供第二种身份验证,双重身份验证为您的Web应用程序增加了一层额外的安全保护. 常见的第二个因素包括: 验证码生物识别电子邮件或短信代码 让我们探讨如何利用Nexmo向现有的Web应用程序 ...
- RFC8705-OAuth 2.0双向TLS客户端身份验证和证书绑定访问令牌
RFC8705-OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens 目录 摘要 1. 简介(I ...
最新文章
- HDU2819Swap(二分图最大匹配)
- TypeError: decoding Unicode is not supported
- 3dmax2014:打开3dmax2014软件时,出现许可证检出失败 错误20
- 表格布局(TableLayout)及重要属性
- 重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源
- C#中在定义事件委托时怎样跨窗体传递参数
- lstm 变长序列_keras在构建LSTM模型时对变长序列的处理操作
- 重庆考区非计算机专业二级等级考试vf上机题怎么建立程序文件?,计算机等级考试一级上机试题...
- oracle的in集合,oracle中in与not in集合中有空值问题
- PHP+MySQL 网站 SQL 注入攻击测试用例
- 【Opencv】 于仕琪 人脸68个特征点分布情况
- 电脑桌面隐藏文件如何恢复出来呢
- 烟雨在线要饭系统v2.0源码
- 网络历史之金融投资三剑客03
- 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT
- 计算机网易云不能一键升级音质,网易云电脑版怎么调音效(一览网易云音效最佳调节技巧)...
- 机电学生写给十年后自己的一封信
- extjs控件只读、,extjs多行只读文本框
- 除去工作赚到第一桶金10W+,我都做了哪些事儿?
- Android 源代码分享