2020年5月

树莓派 是一款不可缺少的单板电脑,在很多工作中都能派上用场。不相信?只要看看这个树莓派项目列表,就能了解这个小小的设备能做什么。

考虑到树莓派用途这么多,为它选择一个合适的操作系统就极其重要。当然,你可以用 Linux 做很多事,但专门为特定目的配置的操作系统可以为你节省大量的时间和精力。

因此,本文中我要介绍一些专门为树莓派量身定制的流行且实用的操作系统。

由于有树莓派镜像工具,安装任何操作系统到树莓派上都很容易

在 SD 卡上安装树莓派操作系统比以前容易得多。你只需下载树莓派镜像就可以快速地安装任何树莓派操作系统。请看下面的官方视频,你就知道有多简单。

你也可以使用 NOOBS 新开箱即用软件 New Out Of the Box Software )在树莓派上轻松安装各种的操作系统。你还可以从他们的 NOOBS 官方下载页面提到的支持的零售商列表中获得预装 SD 卡。

欢迎在他们的官方文档中了解更多关于安装操作系统的信息。

现在你知道了怎么安装它(以及从哪儿获取),让我来重点介绍几个有用的树莓派操作系统,希望对你有所帮助。

适用于树莓派的各种操作系统

请注意,我花了一些精力筛选出了那些被积极维护的树莓派操作系统项目。如果某个项目在不久的将来会停止维护,请在评论区告诉我,我会更新本文。

另一件事是,我关注到现在最新的版本是树莓派 4,但是下面的列表不应被认为是树莓派 4 的操作系统列表,这些系统应该也能用于树莓派 3、3B+ 和其他变种,但是请参照项目的官方网站了解详细信息。

注意: 排名不分先后。

1、Raspbian OS:官方的树莓派操作系统

Raspbian OS 是官方支持的树莓派板卡操作系统。它集成了很多工具,用于教育、编程以及其他广泛的用途。具体来说,它包含了 Python、Scratch、Sonic Pi、Java 和其他一些重要的包。

最初,Raspbian OS 是基于 Debian 的,并预装了大量有用的包。因此,当你安装 Raspbian OS 后,你可能就不需要特意安装基本工具了 — 你会发现大部分工具已经提前安装好了。

Raspbian OS 是被积极地维护着的,它也是最流行的树莓派操作系统之一。你可以使用 NOOBS 或参照官方文档来安装它。

2、Ubuntu MATE:适合通用计算需求

尽管 Raspbian 是官方支持的操作系统,但它的特点不是最新、最大的软件包。因此,如果你想更快的更新,想用最新的包,你可以试试 Ubuntu MATE 的树莓派版本。

Ubuntu MATE 的树莓派定制版是值得安装的非常不错的轻量级发行版。它还被广泛用于 NVIDIA 的 Jetson Nano。换言之,你可以在树莓派的很多场景下使用它。

为了更好地帮助你,我们还有一份详细的教程:怎样在树莓派上安装 Ubuntu MATE

3、Ubuntu Server:把树莓派作为一台 Linux 服务器来使用

如果你计划把你的树莓派当作项目的某个服务器来使用,那么安装 Ubuntu Server 会是一个不错的选择。

Ubuntu Server 有 32 位和 64 位的镜像。你可以根据你的板卡类型(是否支持 64 位)来选择对应的操作系统。

然而,值得注意的一点是 Ubuntu Server 不是为桌面用户定制的。因此,你需要留意 Ubuntu Server 默认不会安装图形用户界面。

4、LibreELEC:适合做媒体服务器

我们已经有一个 Linux 下可用的媒体服务器软件,LibreELEC 在列表中。

它是一个很棒的轻量级操作系统,让你可以在树莓派上安装 KODI。你可以尝试使用树莓派镜像工具来安装它。

你可以很容易地找到他们的官方下载页面,并找到适合你板卡的安装镜像。

5、OSMC:适合做媒体服务器

OSMC 是另一个 Linux 下流行的媒体服务器软件。如果要把树莓派板作为媒体中心设备,那么 OSMC 是你可以向他人推荐的操作系统之一。

类似 LibreELEC,OSMC 也运行 KODI,可以帮助你管理你的媒体文件和欣赏你已有的素材。

OSMC 没有正式提及对树莓派 4 的支持。因此,如果你的树莓派是树莓派 3 或更早的版本,那么应该没有问题。

6、RISC OS:最初的 ARM 操作系统

RISC OS 最初是为 ARM 设备打造的,至今已有近 30 年左右的历史。

如果你想了解,我们也有篇详细介绍 RISC OS 的文章。简而言之,RISC OS 也是为诸如树莓派的现代基于 ARM 的单板计算机定制的。它的用户界面很简单,更专注于性能。

同样的,这并不是为树莓派 4 量身定做的。因此,如果你的树莓派是 3 或更早的版本,你可以试一下。

7、Mozilla WebThings Gateway:适合 IoT 项目

作为 Mozilla 的 IoT 设备的开源实现的一部分,WebThings Gateway 让你可以监控和控制所有连接的 IoT 设备。

你可以参考官方文档来检查所需的环境,遵照指导把安装到树莓派上。它确实是适合 IoT 应用的最有用的树莓派操作系统之一。

8、Ubuntu Core:适合 IoT 项目

Ubuntu Core 是又一个树莓派操作系统,适用于潜在的 IoT 应用,或者只是测试一下 Snap。

