따라서 기본 Fortinet VPN 클라이언트는 IPsec을 지원하지 않기 때문에 Strongswan을 사용하여 원격 Fortigate에 연결했습니다. OTP를 제공하는 하드웨어 FortiToken 200도 있습니다.
내 현재 구성은 다음과 같습니다.
/etc/ipsec.conf
conn my-config
keyexchange=ikev1
aggressive=yes
ike = aes256-sha256-modp1536
esp = aes256-sha1-modp1536
right=remote_ip
rightid=%any
rightsubnet=0.0.0.0/0
rightauth=psk
leftsourceip=%config
leftauth=psk
leftauth2=xauth
xauth_identity="username"
auto=add
/etc/ipsec.secrets
remote_ip : PSK "passphrase_here"
username : XAUTH "password_here"
내가 실행할 때 :
IPsec의 내 구성
initiating Aggressive Mode IKE_SA german[5] to remote_ip
generating AGGRESSIVE request 0 [ SA KE No ID V V V V V ]
sending packet: from 10.0.2.15[500] to remote_ip[500] (460 bytes)
received packet: from remote_ip[500] to 10.0.2.15[500] (536 bytes)
parsed AGGRESSIVE response 0 [ SA KE No ID HASH V NAT-D NAT-D V V V V V ]
received NAT-T (RFC 3947) vendor ID
received DPD vendor ID
received XAuth vendor ID
received unknown vendor ID: 82:99:03:17:57:a3:60:82:c6:a6:21:de:00:00:00:00
received FRAGMENTATION vendor ID
received FRAGMENTATION vendor ID
selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1536
local host is behind NAT, sending keep alives
generating AGGRESSIVE request 0 [ HASH NAT-D NAT-D ]
sending packet: from 10.0.2.15[4500] to remote_ip[4500] (140 bytes)
received packet: from remote_ip[4500] to 10.0.2.15[4500] (92 bytes)
parsed TRANSACTION request 1581697690 [ HASH CPRQ(X_TYPE X_USER X_PWD) ]
no XAuth method found
generating TRANSACTION response 1581697690 [ HASH CP ]
sending packet: from 10.0.2.15[4500] to remote_ip[4500] (76 bytes)
분명히 어느 시점에서 OTP를 묻는 메시지가 표시되도록 구성을 어떤 방식으로든 편집해야 합니다.
문제는 내가 무엇을 해야 하는가입니다.
답변1
StrongSwan 및 FortiToken 일회용 비밀번호(OTP)를 사용하여 FortiGate VPN에 연결할 수 있습니다. 하드웨어 토큰을 사용해 본 적은 없지만 동일한 기능을 수행할 수 있기를 바랍니다.
주요 비결은XAuth 비밀번호에 OTP 연결.
이 답변의 나머지 부분은 유용한 팁을 만드는 것에 관한 것이며 작업 구성이 포함되어 있습니다.
/etc/ipsec.secrets
연결할 때마다 이를 변경 하지 않기 위해 OTP를 요청 zenity
하고 이에 따라 비밀 파일을 수정하는 작은 스크립트를 작성했습니다. 이 스크립트는 편의상 기존 6자리를 대체하려고 하기 때문에 루트로 실행해야 합니다 /etc/ipsec.secrets
. 즉, 처음 설정할 때 XAuth 비밀번호 뒤에 6자리를 입력해야 합니다.
부인 성명:이 스크립트는 큰따옴표 뒤에 오는 6자리 숫자를 각각 대체합니다 "
. 스크립트는 XAuth 자격 증명 집합을 가정하고 원하는 다른 정보를 손상시킬 수 있습니다. 그 목적을 완전히 이해한 경우에만 위험을 감수하고 사용하십시오.
#!/bin/bash
SECRETS_FILE="/etc/ipsec.secrets"
TOKEN=$(zenity --entry --title "FortiToken" --text "Enter FortiToken")
if [ ${#TOKEN} -ne 6 ]; then
echo "The token needs to be exactly 6 characters. Quitting."
exit
fi
# Expects a 6-digit token to be already present after the password.
sed -Ei 's/[0-9]{6}\"/'"$TOKEN"'\"/' "$SECRETS_FILE"
echo "Updated $SECRETS_FILE"
ipsec restart --nofork
완전성을 위해 다음은 내 것입니다 /etc/ipsec.conf
.
conn fortigate_vpn
type = tunnel
dpdaction = restart
dpddelay = 30
dpdtimeout = 60
keyexchange = ikev1
ike = aes128-sha1-modp1536
esp = aes256-sha256-modp1536
aggressive = yes
right = 1.2.3.4 # fortigate gateway
rightsubnet = 192.168.15.0/24 # subnet
rightid = %any
rightauth = psk
left = %defaultroute
leftsourceip = %config
leftauth = psk
leftauth2 = xauth
xauth_identity = "foo" # XAuth id
leftid = "bar" # local id / peer id
auto = start
게다가 /etc/ipsec.secrets
:
: PSK "foobarpsk"
foo : XAUTH "pa$$word990099" # where pa$$word is your XAuth password
고마워하는https://blog.boll.ch/fortigate-ipsec-vpn-with-native-macos-client/, 여기서 추가에 대한 아이디어를 찾았습니다.