ipsec.conf(5) - Linux man pag 中文翻译

编程入门 行业动态 更新时间:2024-10-20 15:54:19

ipsec.conf(5) - Linux man page
****英文网址:https://linux.die/man/5/ipsec.conf
**未经许可,禁止转载,请知悉!!! **

Name (名称)
ipsec.conf - IPsec配置和连接

Description (描述)
可自行配置的ipsec.conf文件为Openswan IPsec子系统指定了大多数配置和控制信息。(重大的例外是有关身份验证的密钥,查看ipsec.secrets(5)),
它包含的内容不是安全且敏感的,除非手动配置的信息不仅仅用于测试,那么加密/认证密钥就属于非常敏感,
那么这些连接的描述最好放在一个单独的文件中,通过接下来描述的

该文件是一个文本文件,由一个或者多个部分组成,空白符后跟#,那么从#到该行尾都是注释。

包含“include” 和 “文件名”(两者被空格分开)的一行,该行将被替换为文件的内容,替换后前面和后面都有空行隔开。
如果文件名不是完整路径名,则认为与包含该文件的目录相关。可能只提供一个文件名,并且不包含空格,
但是可能包含shell通配符(参见 sh(1));比如 include ipsec.*.conf
include这种用法的主要目的是允许连接信息或者连接设置,和主要的配置文件分开,包括更改连接描述,
或者拷贝到相关联的安全网关等,从而不必经常修改主配置文件,
还要注意“also”和“alsoflip”参数(如下面描述的),他们允许将单个逻辑部分(例如连接描述)分成几个实际部分。

该文件的第一个重要行必须指定它符合的此规范的版本:

version 2
一个部分以一行开头

type name
其中type表示后面的部分类型,name是任意名称,用于区分该部分与相同类型的部分。
名称必须以字母开头,并且可能只包含字母,数字,句点,下划线和连字符。
以空格开头的所有后续非空行都是该部分的一部分; 部分中的注释也必须以空格开头。
这里可能只有给定类型的一个部分具有给定名称。

该部分内的行通常是这种格式

parameter=value

注意前面的强制空格, 在=的两侧可以有空白区域。 参数名称遵循与该部分名称相同的语法,
参数名称对应具体的所属部分,除非另有明确说明,否则参数名称在同一部分中不会出现多次。

空值表示参数的系统默认值(如果有的话),即它大致相当于缺省。
仅当整个值用双引号(“)括起来时,值才可能包含空格;值本身不能包含双引号,也不能跨越多行。

数值被指定为“整数”(数字序列)或“十进制数”(数字序列可选地后跟 ‘.’ 和另一个数字序列)。

目前有一个参数可用于任何类型的部分:

also
这个值是一个部分的名称;该部分的参数将附加到also所在的部分,就好像它们已作为其一部分编写一样。 
指定的部分必须存在,必须遵循当前部分,并且必须具有相同的部分类型。
允许嵌套,在一个部分中可能有多个also,虽然禁止一个部分出现多次。
例如,通过使用一个also参数和一个include行,将保持连接的加密密钥放在在单独的文件中以便和其他的描述分离。
注意,请参阅下面的BUGS以了解某些限制。

alsoflip
可以用于conn部分,它的作用就像also翻转引用部分。
以x-(或X-,或x_或X_)开头的参数名称保留用于用户扩展,永远不会被IPsec赋予含义。
具有此类名称的参数仍必须遵守语法规则(名称中使用的字符限制;非引用值中没有空格;值中没有换行符或双引号)。
所有其他尚未使用的参数名称保留用于将来的IPsec改进。
一个部分的名称带有%default 指定该部分相同类型的默认值。
对于其中的每个参数,部分中的相同类型如果没有相同名称的参数,就会从%default获取拷贝值。给定类型可能有多个%default。
但是只有一个默认部分可能提供给任何具体参数名称,并且给定类型的所有%default都必须在非默认部分之前,%default可能不含有also或者alsoflip参数。
目前有两种类型的部分:config 部分指定IPsec的一般配置信息,conn 部分指定IPsec连接。

Conn Sections
一个conn部分包含了一个连接规范,定义了使用IPSEC的一个网络连接,连接的名称是开以任意取的,
用于标识 ipsec_auto(8)和ipsec_manual(8)的连接,简单例子如下:
  
conn snt

left=10.11.11.1
leftsubnet=10.0.1.0/24
leftnexthop=172.16.55.66
leftsourceip=10.0.1.1
right=192.168.22.1
rightsubnet=10.0.2.0/24
rightnexthop=172.16.88.99
rightsourceip=10.0.2.1
keyingtries=%forever
关于术语的说明,在自动密钥管理中,有两种通信方式:用户IP数据包的传输,和网关到网关间密钥协商、更新和一般控制。
用于用户数据包的数据路径(关于"IPsec SAs"的设置),
在这里称为“连接”; 用于协商的路径(用“ISAKMP SA”构建)被称为“密钥协商信道”。

