1. 程式人生 > >IPSEC.CONF(5) - IPsec配置

IPSEC.CONF(5) - IPsec配置

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),routeipsec auto --route),startipsec auto --up),manualipsec 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 表示從不傳送證書。           預設引數為 ifaskedleftxauthserver           左側為XAUH服務端。可以使用PAM認證或 /etc/ipsec.d/passwd中的MD5口令。對端必須配置為 rightxauthclient ,做為XAUTH客戶端。 leftxauthclient           左側為XAUT客戶端。xauth連線必須進行互動啟動,不能使用配置 atuo=start。它必須使用命令列 ipsec auto --up connameleftxauthusername           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 (預設為yesaggrmode           使用野蠻模式替換主模式。野蠻模式不安全,容易受到服務拒絕攻擊。           引數為 yes 或 no (預設為nosalifetime           SA存活時間,引數為數字+ s/m/h/d (預設為8h,最大24h)           "keylife" "lifetime" 是 "salifetime" 的別名 rekey           引數為 yes 或 no (預設為 yes)。表示當金鑰到期後是否進行從協商。 rekeymargin           金鑰到期前多長時間進行從協商。引數請看 salifetime (預設9mkeyingtries           協商嘗試次數。 %forever 表示從不放棄,一直進行協商 ikelifetime           IKE存活時間。引數請看salifetime compress           是否進行壓縮處理。 引數為 yes 或 no (預設為 nometric           設定ipsecX 或 mastX 介面的 metric 優先順序 mtu           設定MTU disablearrivalcheck           XXXX          引數為 yes 或 no (預設為 nofailureshunt           當協商失敗時執行的動作。預設為 nonepassthroughdropreject;具體看選項 typeCONFIG 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/mastmast是klips的變種。 interfaces           IPsec使用的虛介面和實介面。格式為 "virtual=physical virtual=physical ..."。           XXXX listen           監聽IP地址 nat_traversal           是否支援NAT。引數為 yes 或 no (預設為nodisable_port_floasting           是否啟用NAT-T。 引數為 yes 或 no (預設為noforce_keepalive           是否強制傳送NAT-T保活。引數為 yes 或 no (預設為nokeep_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 (預設為noforwardcontrol           此選項不再使用。請使用 /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 (預設為yesplutorestartoncrash           當pluto崩潰時重啟,並生成core檔案。引數為 yes 或 no(預設為yesplutopts           設定pluto的額外引數。具體請看ipsec_pluto(8) plutostderrlog           不使用syslog,把日誌輸出重定向到指定的檔案中 pluto           是否啟動pluto。引數為 yes 或 no(預設為yesplutowait           在處理下一個協商時,pluto是否等待當前協商完成。引數為 yes 或 no(預設為noprepluto           配置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