Ubuntu Core 是专门为 IoT 设备或者具体来说是树莓派定制的。我不会刻意宣传它 —— 但是 Ubuntu Core 是一款适合树莓派板卡的安全操作系统。你可以自己尝试一下!

9、DietPi:轻量级树莓派操作系统

DietPi 是一款轻量级的 Debian 操作系统,它还宣称比 “Raspbian Lite” 操作系统更轻量。

虽然它被视作一款轻量级的树莓派操作系统,但它提供了很多功能,可以在多个使用场景中派上用场。从简单的软件安装包到备份解决方案,还有很多功能值得探索。

如果你想安装一个低内存占用而性能相对更好的操作系统,你可以尝试一下 DietPi。

10、Lakka Linux:打造复古的游戏主机

想让你的树莓派变成一个复古的游戏主机?

Lakka Linux 发行版本最初是建立在 RetroArch 模拟器上的。因此,你可以立刻在树莓派上获得所有的复古游戏。

如果你想了解,我们也有一篇介绍 Lakka Linux 的文章。或者直接上手吧!

11、RetroPie:适合复古游戏

RetroPie 是另一款可以让树莓派变成复古游戏主机的树莓派操作系统。它提供了几个配置工具,让你可以自定义主题,或者调整模拟器即可拥有最好的复古游戏。

值得注意的是它不包含任何有版权的游戏。你可以试一下,看看它是怎么工作的!

12、Kali Linux:适合低成本渗透

想要在你的树莓派上尝试和学习一些道德黑客技巧吗?Kali Linux 会是最佳选择。是的,Kali Linux 通常在最新的树莓派一发布就会支持它。

Kali Linux 不仅适合树莓派,它也支持很多其他设备。尝试一下,玩得愉快!

13、OpenMediaVault:适合网络附加存储(NAS)

如果你想在极简的硬件上搭建 NAS 解决方案,树莓派可以帮助你。

OpenMediaVault 最初是基于 Debian Linux 的,提供了大量功能,如基于 Web 的管理能力、插件支持,等等。它支持大多数树莓派型号,因此你可以尝试下载并安装它!

14、ROKOS:适合加密挖矿

如果你对加密货币和比特币很感兴趣,那么 ROKOS 会吸引你。

ROKOS 是基于 Debian 的操作系统,基本上可以让你把你的树莓派变成一个节点,同时预装了相应的驱动程序和软件包。当然,在安装之前你需要了解它是怎么工作的。因此,如果你对此不太了解,我建议你先调研下。

15、Alpine Linux:专注于安全的轻量级 Linux

当今年代,很多用户都在寻找专注于安全和隐私的发行版本。如果你也是其中一员,你可以试试在树莓派上安装 Alpine Linux。

如果你是个树莓派新手,它可能不像你想象的那样对用户友好(或者说对初学者来说容易上手)。但是,如果你想尝试一些不一样的东西,那么你可以试试 Alpine Linux 这个专注于安全的 Linux 发行版本。

16、Kano OS:适合儿童教育的操作系统

如果你在寻找一款能让学习变得有趣还能教育儿童的树莓派操作系统,那么 Kano OS 是个不错的选择。

它正在积极维护中,而且 Kano OS 上的桌面集成的用户体验相当简单,玩起来也很有趣,可以让孩子们从中学习。

17、KDE Plasma Bigscreen:把普通电视转换为智能电视

这是 KDE 一个正在开发中的项目。在树莓派上安装 KDE “等离子大屏” 后,你可以把普通电视变成智能电视。

你不需要特殊的遥控器来控制电视,你可以使用普通的遥控器。

“等离子大屏”也集成了 MyCroft 开源 AI 作为声控。

这个项目还在测试阶段,所以如果你想尝试,可能会有一些错误和问题。

18、Manjaro Linux:为你提供多功能的桌面体验

如果你想在树莓派上寻找一个基于 Arch 的 Linux 发行版,那么 Manjaro Linux 应该是一个很好的补充,它可以做很多事情,适合一般的计算任务。

Manjaro Linux ARM 版也支持最新的树莓派 4。它为你的树莓派或任何树莓派替代品提供了 XFCE 和 KDE Plasma 变体。

此外,它似乎还提供了树莓派设备上最快/最好的体验之一。如果你还没试过,那就试试吧!

19、Volumio:作为一个开源音乐播放器使用

想做一个廉价的音乐发烧友系统?Volumio 应该可以帮到你。

它是一个自由而开源的操作系统(GitHub),还支持集成多个设备的能力。你可以通过一个简单的 Web 控制界面,对所有连接的设备进行管理。除了免费版之外,它还提供了一个高级版,可以让你获得独家功能。

它也确实支持最新的树莓派 4。所以,如果你对调整已有的家庭立体声系统有一定的兴趣,想要获得最佳的音质,不妨试试这个。

20、FreeBSD

不想使用 Linux 发行版?不用担心,你也可以用 FreeBSD 在树莓派上安装一个类 UNIX 操作系统。

如果你不知道的话,我们有一篇关于 FreeBSD 项目的详细文章。

一旦你按照他们的官方说明安装好之后,你可以利用它来进行任何 DIY 实验,或者只是把它作为一个轻量级的桌面系统来完成特定的任务。

21、NetBSD

NetBSD 是另一个令人印象深刻的类 UNIX 操作系统,你可以在树莓派上安装。它的目标是成为一个跨多个系统的便携式操作系统。