为了避免对配置文件进行微不足道的修改以适应连接中涉及的不同系统。
对于通信双方,连接规范是按照左右参与者的方式编写的,而不是根据本地和远端编写的。
哪个被认为是左或右是任意的; IPsec根据内部信息确定运行哪一个。 这允许在两端使用相同的连接规范。
有些情况下没有对称性; 一个好的约定是使用左侧为本地侧,右侧为远端(第一个字母是一个很好的助记符)。

许多参数涉及一个参与者或另一个; 这里只列出左边的那些,
但是名称以left开头的每个参数都有一个以right开头的对应参数,其描述相同但区分左右。

CONN PARAMETERS: GENERAL (conn 参数:通用)
以下参数与自动和手动建立连接都相关,除非另有说明,对于一个连接要生效,通常两端要完全同意这些参数值。

connaddrfamily
参数值为ipv4(默认值)或者ipv6
目前只有使用NETKEY的堆栈支持ipv6

type (表示连接的类型)
参数值如下:
tunnel(默认值): 表示host-to-host, host-to-subnet, subnet-to-subnet 隧道
transport:表示host-to-host传输模式
passthrough:表示不使用IPsec
drop:表示丢弃数据
reject:表示丢弃数据并返回ICMP诊断包

left
[必选项]左参与者的公共网络接口的IP地址,以ipsec_ttoaddr(3)接受的任何形式。目前,支持IPv4和IPv6 IP地址
如果是%defaultroute,并且config setup项的interfaces中含有%defaultroute,
那么left将自动由本地的缺省路由接口地址(和ipsec启动时确定的一样)填充,leftnexthop也支持,
left或者right都可能为%defaultroute,但不能同时均为%defaultroute

%any:表示在协商(自动协商模式)时填充
%opportunistic:表示 left 和 lefnexthop 的参数都从 left 侧客户端的DNS数据中获取

left的值也可以是包含接口名称,并使用该名称获取IP地址并填充
比如某连接的值为%group、%opportunisticgroup会使该连接成为一个策略组的连接,
一个将被实例化为策略组文件中列出的每个CIDR块的常规或机会性conn,其名称与conn相同。

如果将IP地址与NAT结合使用,请始终使用实际本地计算机(NAT)的IP地址,
如果远程(例如right=)也是NAT,则远程的公共IP地址(非NAT)。
请注意,这使得配置在两侧不再对称,因此您无法在两台主机上使用相同的配置文件。

leftsubnet
左参与者后面的私有子网,表示为 网络/网络掩码 (实际上,ipsec_ttosubnet(3)可接受的任何形式);
目前支持IPv4和IPv6范围。 如果省略,基本上认为是 left/32,表示连接的左端仅转到左参与者

leftsubnets
指定左侧设备的多个私有子网,格式 { networkA/netmaskA networkB/netmaskB […] }。
如果同时定义了 leftsubnets=和 rightsubnets=,将实例化所有子网隧道组合 ,leftsubnet 和 leftsubnets 不能同时使用。
例子请看testing/pluto/multinet-*

leftprotoport
允许通过连接的协议和端口,也称为端口选择器。

参数可以是数字或者协议名,在 /etc/protocols 中可以查找到,比如leftprotoport=icmp,或者protocol/port,
比如tcp/smtp, ports可以使用数字(比如 25)或名字(比如 smtp)表示,可以在/etc/services查看。

%any 表示所有的协议端口,此选项最常见的用途是L2TP连接仅允许l2tp数据包(UDP端口1701),
例如leftprotoport=17/1701,一些客户端,特别是较旧的Windows XP和一些Mac OSX客户端,使用随机大的端口作为源端口。
在这些情况下,rightprotoport = 17 /%any可用于允许连接上的所有UDP流量。
请注意,此选项是提议的一部分,不能一端有,一端没有,双方需同意。

端口选择器的参数可以通过ipsec eroute和 ipsec auto --status命令显示,
例如:“l2tp”:
193.110.157.131 [@ aivd.xelernace]:7/1701 …%any:17/1701此选项仅过滤出站流量。
入站流量选择仍必须基于由updown脚本激活的防火墙规则。
变量$ PLUTO_MY_PROTOCOL,$ PLUTO_PEER_PROTOCOL,$ PLUTO_MY_PORT和$ PLUTO_PEER_PORT可用于updown脚本。
较早的错误解决方法涉及设置17/0以表示任何单个UDP端口(不是UDP端口0)。
一些客户端,尤其是OSX,使用随机的大的端口,而不是端口1705用于L2TP。

