AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[apple-ios](server)

Martin Hope
Lasse Michael Mølgaard
Asked: 2021-06-14 13:20:36 +0800 CST

iPhone 用户不连接 StrongSwan VPN,而 Android 和 Windows 10 用户可以?

  • 2

我有一个 StrongSwan VPN,由于某种我不知道的原因,它无法将 iOS 用户连接到我的 VPN 服务器。

一些快速说明:

  • 我的 StrongSwan 服务器是连接到我的网络的 VPN 客户端的前端。我用于WireGuard我的后端站点到站点路由。

  • 所有 StrongSwan VPN 用户都经过FreeRadius服务器验证。

  • StrongSwan 客户端在子网上被分配一个 IP 192.168.201.0/24,而 WireGuard 主干网络在192.168.200.0/24子网上运行。

  • 所有客户端也都获得了一个公共 IPv6 地址,该地址属于分配给我的 /48 子网。

我在 Ubuntu 20.04 上运行 StrongSwan,我的配置文件位于该/etc/swanctl/config/文件夹中,由于文件名以.conf.

内容如下:

# Default VPN server settings for all connections
conn-defaults {
    local_addrs = PUBLIC_IPV4, PUBLIC_IPV6

    local {
      auth = pubkey
      certs = vpn-ecdsa.cer
      id = vpn.example.com
    }

    version = 2
    send_certreq = no
    send_cert = always
    unique = never
    fragmentation = yes
    encap = yes
    dpd_delay = 60s

    rekey_time = 0s
}

# Default login method
eap-defaults {
  remote {
   auth = eap-radius
   id = %any
   eap_id = %any
  }
}

connections
{
  # Generic Android configuration that is extended further down.
  #
  # Works with StrongSwan VPN client for Android
  conn-unix : conn-defaults, eap-defaults {
    children {
      net {
        local_ts = 0.0.0.0/0, ::/0
      }

      net-unix : child-defaults {
      }

      esp_proposals = aes128gcm128-x25519
    }

    proposals = aes128-sha256-x25519
  }

  # All Windows klients matches this rule as username validation 
  # is done by 'eap_start = yes' in strongswan.conf. 
  #
  # Works with Windows 10 built-in VPN client.
  conn-windows : conn-defaults, eap-defaults {
    children {
      net {
        local_ts = 0.0.0.0/0, ::/0
      }

      esp_proposals = aes256-sha256-prfsha256-modp1024
    }

    proposals = aes256-sha256-prfsha256-modp1024
    pools = IkeVPN-site-ipv4, IkeVPN-site-ipv6

  }

  # A very similar configuration to Windows clients 
  # configuration, except iOS uses 2048 bit keys, 
  # while Windows uses 1024 bit keys.
  #
  # Does NOT work in its current state.
  conn-ios : conn-defaults, eap-defaults {
    children {
      net {
        local_ts = 0.0.0.0/0, ::/0
      }

      esp_proposals = aes256-sha2_256
      pools = IkeVPN-site-ipv4, IkeVPN-site-ipv6

    }

    proposals = aes256-sha256-prfsha256-modp2048
  }

  # Android users is matched against this connection as they are 
  # running the app StrongSwan VPN client. Username is passed in the
  # 'id' field to StrongSwan VPN server.
  conn-unix-site : connections.conn-unix {
    remote {
      id = *@site.example.com
    }
    pools = IkeVPN-site-ipv4, IkeVPN-site-ipv6
  }
}

pools
{
   IkeVPN-site-ipv4 {
      addrs = 192.168.201.0/24
      dns = 192.168.200.1
   }

   IkeVPN-site-ipv6 {
      addrs = 2001:db8:cafe::/97
      dns = 2001:db8::1
   }
}

我的配置是使用以下网页给出的结构创建的:

https://wiki.strongswan.org/projects/strongswan/wiki/Strongswanconf#Referencing-other-Sections

我使用它的原因是避免在我的所有连接配置文件中重复相同的配置设置。

如果您不熟悉此设置,conn-ios则应将以下配置视为等效:

