Клиенты Strongswan + FreeRADIUS и Windows 10 без доступа к Интернету
Я прошу прощения за другой запрос относительно Strongswan. Я создал сервер Strongswan, который имеет на одной стороне несколько сетей, а на второй стороне находятся клиенты, авторизованные через FreeRADIUS EAP-MSCHAPv2. Клиенты имеют права доступа к определенным IP-адресам в сетях через атрибуты Class и соответствующие определения соединений в ipsec.conf:
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
keyexchange=ikev2
conn tunnel
reauth=no
rightsendcert=never
left=87.236.194.XX
leftsubnet=192.168.80.0/24
right=%any
rightsubnet=0.0.0.0/0
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=clear
authby=secret
auto=route
type=tunnel
conn eap-radius
reauth=no
rekey=no
forceencaps=yes
fragmentation=yes
left=%defaultroute
leftauth=pubkey
leftcert=host-vpn.der
leftsendcert=always
leftfirewall=yes
leftsubnet=0.0.0.0/0
leftid=@ikev2.domain.cz
lefthostaccess=yes
right=%any
rightsourceip=192.168.80.0/24
rightdns=8.8.8.8
rightauth=eap-radius
rightgroups=Class1
eap_identity=%identity
auto=add
conn eap-radius10
reauth=no
rekey=no
forceencaps=yes
fragmentation=yes
left=%defaultroute
leftauth=pubkey
leftcert=host-vpn.der
leftsendcert=always
leftfirewall=yes
leftsubnet=192.168.10.2/31,192.168.10.4/30,192.168.10.8/29,192.168.10.16/28,192.168.10.32/27,192.168.10.64/26,192.168.10.128/26,192.168.10.192/27,192.168.10.224/28,192.168.10.240/29,192.168.10.248/30,192.168.10.252/31,192.168.10.254/32
leftid=@ikev2.domain.cz
lefthostaccess=yes
right=%any
rightsourceip=192.168.80.0/24
rightdns=8.8.8.8
rightauth=eap-radius
rightgroups=Class10
eap_identity=%identity
auto=add
conn eap-radius20
reauth=no
rekey=no
forceencaps=yes
fragmentation=yes
left=%defaultroute
leftauth=pubkey
leftcert=host-vpn.der
leftsendcert=always
leftfirewall=yes
leftsubnet=192.168.20.2/31,192.168.20.4/30,192.168.20.8/29,192.168.20.16/28,192.168.20.32/27,192.168.20.64/26,192.168.20.128/26,192.168.20.192/27,192.168.20.224/28,192.168.20.240/29,192.168.20.248/30,192.168.20.252/31,192.168.20.254/32
leftid=@ikev2.domain.cz
lefthostaccess=yes
right=%any
rightsourceip=192.168.80.0/24
rightdns=8.8.8.8
rightauth=eap-radius
rightgroups=Class20
eap_identity=%identity
auto=add
В брандмауэре Debian у меня есть строки:
-A POSTROUTING -s 192.168.80.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
-A POSTROUTING -s 192.168.80.0/24 -o eth0 -j MASQUERADE
Моя проблема в том, что все клиенты Android, iOS и Mac OSX, кроме Windows 10, имеют доступ к соответствующим конкретным адресам, а также к Интернету. Поскольку мастер VPN-подключения в предыдущих версиях Windows 10 из-за некоторых ошибок Microsoft в этом мастере не может правильно создать VPN-подключение EAP-MSCHAPv2 IKEv2, я скопировал следующий файл rasphone.pbk в C:\Users\XXXX\AppData\Roaming Папка \Microsoft\Network\Connections\Pbk windows
[radius]
Encoding=1
PBVersion=4
Type=2
AutoLogon=0
UseRasCredentials=1
LowDateTime=-1192997568
HighDateTime=30663332
DialParamsUID=191937
Guid=2F7BD8C93E1B8E4885FD6AB316030199
VpnStrategy=7
ExcludedProtocols=0
LcpExtensions=1
DataEncryption=8
SwCompression=0
NegotiateMultilinkAlways=0
SkipDoubleDialDialog=0
DialMode=0
OverridePref=15
RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1
CallbackMode=0
CustomDialDll=
CustomDialFunc=
CustomRasDialDll=
ForceSecureCompartment=0
DisableIKENameEkuCheck=0
AuthenticateServer=0
ShareMsFilePrint=1
BindMsNetClient=1
SharedPhoneNumbers=0
GlobalDeviceSettings=0
PrerequisiteEntry=
PrerequisitePbk=
PreferredPort=VPN2-0
PreferredDevice=WAN Miniport (IKEv2)
PreferredBps=0
PreferredHwFlow=1
PreferredProtocol=1
PreferredCompression=1
PreferredSpeaker=1
PreferredMdmProtocol=0
PreviewUserPw=0
PreviewDomain=0
PreviewPhoneNumber=0
ShowDialingProgress=0
ShowMonitorIconInTaskBar=0
CustomAuthKey=26
CustomAuthData=314442431A00000008000000010000000000000000000000
AuthRestrictions=128
IpPrioritizeRemote=1
IpInterfaceMetric=0
IpHeaderCompression=0
IpAddress=0.0.0.0
IpDnsAddress=0.0.0.0
IpDns2Address=0.0.0.0
IpWinsAddress=0.0.0.0
IpWins2Address=0.0.0.0
IpAssign=1
IpNameAssign=1
IpDnsFlags=0
IpNBTFlags=1
TcpWindowSize=0
UseFlags=2
IpSecFlags=0
IpDnsSuffix=
Ipv6Assign=1
Ipv6Address=::
Ipv6PrefixLength=0
Ipv6PrioritizeRemote=1
Ipv6InterfaceMetric=0
Ipv6NameAssign=1
Ipv6DnsAddress=::
Ipv6Dns2Address=::
Ipv6Prefix=0000000000000000
Ipv6InterfaceId=0000000000000000
DisableClassBasedDefaultRoute=0
DisableMobility=0
NetworkOutageTime=0
ProvisionType=0
PreSharedKey=
CacheCredentials=1
NumCustomPolicy=0
NumEku=0
UseMachineRootCert=0
NumServers=0
RouteVersion=1
NumRoutes=0
NumNrptRules=0
AutoTiggerCapable=0
NumAppIds=0
NumClassicAppIds=0
SecurityDescriptor=
ApnInfoProviderId=
ApnInfoUsername=
ApnInfoPassword=
ApnInfoAccessPoint=
ApnInfoAuthentication=1
ApnInfoCompression=0
DeviceComplianceEnabled=0
DeviceComplianceSsoEnabled=0
DeviceComplianceSsoEku=
DeviceComplianceSsoIssuer=
FlagsSet=0
Options=0
DisableDefaultDnsSuffixes=0
NumTrustedNetworks=0
NumDnsSearchSuffixes=0
PowershellCreatedProfile=0
ProxyFlags=0
ProxySettingsModified=0
ProvisioningAuthority=
AuthTypeOTP=0
GREKeyDefined=0
NumPerAppTrafficFilters=0
AlwaysOnCapable=0
PrivateNetwork=0
NETCOMPONENTS=
ms_msclient=1
ms_server=1
MEDIA=rastapi
Port=VPN2-0
Device=WAN Miniport (IKEv2)
DEVICE=vpn
PhoneNumber=ikev2.domain.cz
AreaCode=
CountryCode=0
CountryID=0
UseDialingRules=0
Comment=
FriendlyName=
LastSelectedPhone=0
PromoteAlternates=0
TryNextAlternateOnFail=1
Такой Windows VPN-клиент способен правильно подключаться к соответствующим IP-адресам в удаленных сетях, но не имеет доступа к Интернету, за одним исключением - доступ в Интернет работает, когда через RADIUS выбрано определение соединения с leftsubnet=0.0.0.0/0. Когда параметр Использовать шлюз по умолчанию в удаленной сети в расширенных настройках TCP/IP подключения VPN включен (IpPrioritizeRemote=1), клиент имеет доступ к удаленным сетям, но не к Интернету, и если эта опция отключена, клиент имеет доступ к Интернету, но ни в одну из удаленных сетей.
У меня нет опыта в маршрутизации, но я полагаю, что должна быть возможность настроить соединение Windows VPN так, чтобы оно работало так же, как соединения Android, iOS и OSX, которые работают должным образом и имеют кроме доступа к определенным IP-адресам также доступ к Интернету.
За любую помощь заранее спасибо
1 ответ
Спасибо ecdsa за правильное направление. Решение было, наконец, довольно простым. Из PowerShell от имени администратора я создал новое соединение:
Add-VpnConnection -Name "radius" -ServerAddress "ikev2.domain.cz" –TunnelType IKEv2 -EncryptionLevel Required -AuthenticationMethod EAP -SplitTunneling –AllUserConnection
а потом я добавил маршруты:
Add-VpnConnectionRoute -ConnectionName "radius" -DestinationPrefix 192.168.10.0/24 -PassThru
Add-VpnConnectionRoute -ConnectionName "radius" -DestinationPrefix 192.168.20.0/24 -PassThru
Теперь клиенты Windows работают как шарм и имеют доступ к соответствующим IP-адресам и интернету.