leftnexthop
左侧设备连接公网的下一跳网关IP地址,缺省为 %direct(意为 right 端)
如果要通过left =%defaultroute方法覆盖该值(参见上文),则不得给出显式值。
如果未使用该方法,但leftnexthop为%defaultroute,并且在config setup项中使用interfaces =%defaultroute,
则将使用default-route接口的下一跳网关地址。%direct表示要使用对方的地址填充(通过自动建链)。
仅在本地相关,对端不需要就此达成一致。

leftsourceip
此主机在将数据包传输到此链路另一侧时使用的IP地址。 只在本地相关,另一端不需要同意。
此选项用于使网关本身使用其内部IP(这是leftsubnet的一部分)与右侧子网或右侧进行通信。
否则,它将使用其最近的IP地址,即其公共IP地址。

此选项主要用于定义subnet-subnet 连接,以便网关可以相互通信,以及和对端子网通信,
而无需构建额外的host-subnet,subnet-host 和 host-host 隧道,支持IPv4和IPv6地址。

leftupdown
连接状态改变时, “updown”中的脚本调整路由和防火墙(缺省为 ipsec _updown)。
可能包括由空格分隔的位置参数(尽管这需要将整个字符串括在引号中); 包括shell元字符是不明智的。
使用NETKEY堆栈时启用路由的示例可以使用:leftupdown=“ipsec _updown --route yes”
详细请看 ipsec_pluto(8), 只在本地相关,另一端不需要同意。

leftfirewall (已废弃)
如果一个或者两个安全网关都进行防火墙转发(可能包括伪装),并且使用防火墙指定参数。
IPSEC建立的隧道可以无视这些,可以使数据报不进行改变就可以通过。这意味着以这种方式连接的所有子网必须具有不同的,不重叠的子网地址块。
这由默认的updown脚本完成(请参阅ipsec_pluto(8))。
实现这一点会对防火墙设置以及Linux高级路由工具的可用性做出某些假设。
在要求更多控制的情况下,最好是用户提供他自己的updown 脚本,来适应自己的系统。

CONN PARAMETERS: AUTOMATIC KEYING (连接参数:自动协商)
下面所有项在自动建立IPSEC隧道中起作用,在手动建立IPSEC隧道中被忽略。
除非另有说明,否则对于连接的建立,通常两端必须完全同意这些参数的值。

auto
在IPsec启动时应该自动完成哪些操作; 现在支持的参数有add(ipsec auto --add),route (ipsec auto --route),
start(ipsec auto -up),manual (ipsec manual --up),ignore(默认值,表示没有自动启动操作)。
请参阅下面的有关config setup的讨论。 仅和本端相关,另一端不需要就此达成一致
但通常,对于预期的永久连接,两端应使用auto = start以确保任何重启导致立即重新协商。

authby
两个安全网关应该如何相互验证; 值有以下几个:
secret :表示预共享密钥;
rsasig:表示RSA数据签名(缺省);
secret|rsasig: 两者同时使用,仅对( shunt-only连接生效)。
数字签名在各方面都优于预共享密钥。

ike
IKE第一阶段(ISAKMP SA)中的加密/认证算法。格式为"cipher-hash;modpgroup, cipher-hash;modpgroup, …"
任何省略选项都将填入默认值,多个提议由逗号分隔。
如果指定了ike =某个提议,则不会接受其他收到的提议。以前在“严格模式”和其他模式进行区别(通过使用“!”符号),该模式已经被废弃。
如果指定IKE = 某个选项,则是严格模式,意味着不会接受其他提议。
例如:ike=3des-sha1,aes-sha1, ike=aes, ike=aes128-md5;modp2048, ike=aes128-sha1;
dh22, ike=3des-md5;modp1024,aes-sha1;modp1536 or ike=modp1536,
这些选项必须适合作为ipsec_spi(8)的–ike选项的值。 默认是使用IKE,并允许以下所有组合:
cipher: 3des or aes
hash: sha1 or md5
pfsgroup (DHgroup): modp1024 or modp1536
如果使用额外的INSECURE和BROKEN选项编译Openswan,则可以使用des(1des)和null密码以及modp768。
这会把你的VPN变成一个笑话。 不要启用这些选项。

如果使用openswan支持并编译使用 USE_MODP_RFC5114,则根据RFC-5114也实现Diffie-Hellman组22,23和24。
使用“dh”关键字代替modp语法,例如ike = 3des-sha1; dh23

phase2
设置将生成的SA的类型,参数值如下:
esp(默认值):表示加密
ah:表示仅用于身份验证

phase2alg
指定第二阶段中支持的算法。算法之间用逗号分隔。如果未指定,将使用一组安全的默认值, 集合使用逗号分隔。
默认值与ike =相同。另请注意,并非内核对所有加密算法(例如通过CryptoAPI)都必须支持。

ESP的格式: ENC-AUTH,后跟可选的PFS组。
例如,“3des-md5”或“aes256-sha1; modp2048”或“aes-sha1,aes-md5”。
对于RFC-5114 DH组,请使用“dh”关键字,例如“aes256-sha1; dh23”

