IPSEC.CONF
NAME
ipsec.conf —— IPsec配置
DESCRIPTION
ipsec.conf指定了Openswan IPsec子系统的大多数配置和控制信息。
include ipsec.*.conf
包含指定的配置文件
CONN SECTIONS
conn项定义了一个IPsec连接的规范,名字可以随意定义。例如:
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
CONN PARAMETERS: GENERAL
connaddrfamily
连接地址族,可用参数为
ipv4(缺省)或者
ipv6。
IPv6在openswan 2.4中的NETKEY支持和openswan 2.6.33中的KLIPS支持
type
连接类型;参数
tunnel(缺省)表示 host-to-host,host-to-subnet,subnet-to-subnet 隧道;
transport,表示 host-to-host传输模式;
passthrough,表示不使用IPsec;
drop,表示丢弃数据;
reject,表示丢弃数据并返回ICMP诊断包
left
[必选项] 左侧设备公网接口IP地址,其中IP地址的格式请看
ipsec_ttoaddr(3)。当前支持IPv4和IPv6。
如果其参数为
%defaultroute,同时
config setup 项中的
interfaces 包含
%defaultroute,那么
left将自动由本地的缺省路由接口地址填充;
leftnexthop也支持。
%any 表示在协商时填充。
%opportunistic 表示
left 和
lefnexthop 的参数从 left 侧客户端的DNS数据中获取。
leftsubnet
左侧设备的私有子网,格式为
network/netmask (请看
ipsec_ttosubnet(3));当前支持IPv4和IPv6地址范围。
支持 vhost: 和 vnet: 这2个速记,语法与 virtual_private 相同
%priv 表示子网与 virtual_private相同
%no 表示没有子网
leftsubnets
指定左侧设备的多个私有子网,格式
{ networkA/netmaskA networkB/netmaskB [..] }。leftsubnet 和 leftsubnets 不能同时使用。 例子请看 testing/pluto/multinet-*
leftprotoport
指定隧道中允许的通过的协议和端口。参数可以是数字或者协议名(请在 /etc/protocols 中查找),例如 leftprotoport=icmp,或 protocol/port,如 tcp/smtp。
ports可以使用数字或名字表示(请在 /etc/services 中查找)。
%any 表示所有的协议端口。
leftnexthop
左侧设备连接公网的下一跳网关IP地址;缺省为
%direct。如果这方法没有使用,则
leftnexthop为
%defaultroute
leftsourceip
连接中主机的IP地址
leftupdown
中连接状态改变时, “updown”中的脚本调整路由和防火墙(缺省为
ipsec _updown)。 详细请看
ipsec_pluto(8)
leftfirewall
不再使用此选项
CONN PARAMETERS:AUTOMATIC KEYING
下面所有项选自动生成key中起作用,在手动指定key中被忽略。
auto
IPsec启动时自动执行;现在支持的参数有
add (
ipsec auto --add),
route(
ipsec auto --route),
start(
ipsec auto --up),
manual(
ipsec manual --up),
ignore 表示不自动启动
具体请看
config setup
authby
2个安全网关之间的认证方法;
secret 表示共享密钥,
rsasig 表示RSA数据签名(缺省),
secret|rsasig 同时使用,
ike
IKE第一阶段(ISAKMP SA)中的加密/认证算法。格式为 ”
cipher-hash;modpgroup,cipher-hash;modpgroup,...“。
例如:
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
pfsgroupt(DHgroup): modp1024 or modp1536
phase2
设置将产生的SA类型。
esp用于加密(缺省),
ah用于认证
phase2alg
指定第二阶段中支持的算法。算法之间用逗号分隔。
esp
此选项不再使用,用
phase2alg代替
ah
连接中的AH算法。算法格式请看
ipsec_spi(8)中的
--ah选项。
ikev2
IKEv2(RFC4309)设置使用。
never 或
no 表示不使用IKEv2;
propos 或
yes 表示允许使用IKEv2,同时缺省使用IKEv2进行协商;
insist,表示只接受IKEv2协商,IKEv1将被拒绝;
permit(缺省),表示不主动使用IKEv2,但对端使用IKEv2的话也接受
sareftrack
XXXXXX
leftid
左侧参加者的身份确认方法。
可以是IP地址,域名
%fromcert 表示ID从证书的DN获取;
%none 表示不使用ID值。
leftrsasigkey
左侧RSA签名认证,格式使用RFC2537
ipsec_ttodata(3)编码。
%none 表示不指定值;
%dnsondemand 表示值从DNS中获取当需要使用到此值时;
%dnsonload 表示值从DNS中获取当读取
ipsec.conf时;
%cert 表示信息从
%leftcert 中获取
leftrsasigkey2
第2个公钥
leftcert
指定X509证书,如果没有指定全路径,则从
/etc/ipsec.d/certs/ 目录中查找。如果opesnswan编译时指定了
USE_LIBNSS=true,那么openswan将会去NSS数据库中查找RSA key。
leftca
指定CA,如果没有指定,那么将用
leftcert 中的证书认为是CA证书。
leftsendcert
openswan发送X509证书到远程主机的选项配置。
yes|always 表示总是允许发送证书,
ifasked 表示如果远程主机要求证书则进行发送;
no|never 表示从不发送证书。
缺省参数为
ifasked。
leftxauthserver
左侧为XAUH服务端。可以使用PAM认证或
/etc/ipsec.d/passwd中的MD5口令。对端必须配置为
rightxauthclient ,做为XAUTH客户端。
leftxauthclient
左侧为XAUT客户端。xauth连接必须进行交互启动,不能使用配置
atuo=start。它必须使用命令行
ipsec auto --up conname。
leftxauthusername
XAUTH认证中使用的用户名,XAUTH密码在
ipsec.secrets 文件中配置
leftmodecfgserver
左侧是模式配置服务端。它能下发网络配置到客户端。 参数为
yes 或
no (缺省)
leftmodecfgclient
左侧是模式配置客户端。它能从服务端接收网络配置。参数为
yes 或
no (缺省)
modecfgpull
从服务端接收模式配置信息。参数为
yes 或
no (缺省)
modecfgdns1, modecfgdns2, modecfgwins1, modecfgwins2
指定DNS、WINS的IP地址
remote_peer_type
设置远程主机类型。参数为
cisco 或
ietf 。
nm_configured
XXXX
forceencaps
参数为
yes 或
no (缺省为no)。当
forceencaps=yes时将强制使用RFC-3948封装(UPD端口4500包封闭ESP)。如果此选项打开,那么
nat_traveral=yes必须打开。
overlapip
XXXX
dpddelay
主机探测延迟时间,缺省为30秒。如果此选项被设置,
dpdtimeout也应该设置
dpdtimeout
主机探测超时时间(以秒为单位),缺省为120秒。如果超时,将删除SA。
dpdaction
当PDP探测到主机死亡时要执行的动作。
hold (缺省)表示eroute将进入 %hold 状态;
clear 表示eroute和SA都要清除;
restart 表示SA将立即从协商;
restart_by_peer 表示所有死亡主机的SA将进行从协商
pfs
参数为
yes 或
no (缺省为
yes)
aggrmode
使用野蛮模式替换主模式。野蛮模式不安全,容易受到服务拒绝攻击。
参数为
yes 或
no (缺省为
no)
salifetime
SA存活时间,参数为数字+
s/m/h/d (缺省为
8h,最大
24h)
"
keylife" "
lifetime" 是 "
salifetime" 的别名
rekey
参数为
yes 或
no (缺省为
yes)。表示当密钥到期后是否进行从协商。
rekeymargin
密钥到期前多长时间进行从协商。参数请看
salifetime (缺省
9m)
keyingtries
协商尝试次数。
%forever 表示从不放弃,一直进行协商
ikelifetime
IKE存活时间。参数请看
salifetime
compress
是否进行压缩处理。 参数为
yes 或
no (缺省为
no)
metric
设置ipsecX 或 mastX 接口的 metric 优先级
mtu
设置MTU
disablearrivalcheck
XXXX 参数为
yes 或
no (缺省为
no)
failureshunt
当协商失败时执行的动作。缺省为
none;
passthrough;
drop;
reject;具体看选项
type。
CONFIG SECTIONS
config部分使用为一名字
setup,此部分包含了软件启动时所使用到的信息 (
ipsec_setup(8))。例如:
config setup
interfaes="ipsec0=eth1 ipsec1=ppp0"
klipsdebug=none
plutodebug=control
protostack=auto
manualstart=
config setup 目前可用的选项如下:
myid
XXX
protostack
指定IPsec协议攻栈。参数为
auto/klips/netkey/mast。
mast是klips的变种。
interfaces
IPsec使用的虚接口和实接口。格式为 "
virtual=physical virtual=physical ..."。
XXXX
listen
监听IP地址
nat_traversal
是否支持NAT。参数为
yes 或
no (缺省为
no)
disable_port_floasting
是否启用NAT-T。 参数为
yes 或
no (缺省为
no)
force_keepalive
是否强制发送NAT-T保活。参数为
yes 或
no (缺省为
no)
keep_alive
NAT-T保活包发送间隔时间
virtual_private
XXXX
oe
是否启用机会加密(Opportunistic Encryption)。参数为
yes 或
no(缺省为
no)
只有KLIPS支持此选项
nhelpers
设置pluto处理密码运算的进程(线程)。
0表示所有操作都在主线程;
-1表示根据CPU进行计算(n-1,n是CPU数);其它值则表示强制的进程(线程)数
crlcheckinterval
CRL检查间隔时间,单位为秒。 如果设置为
0表示开关CRL检查
strictcrlpolicy
是否强制进行CRL检查。参数为
yes 或
no (缺省为
no)
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)中的显示名。缺省为
daemon.error
klipsdebug
KLIPS日志输出设置。
none表示不输出;
all表示全部输出。具体参数请看
ipsec_klipsdebug(8)
plutodebug
pluto日志输出设置。
none表示不输出;
all表示全部输出。具体参数请看
ipsec_pluto(8)
uniqueids
唯一ID。参数为
yes 或
no (缺省为
yes)
plutorestartoncrash
当pluto崩溃时重启,并生成core文件。参数为
yes 或
no(缺省为
yes)
plutopts
设置pluto的额外参数。具体请看
ipsec_pluto(8)
plutostderrlog
不使用syslog,把日志输出重定向到指定的文件中
pluto
是否启动
pluto。参数为
yes 或
no(缺省为
yes)
plutowait
在处理下一个协商时,pluto是否等待当前协商完成。参数为
yes 或
no(缺省为
no)
prepluto
配置Pluto启动前执行的脚本
postpluto
配置Pluto启动后执行的脚本
dumpdir
设置core dump文件路径
fragicmp
包被分片时是否发送ICMP消息。参数为
yes 或
no (缺省为
yes)。此选项只对KLIPS起作用
hidetos
隧道中数据包的TOS设置为0。参数为
yes 或
no(缺省为
yes)。此选项只对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
POLICY GROUP FILES
配置文件在 /etc/ipsec.d/policies/ 目录下,包括
/etc/ipsec.d/policies/block
/etc/ipsec.d/policies/clear
/etc/ipsec.d/policies/clear-or-private
/etc/ipsec.d/policies/private
/etc/ipsec.d/policies/private-or-clear
man:http://www.freeswan.org/freeswan_trees/freeswan-1.91/doc/manpage.d/ipsec.conf.5.html