StrongSwan安裝部署、配置使用方法總結

StrongSwan官網:https://www.strongswan.org/

下載地址:https://www.strongswan.org/download.html

 

一、StrongSwan安裝

1.編譯安裝

1.我習慣創建/opt/package目錄,用於存放下載的程序包文件 

[root@ecs-e84a package]# mkdir -p /opt/package

2.切換到我們的/opt/package目錄,用wget下載工具,開始下載StrongSwan程序包 

[root@ecs-e84a package]# cd /opt/package && wget https://download.strongswan.org/strongswan-5.8.4.tar.gz
提示:如果沒有wget工具,請先安裝好
[root@ecs-e84a package]# yun install wget -y

3.yum安裝編譯需要的依賴環境 

yum install -y gmp-devel xl2tpd module-init-tools gcc openssl-devel

4.解壓,初始化、編譯、安裝

切換到/opt/package/strongswan-5.8.4, 開始編譯安裝,這裏的參數–prefix指的是程序安裝的目錄,我這裏選的是/usr/local/strongswan, 後面–sysconfdir參數指的的StrongSwan的配置文件路徑,我這裏選的是/usr/local/strongswan/etc,這些參數可以根據自己實際情況進行選擇。

4.1、解壓:

 

cd /opt/package && tar -zxvf strongswan-5.8.4.tar.gz

4.2、配置參數:

 

cd /opt/package/strongswan-5.8.4 && 
./configure --prefix=/usr --sysconfdir=/etc \
--enable-eap-radius \
--enable-eap-mschapv2 \
--enable-eap-identity \
--enable-eap-md5 \
--enable-eap-mschapv2 \
--enable-eap-tls \
--enable-eap-ttls \
--enable-eap-peap \
--enable-eap-tnc \
--enable-eap-dynamic \
--enable-xauth-eap \
--enable-openssl

4.3、編譯、安裝 

 

cd /opt/package//opt/package/strongswan-5.8.4 && make && make install

提醒:以上命令也可以直接組合爲一個命令一起執行:

cd /opt/package && tar -zxvf strongswan-5.8.4.tar.gz && cd /opt/package/strongswan-5.8.4 && 
./configure --prefix=/usr/local/strongswan --sysconfdir=/etc \
--enable-eap-radius \
--enable-eap-mschapv2 \
--enable-eap-identity \
--enable-eap-md5 \
--enable-eap-mschapv2 \
--enable-eap-tls \
--enable-eap-ttls \
--enable-eap-peap \
--enable-eap-tnc \
--enable-eap-dynamic \
--enable-xauth-eap \
--enable-openssl \
&& make -j \
&& make install

 2、YUM安裝

1. 直接使用yum進行安裝

yum install strongswan -y

二、StrongSwan配置

官網場景配置樣例

1. 基礎配置

StrongSwan 的配置主要爲 ipsec.conf、strongswan.conf、xl2tpd.conf、options.xl2tpd 這四個配置文件,以下爲四個配置文件樣例

1、ipsec.conf

conn IKEv2-PSK
	also=Non-L2TP
	keyexchange=ikev2
	authby=secret

# Cisco IPSec
conn IKEv1-PSK-XAuth
	also=Non-L2TP
	keyexchange=ikev1
	leftauth=psk
	rightauth=psk
	rightauth2=xauth

#######################################
# Certificate Connections
#######################################

conn windows7
    keyexchange=ikev2
    ike=aes256-sha1-modp1024!
    rekey=no
    left=%defaultroute
    leftauth=pubkey
    leftsubnet=0.0.0.0/0
    leftcert=server.cert.pem
    right=%any
    rightauth=eap-mschapv2
    rightsourceip=10.0.0.0/24
    rightsendcert=never
    eap_identity=%any
    auto=add

 2、options.xl2tpd

ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noccp
auth
crtscts
idle 1800
mtu 1280
mru 1280
lock
lcp-echo-failure 10
lcp-echo-interval 60
connect-delay 5000

 

 3、strongswan.conf

# /etc/strongswan.conf - strongSwan configuration file
# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details