AH的格式: AUTH,后跟可选的PFS组。 例如,“md5”或“sha1; modp1536”。

一个特例是AES CCM,它使用“phase2alg = aes_ccm_a-152-null”的语法

sha2_truncbug
参数值为yes或者no(默认值)
no表示IETF截断为128位 ;yes表示IETF截断为表示96位。
sha2_256的默认哈希截断是128位。 Linux实现了96位的草案版本。
此选项允许使用不良的96位版本与较旧的Linux内核(未修补版本2.6.33及更早版本)和2.6.38之前的openswan版本互操作。

esp(已废弃)
已经废弃,用phase2alg代替

ah
AH认证算法用于连接,例如这里。 hmac-md5这些选项必须适合作为ipsec_spi(8)的–ah选项的值。 默认情况下不使用AH。
如果由于某些(无效)原因您仍然认为您需要AH,请使用带有空加密密码的esp代替。
另请注意,并非内核对所有加密算法(例如通过CryptoAPI)都必须支持。

ikev2
要使用的IKEv2(RFC4309)设置。 参数值为:
permit(默认值):表示不应传输IKEv2,但如果其他端通过IKEv2向我们发起,则会被接受;
never 或者 no :表示不使用IKEv2协商;
propose 或者 yes :表示我们允许IKEv2,并将IKEv2用作默认启动;
insist:表示我们只接受并接收IKEv2协商, IKEv1将被拒绝。

如果ikev2= setting,则是设置为permit或者propose,Openswan将尝试检测从IKEv2到IKEv1的“降价”攻击。
由于没有使用IKEv1传输IKEv2功能的标准,因此Openswan使用特殊的供应商ID“CAN-IKEv2”。
如果检测到从IKEv2回退到IKEv1,并且IKEv1协商包含供应商ID“CAN-IKEv2”,
则Openswan将立即尝试并且IKEv2重新密钥并拒绝使用IKEv1连接。
如果ikev2 = insist,则不允许IKEv1协商,也不能进行降价攻击。

sareftrack
使用SAref兼容堆栈时,设置使用SAref跟踪回复数据包的方法,目前只有mast堆栈支持这一点。参数值为:

yes:表示会创建一个IPSEC的mangle表格。该表将用于匹配回复数据包
conntrack:除了具备值为yes的功能外,使用该链接的包也会被标记,从而减少了使用ip_conntrack状态 state去查找正确的SAref
no:表示不创建IPSEC的mangle表格,SAref跟踪留给第三方模块(内核),对于第三方模块,SAref可以使用HAVE STATSD守护程序进行转发

注意:当不支持SArefs,该选项被忽略。此选项作为PLUTO_SAREF_TRACKING传递给updown脚本,
该脚本做出是否执行任何iptables / ip_conntrack操作的实际决策。

leftid
左侧参加者的身份确认方法,可以是IP地址(ipsec_ttoaddr(3)规定的)或以@开头的完全限定域名(用作文字字符串且未解析)。参数值如下:
%fromcert : 表示ID从加载的证书中获取,在2.5.16版本之前,如果指定了证书,则这是默认值
%none :表示没有ID,包含它是为了完整性,因为ID可能已在默认conn中设置,并且希望为默认值而不是显式设置
%myid:表示设置为myid的值,该值在config setup设置,或者通过 ipsec_whack(8)设置,
                  如果没有设置,就是%defaultroute中的IP地址(如果它的reverse 域中的TXT记录支持它),
                  此外,也可以是主机名(如果它的forward 域中的TXT记录支持它),否则就是没有定义。

leftrsasigkey
左侧RSA签名认证,格式使用RFC2537 ipsec_ttodata(3)编码。参数值如下:
%dnsondemand(默认值):表示密钥在需要时从DNS获取
%none:不指定值(用于覆盖默认值)
%dnsonload:在从ipsec.conf读取连接描述时,从DNS获取密钥,当right=%any或者right=%opportunistic,则作用等同于%none
%dns: 目前作用等同于%dnsonload,但是以后会改变。
%cert:从%leftcert定义的证书加载所需信息,并且自动定义leftid
注意:用于左参与者的身份必须是特定主机,不能是%any或者其他类似的魔术值。如果两个连接描述为同一个leftid指定了不同的公钥,则会出现混乱。

leftrsasigkey2
如果存在,则是第二个公钥,任何一个密钥都可以验证签名。

leftcert
如果使用leftrsasigkey=%cert,就会定义使用的证书,该证书为X509证书。
如果没有指定全路径,则从 /etc/ipsec.d/certs/ 目录中查找。
如果opesnswan编译时指定了 USE_LIBNSS=true,那么openswan将会去NSS数据库中查找RSA key,可能是软件或者硬件。