如果你在其他系统中使用过它,你可能已经知道它的好处了。然而,它不仅仅是一个轻量级的便携式操作系统,它的特点是拥有一套有用的功能,可以完成各种任务。

结语

我相信还有很多为树莓派定制的操作系统 — 但是我尽力列出了被积极维护的最流行的或最有用的操作系统。

如果你觉得我遗漏了最合适树莓派的操作系统,尽情在下面的评论去告诉我吧!


via: https://itsfoss.com/raspberry-pi-os/

作者:Ankush Das 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

FirewallD 是由红帽发起的提供了支持网络/防火墙 区域 zone 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4、IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。

由于 FirewallD 项目本身的自由软件特性,像 Debian Linux 社区发行版已经默认在软件仓库中收录了该防火墙组件软件包。随着各个新 GNU/Linux 发行版中防火墙引擎逐步从 iptables 向 nftables 迁移,FirewallD 是目前唯一能够支持该两种防火墙后端引擎的前端服务组件,用户掌握以后可以方便的进行防火墙配置并很好的规避了从 iptables 向 nftables 迁移带来的学习恐慌。

笔者通过查阅 RedHat 8 发行版网络配置手册,并结合自己在 Debian Linux 10 社区版上进行 FirewallD 防火墙的实际配置使用,对该服务组件的功能和日常使用进行整理。希望通过该文能帮助其他 Linux 用户掌握该防火墙,并通过该防火墙提高主机测网络安全防御能力,打造可信的网络安全环境。

一、安装

在 Debian Linux 10 社区版中使用如下命令:

apt-get install firewall-applet firewall-config firewalld

就可以直接进行 FirewallD 防火墙软件组件包的安装,其中:

  • firewall-applet 为 FirewallD 托盘小程序,
  • firewall-config 为 FirewallD 图形化系统配置管理工具
  • firewalld 为 FirewallD 防火墙软件组件的主组件包,其中包含 firewall-cmdfirewall-offline-cmd 等命令行系统配置管理工具。

在 RedHat 8 下该防火墙组件默认已经进行了安装,如果用户进行特殊定制安装之后需要单独安装该软件组件可以使用命令

yum install firewall-config

直接进行安装即可。

笔者在两个系统装进行过安装对比,发现该软件组件包在两个系统上除了安装命令稍有差异外,其它从配置文件到 systemd 服务配置并没有任何区别。随后的内容将不再强调操作系统。

二、防火墙默认区域

  • Block(阻塞)
    任何对该区域的连接请求都会被以 IPv4 的 icmp-host-prohibited 信息或 IPv6 的 icmp6-adm-prohibited 信息所拒绝。只能从系统内部启动网络连接。
  • Dmz(隔离)
    用于你的隔离区内的电脑,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接。
  • Drop(丢弃)
    对进入该区域的所有数据包丢弃,并且不进行任何回包,区域内主动发起连接的流入回程数据包允许通过,允许进行出方向的网络连接。
  • External(外部)
    用于在启用伪装的外部网络上使用,尤其路由器、防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。
  • Home(家庭)
    默认其他同区域内主机可信,仅仅接收经过选择的连接。同时默认放行 ssh、mdns、ipp-client、amba-client 与 dhcpv6-client 服务产生的连接。
  • Internal(内部)
    从描述中可以等同于家庭区域。
  • Public(公开)
    公共区域,也是防火墙配置的默认区域,防火墙认为该区域主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh 与 dhcpv6-client 服务产生的连接。
  • Trusted(可信)
    可信区域,防火墙放行一切流量。等同于关闭防火墙功能。
  • Work(工作)
    工作区域,防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh、ipp-client 与 dhcpv6-client 服务产生的连接。

这些区域的命名不言自明,用户可以很快选择一个合适的安全区域,从而简化和避开很多安全问题。当然用户也可以根据自己的需要或者安全评估来根据自己的实际需求对相应安全域进行更个性化的配置,以适应自己的安全管理规范。尽管有些安全域的安全规则是相同的,但之所以还要在名字上有所区别,主要是为了从习惯上让用户更好区分不同域的独特使用场景,对用户来说更好理解和便于区分。

三、防火墙日常管理

3.1、查看防火墙当前状态

查询状态:

firewall-cmd --state

更多的防火墙系统服务状态信息可以使用

systemctl status firewalld

在你配置新的防火墙规则之前,你需要了解如何通过命令查看当前防火墙配置。查看防火墙当前配置可以通过图形界面或者在终端模式下使用命令进行。

在图形界面下可以直接通过点击应用程序“firewall-config”图标或者在终端窗口中输入 firewall-config 命令进行防火墙配置。如果当前用户为非 root 用户,系统将弹出管理员认证窗口,用户正确输入管理员密码后,防火墙配置窗口就会打开,用户即可以按照窗口界面提供的功能进行操作。

用户也可以在命令行下使用 firewall-cmd工具进行防火墙配置。命令行工具虽然学习起来需要一定的时间,不过该工具可以完全在系统处于终端模式下进行各种复杂的防火墙全功能配置,用户有必要进行认真的学习和掌握。

3.2、防火墙基础命令

FirewallD 使用了区域进行数据流的管理,当用户使用 firewall-cmd --list-all 命令时,如果没有使用 --zone 指定区域,那么系统将返回默认区域的当前配置状态。

默认区域由配置文件 /etc/firewalld/firewalld.conf 中的字段 DefaultZone 定义,初始状态下,默认区域被定义为 public(公共区域)。