charon {
	load_modular = yes
	send_vendor_id = yes
	plugins {
		include strongswan.d/charon/*.conf
		attr {
			dns = 8.8.8.8, 8.8.4.4
		}
	}
}

include strongswan.d/*.conf

 4、xl2tpd.conf

[global]
port = 1701
auth file = /etc/ppp/l2tp-secrets
debug avp = yes
debug network = yes
debug state = yes
debug tunnel = yes
[lns default]
ip range = 10.1.0.2-10.1.0.254
local ip = 10.1.0.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
;ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

 創建好四個配置文件後將其複製到指定位置即可

# Strongswan Configuration
cp ipsec.conf /etc/ipsec.conf
cp strongswan.conf /etc/strongswan.conf

# XL2TPD Configuration
cp xl2tpd.conf /etc/xl2tpd/xl2tpd.conf
cp options.xl2tpd /etc/ppp/options.xl2tpd

 

2. 創建證書

對於 Windows、Android 等設備可能不支持某些登錄方式,比如 IKEv2 PSK,這是需要創建證書,以支持使用 IKEv2 證書登錄

1、自籤 CA

# create CA certificate
切換到/usr/local/strongswan/sbin目錄,執行如下命令:
./ipsec pki --gen --outform pem > ca.key.pem
./ipsec pki --self --in ca.key.pem --dn "C=CN, O=StrongSwan, CN=StrongSwan CA" --ca --outform pem > ca.cert.pem

 

2、創建服務器證書

其中 –san 可以指定多個,但一般爲一個是域名,一個是外網 IP,如果經過了路由,那麼只需要寫本機的對外暴露網卡的 IP 即可

# create server certificate
./ipsec pki --gen --outform pem > server.key.pem
./ipsec pki --pub --in server.key.pem | ./ipsec pki --issue --cacert ca.cert.pem \
  --cakey ca.key.pem --dn "C=CN, O=StrongSwan, CN=服務器域名" \
  --san="服務器域名" --san="網卡IP" --flag serverAuth --flag ikeIntermediate \
  --outform pem > server.cert.pem

 3、創建客戶端證書

./ipsec pki --gen --outform pem > client.key.pem
./ipsec pki --pub --in client.key.pem | ./ipsec pki --issue --cacert ca.cert.pem \
  --cakey ca.key.pem --dn "C=CN, O=StrongSwan, CN=Client" \
  --outform pem > client.cert.pem

4、生成 p12

安卓等設備是不支持直接導入客戶端證書的,需要轉換成 p12 格式,轉換過程中需要輸入兩次密碼,該密碼爲證書使用密碼,導入時需要輸入

openssl pkcs12 -export -inkey client.key.pem -in client.cert.pem -name "Client" \
  -certfile ca.cert.pem -caname "StrongSwan CA" -out client.cert.p12

5、安裝證書

創建完成後將證書複製到指定目錄即可

cp -r ca.cert.pem /etc/ipsec.d/cacerts/
cp -r server.cert.pem /etc/ipsec.d/certs/
cp -r server.key.pem /etc/ipsec.d/private/
cp -r client.cert.pem /etc/ipsec.d/certs/
cp -r client.key.pem /etc/ipsec.d/private/

 

 

3、創建用戶

關於用戶的登陸模式,比如使用 L2TP、IPsec、IKEv2 等請自行 Google,以下提供了一個簡單的創建用戶的腳本

#!/bin/sh

v()pn_user=$1
v()pn_password=$2

if [ -z ${v()pn_user} ] || [ -z ${v()pn_password} ]; then
	echo "Usage: $0 user password"
	exit 1
fi

v()pn_deluser ${v()pn_user}

cat >> /etc/ipsec.d/l2tp-secrets <<EOF
"${v()pn_user}" "*" "${v()pn_password}" "*"
EOF

cat >> /etc/ipsec.d/ipsec.secrets <<EOF
${v()pn_user} : EAP "${v()pn_password}"
${v()pn_user} : XAUTH "${v()pn_password}"
EOF

 

將其保存爲 v()pn_adduser.sh,執行 ./v()pn_adduser.sh USERNAME PASSWD 即可添加用戶

5、設置 PSK

同樣 PSK 也用於登錄,如 IKEv2 PSK 登錄,使用同樣自行 Google,以下爲設置 PSK 的腳本

#!/bin/sh

psk=$1

if [ -z ${psk} ]; then
	echo "Usage: $0 psk"
	exit 1
fi

v()pn_unsetpsk

touch /etc/ipsec.d/ipsec.secrets
cat >> /etc/ipsec.d/ipsec.secrets <<EOF
: PSK "${psk}"
EOF

最後啓動 v()pn 連接即可

 /usr/sbin/xl2tpd -c /etc/xl2tpd/xl2tpd.conf
 ipsec start

參考:https://blog.csdn.net/lllkey/article/details/80068461

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章