leftca
指定CA,如果没有指定,那么将用 leftcert 中指定的CA证书,特别的rightca=%same是隐晦的,
当rightca不指定时,同时意味着对端只接受和leftca相同的CA签名证书,此选项只在复杂的CA证书情况下有用。
使用单个证书时,省略左侧和右侧是安全的。

leftsendcert
openswan:发送X509证书到远程主机的选项配置。
yes|always :表示总是允许发送证书
ifasked:表示如果远程主机要求证书则进行发送
no|never: 表示从不发送证书。
缺省参数为 ifasked,这可能会破坏与其他供应商的IPSec实施的兼容性,
例如Cisco和SafeNet,如果发现有关ID/Key found的错误,你很可能需要将其设置为always,
这个选项取代了已经过时的全局nocrsend选项

leftxauthserver
该选项可接受值为yes或者no(默认值)。
左侧为XAUH服务端,可以使用PAM认证或 /etc/ipsec.d/passwd中的MD5口令。
这些是用于验证用户身份的附加凭据,不应与XAUTH组密钥混淆,后者只是ipsec.secrets中定义的常规PSK。
对端必须配置为rightxauthclient,XAUTH连接无法在密钥到期后重新协商,所以在该链接中,必须指定rekey=no。
有关XAUTH的编译和使用的更多细节,请参阅README.XAUTH

leftxauthclient
该选项可接受值为yes或者no(默认值)。
左侧为XAUTH客户端,xauth连接必须进行交互启动,不能使用配置 atuo=start,相反,它必须使用ipsec auto -up connname从命令行启动。
然后会提示您输入用户名和密码,以非交互方式设置XAUTH连接,这违背了XAUTH的整个目的,
但是用户经常要求,可以使用whack命令 ipsec whack --name baduser --ipsecgroup-xauth --xauthname badusername --xauthpass password --initiate,
链接的对端必须配置为rightxauthserver

leftxauthusername
XAUTH认证中使用的用户名,XAUTH密码可以在 ipsec.secrets 文件中配置

leftmodecfgserver
参数为 yes 或 no (缺省)
左侧是模式配置服务端。它能下发网络配置到客户端。

modecfgpull
参数为 yes 或 no (缺省)
左侧是模式配置客户端。它能从服务端接收网络配置。

modecfgdns1, modecfgdns2, modecfgwins1, modecfgwins2
指定DNS、WINS的IP地址

remote_peer_type
参数值为cisco或者ietf(默认值)
设置远程主机类型,这可以在IKE协商期间启用别的进行处理,
设置为cisco时,将启用对Cisco IPsec网关重定向和Cisco获取的DNS和域名的支持。这包括自动更新(和恢复)/etc/resolv.conf。
该选项要求该链接的XAUTH使能。

nm_configured
参数值为yes或者no(默认值)
将此连接标记为由Network Manager控制,目前使用XAUTH和ModeConfig时,
设置为yes将导致openswan跳过重新配置resolv.conf

forceencaps
该选项可接收值为yes或者no
在某些情况下,例如,当ESP数据包被过滤或者破坏的IPsec对等体无法正确识别NAT时,
强制使用RFC-3948封装会很有用,强制NAT检测会告诉远程对等体需要RFC-3948封装(ESP使用UDP时,端口为4500),
如果此选项要生效,那么必须设置nat_traveral=yes。

overlapip
该选项可接收值为yes或者no(默认值)
当使用* subnet = vhost:时,如果虚拟IP的状态可以通过该链接创建,那么也可以通过其他链接创建。
请注意,由Opportunistic Encryption或PKIX(x.509)实例化系统创建的连接实例在内部是不同的。 他们将继承这一政策。
此功能仅适用于支持重叠conns的SA的内核驱动程序。 目前只有(klips)mast协议栈支持此功能。

dpddelay
主机探测延迟时间,即DPD检测时间间隔(单位为:秒),缺省为30秒。
如果此选项被设置,dpdtimeout也应该设置

dpdtimeout
主机探测超时时间(以秒为单位),即闲置超时时间,这个时间内没有流量,也没有响应,就表明对等体已经死亡,并删除SA
缺省为120秒,
如果该选项被设置,那么dpdaction也需要设置

dpdaction
当PDP探测到主机死亡时要执行的动作
hold: (缺省值)表示eroute将进入 %hold 状态
clear :表示eroute和SA都要清除(dpdaction=clear 实际上只适用于Road Warrior配置的服务器)
restart: 表示SA将立即从协商
restart_by_peer :表示所有死亡主机的SA将进行从协商

个人建议(非原版英文文档建议):tunnel模式,推荐设置为hold;transport模式,推荐设置为clear;

pfs
参数值为 yes(缺省值) 或 no
是否需要启动前向保护(使用PFS,密钥交换协议的前一个密钥泄露不会影响后续的)
由于没有任何理由拒绝PFS,因此Openswan将允许使用pfs = no定义的连接来使用PFS。

pfsgroup (已废弃)

