IPSEC.CONF(5) - IPsec配置
阿新 • • 發佈:2019-02-07
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,那麼預設定義將被忽略
下面是自動提供的定義
rightnexthop=172.16.88.99
rightsourceip=10.0.2.1
keyingtries=%forever CONN PARAMETERS: GENERAL connaddrfamily 連線地址族,可用引數為ipv4
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=routePOLICY 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