用户可以使用命令:

firewall-cmd --get-zones

查看当前系统防火墙设置的的区域名列表,也可以使用命令:

firewall-cmd --get-default-zone

查看防火墙当前的默认区域;同时,可使用命令:

firewall-cmd --set-default-zone=[zonename]

或者通过直接编辑配置文件中 DefaultZone 字段的值进行默认区域的修改。

启动防火墙:

systemctl unmask firewalld
systemctl start firewalld

让防火墙随系统启动一起启动:

systemctl enable firewalld

停止防火墙:

systemctl stop firewalld

停止随系统启动:

systemctl disable firewalld

停止通过访问 firewalld D-Bus 接口和其他服务需要 firewalld 依赖导致的 firewalld 自动启动,更加干净的关闭 firewalld 服务:

systemctl mask firewalld

按照 RedHat 的官方文档定义,防火墙运行之后被称为运行时状态,保存了启动默认参数之后的配置被称为永久状态。在当前运行状态对防火墙进行的所有配置修改,系统即时生效,但重启后防火墙会恢复到它之前的永久状态,其实这一过程就是从保存之后的配置文件中加载相应配置参数的过程。

用户可以使用命令:

fiewall-cmd --runtime-to-permanent

对当前修改过的规则即时保存为永久配置,也可以使用命令 firewall-cmd --permanent 并在其后添加其它参数永久进行修改。

重新启动 firewalld 将关闭所有打开的端口并停止网络通信,需要使用命令:

firewall-cmd --reload

重新加载永久配置使之生效。

FirewallD 提供了一种系统受到攻击的紧急操作功能。假设攻击者对系统进行攻击,用户可以直接使用命令:

firewall-cmd --panic-on

关闭网络通信并且切断攻击者,而不用像之前那样通过物理拔除网线来进行断网操作,防止了系统在多网口环境中一次性插拔所有网线可能带来的混乱以及由此引发的系统恢复后延续问题。

需要恢复网络通信时用户只要使用命令:

firewall-cmd --panic-off

关闭恐慌模式即可,用户也可以使用命令:

firewall-cmd --query-panic

查询防火墙当前恐慌模式的状态。

3.2、防火墙服务管理命令

用户可以通过命令行工具添加预定义的服务类型,防火墙会自动根据所需的端口并将其他设置修改为服务定义文件。

使用命令:

firewall-cmd --list-services

可以查看当前区域内被允许的服务。使用命令:

firewall-cmd --get-services

可以列出所有防火墙已经给定的预定义服务名称。使用命令:

firewall-cmd --add-service=<service-name>

可以添加具体服务,服务名称用户可以根据自己的实际需求从预定义服务名称中选取合适的服务名进行添加。完成之后用户可以使用命令:

firewall-cmd --runtime-to-permanent

将对运行时的修改保存为永久。用户可以通过命令 firewall-configfirewall-cmdfirewall-offline-cmd,或者通过直接将 /usr/lib/firewalld/services 目录的默认模板 XML 文件复制到 /etc/firewalld/services 目录中进行编辑来添加一个自定义服务类型。具体过程如下:

方法一:执行 firewall-cmd –new-service=service-name,系统将直接在 /etc/firewalld/services 目录下创建一个以 .xml 结尾的同名文件,自定义服务类型添加完成。

方法二:在相应目录使用编辑软件直接编辑好 XML 文件并执行 firewall-cmd --new-service-from-file=service-name.xml,系统将自动完成同名自定服务类型的添加。

端口作为特定系统服务的接收和区分网络流量并将其转发到系统服务的逻辑设备,系统守护进程通常侦听特定的服务端口。防火墙在默认的服务类型配置中已经定义了相应服务需要放行的对应的端口。当用户还需要在某个服务中放行特定的自定义端口或者端口段的时候可以通过 firewall-cmd 完成,格式如下:

firewall-cmd [--zone=zone_name] [--service=service_name] --add-port=port-number/port-type

这里需要说明的是 --zone--service 为可选参数,如果用户不添加这两个参数执行命令时相当与在默认区域中直接添加了端口,当只选取了 --zone 参数时,命令执行的结果是在指定区域直接添加端口,此时与服务状态无关。只有在使用 --service 参数时才是在相应的服务中添加端口。

当用户需要删除一个端口时可以使用如下命令:

# firewall-cmd [--zone=zone_name] [--service=service_name] --remove-port=port-number/port-type

当用户需要向不同区域添加服务时,用户可以通过如下步逐进行:

# firewall-cmd --add-service=ssh --zone=drop

该命令将向区域 drop 中添加 ssh 服务,其实质就是放行 ssh 服务定义中的默认 22 端口入站方向的流量及连接。

在多网络接口主机中,可以使用如下方法将指定的网络接口添加到需要的区域中,从而实现每个接口的安全连接区域要求,实现真正的区域化网络安全管理。

使用命令:

firewall-cmd --get-active-zones

查看当前激活的安全区域和相应的网络接口配置。使用命令

firewall-cmd --zone=work --change-interface=ens3p0

则将网卡 ens3p0 加入到了 work 区域,之后所有通过该网卡的流量将受到区域安全规则的约束和限制,该配置是即时生效的并且会自动保存为永久配置。

用户需要将某个网卡加入到特定安全区域也可以直接使用:

vi /etc/sysconfig/network-scripts/ifcfg-connection-name

