【譯】IPSEC.CONF(5) - IPsec配置

NAME

ipsec.conf —— IPsec配置算法

DESCRIPTION

ipsec.conf指定了Openswan IPsec子系統的大多數配置和控制信息。shell

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支持

typetcp

鏈接類型,參數以下:
        tunnel(缺省)表示 host-to-host,host-to-subnet,subnet-to-subnet 隧道模式;
        transport,表示 host-to-host傳輸模式;
        passthrough,表示不使用IPsec;
        drop,表示丟棄數據;
        reject,表示丟棄數據並返回ICMP診斷包

leftide

[必選項] 左側設備公網接口IP地址,其中IP地址的格式請看ipsec_ttoaddr(3)。當前支持IPv4和IPv6。
    若是其參數爲 %defaultroute,同時 config setup 項中的 interfaces 包含 %defaultroute,那麼left將自動由本地的缺省路由接口地址填充;leftnexthop也支持。
    %any 表示在協商時填充。
    %opportunistic 表示 left 和 lefnexthop 的參數從 left 側客戶端的DNS數據中獲取

leftsubnetpost

左側設備的私有子網,格式爲 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

當鏈接狀態改變時, 回調此處設置的命令(缺省爲 ipsec _updown)。 詳細請看 ipsec_pluto(8)

leftfirewall

再也不使用此選項

CONN PARAMETERS:AUTOMATIC KEYING

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 modp153

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的話也接受

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

forceencaps

參數爲 yes 或 no (缺省爲no)
    當forceencaps=yes時將強制使用RFC-3948封裝(UPD端口4500包封閉ESP)
    若是此選項打開,那麼 nat_traveral=yes必須打開

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

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目前可用的選項以下:

protostack

指定IPsec協議攻棧。參數爲 auto/klips/netkey/mast。mast是klips的變種

interfaces

IPsec使用的虛接口和實接口。格式爲 "virtual=physical virtual=physical ..."

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保活包發送間隔時間

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
相關文章
相關標籤/搜索