标签: embedded

OpenVPN 性能:可能有多少并发客户端?

我正在评估一个客户端系统,其中许多 OpenVPN 客户端连接到 OpenVPN 服务器。“许多”是指 50000 - 1000000。

我为什么要这样做?客户端是分布式嵌入式系统,每个都位于系统所有者 dsl 路由器后面。服务器需要能够向客户端发送命令。我的第一个天真的方法是让客户端通过 openvpn 网络连接到服务器。这样,可以在两个方向上使用安全通信隧道。

这意味着所有客户端始终连接到服务器。多年来,有许多客户在总结。

问题是:当达到一定数量的客户端时,OpenVPN 服务器会爆炸吗?我已经知道最大 TCP 连接数限制,因此(以及其他原因)VPN 必须使用 UDP 传输。

OpenVPN 专家,您有什么看法?

performance openvpn embedded

44
推荐指数
2
解决办法
6万
查看次数

多台设备使用相同的 SSH 服务器密钥有多糟糕?

我正在研究运行 FreeBSD 和 SSH 的嵌入式设备。

如您所知,sshd 喜欢在首次启动时随机生成一组服务器密钥。问题是我们将运送带有只读 SD 卡文件系统(不可协商)的产品。

我看到的两个选项是:

  • 在所有设备上提供相同的 sshd 服务器密钥
  • 挂载内存文件系统并在每次启动时生成服务器密钥(慢...)

在所有设备上发送相同的服务器密钥是否是一个主要的安全问题?这些项目不会直接在互联网上。有时,同一个人在同一网络上拥有多台设备。

大多数情况下,设备不会连接到互联网。

使用 SSH 登录不是正常操作的一部分。它主要是为了方便程序员和技术人员。客户将不会使用 SSH 登录设备。

在多个硬件设备上使用相同的服务器密钥有什么后果?

PS有人可以创建一个物联网标签吗?

编辑:我说的是在所有服务器(设备)上安装相同的主机私钥。至于用户公钥/私钥,目前没有计划使用基于密钥的登录 - 它将是密码登录。同样,所有服务器(设备)上的密码相同。

我知道这可能是个坏主意。我想知道为什么这是一个坏主意,所以我可以理解权衡。

freebsd ssh embedded internet-of-things

22
推荐指数
3
解决办法
5841
查看次数

如何在软件安装期间锁定普通(非管理员)用户?

我们有很多运行 Windows Embedded Standard 7 的瘦客户端和一个 SCCM 2012 R2 服务器来管理它们。瘦客户端启用了它们的写入过滤器 (FBWF),因此机器更改不是持久的。在极少数情况下,我们必须更新它们的某些内容,我们只需通过 SCCM 部署它,它就会自动关闭并重新打开写入过滤器以提交更改。

以下是应该发生的情况:
SCCM 客户端向用户发出通知并进行 30 分钟的倒计时以保存他们的工作并退出系统。然后瘦客户端重新启动并禁用写入过滤器。登录屏幕会显示一个挂锁并通知设备正在维修,并且在 SCCM 执行此操作时不允许普通(非管理员)用户登录。SCCM 完成后,它会重新启用写入过滤器、重新启动,然后用户可以再次登录。

我遇到的问题是我们使用感应读卡器登录系统。员工不输入密码。他们只需点击他们的徽章。这个系统很好,但运行它的软件打破了 Windows Embedded 的写入过滤器自动化。

以下是实际发生的情况:
SCCM 客户端在关闭写过滤器的情况下重新启动之前通常会发出 15 分钟的通知。当它重新启动时,会显示正常的登录屏幕。用户可以在 SCCM 安装软件时登录系统并使用它。并且由于用户会话处于活动状态,它会再次发出另外 30 分钟的通知,然后重新启动写入过滤器。

在这种情况下,它不仅增加了 30 分钟的部署时间,而且还为普通用户提供了 30 到 60 分钟在瘦客户端上不受保护的可靠时间,他们所做的任何更改都会永久地融入到映像中。写过滤器重新打开。

该问题源于这样一个事实,即 Windows Embedded 7 使用与常规 Windows 7 不同的凭据提供程序(又名 GINA),但 SSO 产品必须替换 Windows 凭据提供程序才能正常运行。我已经就此事联系了供应商,但他们只是说这是一个已知问题,并且没有修复或解决方法。

所以这是我的问题:
如何以另一种方式模拟所需的行为?我知道有一个组策略设置,您可以在其中拒绝特定用户组的本地登录。我想我可以在安装前后翻转相应的注册表设置,但我对其他想法持开放态度。

如果必须的话,我不会超过脚本安装。我精通脚本、PowerShell、VBScript 等。我只是想知道是否有人对如何解决这个问题有任何聪明的想法。


更新:
我没有提到这些设备正在医院环境中用于工作人员为他们的患者绘制图表。它们必须全天 24 小时可用,因此我们无法限制登录时间或配置维护时段。我们通过提前通知轮班主管来管理停机时间,但任何超过一个小时的事情都会成为法律合规问题,需要正式的停机程序才能生效。

scripting windows login embedded sccm

12
推荐指数
1
解决办法
2814
查看次数

防止断电时 ext4/Linux 驱动器上的数据损坏

我有一些运行 American Megatrends bios 的嵌入式板,以嵌入式 linux 作为操作系统。我的问题是工业闪存 ide 会在断电时损坏。我将它们格式化为 ext4。每当发生这种情况时,我通常可以使用 fsck 修复闪存,但这在我们的部署中是不可能的。我听说禁用写缓存应该会有所帮助,但我不知道该怎么做。另外,还有什么我应该做的吗?

更多信息

该驱动器是一个 4GB ide 闪存模块。我有一个分区是 ext4。操作系统安装在该分区上,grub 是我的引导加载程序。

fdisk -l 显示 /dev/sda 作为我的闪存模块,/dev/sda1 作为我的主分区。

断电后,我通常无法完全通过启动初始化脚本来实现。

当我在另一台 PC 上安装驱动器时,我运行 fsck /dev/sda1。它总是显示类似的消息

"zero datetime on node 1553 ... fix (y)?"
Run Code Online (Sandbox Code Playgroud)

我修复了它们,它可以正常启动,直到下一次断电。

明天到办公室时,我会贴出 fdisk -l 的实际输出

这就是我对系统如何工作的全部了解。我不是系统专家,我是一名软件工程师,习惯于陷入工作描述之外的困境。我知道如何格式化驱动器、安装引导加载程序、编写软件以及破解操作系统。

这是 dumpe2fs 的输出

#sudo dumpe2fs /dev/sda1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   VideoServer
Last mounted on:          /
Filesystem UUID:          9cba62b0-8038-4913-be30-8eb211b23d78
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype …
Run Code Online (Sandbox Code Playgroud)

linux embedded ide corruption

11
推荐指数
2
解决办法
2万
查看次数

使 SD 卡防损坏

我的嵌入式 linux 设备使用 SD 卡来保存某些诊断数据,对于内部闪存来说太丰富了。

问题是如果设备意外关闭,卡上的文件系统 (FAT32) 已损坏。

没有办法防止意外断电或用户那样关闭它,并且设备应该是相对免维护的。更糟糕的是,数据是连续写入的,因此损坏非常频繁,Linux 在检测到故障 FS 时会以只读方式静默重新挂载它。

您建议采用哪些方法来缓解这种情况?启动时自动运行 fsck.vfat 就足够了吗?

更多信息:

  • 用户不能认为该卡是可移动的。它被认为是内部磁盘。存储在其上的任何数据都可以通过网络或 USB 驱动器进行下载,并且系统会自动清除最旧的条目。这意味着它不需要在您的普通 PC 中可读。
  • 系统目前支持FAT、yaffs和jffs2。向内核添加其他文件系统是可能的,但如果存在其他途径,我们更喜欢它们。
  • 甚至可以根据需要暂停写入几分钟而不会丢失数据。
  • 部分数据丢失或轻微损坏是可以接受的。完全停止日志记录不是。
  • 大多数情况下,关机事件是完全不可预测的。
  • 该系统运行在 ARM9、200MHZ、64MB RAM、32MB 内部闪存上,并消耗了大部分 CPU 功率作为其主要作用。在考虑花哨的资源密集型解决方案时,请考虑到这一点。

linux filesystems embedded corruption sd-card

11
推荐指数
2
解决办法
2964
查看次数

嵌入式设备的 Https,本地地址

我正在尝试将 https 添加到我正在使用的嵌入式设备。这些设备通常分配有本地 ip 地址,因此无法获得自己的 ssl 证书。

所以基本上我的问题是如何获得没有全球 IP 地址的设备的证书?

假设:

除非经过受信任的 CA 验证,否则浏览器不会信任证书。

但是,您只能获得全球唯一域的经过验证的证书。

那些该死的客户坚持使用本地 IP 地址。

类似的问题在这里


假设A:

  1. 获得公司主要网站的证书
  2. 复制那个证书。+所有设备的私钥
  3. 用户连接到设备
  4. 设备发送证书。给用户
  5. 用户看到证书。受信任(忽略它不适用于此服务器??)
  6. 用户使用证书中的公钥加密 http
  7. 设备使用私钥

结果:

  1. 浏览器抱怨名称不匹配
  2. 客户可以访问彼此的私钥
  3. 不是很安全

假设 B:

  1. 获得公司主要网站的证书 FOR EACH DEVICE
  2. 复制证书。+ 每个设备的私钥
  3. 用户连接到设备
  4. 设备发送证书。给用户
  5. 用户看到证书。受信任(忽略它不适用于此服务器??)
  6. 用户使用证书中的公钥加密 http
  7. 设备使用私钥

结果:

  1. 浏览器抱怨名称不匹配
  2. 安全的

假设 C:

  1. 为每台设备创建自签名证书
  2. 复制证书。+ 设备私钥
  3. 用户连接到设备
  4. 设备发送证书。给用户
  5. Firefox 有一个金丝雀
  6. 用户使用证书中的公钥加密 http
  7. 设备使用私钥

结果:

  1. 浏览器抱怨自签名证书
  2. 自签名证书可能是中间人攻击

ssl certificate https embedded cryptography

8
推荐指数
1
解决办法
3004
查看次数

无法让摩托罗拉 MC3190 与 WiFi 接入点关联

使用 Symbol / Motorola MC3190 的 Wireless Fusion 管理工具,我们无法将手持设备关联到 WiFi 接入点。使用 Fusion 软件中的查找 WLAN 功能,我们可以看到设备正在检测接入点,因为它确实显示在检测到的 WLAN 列表中。因此,由于它可以看到可用的 WLAN,无线电/硬件似乎工作得很好。接入点使用 WPA2 AES 来确保安全,其他设备与它关联没有问题。它是非企业级接入点,因此在 Fusion WLAN 配置文件中选择的安全模式为“WPA2 - 个人”。它似乎提供的唯一线索是 Fusion Wireless 状态中的日志信息。在日志中,它在“设置 SSID:”消息后约 10 秒显示消息“关联超时”。

wifi embedded windows-ce windows-mobile

8
推荐指数
1
解决办法
4万
查看次数

推荐用于轻服务器和学习的嵌入式linux设备

想象一下以下情况:我想要一个小巧轻便的服务器,它能够运行一些服务,例如基本的 Web、ftp、打印服务器和通过 USB 插入硬盘驱动器。

我想将它用作学习嵌入式设备和针对这些架构进行编程的工具。我还打算用网络摄像头测试家庭安全系统......

什么是好的架构、特定的设备、品牌或对初学者的任何建议?我有 linux 和 C 编程的经验。

预算有限的建议优先!;)

linux embedded

6
推荐指数
1
解决办法
2936
查看次数

什么是好的默认 IP 地址?

我公司生产以太网设备。这些设备的 I/O 非常少。没有键盘,没有视频输出。当客户拿到设备时,他必须为他的网络配置它。我想选择一个不会与他网络上现有设备冲突的 IP 地址,但他的网络可以是任何东西。

一些客户拥有 192.168.xx 网络。其他人有 10.xxx 网络。

大多数网络设备(特别是路由器)附带 192.168.x.1。但这不是路由器,所以我不想默认为低 IP 地址,因为这将有更高的冲突概率。

什么是与产品一起提供的良好 IP 地址?是否有半私有/未使用的 C 类网络?

networking ethernet embedded ip-address

6
推荐指数
4
解决办法
3万
查看次数

如果在上电之前插入 USB 设备,我们的嵌入式 linux 系统将无法识别它。建议?

我们正在小型嵌入式设备上进行开发。该设备是一个运行 OpenEmbedded linux 的 gunstix overo 板。我们的开发几乎已经完成,并且遇到了我们无法弄清楚的最奇怪的错误。

我们有一个 USB 设备(分光光度计),它有一个 USB2.0 连接一个用于光源的外部电源。典型的行为是插入电源,然后通过 USB 连接到主机。当设备检测到 USB 连接时,设备启动并启用光源和风扇。然后该设备可以被主机系统使用。

问题是,如果在我们打开 Gumstix 之前将设备插入 Gumstix,USB 设备显然没有被系统探测到(因此不会打开)。在正常情况下,当通过插入 USB 电缆初始化连接时,光谱会自行打开并可供系统使用(这通常可以通过“lsusb”看到)。这些事情都没有发生。没有通过“lsusb”检测到设备,也没有我们可以看到的任何类型的 dmesg 错误。 就好像设备没有插入一样。

如果我们拔下 USB 电缆并在系统启动后将其重新插入,该设备确实会显示并正常工作。它打开并显示在 USB 总线上,我们可以通过我们的驱动程序访问它。

在任何其他台式机或笔记本电脑上,当我们插入光谱仪时,主机系统是打开还是关闭都没有关系。这种行为是我认为是“正常的”——USB 系统在启动时被探测和初始化,并且 USB 设备上线。换句话说,只要我们在系统启动后插入 USB 设备,我们的系统就可以正常运行。不幸的是,这在我们的最终产品中是不可能的——一切都是同时发生的。

附加信息:1) 我们尝试在系统关闭时将闪存驱动器连接到系统。正如预期的那样,启动系统会使闪存驱动器联机 2) 没有关于光谱或 USB 设备的消息(使用 dmesg)。“lsusb”仅列出 USB 集线器/控制器。从字面上看,就好像设备不存在且未插入。 3) 我们尝试了来自gumstix 的全新图像和去年的旧图像。两张图都有这个问题。我们使用的所有 3 种 gunstix 设备都存在此问题。

有没有人有什么建议?据我所知,完全模拟 USB 设备的“拔出”和“重新插入”是不可能完全“重新启动”USB 系统的。我觉得正在发生的事情是 USB 总线上没有初始探测会触发 USB 握手,但这在某种程度上特定于光谱。这似乎是内核问题,或者至少是内核如何初始化 USB 子系统的问题。我不太确定。

我已经尝试过gumstix 邮件列表,但之前似乎没有人见过这个问题。关于从哪里开始寻找的任何建议或建议都会很棒。

谢谢!布莱恩

output etc.
$ uname -a
Linux overo 2.6.33 #1 Tue …
Run Code Online (Sandbox Code Playgroud)

linux usb embedded linux-kernel

6
推荐指数
1
解决办法
6073
查看次数