aggrmode
参数值为yes或者no(默认)
使用野蛮模式而不是主模式。 野蛮模式不太安全,容易受到拒绝服务攻击。它也容易受到软件的暴力攻击,
比如ikecrack,尽量不要使用,尤其是不要和XAUTH以及PSK一起使用。如果远程系统管理员坚持不负责任,请启用此选项。
野蛮模式仅限于具有一个DH组的提议,因为没有空间来协商DH组。
所以野蛮模式的ike=和phase2alg=选项都使用一个DH组完全指定的提议

salifetime
SA存活时间,默认是8小时,最大值为24小时
单位可以是s(秒)、m(分钟)、h(小时)、d(天)。通常在密钥到期前,IKE就会进行重新协商。
对于该选项,两端的值不需要完全一致。尽管允许这样,但是生命周期更长的链接会被取代--------(应该就是以时间短的为链接生命周期)
“keylife” “lifetime” 是 “salifetime” 的别名

rekey
参数值为yes(默认值)或者no
连接是否应该在密钥到期时重新协商密钥,两端不需要一致,
但是,如果值为no会阻止Pluto请求重新协商,则它不会阻止响应来自另一端的重新协商,
因此除非双方都是no,否则对链接不会起什么作用。

rekeymargin
密钥到期前多长时间进行重新协商,可选值和salifetime一样,默认为(9m 即540s),只与本端相关,另一端无需同意。

rekeyfuzz
随机增加rekeymargin以随机化密钥更新间隔的最大百分比(有许多链接的时候很重要),值以整型值后接%,比如为50%,也可能为100%,
默认值由 ipsec_pluto(8)设置,当前默认值为100%,在随机值增加之后,rekeymargin值不能超过salifetime,
值为0%会抑制时间随机化。该选项值只与本地相关,不需要对端同意。

keyingtries
协商尝试次数,参数值可以为整型值或者%forever (默认值)
%forever:表示从不放弃,一直进行协商
整型值:(为0的已经被废弃),该选项值只与本地相关,不需要对端同意。

ikelifetime
目前默认值为1h,最大值为24h
IKE存活时间,也称ISAKMP SA存活时间,值和salifetime一样.(默认值由 ipsec_pluto(8)设置)
两端是否要求一致情况和salifetime一样。

compress
参数值为yes或者no(默认)
是否在连接上提出了IPComp压缩内容(link-level )压缩对加密数据不起作用,
因此为了有效,必须在加密之前进行压缩),两端不需要一致。
值为yes时,会由IPSEC提议压缩和不压缩,更倾向于压缩;值为no,会阻止IPsec提出压缩; 但对端提出的压缩提议仍将被接受。

metric
参数值为正数,默认值为1。
设置到ipsecX或mastX接口的路由的metric,这样就可以使用路由管理从另一个接口到ipsec进行主机故障转移,
该值作为PLUTO_METRIC传递给_updown脚本,此选项仅适用于Linux上的KLIPS或MAST

disablearrivalcheck
参数值为yes或者no(默认)
是否应禁用KLIPS的正常隧道出口检查(从隧道中出现的数据包在其标头中具有合理的地址),隧道出口检查可提高安全性,并且不会破坏任何正常配置。
该选项值只与本地相关,不需要对端同意。

failureshunt
参数值为:none(默认值)、passthrough、drop、reject
表示协商失败时如何处理数据包,作用和字面描述一样

CONN PARAMETERS: MANUAL KEYING (手动配置密钥)
这个命令在Al Gore发明互联网的同时被淘汰了。 在侏罗纪时期使用ipsec手册将静态密钥加载到内核中。 没有合理的理由使用它,它不再受支持。
如果需要创建静态SA,则在使用NETKEY时使用KLIPS或ip xfrm或setkey时可以使用ipsec spi和ipsec eroute。
没有理性的人使用静态密钥。 它们不容易使用。 重复:它们不容易使用。

Config Sections
config部分使用为一名字setup,此部分包含了软件启动时所使用到的信息(ipsec_setup(8)). 例如:
config setup
interfaces=“ipsec0=eth1 ipsec1=ppp0”
klipsdebug=none
plutodebug=control
protostack=auto
manualstart=
除非标记为“(必需)”,否则参数是可选的。

配置设置部分中当前接受的参数名称为:
myid
用于%myid的标识。 %myid用于隐式策略组conns,也可用作显式conns。
如果没有指定,如果其reverse域中的TXT记录支持,%myid设置为%defaultroute中的IP地,
如果不支持,就是没有定义。显式值通常以“@”开头。

protostack
参数为 auto 、klips、netkey、mast
指定使用哪个协议栈,mast是klips的变种

interfaces
IPsec要使用的虚拟和物理接口:一个virtual=physical virtual=physical 每个virtual由空格分开,或者%none。
其中一对可以写成%defaultroute:表示寻找默认路由指向的d接口,作用和’'ipsec0=d ''一致。
%defaultroute是默认值,没有接口或者使用NETKEY堆栈,使用%none 。
如果想了解使用%defaultroute(显式或者隐式)有关默认路由的信息和如何使用接口的注意点,请参阅ipsec_manual(8) and ipsec_auto(8).

listen
监听IP地址(默认值依赖于interfaces 选项设置),当前只支持一个IP地址

nat_traversal
参数值为yes 或 no (默认值)
含义:是否支持NAT 。

disable_port_floating
参数值为yes 或 no (默认值)
含义:是否启用NAT -T 。

force_keepalive
参数值为yes 或 no (默认值)
含义:是否强制发送 NAT-T 保活。

keep_alive
NAT-T 保活包发送延迟时间(单位:s )

virtual_private
包含远程客户端允许作为subnet =的网络,也就是客户端连NAT 路由器后面的地址,
此值通常设置为所有RFC-1918 地址空间,不包括NAT 后面的本地子网中使用的空间(IP 地址不能同时存在于两个地方),
IPv4 地址范围表示为%v4:a.b.c.d/mm ; IPV6为%v6:aaaa::bbbb:cccc:dddd:eeee/mm,
排除指定子网可以使用“!”,比如,VPN服务器允许访问192.168.1.0/24,那么该选项可以设置为:
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.1.0/24.
此参数仅在服务器端而非驻留在NAT路由器后面的客户端上需要,因为客户端将仅使用其IP地址进行内部IP设置。

oe
参数值为no
是否启用机会加密(Opportunistic Encryption),机会加密是在没有预先安排的情况下使用IPsec隧道进行描述的术语。
它使用IPSECKEY或TXT记录来声明某些IP或身份的公共RSA密钥。
有关完整说明,请参阅/doc/draft-richardson-ipsec-opportunistic.txt,doc / opportunism-spec.txt和doc / opportunism.howto。
另请参阅IETF BTNS工作组和RFC4025。
此功能仅适用于支持缓存数据包的内核驱动程序(%hold eroutes或等效项),
允许我们响应来自未知IP地址的数据包,目前只有(klips)mast协议栈支持此功能。

nhelpers
设置pluto处理密码运算的进程(线程)
0表示所有操作都在主线程
-1表示根据CPU进行计算(n-1,n是CPU数)
其它值则表示强制的进程(线程)数

crlcheckinterval
参数默认值为0
pluto将验证已加载的X.509 CRL的到期时间间隔,如果任何CRL过期,或者之前未能更新,则会尝试更新CRL。
第一次更新CRL的尝试是以crlcheckinterval的两倍开始的。 如果设置为0,则禁用CRL更新。

strictcrlpolicy
参数值为yes或者no(默认值)
如果没有设置,pluto可以容忍丢失或过期的X.509证书撤销列表(CRL),并且只要它们没有出现在过期的CRL上就会允许对等证书。
启用此选项后,将拒绝所有CRL已过期或丢失的连接。 活动连接将在重新协商密钥时终止。 这种设置更安全,但也很危险。
如果通过CRL过期的IPsec隧道获取CRL,则整个VPN服务器将瘫痪,直到将新的CRL手动传输到计算机(如果它允许非IPsec连接)。

forwardcontrol (已废弃)
该选项已经被废弃,在/etc/sysctl.conf使用net.ipv4.ip_forward = 0控制IP转发行为

rp_filter (已废弃)
此选项不再使用。请使用 /etc/sysctl.conf 文件中的 net.ipv4.conf/[iface]/rp_filter=0 。 此参数在IPsec必须设置为0

syslog
syslog(2)“facility”名称和用于启动/关闭日志消息的优先级,默认为daemon.error。

klipsdebug
参数值none、all
pluto日志输出设置。none表示不输出;all表示全部输出。
具体参数请看 ipsec_pluto(8)

plutodebug
参数值none、all
pluto日志输出设置。none表示不输出;all表示全部输出。
具体参数请看 ipsec_pluto(8)

uniqueids
参数值为yes或者no(默认值)
唯一ID,参与者ID通常是唯一的,因此使用新的ID总是用于替换旧的。

plutorestartoncrash
参数值为yes(默认值)或者no
防止pluto崩溃后重启。 只有在调试crasher时才应使用此选项。 它将防止在新的启动或级联的核心文件上覆盖核心文件。
如果与plutostderrlog =一起使用,也需要此选项以避免清除crasher的日志。

plutoopts
设置pluto的额外参数。具体请看ipsec_pluto(8)

plutostderrlog
不使用syslog,把日志输出重定向到指定的文件中

pluto
参数值为yes(默认值)或者no
含义:是否启动pluto

plutowait
参数为 yes 或 no(默认值)
含义:在处理下一个协商时,pluto是否等待当前协商完成。