并在该文件下加入 ZONE=zone-name 行,该网卡即属于特定的安全区域。

用户可以对安全区域进行默认规则设置,默热规则包括三个选项 ACCEPTREJECTDROP,其中 ACCEPT 选项将放行所有流量,REJECTDROP 选项将阻止所有进入该安全区域的流量,与 REJECT 不同的是 DROP 选项直接丢弃进入安全区域的数据包,并不会向该数据包的发起者回复任何信息。用户可以使用命令:

firewall-cmd --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>

进行相应安全区域的默认规则设置。

3.3、使用区域根据来源来管理传入流量

你可以使用区域根据来源管理流入流量,这使你可以对传入流量进行排序,并将其路由到不同区域,以允许或禁止该流量可以到达的服务。

如果将源添加到区域,则该区域将变为活动状态,并且来自该源的任何传入流量将通过它。你可以为每个区域指定不同的设置,该设置将应用于来自给定来源的流量。即使你只有一个网络接口,也可以使用更多区域。

通过以下实例,我们可以将特定网段对 HTTP 的请求流量进行更细致的管理,使用命令:

firewall-cmd --zone=trusted --add-source=192.168.1.0/24

将该网段作为资源加入到 trusted 区中,通过命令:

firewall-cmd --zone=trusted --add-service=http

将 Web 服务添加到相同区域中,随后该目标地址产生的访问 Web 服务流量将可以顺利通过。

3.4、防火墙锁机制

为了防止本地程序比如 KVM 虚拟机组件对防火墙的修改,FirewallD 还提供了一种锁闭机制来防止本地程序或者服务组件对防火墙配置的修改,并且该命令只有 root 用户本身才可以执行。

用户可以使用命令:

firewall-cmd --query-lockdown

查询防火墙锁闭状态,当需要锁闭时可以直接执行命令:

firewall-cmd --lockdown-on

恢复到非锁闭状态时可以执行命令:

firewall-cmd --lockdown-off

四、后记

FirewallD 防火墙组件作为 RedHat 对自由软件社区的贡献之一,具有很好的普适性,希望通过本文的讲解使更多的用户开始熟悉该防火墙软件组件,并将其作为主机本地侧防护很好的技术手段,不断提高主机自身的 IPS 能力。在当今网络环境复杂的形势下让主机具有更好的安全性和可用性。

华为否认提交给 Linux 内核的不安全补丁 HKSP 来自官方

上周有华为工程师为 Linux 内核提交了一个内核强化补丁 HKSP(华为内核自我防护Huawei Kernel Self Protection),不过在代码检查后,该补丁被发现存在安全漏洞。根据 ZDNet 的消息,华为已经在周一的一份声明中表示,尽管该项目的名称中使用了“华为”,并且该项目是由其一名顶级安全工程师开发的,但华为并未正式参与 HKSP 项目。华为同时也表示,该项目代码从未在任何正式的华为产品中实际使用过:“这只是个人用于与开源社区 Openwall 进行技术讨论的演示代码。”

来源:开源中国

硬核老王点评:本来是一个普普通通的代码质量问题,但在有些人解读之下却浮想联翩。不过,个人项目冠名华为这样的行为在该公司是允许的吗?

阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军

5月14日,TPC 官网正式公布,阿里云自研的 AnalyticDB 通过了TPC-DS全流程测试,将前世界纪录的性能提升了29%,并把单位成本降低了三分之二,成功夺得全球数据仓库的桂冠。

来源:CSDN

硬核老王点评:似乎对阿里云热衷于得到各种比赛的冠军已经有点麻木了。

腾讯受益于疫情收入大涨

新冠病毒疫情带动“宅经济”发展,中国最大的游戏和互联网巨头腾讯控股周三公布,首季度净利按年增长 6%,而按非国际财务报告准则(Non-GAAP)净利增幅更达29%,内地防疫家居隔离带动其网络游戏及网络广告收入增长。然而,随着内地各地陆续复工复产,腾讯预期,游戏的用户使用时长及游戏内消费活动将大致回复正常水平,但公司相信,游戏行业已从结构上扩大了其长期受众及吸引力。

来源:solidot

硬核老王点评:虽然不能说游戏是邪恶的,但是一家公司因为这种情况带来的这种收入大涨,怎么也感觉有点不对味。当然,曾经有信誓旦旦不做游戏的公司最终也是投资了游戏行业,其实想想公司都是为牟利而生的,也就不足为怪了。只希望这些公司在牟利的同时不要忘记社会责任感。

Deno 1.0 发布

Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是一个新的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成。Deno 试图提供一个独立的工具来快速编写复杂功能的脚本,它将始终是单个可执行文件。就像 Web 浏览器一样,它知道如何获取外部代码。在 Deno 中,单个文件可以定义任意复杂的行为,而无需任何其它工具。Ryan Dahl 认为过去他在设计 Node 时犯了一些错误,包括安全性、构建系统、package.json、node\_modules、index.js 等等,并表示 Node 存在的种种不足导致有许多严重问题且不可回避,当前 JavaScript 和周围的软件基础架构已经发生了巨大的变化,值得进行简化,于是他重新设计了 Deno 这门脚本语言。

来源:开源中国

硬核老王点评:确实 Node.JS 在取得成功的同时,也暴露出之前的一些先天不足。这个值得期待。

最冷清的应用商店:Windows 10 商店