conn-ios {
   # Obtained from conn-default
   local_addrs = PUBLIC_IPV4, PUBLIC_IPV6

   local {
      auth = pubkey
      certs = vpn-ecdsa.cer
      id = vpn.example.com
   }

   version = 2
   send_certreq = no
   send_cert = always
   unique = never
   fragmentation = yes
   encap = yes
   dpd_delay = 60s

   rekey_time = 0s

   # Obtained from eap-defaults
   remote {
      auth = eap-radius
      id = %any
      eap_id = %any
   }

   # Obtained from original conn-ios profile above.
   children {
      net {
         local_ts = 0.0.0.0/0, ::/0
      }

      esp_proposals = aes256-sha2_256
      pools = IkeVPN-site-ipv4, IkeVPN-site-ipv6
   }

   proposals = aes256-sha256-prfsha256-modp2048
}

本conn-default节中列出的服务器证书是使用 Acme.sh 从 Let's Encrypt 获得的 ECDSA 证书。

proposalsiOS 配置中的加密值esp_proposals取自https://wiki.strongswan.org/projects/strongswan/wiki/AppleClients中的提示。

在测试 Android 或 Windows 用户的所有组合时,连接没有任何问题,但是当有人尝试使用 iPhone 登录时,连接就会停止。

iPhone尝试连接时的日志输出如下:

10[IKE] CLIENT_IPV4 is initiating an IKE_SA
10[CFG] received proposals: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1536, IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024, IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
10[CFG] configured proposals: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519
10[IKE] no matching proposal found, trying alternative config
10[CFG] received proposals: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1536, IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024, IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
10[CFG] configured proposals: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024
10[IKE] no matching proposal found, trying alternative config
10[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
10[IKE] remote host is behind NAT
10[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
10[NET] sending packet: from PUBLIC_IPV4[500] to CLIENT_IPV4[6452] (456 bytes)
06[NET] received packet: from CLIENT_IPV4[13549] to PUBLIC_IPV4[4500] (512 bytes)
06[ENC] unknown attribute type INTERNAL_DNS_DOMAIN
06[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]
06[CFG] looking for peer configs matching PUBLIC_IPV4[vpn.example.com]...CLIENT_IPV4[PRIVATE_CLASS_A_ADDRESS]
06[CFG] selected peer config 'conn-ios'
06[IKE] initiating EAP_IDENTITY method (id 0x00)
06[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
06[IKE] peer supports MOBIKE
06[IKE] authentication of 'vpn.example.com' (myself) with ECDSA-256 signature successful
06[IKE] sending end entity cert "CN=vpn.example.com"
06[IKE] sending issuer cert "C=US, O=Let's Encrypt, CN=R3"
06[ENC] generating IKE_AUTH response 1 [ IDr CERT CERT AUTH EAP/REQ/ID ]
06[ENC] splitting IKE message (2816 bytes) into 3 fragments
06[ENC] generating IKE_AUTH response 1 [ EF(1/3) ]
06[ENC] generating IKE_AUTH response 1 [ EF(2/3) ]
06[ENC] generating IKE_AUTH response 1 [ EF(3/3) ]
06[NET] sending packet: from PUBLIC_IPV4[4500] to CLIENT_IPV4[13549] (1236 bytes)
06[NET] sending packet: from PUBLIC_IPV4[4500] to CLIENT_IPV4[13549] (1236 bytes)
06[NET] sending packet: from PUBLIC_IPV4[4500] to CLIENT_IPV4[13549] (500 bytes)
11[JOB] deleting half open IKE_SA with CLIENT_IPV4 after timeout

iPhone 用户使用以下设置使用内置 VPN 客户端进行连接:

  • 类型 IKEv2

  • 描述:VPN服务器

  • 服务器:vpn.example.com

  • 远程 ID:vpn.example.com

  • 本地标识:空白

  • 用户名和密码验证。

  • 用户名:[email protected]

  • 密码:ItIsASecret

有谁知道为什么 iOS 用户在加载conn-ios配置文件时连接会停止?

更新 我们起飞了!:-)

根据@ecdsa 的建议,我已将证书切换为 2048 位 RSA 证书。

我的 Radius 服务器被调用。用户身份验证成功,客户端获得分配 IP 地址。我很开心。:-)

我conn-ios现在的配置是:

  conn-ios : conn-defaults, eap-defaults {

    # Overriding defaults from 'conn-default'
    local {
      auth = pubkey
      certs = vpn-rsa.cer
      id = vpn.example.com
    }

    children {
      net {
        local_ts = 0.0.0.0/0, ::/0
      }

      esp_proposals = aes256-sha256
    }

    pools = IkeVPN-site-ipv4, IkeVPN-site-ipv6
    proposals = aes256-sha256-prfsha256-modp2048
  }

其他一切都与我的初始配置一样。

iphone strongswan apple-ios ikev2
  • 1 个回答
  • 1319 Views
Martin Hope
Shailesh Sutar
Asked: 2016-08-10 06:45:42 +0800 CST

aws vpc 实例的 IPv6 支持或替代方案

  • 14

最近,苹果强制要求所有使用其 mobile-api 的供应商支持 IPv6,而 aws vpc 不提供 IPv6 支持。我怎样才能做到这一点。我已经检查过了https://aws.amazon.com/blogs/aws/elastic-load-balancing-ipv6-zone-apex-support-additional-security/,但我不确定该怎么做。

我在这里需要专家建议。

amazon-ec2 apple ipv6 amazon-vpc apple-ios
  • 5 个回答
  • 4311 Views
Martin Hope
ImpossibleQuest
Asked: 2016-06-04 10:06:42 +0800 CST

如何让 DEP 注册的 iPad 受到监督

  • 1

我使用 Apple 的设备注册计划 (DEP) 购买了 iPad,并在 deploy.apple.com 下注册了序列号。我使用 Meraki 作为 MDM,并且我还在那里输入了序列号。在 iPad 上,我访问了 m.meraki.com 并输入了我们的网络 ID。

我正在测试的 iPad 在 Meraki 中显示得很好,但由于某种原因,该设备显示为无人监督!

我错过了什么?我需要对其进行监督才能将应用程序等推送到它。我宁愿不使用 Apple Configurator。

deployment apple-ios meraki
  • 1 个回答
  • 1227 Views
Martin Hope
P.Turpie
Asked: 2016-03-03 18:02:54 +0800 CST

描述文件管理器如何发送清除密码命令到 iDevice?

  • 1

我们使用 Apple 的 Profile Manager MDM。有时用户会忘记解锁 iPad 的密码。我们应该能够使用 Profile Manager 来清除他们的密码。但是,我注意到即使 iPad 有 WiFi 连接,“班级密码”任务似乎也永远不会完成。

所以我想知道的是“清除密码”命令是如何到达 iPad 的。它来自我们的本地服务器(LAN)吗?还是来自 Apple 的推送通知服务器 (WAN)?

...

为什么这有关系?我们使用 Cyber​​Hound(NetBox Blue)防火墙/代理。对 Internet 的访问通过透明代理进行,并且需要通过强制门户进行频繁的身份验证。如果消息来自 Apple 的服务器,那么我需要设置一个身份验证绕过规则,因为在 iPad 进行身份验证之前消息不会通过,并且锁定的 iPad 将永远不会显示强制门户登录页面。

apple-ios
  • 1 个回答
  • 520 Views
Martin Hope
Garrett
Asked: 2012-06-13 07:18:35 +0800 CST

iTunes Sync 擦除 Exchange 日历/联系人

  • 5

我们遇到过一些公司 iPhone 用户将在他们的 iTunes 设置中同步日历/联系人/等的情况,我们希望避免这种情况。

不幸的是,当他们同步他们空的家庭 Outlook 日历时,它会覆盖他们 iPhone 日历中的所有内容。这会产生令人不快的副作用,即“更新”Exchange 并取消他们举行的所有会议。幸运的是,我们的备份在每种情况下都使我们摆脱了困境——随着数据的消失,似乎无法通过任何其他方式从中恢复。

我们更愿意让我们的用户继续在他们的手机上加载媒体,我们认为这需要 iTunes。

有没有办法通过 Exchange ActiveSync 或 iOS 移动管理来防止这种情况发生?

exchange iphone apple-ios
  • 1 个回答
  • 605 Views
Martin Hope
carpat
Asked: 2012-06-13 06:01:43 +0800 CST

iPad 可撤销的 vpn 访问

  • 1

我是我所在组织的一名程序员,但不知何故被选中研究一些服务器的东西所以请原谅我的无知:

他们想让我们的销售人员使用他们的 iPad 安全地访问我们的内部网站。这必须是安全的(显然),但也可以从公司方面撤销(如果有人退出,他们将无法再访问我们的网络)。

我从http://support.apple.com/kb/HT1288看到 iPad 支持“RSA SecurID”、“CRYPTOCard”和“Kerberos”身份验证方法。其中之一会做我们需要的吗?它们之间有什么主要区别吗?

vpn kerberos securid apple-ios
  • 2 个回答
  • 271 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve