0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

提高基于Linux的网络连接系统的安全性

星星科技指导员 来源:嵌入式计算设计 作者:Kirill Marinushkin 2022-10-20 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式系统通过互联网或本地网络访问设备的能力促进了广泛的便捷交互。物联网IoT) 的发展意味着嵌入式网络的快速增长。对于这些应用程序,网络安全已成为一个大问题。嵌入式系统的资源过于有限,很难提供针对网络攻击的可靠保护。具有 Linux 的高性能设备可能具有安全网络访问的优势。

脚本和技术可以提高这些基于 Linux 的设备的网络访问安全级别。目标是将设备作为服务器进行远程控制和管理。这可以在两个级别进行:用于安全远程外壳访问和 SFTP 文件传输的 SSH 级别,以及 IP 级别保护。

固态混合软件级别安全性

通过 SSH 外壳和 SFTP 进行远程访问是使用 Linux 控制目标嵌入式系统的最大机会。启用此功能是管理设备的便捷方式。SSH 协议执行高级别的安全性和加密。与 SSH 外壳和 SFTP 服务器服务关联的“sshd”实用程序有几种可能的配置,以提高 SSH 级别的安全性。

在嵌入式系统的流行Linux发行版(如埃或阿拉戈项目)中,“丢熊”实用程序是默认的SSH服务器。不幸的是,它提供了一组有限的配置选项。在此实用程序中禁用了重要的配置可能性,例如用户的权限。因此,如果目标设备将具有远程访问权限,则安装“ OpenSSH”服务器将是一个更好的主意。要更改 SSH 服务器,请删除丢熊启动脚本(或移动它,如下面的示例所示)并安装 OpenSSH 软件包:

mv /etc/init.d/dropbear /dropbear_script_backup
opkg install openssh

使用非标准 SSH 端口

使用非标准 SSH 端口是防止“巧合”发现的最简单方法。它可能有助于避免通过互联网或 LAN 进行的许多攻击,这些攻击基于扫描最常用的 TCP 端口以查找网络中不同 IP 地址上的指定服务。降低 SSH 协议此风险的简单方法是将标准端口 22 更改为非标准端口。此选项适用于任何 SSH 服务器。唯一需要注意的是需要在客户端的防火墙上打开指定的端口。

SSH 端口号在“/等/init.d/sshd_config”文件中配置,如下所示:

Port 1907

配置 SSH 访问的用户权限

SSH 服务器选项包括许多限制用户权限的方法。对于安全外壳和 SFTP 服务,选项“允许根登录”、“允许用户”或“拒绝用户”限制了能够通过 SSH 连接到设备的登录名。对于 SFTP,可以使用更多参数来更改根目录路径。此方法对于保护包含关键和机密数据的系统部件非常重要。此选项允许已配置的用户仅在其目录和子目录中操作,因此您可以将其保留在其“沙盒”中。选项“子系统 SFTP 内部 SFTP”与“Chroot 目录”相结合,允许更改指定用户的根目录。所有已配置登录名的“Chroot 目录”部分应放在配置文件的末尾。为不同用户设置目录时,该目录的所有者应为 root 用户。

要配置用户的 SSH 权限,请编辑文件 /etc/init.d/sshd_config,如以下示例所示:

<...>
#list of allowed users:
PermitRootLogin yes
AllowUsers root user1 user2 user3
Subsystem SFTP internal-SFTP
#changing the root directory for user1 and user2:
Match user user1 user2
ChrootDirectory /dir1
ForceCommand internal-SFTP
#changing the root directory for user3:
Match user user3
ChrootDirectory /dir2
ForceCommand internal-SFTP

通过 SSH 远程访问您的应用程序

为了在嵌入式系统中对应用程序执行非标准用户访问,使用SSH协议作为网络通信的安全层非常方便。

一种常见的方法是将服务作为侦听指定 TCP 端口的服务器运行。要提供 SSH 连接,您可以使用“libssh” – 一个根据 LGPL 许可的开源项目。该项目有几个示例,包括 sshd 源代码,它为构建服务器应用程序提供了良好的基础。注意:此解决方案未连接到 OpenSSH 服务器,需要自己的端口号和用户管理。

另一种选择是为您的服务使用现有的正在运行的 OpenSSH 服务器。我们的想法是将 shell 实用程序替换为您自己的应用程序,以供指定用户使用。这一次,用户将通过标准输入/输出接口(如终端)与远程系统进行交互。此解决方案是使用您需要的确切功能组织安全远程访问的更有效方法。要为用户替换 shell,请在“/etc/passwd”文件中编辑其参数,方法是将最后一个选项替换为应用程序的路径:

user1::500:500:Linux User,,,:/home/user1:

IP 级保护

“Iptables”是一个功能强大的工具,用于在 IP 级别保护对目标 Linux 系统的远程访问。Iptables 允许系统独立于应用程序级网络协议过滤流量。这是最通用的选项,几乎适用于每个平台。

在 Linux 内核配置期间,应打开对表的支持。请注意,默认情况下,一些必要的 iptables 选项(如“连接”或“connlimit”)可能会在内核中关闭,因此请打开它们以使用更多 iptables 可能性。

在系统启动时启动表脚本

iptables 实用程序用作网络流量筛选器。筛选器作为规则链执行,这些规则链通过运行具有不同参数的“iptables”命令来应用。这些规则在脚本文件中一起设置。要将 iptables 置于初始状态,请以以下示例规则开始脚本:

iptables -F	#flush all chains
iptables -X	#delete all chains
#accept network traffic by default:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
#forbid ping:
iptables -A INPUT -p icmp -j DROP

要在系统启动时启用 iptable 保护,请将所需的规则写入脚本文件并执行:

sudo mv  /etc/init.d/
sudo chmod +x 
/etc/init.d/
sudo update-rc.d  defaults

防止暴力攻击

使用 SSH 协议时,暴力破解是最大的安全问题。可以使用 iptables 设置一个简单的防火墙来防止暴力攻击。这个想法是阻止淹没SSH端口的IP地址,并限制打开的最大连接数。下面的脚本用于此目的:

#create the chain to check the number of tries to connect the port:
iptables -N SSH_brute_check 
#if during last 300 seconds any IP address opens more than 20 new connections – block it
iptables -A SSH_brute_check -m conntrack --ctstate NEW -m recent --update --seconds 300 --hitcount 20 -j DROP
#else – allow and add to the checking chain
iptables -A SSH_brute_check -m recent --set -j ACCEPT
iptables -F INPUT #flush input chain
#allow established connections
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
#send all tries to open new connections on port 22 to the checking chain
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j SSH_brute_check

白名单/黑名单 IP 地址

如果客户端的 IP 地址是静态的,则执行网络安全的最佳方法是仅允许访问某些 IP 地址。这意味着除了指定的用户之外,其他用户将无法远程访问目标嵌入式系统。这可以通过创建合法 IP 地址的白名单来完成。对于下面的示例脚本,允许的 IP 地址逐行写入文件,如下所示:

192.168.0.15
192.168.0.100 
<...>

用于完成此操作的 iptables 脚本如下所述:

cat  | 
while read VAR; do
iptables -A INPUT -s $VAR -j ACCEPT
done

您可以使用相反的策略 - 通过将指定的IP地址添加到黑名单中来禁止它们。下面执行阻止黑名单中 IP 地址的示例:

cat  | 
while read VAR; do
iptables -A INPUT -s $VAR -j DROP
done

关闭 IPv6 支持

所描述的服务和方法使用 IPv4 协议。IPv6 协议的安全配置将被忽略,这使得保持启用状态不安全。如果在内核中启用了 IPv6 支持,则它应该具有额外的保护。或者,如果您不需要它,则可以通过在 /etc/sysctl.conf 文件中添加以下行来关闭它:

net.ipv6.conf.eth0.disable_ipv6 = 1
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20625

    浏览量

    336780
  • 物联网
    +关注

    关注

    2950

    文章

    48101

    浏览量

    418139
  • Linux
    +关注

    关注

    88

    文章

    11807

    浏览量

    219513
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    博通集成BK7239N评测

    连接、低功耗运行且对网络稳定性要求较高的物联网应用。 总体而言,BK7239N在性能、功耗、安全性和集成度方面表现突出,是面向物联网领域的优质芯片选择,尤其适合需要双频Wi-Fi 6连接
    发表于 04-14 14:50

    沃虎工业级RJ45抗震动方案:破解严苛环境下的网络连接难题

    在现代工业自动化、智能制造、轨道交通及户外物联网设备等场景中,网络连接的物理层可靠,直接关系到整个系统的稳定运行与数据安全。这些环境普遍存在持续
    的头像 发表于 03-28 09:37 522次阅读

    医院时钟网络连接不上怎么办?

    在医院信息化系统的日常运维中,网络时钟连接不上是一个最常见却又最让人头疼的问题。护士站的时钟停在上午10点,手术室的计时器无法同步,门诊大厅的大屏时间明显偏慢——这些故障一旦出现,不仅影响日常工作
    的头像 发表于 03-13 09:10 582次阅读
    医院时钟<b class='flag-5'>网络连接</b>不上怎么办?

    网络跳线:网络连接的隐形桥梁

    在当今数字化时代,网络如同空气一般,无处不在且至关重要。而在构建稳定、高效的网络环境中,网络跳线这一看似不起眼的小物件,实则扮演着举足轻重的角色,它是网络连接的隐形桥梁,默默支撑着数据
    的头像 发表于 01-09 10:08 519次阅读

    请问CW32L052C8T6这种安全性低功耗MCU的安全固件部分怎么实现?

    请问,CW32L052C8T6这种安全性低功耗MCU的安全固件部分怎么实现?
    发表于 12-05 07:19

    车规级与消费级芯片的可靠安全性与成本差异

    ;消费级芯片则面向大众市场,追求性价比和快速迭代。随着汽车智能化、电动化趋势加速,芯片在整车系统中的重要日益凸显。本文将从设计目标、应用场景、可靠安全性、成本结构及行业案例等维度
    的头像 发表于 11-18 17:27 1532次阅读
    车规级与消费级芯片的可靠<b class='flag-5'>性</b>、<b class='flag-5'>安全性</b>与成本差异

    网线抗干扰:打造无缝网络连接的基石

    。本文将带您深入了解网线抗干扰的重要、技术原理以及如何打造无缝网络连接。 网线抗干扰:网络稳定的“守护神” 在网络传输过程中,干扰就像无形的“敌人”,时刻威胁着数据的
    的头像 发表于 11-12 10:31 638次阅读

    无源探头与有源探头的安全性差异解析

    在电子测量中,探头作为示波器与被测电路的连接桥梁,其安全性直接关乎人身与设备的双重防护。无源探头与有源探头因结构原理的根本不同,在绝缘能力、电路保护、操作风险等维度呈现显著差异,需基于测量场景精准
    的头像 发表于 11-10 11:23 507次阅读
    无源探头与有源探头的<b class='flag-5'>安全性</b>差异解析

    如何确保电能质量在线监测装置网络连接的稳定性?

    要确保电能质量在线监测装置网络连接的稳定性,需围绕 “ 冗余备份、硬件适配、协议优化、干扰抑制、运维监控、容错兜底 ” 构建全流程保障体系,针对解决 “断连、丢包、延迟波动、数据丢失” 等核心问题
    的头像 发表于 11-05 11:19 676次阅读

    HarmonyOS应用网络连接安全配置方案

    应用与服务器之间的数据传输需确保安全,保护数据的机密和完整,防止敏感数据被窃取和篡改。推荐使用传输层安全协议(TLS)保护数据安全
    的头像 发表于 10-24 14:51 5085次阅读
    HarmonyOS应用<b class='flag-5'>网络连接</b><b class='flag-5'>安全</b>配置方案

    有哪些技术可以提高边缘计算设备的安全性

    边缘计算设备的安全性面临分布式部署、资源受限(算力 / 存储 / 带宽)、网络环境复杂(多无线连接)、物理接触易被篡改等独特挑战,因此其安全技术需在 “
    的头像 发表于 09-05 15:44 1763次阅读
    有哪些技术可以<b class='flag-5'>提高</b>边缘计算设备的<b class='flag-5'>安全性</b>?

    宏集分享 | 集中告警管理如何提升设施安全性

    提高团队响应速度,优化维护运营在工业或商业建筑中,集中告警管理已成为确保安全性或检测故障的必备工具。通过将所有安全系统集中管理,企业能够将所有告警统一在一个HMI界面中,大幅提升响应速度。关键要点
    的头像 发表于 08-08 18:25 612次阅读
    宏集分享 | 集中告警管理如何提升设施<b class='flag-5'>安全性</b>?

    请问DM平台访问安全性如何控制?

    DM平台访问安全性如何控制?
    发表于 08-06 06:01

    连接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 网络系统挂起,为什么?

    问题:连接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 网络系统挂起 我遇到一个问题,当我尝试连接启用了CY_WCM_SECURITY_WPA3_WPA2_PSK
    发表于 06-05 07:23

    凌科电气高压连接器防触手设计与安全性能解析

    高压连接器作为大电流与高电压传输的核心组件,其安全性设计直接关乎人员生命与设备稳定运行。在新能源、轨道交通等高危场景中,防触手功能已成为连接器设计的强制
    的头像 发表于 05-16 15:14 703次阅读