无论是 iOS 还是 Android,系统内置的应用商店都门庭若市。然而在 Windows 10 上,情况却截然不同——自带的应用商店门可罗雀,时至今日,绝大部分用户在 Windows 10 中安装软件的主流方式,依然是自行下载软件安装,Windows 10 商店似乎已然是一个鸡肋般的存在。

来源:太平洋电脑网

硬核老王点评:这样比起来,Linux 桌面的应用商店(软件中心)或许更被用户所接受。

CreepRank 算法帮助谷歌 Play 商店剔除了 813 款 Android 蠕虫应用

据悉,来自纽约大学、康奈尔科技学院、以及 NortonLifeLock(原赛门铁克)的学者们,对这些蠕虫软件展开了深入的分析。这里提到的蠕虫,特指不具有完整的间谍或追踪功能的移动 App 。即便如此,别有用心的开发者仍可借此对用户展开间接追踪、骚扰、欺诈或威胁他人。研究团队开发的 CreepRank 算法,能够识别移动 App 中疑似的蠕虫行为,然而对每款 App 进行打分。

来源:cnBeta.COM

UCloud 发布物联网边缘网关 IoT Edge,实现边云协同

用户可以将 UIoT Edge 运行系统直接安装到符合要求的 X86、ARM 硬件网关。该系统实现了子设备数据的采集、解析、清洗、加工、缓存,本地场景的实时控制与联动,可广泛应用于工业制造、能源电气、智慧社区、物业楼宇、智能农业、新零售等领域。UIoT Edge 边缘网关提供子设备接入、函数计算、消息路由、一键部署/远程运维和本地 Web Portal 五大功能。目前,UIoT Edge进入公测阶段。

来源:UCloud

通过理解安全证书来保护你的 Linux 邮件服务。

通常,不管你是通过 简单邮件传输协议 Simple Mail Transport Protocol (SMTP)或者 互联网消息访问协议 Internet Message Access Protocol (IMAP)或 邮局协议 Post Office Protocol (POP)发送或者接受邮件,邮件服务默认都是以无保护的明文来传输数据。近来随着数据加密成为越来越多程序的共识,你需要 安全套接层 Secure Sockets Layer / 传输层安全性 Transport Layer Security (SSL/TLS)的安全证书来保护你的邮件服务。

首先,快速回顾一下邮件服务和协议的基本流程。邮件通过 SMTP 从 TCP 端口 25 发出。这个协议依靠 DNS 邮件交换服务器 Mail eXchanger (MX)记录的地址信息来传输邮件。当邮件到达邮件服务器后,可以被以下两种服务中的任意一种检索:使用 TCP 端口 143 的 IMAP,或者使用 TCP 端口 110 的 POP3(邮局协议第 3 版)。然而,以上服务都默认使用明文传输邮件和认证信息。这非常的不安全!

为了保护电子邮件数据和认证,这些服务都增加了一个安全功能,使它们可以利用 SSL/TLS 证书对数据流和通讯进行加密封装。SSL/TLS 是如何加密数据的细节不在本文讨论范围,有兴趣的话可以阅读 Bryant Son 关于互联网安全的文章了解更多细节。概括的说,SSL/TLS 加密是一种基于公钥和私钥的算法。

通过加入这些安全功能后,这些服务将监听在新的 TCP 端口:

服务默认 TCP 端口SSL/TLS 端口
SMTP25587
IMAP143993
POP3110995

生成 SSL/TLS 证书

OpenSSL 可以生成免费的 SSL/TLS 证书,或者你也可以从公共 证书颁发机构 Certificate Authoritie (CA)购买。过去,生成自签发证书十分简单而且通用,但是由于安全被日益重视,大部分的邮件客户端是不信任自签发证书的,除非手动设置。

如果你只是自己使用或者做做测试,那就使用自签发证书省点钱吧。但是如果很多人或者客户也需要使用的话,那最好还是从受信任的证书颁发机构购买。

不管是哪种情况,开始请求新证书的过程是使用 Linux 系统上的 OpenSSL 工具来创建一个 证书签发请求 Certificate Signing Request (CSR):

$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr

这个命令会为你想保护的服务同时生成一个新的 CSR 文件和一个私匙。它会询问你一些证书相关的问题,如:位置、服务器的 完全合规域名 Fully Qualified Domain Name (FQDN)、邮件联系信息等等。当你输入完这些信息后,私钥和 CSR 文件就生成完毕了。

如果你想生成自签发证书

如果你想要生成自签发证书的话,在运行以上 CSR 命令之前,你必须先创建一个自己的根 CA。你可以通过以下方法创建自己的根 CA。

$ openssl genrsa -des3 -out myCA.key 2048

命令行会提示你输入一个密码。请输入一个复杂点的密码而且不要弄丢了,因为这将会是根 CA 私钥的密码,正如其名称所示,它是你的证书中所有信任关系的根。

接下来,生成根 CA 证书:

$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem

在回答完一些问题后,你就拥有一个有效期为 5 年的根 CA 证书了。

用之前生成的 CSR 文件,你可以请求生成一个新证书,并由您刚才创建的根 CA 签名。

$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256

输入你的根 CA 私钥的密码来创建和签署证书。

现在你有了配置电子邮件服务以增强安全性所需的两个文件:私匙文件 mail.mydomain.key 和公开证书文件 mail.mydomain.pem

如果你愿意购买证书