prepluto
默认为none
shell命令在启动Pluto之前运行(例如,解密ipsec.secrets文件的加密副本)。
它的运行方式非常简单; 像I / O重定向这样的复杂性最好隐藏在脚本中。
任何输出都被重定向以进行日志记录,因此运行交互式命令很困难,除非他们使用/ dev / tty或等效进行交互。

postpluto
默认为none
启动Pluto后运行的shell命令(例如,删除ipsec.secrets文件的解密副本)。
它的运行方式非常简单; 像I / O重定向这样的复杂性最好隐藏在脚本中。
任何输出都被重定向以进行日志记录,因此运行交互式命令很困难,除非他们使用/ dev / tty或等效进行交互。

dumpdir
默认值为空值
允许核心转储,并设置core dump文件路径,空值表示不允许这样做。

fragicmp
参数为 yes(默认值) 或 no
包被分片时是否发送ICMP消息。。此选项只对KLIPS起作用

hidetos
参数为 yes(默认值) 或 no
是否应将隧道数据包的TOS字段设置为0而不是从内部的用户数据包中复制。此选项只对KLIPS起作用

overridemtu
设置ipsecX接口的MTU。此选项只对KLIPS起作用

Implicit Conns
系统自动定义了一些conns部分于用默认的策略组。如果conn中定义了auto=ignore,那么默认定义将被忽略,
以下是自动提供的定义:
conn clear
type=passthrough
authby=never
left=%defaultroute
right=%group
auto=route
conn clear-or-private
type=passthrough
left=%defaultroute
leftid=%myid
right=%opportunisticgroup
failureshunt=passthrough
keyingtries=3
ikelifetime=1h
salifetime=1h
rekey=no
auto=route
conn private-or-clear
type=tunnel
left=%defaultroute
leftid=%myid
right=%opportunisticgroup
failureshunt=passthrough
keyingtries=3
ikelifetime=1h
salifetime=1h
rekey=no
auto=route
conn private
type=tunnel
left=%defaultroute
leftid=%myid
right=%opportunisticgroup
failureshunt=drop
keyingtries=3
ikelifetime=1h
salifetime=1h
rekey=no
auto=route
conn block
type=reject
authby=never
left=%defaultroute
right=%group
auto=route

default policy

conn packetdefault
type=tunnel
left=%defaultroute
leftid=%myid
left=0.0.0.0/0
right=%opportunistic
failureshunt=passthrough
keyingtries=3
ikelifetime=1h
salifetime=1h
rekey=no
auto=route
这些conns不受conn%default中任何内容的影响。 它们只有在%defaultroute有效的情况下才能工作。
leftid将是接口IP地址; 这要求正确设置reverse DNS记录。
隐含的conns是在所有其他conns之后定义的。在其他opportunistic conn使用also=private-or-clear是合理的

Policy Group Files
配置文件在 /etc/ipsec.d/policies/ 目录下,包括
/etc/ipsec.d/policies/clear
/etc/ipsec.d/policies/clear-or-private
/etc/ipsec.d/policies/private-or-clear
/etc/ipsec.d/policies/private
/etc/ipsec.d/policies/block

可能包含策略组配置信息以补充ipsec.conf。 它们的内容不是安全敏感的。
这些文件是文本文件。 每个都包含一个CIDR块列表,每行一个。 空格后跟#后跟任何到行尾的空格是注释,被忽略,空行也是如此。
执行命令ipsec auto --rereadgroups或者系统启动,加载具有相同名称的策略组文件时,ipsec.conf中具有right =%group或right =%opportunisticgroup的连接是策略组连接。
连接被实例化时,每个CIDR块充当实例的right值,系统将这些链接视作为正常链接。
例如,给定一个合适的连接定义private,以及文件/etc/ipsec.d/policy/private,入口为192.0.2.3,系统会创建一个连接实例private#192.0.2.3。
此连接从private继承所有详细信息,除了右侧客户端 是192.0.2.3

Default Policy Groups
标准的Openswan安装包括几个策略组,它们提供了将可能的对等体分类为IPsec安全类的方法:
private(仅通话加密)、 private-or-clear(倾向加密)、clear-or-private(响应加密请求)、clear 、 block。
隐式策略组仅适用于本地主机,并由上述IMPLICIT CONNECTIONS实现。

Files
/etc/ipsec.conf
/etc/ipsec.d/policies/clear
/etc/ipsec.d/policies/clear-or-private
/etc/ipsec.d/policies/private-or-clear
/etc/ipsec.d/policies/private
/etc/ipsec.d/policies/block

See Also
ipsec(8), ipsec_ttoaddr(8), ipsec_auto(8), ipsec_manual(8), ipsec_rsasigkey(8)

更多推荐

ipsec.conf(5) - Linux man pag 中文翻译

本文发布于:2023-06-14 02:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1428573.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中文翻译   conf   ipsec   Linux   pag

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!