如果你愿意从机构购买证书,则需要上传 CSR 文件到证书颁发机构的系统中,它将会被用于生成 SSL/TLS 证书。证书可作为文件下载,比如 mail.mydomain.pem。很多 SSL 机构也需要你下载一个中间证书。如果是这样的话,你必须把这个两个证书合并成一个,这样电子邮件服务就可以将这两个证书结合起来处理。可以使用以下命令把你的证书和第三方中间证书合并在一起:

$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem

值得一提的是 .pem 文件后缀代表 隐私增强邮件 Privacy-Enhanced Mail

现在你就有全部的设置邮件服务安全所需文件了:私匙文件 mail.mydomain.key 和组合的公开证书文件 mail.mydomain.pem

为你的文件生成一个安全的文件夹

不管你是的证书是自签发的或者从机构购买,你都需要生成一个安全的,管理员拥有的文件夹用于保存这两个文件。可以使用以下命令来生成:

$ mkdir /etc/pki/tls
$ chown root:root /etc/pki/tls
$ chmod 700 /etc/pki/tls

在复制文件到 /etc/pki/tls 后,再次设置这些文件的权限:

$ chmod 600 /etc/pki/tls/*

配置你的 SMTP 和 IMAP 服务

接下来,让 SMTP 和 IMAP 服务使用新的安全证书。我们用 postfixdovecot 来作为例子。

用你顺手的编辑器来编辑 /etc/postfix/main.cf 文件。添加以下几行:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pem
smtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key

自定义选项

以下选项可以启用或禁用各种加密算法,协议等等:

smtpd_tls_eecdh_grade = strong
smtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_security_level=may
smtpd_tls_ciphers = high
tls_preempt_cipherlist = yes
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

编辑 /etc/dovecot/dovecot.conf 文件,添加以下三行:

ssl = required
ssl_cert = &lt;/etc/pki/tls/mail.mydomain.pem
ssl_key = &lt;/etc/pki/tls/mail.mydomain.key

添加下列更多选项来启用或禁用各种加密算法、协议等等(我把这些留给你来理解):

ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
ssl_min_protocol = TLSv1.2

设置 SELinux 上下文

如果你的 Linux 发行版启用了 SELinux,请为你的新证书文件设置正确的 SELinux 上下文。

对于 Postfix 设置 SELinux:

$ chcon -u system_u -t cert_t mail.mydomain.*

对于 Dovecot 设置 SELinux:

$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*

重启这些服务,并与你相应更新过的电子邮件客户端配置连接。有些电子邮件客户端会自动探测到新的端口,有些则需要你手动更新。

测试配置

openssl 命令行和 s_client 插件来简单测试一下:

$ openssl s_client -connect mail.mydomain.com:993
$ openssl s_client -starttls imap -connect mail.mydomain.com:143
$ openssl s_client -starttls smtp -connect mail.mydomain.com:587

这些测试命令会打印出很多信息,关于你使用的连接、证书、加密算法、会话和协议。这不仅是一个验证新设置的好方法,也可以确认你使用了适当的证书,以及在 postfix 或 dovecot 配置文件中定义的安全设置正确。

保持安全!


via: https://opensource.com/article/20/4/securing-linux-email

作者:Marc Skinner 选题:lujun9972 译者:Acceleratorrrr 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

过去,我已经讨论了许多 Ubuntu 更新错误。如果你使用命令行更新 Ubuntu,那可能会遇到一些“错误”。

其中一些“错误”基本上是内置功能,可防止对系统进行不必要的更改。在本教程中,我不会涉及那些细节。

在本文中,我将向你展示如何解决在更新系统或安装新软件时可能遇到的以下错误:

Reading package lists… Error!
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
E: The package lists or status file could not be parsed or opened.

在 Debian 中可能会遇到类似的错误:

E: Unable to parse package file /var/lib/apt/extended_states (1)

即使遇到 The package cache file is corrupted 也完全不必惊慌。这真的很容易“修复”。

在基于 Ubuntu 和 Debian 的 Linux 发行版中处理 “Unable to parse package file” 错误

以下是你需要做的。仔细查看 Ubuntu 报错文件的名称和路径。

Reading package lists… Error!
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
E: The package lists or status file could not be parsed or opened.

例如,上面的错误是在报 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease 文件错误。

这让你想到这个文件不正确。现在,你需要做的就是删除该文件并重新生成缓存。

sudo rm <file_that_is_not_parsed>

因此,这里我可以使用以下命令:sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease,然后使用 sudo apt update 命令重建缓存。

给初学者的分步指导

如果你熟悉 Linux 命令,那么可能知道如何使用绝对路径删除文件。对于新手用户,让我指导你安全删除文件。

首先,你应该进入文件目录:

cd /var/lib/apt/lists/

现在删除无法解析的文件:

sudo rm archive.ubuntu.com_ubuntu_dists_bionic_InRelease

现在,如果你再次运行更新,将重新生成 apt 缓存。

sudo apt update

有很多文件无法解析?

如果你在更新系统时有一个或两个文件无法解析,那么问题不大。但是,如果系统报错有十个或二十个此类文件,那么一一删除它们就太累了。

在这种情况下,你可以执行以下操作来删除整个缓存,然后再次生成它:

sudo rm -r /var/lib/apt/lists/*
sudo apt update

解释这为何能解决问题

/var/lib/apt 是与 apt 软件包管理器相关的文件和数据的存储目录。/var/lib/apt/lists 是用于保存系统 source.list 中指定的每个软件包资源信息的目录。

简单点来说,/var/lib/apt/lists 保存软件包信息缓存。当你要安装或更新程序时,系统会在此目录中检查该软件包中的信息。如果找到了该包的详细信息,那么它将进入远程仓库并实际下载程序或其更新。

当你运行 sudo apt update 时,它将构建缓存。这就是为什么即使删除 /var/lib/apt/lists 目录中的所有内容,运行更新也会建立新的缓存的原因。

这就是处理文件无法解析问题的方式。你的系统报某个软件包或仓库信息以某种方式损坏(下载失败或手动更改 sources.list)。删除该文件(或所有文件)并重建缓存即可解决此问题。

仍然有错误?

这应该能解决你的问题。但是,如果问题仍然存在,或者你还有其他相关问题,请在评论栏告诉我,我将尽力帮助你。


via: https://itsfoss.com/unable-to-parse-package-file/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

只要五分钟,骇客就能通过 Thunderbolt 漏洞窃取你的数据

安全专家 Björn Ruytenberg 日前在研究后发现,骇客只需利用一套被称作 Thunderspy 的技术,就可以轻松地在配有 Thunderbolt 连接口的 PC 或 Linux 电脑上窃取用户的加密数据。按照他的说法,在骇客能够亲手接触到设备的前提下,其实只需要螺丝刀、简易的便携硬件以及区区五分钟时间就能得手了。目前市面上仍有大部分来自各品牌的旧款机种要面临受到这类攻击的风险。

来源:solidot

硬核老王点评:物理安全是最后的防线。

Telegram 放弃了 17 亿美元的 TON 区块链项目

面对美国证券交易委员会(SEC)的强势监管,Telegram 已经放弃了 17 亿美元的 TON 加密货币项目,同时被要求向投资者退款。这家拥有 4 亿用户的消息应用运营商今日宣布,在与 SEC 开展了旷日持久的论战之后,其最终还是放弃了即将推出的 Telegram Open Network 区块链项目。TON 的溃败,意味着向公众发起各种空气币 ICO 的机会窗口,已被监管机构重重地关上。

来源:cnBeta.COM

硬核老王点评:这扇大门被关上了,从一定意义是制止了泡沫和欺诈的产生,而将会倒逼区块链领域产生新的创新。

Pineloader 为 Linux 智能机提供了多启动支持

爱好者们可以在一款手机上安装多个不同的 Linux 操作系统,然后在启动时轻松选择想用的那一个。尽管引导选择界面不支持触摸操作,但玩家可以通过音量加减来上下选择,然后轻击电源键来确认选择。

来源:cnBeta.COM

Win10 May 2020 Update 新安全功能保护电脑免遭不需要应用攻击

据了解,Windows 10 用户在互联网上搜索免费版本软件时经常会下载到名声不佳的应用程序。而许多声誉不佳的应用程序都会跟可能不受欢迎的应用程序捆绑在一起,如果运行了这些应用程序,其可能会减慢 Windows 10 的运行速度、插入广告甚至改变浏览器的搜索引擎。对此,Windows 10 May 2020 Update 在 Windows 安全程序中引入了新保护功能,其提供了针对可能不受欢迎的应用程序的保护,但目前该功能在默认情况下则是处于未启用状态。

来源:cnBeta.COM

Facebook 与内容审核员们和解:后者因心理创伤获赔 5200 万美元

据外媒报道,Facebook 同意支付 5200 万美元和解与内容审核员们的诉讼。后者声称因为反复查看儿童性侵和恐怖主义图片等令人不安的材料而产生心理创伤。这起和结案共覆盖逾 1 万名现任和前任 Facebook 审核员。律师称,这些人将每人收到 1000 美元医学排查费用,如有必要,还将额外获得治疗费用。

来源:新浪科技

硬核老王点评:内容审核终究还是一种人力活,做这个工作的人得有多高的心理耐受度?

Ubuntu Server 安装程序漏洞:将密码泄露到日志中

Subiquity 是 Ubuntu Server 的安装程序,它已经存在了近 3 年,但是直到上个月底发布的 Ubuntu 20.04 才将其作为默认支持工具。 Subiquity 一直以来维护得也比较粗糙,很快就有开发者发现了其中的一个严重漏洞。该漏洞被标记为 CVE 2020-11932,严重程度为“紧急”,不过,开发者目前已经修复了该漏洞。

来源:开源中国

硬核老王点评:漏洞很严重,应该对这种转正后的应用做比较全面的审查。

台积电 5nm 客户曝光:今年仅苹果华为,AMD 等明年加入

近日,一份台积电 5nm 工艺的客户名单曝光,2020 年,台积电只为两家公司量产 5nm 芯片,分别是苹果和华为海思,前者是 A14 和 A14X 处理器,华为海思的则是麒麟 1000 及网络处理器。2021-2022 年量产的客户及产品都将增多,除了华为和苹果,目前曝光的还有 6 家,分别是 AMD、博通、高通、英伟达、联发科和英特尔。

来源:网易科技

国外 5G 网速测试出炉,沙特第一,美国最慢

国外知名测试机构 Opensignal 近日发布了 8 个国家的 5G 网速测试报告,结果有 7 个国家的 5G 网速比 4G 和 WiFi 速度更快。排名第一的是沙特阿拉伯,美国是唯一 5G 网速比 WiFi 慢的国家,双方网速相差 5.5 倍。

来源:网易科技