Quantcast
Channel: Linux 中国◆开源社区
Viewing all 9060 articles
Browse latest View live

Linux 初学者:如何在 Ubuntu 中重启网络

$
0
0

是否正在使用基于 Ubuntu 的系统,然后发现无法连接网络?你一定会很惊讶,很多的问题都可以简单地通过重启服务解决。

在这篇文章中,我会介绍在 Ubuntu 或者其他 Linux 发行版中重启网络的几种方法,你可以根据自身需要选择对应的方法。这些方法基本分为两类:

Ubuntu Restart Network

通过命令行方式重启网络

如果你使用的 Ubuntu 服务器版,那么你已经在使用命令行终端了。如果你使用的是桌面版,那么你可以通过快捷键 Ctrl+Alt+T Ubuntu 键盘快捷键 打开命令行终端。

在 Ubuntu 中,有多个命令可以重启网络。这些命令,一部分或者说大部分,也适用于在 Debian 或者其他的 Linux 发行版中重启网络。

1、network manager 服务

这是通过命令行方式重启网络最简单的方法。它相当于是通过图形化界面重启网络(重启 Network-Manager 服务)。

sudo service network-manager restart

此时,网络图标会消失一会儿然后重新显示。

2、systemd

service 命令仅仅是这个方式的一个封装(同样的也是 init.d 系列脚本和 Upstart 相关命令的封装)。systemctl 命令的功能远多于 service 命令。通常我更喜欢使用这个命令。

sudo systemctl restart NetworkManager.service

这时,网络图标又会消失一会儿。 如果你想了解 systemctl 的其他选项, 可以参考 man 帮助文档。

3、nmcli

这是 Linux 上可以管理网络的另一个工具。这是一个功能强大而且实用的工具。很多系统管理员都喜欢使用该工具,因为它非常容易使用。

这种方法有两个操作步骤:关闭网络,再开启网络。

sudo nmcli networking off

这样就会关闭网络,网络图标会消失。接下来,再开启网络:

sudo nmcli networking on

你可以通过 man 帮助文档了解 nmcli 的更多用法。

4、ifup & ifdown

这两个命令直接操作网口,切换网口是否可以收发包的状态。这是 Linux 中最应该了解的网络命令 之一。

使用 ifdown 关闭所有网口,再使用 ifup 重新启用网口。

通常推荐的做法是将这两个命令一起使用。

sudo ifdown -a && sudo ifup -a

注意:这种方法不会让网络图标从系统托盘中消失,另外,各种网络连接也会断。

补充工具: nmtui

这是系统管理员们常用的另外一种方法。它是在命令行终端中管理网络的文本菜单工具。

nmtui

打开如下菜单:

nmtui Menu

注意:在 nmtui 中,可以通过 updown 方向键选择选项。

选择 “Activate a connection”:

nmtui Menu Select "Activate a connection"

按下回车键,打开 “connections” 菜单。

nmtui Connections Menu

接下来,选择前面带星号(*)的网络。在这个例子中,就是 MGEO72。

Select your connection in the nmtui connections menu.

按下回车键。 这就将“停用”你的网络连接。

nmtui Connections Menu with no active connection

选择你要连接的网络:

Select the connection you want in the nmtui connections menu.

按下回车键。这样就重新激活了所选择的网络连接。

nmtui Connections Menu

按下 Tab 键两次,选择 “Back”:

Select "Back" in the nmtui connections menu.

按下回车键,回到 nmtui 的主菜单。

nmtui Main Menu

选择 “Quit” :

nmtui Quit Main Menu

退出该界面,返回到命令行终端。

就这样,你已经成功重启网络了。

通过图形化界面重启网络

显然,这是 Ubuntu 桌面版用户重启网络最简单的方法。如果这个方法不生效,你可以尝试使用前文提到的命令行方式重启网络。

NM 小程序是 NetworkManager 的系统托盘程序标志。我们将使用它来重启网络。

首先,查看顶部状态栏。你会在系统托盘找到一个网络图标 (因为我使用 Wi-Fi,所以这里是一个 Wi-Fi 图标)。

接下来,点击该图标(也可以点击音量图标或电池图标)。打开菜单。选择 “Turn Off” 关闭网络。

Restart network in Ubuntu

网络图标会在状态栏中消失,这表示你已经成功关闭网络了。

再次点击系统托盘重新打开菜单,选择 “Turn On”,重新开启网络。

Restarting network in Ubuntu

恭喜!你现在已经重启你的网络了。

其他提示:刷新可用网络列表

如果你已经连接上一个网络,但是你想连接到另外一个网络,你如何刷新 WiFi 列表,查找其他可用的网络呢?我来向你展示一下。

Ubuntu 没有可以直接 “刷新 WiFi 网络” 的选项,它有点隐蔽。

你需要再次打开配置菜单,然后点击 “Select Network” 。

Refresh wifi network list in Ubuntu

选择对应的网络修改你的 WiFi 连接。

你无法马上看到可用的无线网络列表。打开网络列表之后,大概需要 5 秒才会显示其它可用的无线网络。

Select another wifi network in Ubuntu

等待大概 5 秒钟,看到其他可用的网络。

现在,你就可以选择你想要连接的网络,点击连接。这样就完成了。

总结

重启网络连接是每个 Linux 用户在使用过程中必须经历的事情。

我们希望这些方法可以帮助你处理这样的问题!

你是如何重启或管理你的网络的?我们是否还有遗漏的?请在下方留言。


via: https://itsfoss.com/restart-network-ubuntu

作者:Sergiu 选题:lujun9972 译者:bodhix 校对:wxy

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


如何参与 Kubernetes 文档的本地化工作

$
0
0

去年我们对 Kubernetes 网站进行了优化,加入了多语言内容的支持。贡献者们踊跃响应,加入了多种新的本地化内容:截至 2019 年 4 月,Kubernetes 文档有了 9 个不同语言的未完成版本,其中有 6 个是 2019 年加入的。在每个 Kubernetes 文档页面的上方,读者都可以看到一个语言选择器,其中列出了所有可用语言。

不论是完成度最高的中文版 v1.12,还是最新加入的葡萄牙文版 v1.14,各语言的本地化内容还未完成,这是一个进行中的项目。如果读者有兴趣对现有本地化工作提供支持,请继续阅读。

什么是本地化

翻译是以词表意的问题。而本地化在此基础之上,还包含了过程和设计方面的工作。

本地化和翻译很像,但是包含更多内容。除了进行翻译之外,本地化还要为编写和发布过程的框架进行优化。例如,Kubernetes.io 多数的站点浏览功能(按钮文字)都保存在单独的文件之中。所以启动新本地化的过程中,需要包含加入对特定文件中字符串进行翻译的工作。

本地化很重要,能够有效的降低 Kubernetes 的采纳和支持门槛。如果能用母语阅读 Kubernetes 文档,就能更轻松的开始使用 Kubernetes,并对其发展作出贡献。

如何启动本地化工作

不同语言的本地化工作都是单独的功能——和其它 Kubernetes 功能一致,贡献者们在一个 SIG 中进行本地化工作,分享出来进行评审,并加入项目。

贡献者们在团队中进行内容的本地化工作。因为自己不能批准自己的 PR,所以一个本地化团队至少应该有两个人——例如意大利文的本地化团队有两个人。这个团队规模可能很大:中文团队有几十个成员。

每个团队都有自己的工作流。有些团队手工完成所有的内容翻译;有些会使用带有翻译插件的编译器,并使用评审机来提供正确性的保障。SIG Docs 专注于输出的标准;这就给了本地化团队采用适合自己工作情况的工作流。这样一来,团队可以根据最佳实践进行协作,并以 Kubernetes 的社区精神进行分享。

为本地化工作添砖加瓦

如果你有兴趣为 Kubernetes 文档加入新语种的本地化内容,Kubernetes contribution guide 中包含了这方面的相关内容。

已经启动的的本地化工作同样需要支持。如果有兴趣为现存项目做出贡献,可以加入本地化团队的 Slack 频道,去做个自我介绍。各团队的成员会帮助你开始工作。

语种 Slack 频道
中文 #kubernetes-docs-zh
英文 #sig-docs
法文 #kubernetes-docs-fr
德文 #kubernetes-docs-de
印地 #kubernetes-docs-hi
印度尼西亚文 #kubernetes-docs-id
意大利文 #kubernetes-docs-it
日文 #kubernetes-docs-ja
韩文 #kubernetes-docs-ko
葡萄牙文 #kubernetes-docs-pt
西班牙文 #kubernetes-docs-es

下一步?

身为 SIG Docs 的主席,我甚至希望本地化工作跳出文档范畴,直接为 Kubernetes 组件提供本地化支持。有什么组件是你希望支持不同语言的么?可以提交一个 Kubernetes Enhancement Proposal 来促成这一进步。

每日安全资讯:60% 的企业代码库包含开源漏洞

$
0
0

近日,黑鸭软件Black Duck Software发布了开源安全与风险分析(OSSRA)年度报告,报告对 2018 年以来 1200 多个商业代码库的匿名数据进行了分析和研究。对当今的企业来说,开源软件、库和组件往往起着重要的作用。开源代码采用率高有许多原因,其中包括开源社区的许多程序员愿意为项目贡献时间、项目代码的透明性、以及比开发内部系统更少的实现时间等。

在黑鸭审查的所有代码库中,有 96% 包含了开源组件,而大多数没有开源代码的代码库其实包含不到 1000 个文件。在超过 1000 个文件的代码库中,开源代码的采用率高达 99%。

开源代码有着它的安全优势,但也存在着安全漏洞未修补的隐患,开发人员可能没意识到项目正在被安全漏洞影响。在报告审查的代码库中,至少包含一个漏洞的代码库占 60% ,这个数字比 2017 年统计的结果 78% 有所下降。

黑鸭认为,发现的漏洞有 40% 都是关键级的。“事实上,开源并不总是更安全。”报告指出,无论项目源码是专有的还是开源的,都可能因为漏洞的存在,安全性变得薄弱。项目人员应该及时加以识别和修补这些漏洞。

报告中发现漏洞的平均“年龄”为 6.6 岁。其中,最老的 CVE-2000-0388 是 FreeBSD libmytinfo 库中的缓冲区溢出漏洞,在 28 年前被披露。报告结果显示,有 43% 的代码库包含一个超过 10 年的 bug。这表明不少企业可能没意识到开源的用处,也没有对组件目录进行系统管理,这些软件没有打新的补丁,更容易被攻击。

“一般只有少数开源漏洞,比如那些影响 ApacheStruts 或 OpenSSL 的漏洞,有可能被广泛利用。”研究人员表示,项目组织应该把他们的开源漏洞管理和缓解工作的重点放在 cvss 评分和漏洞的可用性上,在关注 “0day” 的同时,也应该关注开源组件的生命周期。

来源:开源中国

更多资讯

黑客届“奥斯卡”来了!国际安全技术大牛 5 月底齐聚北京

随着网络安全问题越来越引发全球关注,对黑客、安全漏洞等话题感兴趣的极客和技术爱好者们将在北京迎来盛会。有黑客界“奥斯卡”之称的 DEF CON 近日宣布,即将举办 DEF CON CHINA Baidu 安全行业国际峰会,5月31日至6月2日,数千名全球安全技术大牛将齐聚北京 751D&middotARK,同台切磋技艺。

来源: 北京日报客户端
详情: http://t.cn/ESl6YeJ 

还在随便下载软件?CNCERT 公布 116 个高危恶意程序

2019 年 2 月期间,国家互联网应急中心(简称“CNCERT”)在全国范围内继续开展计算机恶意程序传播渠道安全监测工作,对已备案的计算机软件下载站进行安全监测,判定计算机恶意程序 216 个,其中高危恶意程序 116 个,涉及 8 个省份的 11 家软件下载站及应用商店。2019 年 4 月下旬,CNCERT 将本次监测结果形成报告对外发布。

来源: FreeBuf.COM

详情: http://t.cn/ESl6mGB 

阿桑奇在英被判 50 周监禁处罚

据英国“天空新闻”刚刚消息,维基解密创始人阿桑奇在英被判50个星期监禁。“你曾有一个选择,你选择的行动就是犯罪,”该法院法官德博拉·泰勒在法庭上说,“你没有心甘情愿地投向......你不会自愿到法院来。”随后,泰勒宣布阿桑奇被判“50 周监禁”。

来源: 环球科技

详情: http://t.cn/ESlXhc5 

Windows 10 的安全功能使得基于 Chromium 的浏览器运行慢了三倍多

正如 Vivaldi 开发人员所揭示的那样,Windows 10 中内置的安全功能使基于 Chromium 的浏览器在测试环境中的速度降低了三倍多。Yngve Pettersen 在博客文章中解释说,开发人员在将 Windows 10 测试人员添加到 Windows 单元测试集群时发现了这个性能问题。

来源: cnBeta.COM

详情: http://t.cn/ESlXLjD 

(信息来源于网络,安华金和搜集整理)

使用 Python 和 Prometheus 跟踪天气

$
0
0

创建自定义 Prometheus 集成以跟踪最大的云端提供商:地球母亲。

Tree clouds

开源监控系统 Prometheus 集成了跟踪多种类型的时间序列数据,但如果没有集成你想要的数据,那么很容易构建一个。一个经常使用的例子使用云端提供商的自定义集成,它使用提供商的 API 抓取特定的指标。但是,在这个例子中,我们将与最大云端提供商集成:地球。

幸运的是,美国政府已经测量了天气并为集成提供了一个简单的 API。获取红帽总部下一个小时的天气预报很简单。

import requests
HOURLY_RED_HAT = "<https://api.weather.gov/gridpoints/RAH/73,57/forecast/hourly>"
def get_temperature():
    result = requests.get(HOURLY_RED_HAT)
    return result.json()["properties"]["periods"][0]["temperature"]

现在我们已经完成了与地球的集成,现在是确保 Prometheus 能够理解我们想要内容的时候了。我们可以使用 Prometheus Python 库中的 gauge 创建一个注册项:红帽总部的温度。

from prometheus_client import CollectorRegistry, Gauge
def prometheus_temperature(num):
    registry = CollectorRegistry()
    g = Gauge("red_hat_temp", "Temperature at Red Hat HQ", registry=registry)
    g.set(num)
    return registry

最后,我们需要以某种方式将它连接到 Prometheus。这有点依赖 Prometheus 的网络拓扑:是 Prometheus 与我们的服务通信更容易,还是反向更容易。

第一种是通常建议的情况,如果可能的话,我们需要构建一个公开注册入口的 Web 服务器,并配置 Prometheus 收刮(scrape)它。

我们可以使用 Pyramid 构建一个简单的 Web 服务器。

from pyramid.config import Configurator
from pyramid.response import Response
from prometheus_client import generate_latest, CONTENT_TYPE_LATEST
def metrics_web(request):
    registry = prometheus_temperature(get_temperature())
    return Response(generate_latest(registry),
                               content_type=CONTENT_TYPE_LATEST)
config = Configurator()
config.add_route('metrics', '/metrics')
config.add_view(metrics_web, route_name='metrics')
app = config.make_wsgi_app()

这可以使用任何 Web 网关接口(WSGI)服务器运行。例如,假设我们将代码放在 earth.py 中,我们可以使用 python -m twisted web --wsgi earth.app 来运行它。

或者,如果我们的代码连接到 Prometheus 更容易,我们可以定期将其推送到 Prometheus 的推送网关

import time
from prometheus_client import push_to_gateway
def push_temperature(url):
    while True:
        registry = prometheus_temperature(get_temperature())
        push_to_gateway(url, "temperature collector", registry)
        time.sleep(60*60)

这里的 URL 是推送网关的 URL。它通常以 :9091 结尾。

祝你构建自定义 Prometheus 集成成功,以便跟踪一切!


via: https://opensource.com/article/19/4/weather-python-prometheus

作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy

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

System76 是如何打造开源硬件的

$
0
0

是什么让新的 Thelio 台式机系列与众不同。

大多数人对他们电脑的硬件一无所知。作为一个长期的 Linux 用户,当我想让我的无线网卡、视频卡、显示器和其他硬件与我选择的发行版共同运行时,也一样遇到了挫折。商业品牌的硬件通常使判断这些问题变得很困难:为什么以太网驱动、无线驱动或者鼠标驱动和我们预期的不太一样?随着 Linux 发行版变得成熟,这可能不再是问题,但是我们仍能发现触控板和其它外部设备的怪异行为,尤其是当我们对底层的硬件知道的不多时。

System76 这样的公司致力于解决这些问题,以提升 Linux 用户体验。System76 生产了一系列的 Linux 笔记本、台式机和服务器,甚至提供了它自己的 Linux 发行版 Pop! OS 作为客户的一个选择。最近我有幸参观了 System76 在 Devnver 的工厂并揭开它的新台式机产品线 Thelio 的神秘面纱

关于 Thelio

System76 宣称 Thelio 的开源硬件子板(被命名为木星之后的第 5 个卫星的名字 Thelio Io)是它在市场上独特的特点之一。Thelio Io 取得了开源硬件协会的认证 OSHWA #us000145,并且有 4 个用于存储的 SATA 端口和一个控制风扇和用于电源按钮控制的嵌入式控制器。Thelio IO SAS 取得了 OSHWA #us000146 认证,并且有 4 个用于存储的 U.2 端口,没有嵌入式控制器。在展示时,System76 显示了这些组件如何调整风扇通过底盘来优化部件的性能。

该控制器还管理电源键,和围绕该电源键的 LED 光环,当被按下时它以 100% 的亮度发光。这提供了触觉和视觉上的确认:该主机已经启动电源了。当电脑在使用中,该按钮被设置为 35% 的亮度,当在睡眠模式,它的亮度在 2.35% 和 25% 之间跳动。当计算机关闭后,LED 保持朦胧的亮度,因此能够在黑暗的房间里找到电源控制。

Thelio 的嵌入式控制器是一个低功耗的 ATmega32U4 微控制器,并且控制器的设置可以使用 Arduino Micro 进行原型设计。Thelio Io 主板变化的多少取决于你购买哪种 Thelio 型号。

Thelio 可能是我见过的设计的最好的电脑机箱和系统。如果你曾经亲身体验过在一个常规的 PC 的内部进行操作的话,你可能会同意我的观点。我已经做了很多次了,因此我能以自己过往的糟糕经历来证明这点。

为什么做开源硬件?

该主板是在 KiCAD 设计的,你可以在 GitHub 上按 GPL 许可证访问 Thelio 所有的设计文件。因此,为什么一个与其他 PC 制造商竞争的公司会设计一个独特的接口并公开授权呢?可能是该公司认识到开源设计及根据你的需要调整和分享一个 I/O 主板设计的能力的价值,即便你是市场上的竞争者。

在 Thelio 启动时 Don Watkins 与 System76 的 CEO Carl Richell 谈话

Thelio 发布会 Don Watkins 与 System76 的 CEO Carl Richell 谈话。

我问 System76 的设计者和 CEO Carl Richell,该公司是否担心过公开许可它的硬件设计意味着有人可以采取它的独特设计并用它来将 System76 驱逐出市场。他说:

开源硬件对我们所有人都有益。这是我们未来提升技术的方式,并且使得每个人获取技术更容易。我们欢迎任何想要提高 Thelio 设计的人来这么做。开源该硬件不仅可以帮助我们更快的改进我们的电脑,并且能够使我们的消费者 100% 信任他们的设备。我们的目标是尽可能地移除专利功能,同时仍然能够为消费者提供一个有竞争力的 Linux 主机。

我们已经与 Linux 社区一起合作了 13 年之久,来为我们的笔记本、台式机、服务器创造一个完美顺滑的体验。我们长期专注于为 Linux 社区提供服务,提供给我们的客户高水准的服务,我们的个性使 System76 变得独特。

我还问 Carl 为什么开源硬件对 System76 和 PC 市场是有意义的。他回复道:

System76 创立之初的想法是技术应该对每个人是开放和可获取的。我们还没有到达 100% 开源创造一个电脑的程度,但是有了开源硬件,我们迈出了接近目标的必不可少的一大步。

我们生活在技术变成工具的时代。计算机在各级教育和很多行业当中是人们的工具。由于每个人特定的需要,每个人对于如何提升电脑和软件作为他们的主要工具有他们自己的想法。开源我们的计算机可以让这些想法成为现实,从而反过来促进技术成为一个更强大的工具。在一个开源环境中,我们持续迭代来生产更好的 PC。这有点酷。

我们总结了我们讨论的关于 System76 技术路线的对话,包含了开源硬件 mini PC,甚至是笔记本。在 System76 品牌下的已售出的 mini PC 和笔记本是由其他供应商制造的,并不是基于开源硬件的(尽管它们用的是 Linux 软件,是开源的)。

设计和支持开放式硬件是 PC 产业中的变革者,也正是它造就了 System76 的新 Thelio 台式机电脑产品线的不同。


via: https://opensource.com/article/19/4/system76-hardware

作者:Don Watkins 选题:lujun9972 译者:warmfrog 校对:wxy

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

命令行技巧:分割文件内容

$
0
0

Fedora 发行版是一个功能齐全的操作系统,有出色的图形化桌面环境。用户可以很容易地通过单击动作来完成任何典型任务。所有这些美妙的易用性掩盖了其底层强大的命令行细节。本文是向你展示一些常见命令行实用程序的系列文章的一部分。让我们进入 shell 来看看 cut

通常,当你在命令行中工作时,你处理的是文本文件。有时这些文件可能很长,虽然可以完整地阅读它们,但是可能会耗费大量时间,并且容易出错。在本文中,你将学习如何从文本文件中提取内容,并从中获取你所需的信息。

重要的是要意识到,在 Fedora 中有许多方法可以完成类似的命令行任务。例如,Fedora 仓库含有用于解析和处理文本的完整语言系统。此外,还有多个命令行实用程序可用于 shell 中任何可能的用途。本文只关注使用其中几个实用程序选项,从文件中提取一些信息并以可读的格式呈现。

cut 使用

为了演示这个例子,在系统上使用一个标准的大文件,如 /etc/passwd。正如本系列的前一篇文章所示,你可以执行 cat 命令来查看整个文件:

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...

此文件包含系统上所有所有账户的信息。它有一个特定的格式:

name:password:user-id:group-id:comment:home-directory:shell

假设你只想要系统上所有账户名的列表,如果你只能从每一行中删除 “name” 值。这就是 cut 命令派上用场的地方!它一次处理一行输入,并提取该行的特定部分。

cut 命令提供了以不同方式选择一行的部分的选项,在本示例中需要两个,-d-f-d 选项允许你声明用于分隔行中值的分隔符。在本例中,冒号(:)用于分隔值。-f 选项允许你选择要提取哪些字段值。因此,在本例中,输入的命令是:

$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
...

太棒了,成功了!但是你将输出打印到标准输出,在终端会话中意味着它需要占据屏幕。如果你需要稍后完成另一项任务所需的信息,这该怎么办?如果有办法将 cut 命令的输出保存到文本文件中,那就太好了。对于这样的任务,shell 有一个简单的内置功能,重定向功能(>)。

$ cut -d: -f1 /etc/passwd > names.txt

这会将 cut 的输出放到一个名为 names.txt 的文件中,你可以使用 cat 来查看它的内容:

$ cat names.txt
root
bin
daemon
adm
...

使用两个命令和一个 shell 功能,可以很容易地使用 cat 从一个文件进行识别、提取和重定向一些信息,并将其保存到另一个文件以供以后使用。


via: https://fedoramagazine.org/command-line-quick-tips-cutting-content-out-of-files/

作者:Stephen Snow 选题:lujun9972 译者:MjSeven 校对:wxy

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

每日安全资讯:Weblogic 0day 漏洞正被攻击者利用安装勒索软件

$
0
0

中国安全研究人员在 4 月 18 日披露了甲骨文刚刚修复的一个高危漏洞:Weblogic 反序列化漏洞(CVE-2018-2628)。安全研究人员是在去年 11 月将漏洞报告给了甲骨文,漏洞允许攻击者在未授权的情况下远程执行任意代码。

漏洞影响 Weblogic 10.3.6.0、12.1.3.0、12.2.1.2 和 12.2.1.3。研究人员公开了漏洞细节,随后该漏洞观察到被攻击者利用挖掘数字货币,以及安装勒索软件,整个过程无需任何点击或互动。

Cisco Talos 的研究人员报告,该漏洞至少从 4 月 21 日起就被活跃利用。攻击者被发现在尚未修复的计算机上安装一种新的勒索软件叫 Sodinokibi,除了加密重要的数据,该勒索软件还尝试毁掉备份,防止受害者简单利用备份恢复加密的数据。

奇怪的是,攻击者随后还利用相同的漏洞安装了另一种勒索软件叫 GandCrab。

来源:solidot.org

更多资讯

英国防大臣因泄露有关华为信息被开除,曾扬言派航母到南海

参考消息网 5 月 2 日报道 英媒称,英国首相特雷莎·梅办公室1日表示,英国国防大臣加文·威廉姆森因泄露有关中国电信公司华为的信息而被解雇。

来源: 参考消息

详情: http://t.cn/ESR5q9D 

俄总统签署防范紧急状态下外部“断网”风险的法律

俄罗斯总统普京 5 月 1 日签署法律文件,以确保俄罗斯互联网在遭遇外部“断网”等冲击时仍能稳定运行。俄罗斯媒体 1 日报道说,根据普京签署的法律,俄罗斯将建立本国的域名系统,即存储和获取网络地址及域名信息的系统。

来源: 新华网
详情: http://t.cn/ESR5Ioo 

日本欲开发电脑病毒来抵御网络攻击

据外媒报道,消息人士称,日本将在明年 3 月之前开发出首个用于抵御网络攻击的电脑病毒。消息人士周一表示,日本防卫省正在考虑一种能够侵入电脑系统的恶意软件,希望借此起到威慑网络攻击的作用。

来源: cnBeta.COM

详情: http://t.cn/ESRtwEF 

助力线上隐私保护:DuckDuckGo提出《请勿追踪》立法草案

注重用户隐私安全的 DuckDuckGo,刚刚宣布了一份《2019 请勿追踪》草案。尽管不会很快成为正式的法律,但 DuckDuckGo 还是希望此举能够敦促网站尊重用户的“Do-Not-Track”选项设置,成为国内外立法机构通过此类隐私法案的一个参考起点。今年早些时候,DuckDuckGo 进行了一项研究,发现 1/4 的用户已经开启了“请勿追踪”的设置,约为 7500 万美国人和 1.15 亿欧盟公民。

来源: cnBeta.COM

详情: http://t.cn/ESRtGiC 

(信息来源于网络,安华金和搜集整理)

如何在 Linux 上安装、配置 NTP 服务器和客户端?

$
0
0

你也许听说过这个词很多次或者你可能已经在使用它了。在这篇文章中我将会清晰的告诉你 NTP 服务器和客户端的安装。

之后我们将会了解 Chrony NTP 客户端的安装

什么是 NTP 服务?

NTP 意即网络时间协议Network Time Protocol。它是通过网络在计算机系统之间进行时钟同步的网络协议。换言之,它可以让那些通过 NTP 或者 Chrony 客户端连接到 NTP 服务器的系统保持时间上的一致(它能保持一个精确的时间)。

NTP 在公共互联网上通常能够保持时间延迟在几十毫秒以内的精度,并在理想条件下,它能在局域网下达到低于一毫秒的延迟精度。

它使用用户数据报协议(UDP)在端口 123 上发送和接受时间戳。它是个 C/S 架构的应用程序。

NTP 客户端

NTP 客户端将其时钟与网络时间服务器同步。

Chrony 客户端

Chrony 是 NTP 客户端的替代品。它能以更精确的时间更快的同步系统时钟,并且它对于那些不总是在线的系统很有用。

为什么我们需要 NTP 服务?

为了使你组织中的所有服务器与基于时间的作业保持精确的时间同步。

为了说明这点,我将告诉你一个场景。比如说,我们有两个服务器(服务器 1 和服务器 2)。服务器 1 通常在 10:55 完成离线作业,然后服务器 2 在 11:00 需要基于服务器 1 完成的作业报告去运行其他作业。

如果两个服务器正在使用不同的时间(如果服务器 2 时间比服务器 1 提前,服务器 1 的时间就落后于服务器 2),然后我们就不能去执行这个作业。为了达到时间一致,我们应该安装 NTP。

希望上述能清除你对于 NTP 的疑惑。

在这篇文章中,我们将使用下列设置去测试。

  • NTP 服务器: 主机名:CentOS7.2daygeek.com,IP:192.168.1.8,OS:CentOS 7
  • NTP 客户端: 主机名:Ubuntu18.2daygeek.com,IP:192.168.1.5,OS:Ubuntu 18.04

NTP 服务器端:如何在 Linux 上安装 NTP?

因为它是 C/S 架构,所以 NTP 服务器端和客户端的安装包没有什么不同。在发行版的官方仓库中都有 NTP 安装包,因此可以使用发行版的包管理器安装它。

对于 Fedora 系统,使用 DNF 命令 去安装 ntp。

$ sudo dnf install ntp

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或者 APT 命令 去安装 ntp。

$ sudo apt install ntp

对基于 Arch Linux 的系统,使用 Pacman 命令 去安装 ntp。

$ sudo pacman -S ntp

对 RHEL/CentOS 系统,使用 YUM 命令 去安装 ntp。

$ sudo yum install ntp

对于 openSUSE Leap 系统,使用 Zypper 命令 去安装 ntp。

$ sudo zypper install ntp

如何在 Linux 上配置 NTP 服务器?

安装 NTP 软件包后,请确保在服务器端的 /etc/ntp.conf 文件中取消以下配置的注释。

默认情况下,NTP 服务器配置依赖于 X.distribution_name.pool.ntp.org。 如果有必要,可以使用默认配置,也可以访问https://www.ntppool.org/zone/@站点,根据你所在的位置(特定国家/地区)进行更改。

比如说如果你在印度,然后你的 NTP 服务器将是 0.in.pool.ntp.org,并且这个地址适用于大多数国家。

# vi /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

我们仅允许 192.168.1.0/24 子网的客户端访问这个 NTP 服务器。

由于默认情况下基于 RHEL7 的发行版的防火墙是打开的,因此要允许 ntp 服务通过。

# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload

更新配置后要重启服务:

对于 sysvinit 系统。基于 Debian 的系统需要去运行 ntp 而不是 ntpd

# service ntpd restart
# chkconfig ntpd on

对于 systemctl 系统。基于 Debian 的需要去运行 ntpntpd

# systemctl restart ntpd
# systemctl enable ntpd

NTP 客户端:如何在 Linux 上安装 NTP 客户端?

正如我在这篇文章中前面所说的。NTP 服务器端和客户端的安装包没有什么不同。因此在客户端上也安装同样的软件包。

对于 Fedora 系统,使用 DNF 命令 去安装 ntp。

$ sudo dnf install ntp

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或者 APT 命令 去安装 ntp。

$ sudo apt install ntp

对基于 Arch Linux 的系统,使用 Pacman 命令 去安装 ntp。

$ sudo pacman -S ntp

对 RHEL/CentOS 系统,使用 YUM 命令 去安装 ntp。

$ sudo yum install ntp

对于 openSUSE Leap 系统,使用 Zypper 命令 去安装 ntp。

$ sudo zypper install ntp

我已经在 CentOS7.2daygeek.com` 这台主机上安装和配置了 NTP 服务器,因此将其附加到所有的客户端机器上。

# vi /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server CentOS7.2daygeek.com prefer iburst
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

更新配置后重启服务:

对于 sysvinit 系统。基于 Debian 的系统需要去运行 ntp 而不是 ntpd

# service ntpd restart
# chkconfig ntpd on

对于 systemctl 系统。基于 Debian 的需要去运行 ntpntpd

# systemctl restart ntpd
# systemctl enable ntpd

重新启动 NTP 服务后等待几分钟以便从 NTP 服务器获取同步的时间。

在 Linux 上运行下列命令去验证 NTP 服务的同步状态。

# ntpq –p
或
# ntpq -pn

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*CentOS7.2daygee 133.243.238.163  2 u   14   64   37    0.686    0.151  16.432

运行下列命令去得到 ntpd 的当前状态。

# ntpstat
synchronised to NTP server (192.168.1.8) at stratum 3
   time correct to within 508 ms
   polling server every 64 s

最后运行 date 命令。

# date
Tue Mar 26 23:17:05 CDT 2019

如果你观察到 NTP 中输出的时间偏移很大。运行下列命令从 NTP 服务器手动同步时钟。当你执行下列命令的时候,确保你的 NTP 客户端应该为未活动状态。(LCTT 译注:当时间偏差很大时,客户端的自动校正需要花费很长时间才能逐步追上,因此应该手动运行以更新)

# ntpdate –uv CentOS7.2daygeek.com

via: https://www.2daygeek.com/install-configure-ntp-server-ntp-client-in-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:arrowfeng 校对:wxy

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


什么是 5G?它比 4G 好在哪里?

$
0
0

5G 网络将使无线网络吞吐量提高 10 倍并且能够替代有线宽带。但是它们什么时候能够投入使用呢,为什么 5G 和物联网如此紧密地联系在一起呢?

Thinkstock

5G 无线 是一个概括的术语,用来描述一系列更快的无线互联网的标准和技术,理论上比 4G 快了 20 倍并且延迟降低了 120 倍,为物联网的发展和对新的高带宽应用的支持奠定了基础。

什么是 5G?科技还是流行词?

这个技术在世界范围内完全发挥它的潜能还需要数年时间,但同时当今一些 5G 网络服务已经投入使用。5G 不仅是一个技术术语,也是一个营销术语,并不是市场上的所有 5G 服务是标准的。

5G 与 4G 的速度对比

无线技术的每一代,最大的呼吁是增加速度。5G 网络潜在的峰值下载速度可以达到20 Gbps,一般在 10 Gbps。这不仅仅比当前 4G 网络更快,4G 目前峰值大约 1 Gbps,并且比更多家庭的有线网络连接更快。5G 提供的网络速度能够与光纤一较高下。

吞吐量不是 5G 仅有的速度提升;它还有的特点是极大降低了网络延迟。这是一个重要的区分:吞吐量用来测量花费多久来下载一个大文件,而延迟由网络瓶颈决定,延迟在往返的通讯中减慢了响应速度。

延迟很难量化,因为它因各种网络状态变化而变化,但是 5G 网络在理想情况下有能力使延迟率在 1 ms 内。总的来说,5G 延迟将比 4G 降低 60 到 120 倍。这会使很多应用变得可能,例如当前虚拟现实的延迟使它变得不实际。

5G 技术

5G 技术的基础有一系列标准定义,在过去的 10 年里一直在研究更好的部分。这些里面最重要的是 5G New Radio(5G NR),由 3GPP(一个为移动电话开发协议的标准化组织)组织标准化。5G NR 规定了很多 5G 设备操作的方式,于 2018 年 7 月 完成终版

很多独特的技术同时出现来尽可能地提升 5G 的速度并降低延迟,下面是一些重要的。

毫米波

5G 网络大部分使用在 30 到 300 GHz 范围的频率。(正如名称一样,这些频率的波长在 1 到 10 毫米之间)这些高频范围能够在每个时间单元比低频信号携带更多的信息,4G LTE 当前使用的就是通常频率在 1 GHz 以下的低频信号,或者 WiFi,最高 6 GHz。

毫米波技术传统上是昂贵并且难于部署的。科技进步已经克服了这些困难,这也是 5G 在如今成为了可能的原因。

小蜂窝

毫米波传输的一个缺点是当它们传输通过物理对象的时候比 4G 或 WiFi 信号更容易被干扰。

为了克服这些,5G 基础设施的模型将不同于 4G。替代了大的像景观一样移动天线桅杆,5G 网络将由分布在城市中大概间距 250 米的更小的基站提供支持,创建更小的服务区域。

这些 5G 基站的功率要求低于 4G,并且可以更容易地连接到建筑物和电线杆上。

大量的 MIMO

尽管 5G 基站比 4G 的对应部分小多了,但它们却带了更多的天线。这些天线是多输入多输出的(MIMO),意味着在相同的数据信道能够同时处理多个双向会话。5G 网络能够处理比 4G 网络超过 20 倍的会话。

大量的 MIMO 保证了基站容量限制下的极大提升,允许单个基站承载更多的设备会话。这就是 5G 可能推动物联网更广泛应用的原因。理论上,更多的连接到互联网的无线设备能够部署在相同的空间而不会使网络被压垮。

波束成形

确保所有的会话来回地到达正确的地方是比较棘手的,尤其是前面提到的毫米波信号的干涉问题。为了克服这些问题,5G 基站部署了更高级的波束技术,使用建设性和破坏性的无线电干扰来使信号有向而不是广播。这在一个特定的方向上有效地加强了信号强度和范围。

5G 可获得性

第一个 5G 商用网络 2018 年 5 月在卡塔尔推出。自那以后,5G 网络已经扩展到全世界,从阿根廷到越南。Lifewire 有一个不错的,经常更新的列表.

牢记一点的是,尽管这样,目前不是所有的 5G 网络都履行了所有的技术承诺。一些早期的 5G 产品依赖于现有的 4G 基础设施,减少了可以获得的潜在速度;其它服务为了市场目的而标榜 5G 但是并不符合标准。仔细观察美国无线运营商的产品都会发现一些陷阱。

无线运营商和 5G

技术上讲,5G 服务如今在美国已经可获得了。但声明中包含的注意事项因运营商而异,表明 5G 普及之前还有很长的路要走。

Verizon 可能是早期 5G 最大的推动者。它宣告到 2018 年 10 月 将有 4 个城市成为 5G 家庭的一部分,这是一项需要你的其他设备通过 WiFi 来连接特定的 5G 热点,由热点连接到网络的服务。

Verizon 计划四月在 Minneapolis 和 Chicago 发布 5G 移动服务,该服务将在这一年内传播到其他城市。访问 5G 网络将需要消费者每月额外花费费用,加上购买能够实际访问 5G 的手机花费(稍后会详细介绍)。另外,Verizon 的部署被称作 5G TF,实际上不符合 5G NR 的标准。

AT&T 声明在 2018 年 12 月将有美国的 12 个城市可以使用 5G,在 2019 年的末尾将增加 9 个城市,但最终在这些城市里,只有市中心商业区能够访问。为了访问 5G 网络,需要一个特定的 Netgear 热点来连接到 5G 服务,然后为手机和其他设备提供一个 Wi-Fi 信号。

与此同时,AT&T 也在推出 4G 网络的速度提升计划,被成为 5GE,即使这些提升和 5G 网络没有关系。(这会向后兼容

Sprint 将在 2019 年 5 月之前在四个城市提供 5G 服务,在年末将有更多。但是 Sprint 的 5G 产品充分利用了 MIMO 单元,他们没有使用毫米波信道,意味着 Sprint 的用户不会看到像其他运营商一样的速度提升。

T-Mobile 采用相似的模型,它在 2019 年年底之前不会推出 5G 服务,因为他们没有手机能够连接到它。

一个可能阻止 5G 速度的迅速传播的障碍是需要铺开所有这些小蜂窝基站。它们小的尺寸和较低的功耗需求使它们技术上比 4G 技术更容易部署,但这不意味着它能够很简单的使政府和财产拥有者信服到处安装一堆基站。Verizon 实际上建立了向本地民选官员请愿的网站来加速 5G 基站的部署。

5G 手机:何时可获得?何时可以买?

第一部声称为 5G 手机的是 Samsung Galaxy S10 5G,将在 2019 年夏末首发。你也可以从 Verizon 订阅一个“UBID=7105813&cjevent=2e2150cb478c11e98183013b0a1c0e0c">Moto Mod”,用来转换 Moto Z3 手机为 5G 兼容设备

但是除非你不能忍受作为一个早期使用者的诱惑,你会希望再等待一下;一些关于运营商的奇怪和突显的问题意味着可能你的手机不兼容你的运营商的整个 5G 网络

一个可能令你吃惊的落后者是苹果:分析者确信最早直到 2020 年以前 iPhone 不会与 5G 兼容。但这符合该公司的特点;苹果在 2012 年末也落后于三星发布兼容 4G 的手机。

不可否认,5G 洪流已经到来。5G 兼容的设备在 2019 年统治了巴塞罗那世界移动大会,因此期待视野里有更多的选择。

为什么人们已经在讨论 6G 了?

一些专家说缺点是5G 不能够达到延迟和可靠性的目标。这些完美主义者已经在探寻 6G,来试图解决这些缺点。

有一个研究新的能够融入 6G 技术的小组,自称为“融合 TeraHertz 通信与传感中心”(ComSenTer)。根据说明,他们努力让每个设备的带宽达到 100Gbps。

除了增加可靠性,还突破了可靠性并增加速度,6G 同样试图允许上千的并发连接。如果成功的话,这个特点将帮助物联网设备联网,使在工业设置中部署上千个传感器。

即使仍在胚胎当中,6G 已经由于新发现的 在基于 tera-hretz 的网络中潜在的中间人攻击的紧迫性面临安全的考虑。好消息是有大量时间来解决这个问题。6G 网络直到 2030 之前才可能出现。

阅读更多关于 5G 网络:


via: https://www.networkworld.com/article/3203489/what-is-5g-how-is-it-better-than-4g.html

作者:Josh Fruhlinger 选题:lujun9972 译者:warmfrog 校对:wxy

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

每日安全资讯:保险公司以“网络战”为由拒绝为网络攻击理赔

$
0
0

2017 年的 NotPetya 网络攻击给亿滋国际Mondelez International(前身卡夫食品,奥利奥饼干制造商)造成了超过 1 亿美元经济损失。该公司的高管以为保险公司会帮他们承担损失,然而亿滋的承保人苏黎世保险Zurich Insurance以保险合同中“战争除外”条款拒绝报销费用。

2018 年,美国政府认定俄罗斯是 NotPetya 网络攻击幕后主使,当政府官员放肆地点名羞辱网络攻击的国家级支持者,却白送给保险公司一个拒绝的理由——“网络战”。亿滋于去年起诉了苏黎世保险。于此同时默沙东制药Merck起诉了 20 多家拒绝理赔的保险公司,NotPetya 攻击给默沙东造成 7 亿美元损失。

这两个案件可能数年后才得以解决,卡内基国际和平基金会高级研究员 Ariel Levite 认为,“我们所面临的风险是,未来的网络保险可能一文不值。”这不是第一次保险公司使用战时条款免责,1970 年解放巴勒斯坦人民阵线劫持泛美航空 93 号班机,并致坠毁,法庭驳回了安泰人寿Aetna的企图:这是犯罪,而不是战争行为。

在亿滋和默沙东的案件中,核心问题是 NotPetya 攻击是否符合“战争例外”条款,而我们至今不清楚网络战到底是什么样,事实上也没有人与亿滋“交战”,前保险巨头美国国际集团(AIG)首席运营官 Ty Sagalow 认为这是一个灰色地带。

网络攻击带来的连带损害越来越普遍,“这就是今天的网络,如果你不喜欢它,你就不应该经商。”

来源:solidot.org

更多资讯

17 岁安全研究人员发现戴尔电脑的 SupportAssist 存在严重缺陷

如果您使用戴尔 Windows PC,那么肯定了解该公司的 SupportAssist 应用程序,该应用程序预先安装在几乎所有戴尔品牌的 Windows PC,旨在帮助用户处理各种事务,从下载驱动程序到硬件检查。简而言之,SupportAssist 应用程序可以处理您电脑的健康状况。但是,一位 17 岁的安全研究人员在 SupportAssist 应用程序中发现了远程代码执行(RCE)漏洞。

来源: cnBeta.COM

详情: http://t.cn/ESdKQes 

Windows 10 将保护用户在 Google Chrome 隐身模式中输入的文字

微软已经提出了在私有模式下运行 Chromium 浏览器(如 Google Chrome)时改善用户隐私的计划,从而解决了当前操作系统中最大的问题之一。微软表示,在 Windows 10 上,每当用户以隐身模式启动 Google Chrome 时,其键入的数据都应该受到保护,不应留下任何浏览痕迹。

来源: cnBeta.COM

详情: http://t.cn/ESdKezQ 

Mozilla 更新扩展政策 宣布禁止混淆代码

Mozilla 更新了它的扩展政策,明确禁止含有混淆代码的扩展。这一政策将于 6 月 10 日生效,扩展开发者需要在一个月内更新扩展以避免违反扩展政策。Mozilla 表示此举有助于更好的处理恶意扩展。混淆代码通常被黑客用于隐藏程序的真正用途。

来源: solidot.org

详情: http://t.cn/ESd97T3 

2019 年第 1 季度网络钓鱼报告:微软是攻击者最爱模仿的服务品牌

最新报告显示 2019 年第 1 季度,通过社交媒体开展的网络钓鱼行为数量同比增长了 74.7%。根据电子邮件预防公司 Vade Secure 近期公布的网络钓鱼报告显示,由于可以通过 Office 365 中获取丰厚的数据,因此微软已经连续 4 个季度成为黑客重点攻击的目标。

来源: cnBeta.COM

详情: http://t.cn/ESd9y2X 

(信息来源于网络,安华金和搜集整理)

8 个你应该了解的环保开源项目

$
0
0

通过给这些致力于提升环境的项目做贡献来庆祝地球日。

在过去的几年里,我一直在帮助 Greenpeace 建立其第一个完全开源的软件项目,Planet 4. Planet 4 是一个全球参与平台,Greenpeace 的支持者和活动家可以互动并参与组织。它的目标是让人们代表我们的星球采取行动。我们希望邀请参与并利用人力来应对气候变化和塑料污染等全球性问题。开发者、设计师、作者、贡献者和其他通过开源支持环保主义的人都非常欢迎参与进来

Planet 4 远非唯一关注环境的开源项目。对于地球日,我会分享其他七个关注我们星球的开源项目。

Eco Hacker Farm 致力于支持可持续社区。它建议并支持将黑客空间/黑客基地和永续农业生活结合在一起的项目。该组织还有在线项目。访问其 wikiTwitter 了解有关 Eco Hacker Farm 正在做的更多信息。

Public Lab 是一个开放社区和非营利组织,它致力于将科学掌握在公民手中。它于 2010 年在 BP 石油灾难后形成,Public Lab 与开源合作,协助环境勘探和调查。它是一个多元化的社区,有很多方法可以做贡献

不久前,Opensource.com 的社区管理者 Don Watkins 撰写了一篇 Open Climate Workbench 的文章,该项目来自 Apache 基金会。 OCW 提供了进行气候建模和评估的软件,可用于各种应用。

Open Source Ecology 是一个旨在改善经济运作方式的项目。该项目着眼于环境再生和社会公正,它旨在重新界定我们的一些肮脏的生产和分配技术,以创造一个更可持续的文明。

促进开源和大数据工具之间的合作,以实现海洋、大气、土地和气候的研究,“ Pangeo 是第一个推广开放、可重复和可扩展科学的社区。”大数据可以改变世界!

Leaflet 是一个著名的开源 JavaScript 库。它可以做各种各样的事情,包括环保项目,如 Arctic Web Map,它能让科学家准确地可视化和分析北极地区,这是气候研究的关键能力。

当然,没有我在 Mozilla 的朋友就没有这个列表(这不是个完整的列表!)。Mozilla Science Lab 社区就像所有 Mozilla 项目一样,非常开放,它致力于将开源原则带给科学界。它的项目和社区使科学家能够进行我们世界所需的各种研究,以解决一些最普遍的环境问题。

如何贡献

在这个地球日,做为期六个月的承诺,将一些时间贡献给一个有助于应对气候变化的开源项目,或以其他方式鼓励人们保护地球母亲。肯定还有许多关注环境的开源项目,所以请在评论中留言!


via: https://opensource.com/article/19/4/environment-projects

作者:Laura Hilliger 选题:lujun9972 译者:geekpi 校对:wxy

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

在 Linux 中如何使用 iotop 和 iostat 监控磁盘 I/O 活动?

$
0
0

你知道在 Linux 中我们使用什么工具检修和监控实时的磁盘活动吗?如果 Linux 系统性能变慢,我们会用 top 命令 来查看系统性能。它被用来检查是什么进程在服务器上占有如此高的使用率,对于大多数 Linux 系统管理员来说很常见,现实世界中被 Linux 系统管理员广泛采用。

如果在进程输出中你没有看到很大的不同,你仍然有选择查看其他东西。我会建议你在 top 输出中检查 wa 状态,因为大多数时间里服务器性能由于在硬盘上的高 I/O 读和写降低了性能。如果它很高或者波动,很可能就是它造成的。因此,我们需要检查硬盘上的 I/O 活动。

我们可以在 Linux 中使用 iotopiostat 命令监控所有的磁盘和文件系统的磁盘 I/O 统计。

什么是 iotop?

iotop 是一个类似 top 的工具,用来显示实时的磁盘活动。

iotop 监控 Linux 内核输出的 I/O 使用信息,并且显示一个系统中进程或线程的当前 I/O 使用情况。

它显示每个进程/线程读写 I/O 带宽。它同样显示当等待换入和等待 I/O 的线程/进程花费的时间的百分比。

Total DISK READTotal DISK WRITE 的值一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。

Actual DISK READActual DISK WRITE 的值表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。

如何在 Linux 中安装 iotop ?

我们可以轻松在包管理器的帮助下安装,因为该软件包在所有的 Linux 发行版仓库中都可以获得。

对于 Fedora 系统,使用 DNF 命令 来安装 iotop

$ sudo dnf install iotop

对于 Debian/Ubuntu 系统,使用 API-GET 命令 或者 APT 命令 来安装 iotop

$ sudo apt install iotop

对于基于 Arch Linux 的系统,使用 Pacman Command 来安装 iotop

$ sudo pacman -S iotop

对于 RHEL/CentOS 的系统,使用 YUM Command 来安装 iotop

$ sudo yum install iotop

对于使用 openSUSE Leap 的系统,使用 Zypper Command 来安装 iotop

$ sudo zypper install iotop

在 Linux 中如何使用 iotop 命令来监控磁盘 I/O 活动/统计?

iotop 命令有很多参数来检查关于磁盘 I/O 的变化:

# iotop

10

如果你想检查那个进程实际在做 I/O,那么运行 iotop 命令加上 -o 或者 --only 参数。

# iotop --only

11

细节:

  • IO:它显示每个进程的 I/O 利用率,包含磁盘和交换。
  • SWAPIN: 它只显示每个进程的交换使用率。

什么是 iostat?

iostat 被用来报告中央处理单元(CPU)的统计和设备与分区的输出/输出的统计。

iostat 命令通过观察与它们平均传输率相关的设备活跃时间来监控系统输入/输出设备负载。

iostat 命令生成的报告可以被用来改变系统配置来更好的平衡物理磁盘之间的输入/输出负载。

所有的统计都在 iostat 命令每次运行时被报告。该报告包含一个 CPU 头部,后面是一行 CPU 统计。

在多处理器系统中,CPU 统计被计算为系统层面的所有处理器的平均值。设备头行后紧跟显示每个配置的设备一行的统计。

iostat 命令生成两种类型的报告,CPU 利用率报告和设备利用率报告。

在 Linux 中怎样安装 iostat?

iostat 工具是 sysstat 包的一部分,所以我们可以轻松地在包管理器地帮助下安装,因为在所有的 Linux 发行版的仓库都是可以获得的。

对于 Fedora 系统,使用 DNF Command 来安装 sysstat

$ sudo dnf install sysstat

对于 Debian/Ubuntu 系统,使用 APT-GET Command 或者 APT Command 来安装 sysstat

$ sudo apt install sysstat

对于基于 Arch Linux 的系统,使用 Pacman Command 来安装 sysstat

$ sudo pacman -S sysstat

对于 RHEL/CentOS 系统,使用 YUM Command 来安装 sysstat

$ sudo yum install sysstat

对于 openSUSE Leap 系统,使用 Zypper Command 来安装 sysstat

$ sudo zypper install sysstat

在 Linux 中如何使用 sysstat 命令监控磁盘 I/O 活动/统计?

iostat 命令中有很多参数来检查关于 I/O 和 CPU 的变化统计信息。

不加参数运行 iostat 命令会看到完整的系统统计。

# iostat

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.45    0.02   16.47    0.12    0.00   53.94

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
nvme0n1           6.68       126.95       124.97         0.00   58420014   57507206          0
sda               0.18         6.77        80.24         0.00    3115036   36924764          0
loop0             0.00         0.00         0.00         0.00       2160          0          0
loop1             0.00         0.00         0.00         0.00       1093          0          0
loop2             0.00         0.00         0.00         0.00       1077          0          0

运行 iostat 命令加上 -d 参数查看所有设备的 I/O 统计。

# iostat -d

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
nvme0n1           6.68       126.95       124.97         0.00   58420030   57509090          0
sda               0.18         6.77        80.24         0.00    3115292   36924764          0
loop0             0.00         0.00         0.00         0.00       2160          0          0
loop1             0.00         0.00         0.00         0.00       1093          0          0
loop2             0.00         0.00         0.00         0.00       1077          0          0

运行 iostat 命令加上 -p 参数查看所有的设备和分区的 I/O 统计。

# iostat -p

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.42    0.02   16.45    0.12    0.00   53.99

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
nvme0n1           6.68       126.94       124.96         0.00   58420062   57512278          0
nvme0n1p1         6.40       124.46       118.36         0.00   57279753   54474898          0
nvme0n1p2         0.27         2.47         6.60         0.00    1138069    3037380          0
sda               0.18         6.77        80.23         0.00    3116060   36924764          0
sda1              0.00         0.01         0.00         0.00       3224          0          0
sda2              0.18         6.76        80.23         0.00    3111508   36924764          0
loop0             0.00         0.00         0.00         0.00       2160          0          0
loop1             0.00         0.00         0.00         0.00       1093          0          0
loop2             0.00         0.00         0.00         0.00       1077          0          0

运行 iostat 命令加上 -x 参数显示所有设备的详细的 I/O 统计信息。

# iostat -x

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.41    0.02   16.45    0.12    0.00   54.00

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz  aqu-sz  %util
nvme0n1          2.45    126.93     0.60  19.74    0.40    51.74    4.23    124.96     5.12  54.76    3.16    29.54    0.00      0.00     0.00   0.00    0.00     0.00    0.31  30.28
sda              0.06      6.77     0.00   0.00    8.34   119.20    0.12     80.23    19.94  99.40   31.84   670.73    0.00      0.00     0.00   0.00    0.00     0.00    0.00   0.13
loop0            0.00      0.00     0.00   0.00    0.08    19.64    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00   0.00
loop1            0.00      0.00     0.00   0.00    0.40    12.86    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00   0.00
loop2            0.00      0.00     0.00   0.00    0.38    19.58    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00   0.00

运行 iostat 命令加上 -d [设备名] 参数查看具体设备和它的分区的 I/O 统计信息。

# iostat -p [Device_Name]

# iostat -p sda

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.38    0.02   16.43    0.12    0.00   54.05

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda               0.18         6.77        80.21         0.00    3117468   36924764          0
sda2              0.18         6.76        80.21         0.00    3112916   36924764          0
sda1              0.00         0.01         0.00         0.00       3224          0          0

运行 iostat 命令加上 -m 参数以 MB 为单位而不是 KB 查看所有设备的统计。默认以 KB 显示输出。

# iostat -m

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.36    0.02   16.41    0.12    0.00   54.09

Device             tps    MB_read/s    MB_wrtn/s    MB_dscd/s    MB_read    MB_wrtn    MB_dscd
nvme0n1           6.68         0.12         0.12         0.00      57050      56176          0
sda               0.18         0.01         0.08         0.00       3045      36059          0
loop0             0.00         0.00         0.00         0.00          2          0          0
loop1             0.00         0.00         0.00         0.00          1          0          0
loop2             0.00         0.00         0.00         0.00          1          0          0

运行 iostat 命令使用特定的间隔使用如下的格式。在这个例子中,我们打算以 5 秒捕获的间隔捕获两个报告。

# iostat [Interval] [Number Of Reports]

# iostat 5 2

Linux 4.19.32-1-MANJARO (daygeek-Y700)  Thursday 18 April 2019  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.35    0.02   16.41    0.12    0.00   54.10

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
nvme0n1           6.68       126.89       124.95         0.00   58420116   57525344          0
sda               0.18         6.77        80.20         0.00    3118492   36924764          0
loop0             0.00         0.00         0.00         0.00       2160          0          0
loop1             0.00         0.00         0.00         0.00       1093          0          0
loop2             0.00         0.00         0.00         0.00       1077          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.71    0.00    2.51    0.05    0.00   93.73

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
nvme0n1          19.00         0.20       311.40         0.00          1       1557          0
sda               0.20        25.60         0.00         0.00        128          0          0
loop0             0.00         0.00         0.00         0.00          0          0          0
loop1             0.00         0.00         0.00         0.00          0          0          0
loop2             0.00         0.00         0.00         0.00          0          0          0

运行 iostat 命令与 -N 参数来查看 LVM 磁盘 I/O 统计报告。

# iostat -N

Linux 4.15.0-47-generic (Ubuntu18.2daygeek.com)     Thursday 18 April 2019  _x86_64_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.38    0.07    0.18    0.26    0.00   99.12

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.60        57.07        69.06     968729    1172340
sdb               0.02         0.33         0.00       5680          0
sdc               0.01         0.12         0.00       2108          0
2g-2gvol1         0.00         0.07         0.00       1204          0

运行 nfsiostat 命令来查看 Network File System(NFS)的 I/O 统计。

# nfsiostat

via: https://www.2daygeek.com/check-monitor-disk-io-in-linux-using-iotop-iostat-command/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:warmfrog 校对:wxy

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

关于 /dev/urandom 的流言终结

$
0
0

有很多关于 /dev/urandom/dev/random 的流言在坊间不断流传。然而流言终究是流言。

本篇文章里针对的都是近来的 Linux 操作系统,其它类 Unix 操作系统不在讨论范围内。

/dev/urandom 不安全。加密用途必须使用 /dev/random

事实/dev/urandom 才是类 Unix 操作系统下推荐的加密种子。

/dev/urandom伪随机数生成器pseudo random number generator(PRND),而 /dev/random 是“真”随机数生成器。

事实:它们两者本质上用的是同一种 CSPRNG (一种密码学伪随机数生成器)。它们之间细微的差别和“真”“不真”随机完全无关。(参见:“Linux 随机数生成器的构架”一节)

/dev/random 在任何情况下都是密码学应用更好地选择。即便 /dev/urandom 也同样安全,我们还是不应该用它。

事实/dev/random 有个很恶心人的问题:它是阻塞的。(参见:“阻塞有什么问题?”一节)(LCTT 译注:意味着请求都得逐个执行,等待前一个请求完成)

但阻塞不是好事吗!/dev/random 只会给出电脑收集的信息熵足以支持的随机量。/dev/urandom 在用完了所有熵的情况下还会不断吐出不安全的随机数给你。

事实:这是误解。就算我们不去考虑应用层面后续对随机种子的用法,“用完信息熵池”这个概念本身就不存在。仅仅 256 位的熵就足以生成计算上安全的随机数很长、很长的一段时间了。(参见:“那熵池快空了的情况呢?”一节)

问题的关键还在后头:/dev/random 怎么知道有系统会多少可用的信息熵?接着看!

但密码学家老是讨论重新选种子(re-seeding)。这难道不和上一条冲突吗?

事实:你说的也没错!某种程度上吧。确实,随机数生成器一直在使用系统信息熵的状态重新选种。但这么做(一部分)是因为别的原因。(参见:“重新选种”一节)

这样说吧,我没有说引入新的信息熵是坏的。更多的熵肯定更好。我只是说在熵池低的时候阻塞是没必要的。

好,就算你说的都对,但是 /dev/(u)random 的 man 页面和你说的也不一样啊!到底有没有专家同意你说的这堆啊?

事实:其实 man 页面和我说的不冲突。它看似好像在说 /dev/urandom 对密码学用途来说不安全,但如果你真的理解这堆密码学术语你就知道它说的并不是这个意思。(参见:“random 和 urandom 的 man 页面”一节)

man 页面确实说在一些情况下推荐使用 /dev/random (我觉得也没问题,但绝对不是说必要的),但它也推荐在大多数“一般”的密码学应用下使用 /dev/urandom

虽然诉诸权威一般来说不是好事,但在密码学这么严肃的事情上,和专家统一意见是很有必要的。

所以说呢,还确实有一些专家和我的一件事一致的:/dev/urandom 就应该是类 UNIX 操作系统下密码学应用的首选。显然的,是他们的观点说服了我而不是反过来的。(参见:“正道”一节)


难以相信吗?觉得我肯定错了?读下去看我能不能说服你。

我尝试不讲太高深的东西,但是有两点内容必须先提一下才能让我们接着论证观点。

首当其冲的,什么是随机性,或者更准确地:我们在探讨什么样的随机性?(参见:“真随机”一节)

另外一点很重要的是,我没有尝试以说教的态度对你们写这段话。我写这篇文章是为了日后可以在讨论起的时候指给别人看。比 140 字长(LCTT 译注:推特长度)。这样我就不用一遍遍重复我的观点了。能把论点磨炼成一篇文章本身就很有助于将来的讨论。(参见:“你是在说我笨?!”一节)

并且我非常乐意听到不一样的观点。但我只是认为单单地说 /dev/urandom 坏是不够的。你得能指出到底有什么问题,并且剖析它们。

你是在说我笨?!

绝对没有!

事实上我自己也相信了 “/dev/urandom 是不安全的” 好些年。这几乎不是我们的错,因为那么德高望重的人在 Usenet、论坛、推特上跟我们重复这个观点。甚至连 man 手册都似是而非地说着。我们当年怎么可能鄙视诸如“信息熵太低了”这种看上去就很让人信服的观点呢?(参见:“random 和 urandom 的 man 页面”一节)

整个流言之所以如此广为流传不是因为人们太蠢,而是因为但凡有点关于信息熵和密码学概念的人都会觉得这个说法很有道理。直觉似乎都在告诉我们这流言讲的很有道理。很不幸直觉在密码学里通常不管用,这次也一样。

真随机

随机数是“真正随机”是什么意思?

我不想搞的太复杂以至于变成哲学范畴的东西。这种讨论很容易走偏因为对于随机模型大家见仁见智,讨论很快变得毫无意义。

在我看来“真随机”的“试金石”是量子效应。一个光子穿过或不穿过一个半透镜。或者观察一个放射性粒子衰变。这类东西是现实世界最接近真随机的东西。当然,有些人也不相信这类过程是真随机的,或者这个世界根本不存在任何随机性。这个就百家争鸣了,我也不好多说什么了。

密码学家一般都会通过不去讨论什么是“真随机”来避免这种哲学辩论。他们更关心的是不可预测性unpredictability。只要没有任何方法能猜出下一个随机数就可以了。所以当你以密码学应用为前提讨论一个随机数好不好的时候,在我看来这才是最重要的。

无论如何,我不怎么关心“哲学上安全”的随机数,这也包括别人嘴里的“真”随机数。

两种安全,一种有用

但就让我们退一步说,你有了一个“真”随机变量。你下一步做什么呢?

你把它们打印出来然后挂在墙上来展示量子宇宙的美与和谐?牛逼!我支持你。

但是等等,你说你要它们?做密码学用途?额,那这就废了,因为这事情就有点复杂了。

事情是这样的,你的真随机、量子力学加护的随机数即将被用进不理想的现实世界算法里去。

因为我们使用的几乎所有的算法都并不是信息论安全性information-theoretic security 的。它们“只能”提供计算意义上的安全。我能想到为数不多的例外就只有 Shamir 密钥分享和一次性密码本One-time pad(OTP)算法。并且就算前者是名副其实的(如果你实际打算用的话),后者则毫无可行性可言。

但所有那些大名鼎鼎的密码学算法,AES、RSA、Diffie-Hellman、椭圆曲线,还有所有那些加密软件包,OpenSSL、GnuTLS、Keyczar、你的操作系统的加密 API,都仅仅是计算意义上安全的。

那区别是什么呢?信息论安全的算法肯定是安全的,绝对是,其它那些的算法都可能在理论上被拥有无限计算力的穷举破解。我们依然愉快地使用它们是因为全世界的计算机加起来都不可能在宇宙年龄的时间里破解,至少现在是这样。而这就是我们文章里说的“不安全”。

除非哪个聪明的家伙破解了算法本身 —— 在只需要更少量计算力、在今天可实现的计算力的情况下。这也是每个密码学家梦寐以求的圣杯:破解 AES 本身、破解 RSA 本身等等。

所以现在我们来到了更底层的东西:随机数生成器,你坚持要“真随机”而不是“伪随机”。但是没过一会儿你的真随机数就被喂进了你极为鄙视的伪随机算法里了!

真相是,如果我们最先进的哈希算法被破解了,或者最先进的分组加密算法被破解了,你得到的这些“哲学上不安全”的随机数甚至无所谓了,因为反正你也没有安全的应用方法了。

所以把计算性上安全的随机数喂给你的仅仅是计算性上安全的算法就可以了,换而言之,用 /dev/urandom

Linux 随机数生成器的构架

一种错误的看法

你对内核的随机数生成器的理解很可能是像这样的:

image: mythical structure of the kernel's random number generator

“真正的随机性”,尽管可能有点瑕疵,进入操作系统然后它的熵立刻被加入内部熵计数器。然后经过“矫偏”和“漂白”之后它进入内核的熵池,然后 /dev/random/dev/urandom 从里面生成随机数。

“真”随机数生成器,/dev/random,直接从池里选出随机数,如果熵计数器表示能满足需要的数字大小,那就吐出数字并且减少熵计数。如果不够的话,它会阻塞程序直至有足够的熵进入系统。

这里很重要一环是 /dev/random 几乎只是仅经过必要的“漂白”后就直接把那些进入系统的随机性吐了出来,不经扭曲。

而对 /dev/urandom 来说,事情是一样的。除了当没有足够的熵的时候,它不会阻塞,而会从一直在运行的伪随机数生成器(当然,是密码学安全的,CSPRNG)里吐出“低质量”的随机数。这个 CSPRNG 只会用“真随机数”生成种子一次(或者好几次,这不重要),但你不能特别相信它。

在这种对随机数生成的理解下,很多人会觉得在 Linux 下尽量避免 /dev/urandom 看上去有那么点道理。

因为要么你有足够多的熵,你会相当于用了 /dev/random。要么没有,那你就会从几乎没有高熵输入的 CSPRNG 那里得到一个低质量的随机数。

看上去很邪恶是吧?很不幸的是这种看法是完全错误的。实际上,随机数生成器的构架更像是下面这样的。

更好地简化

Linux 4.8 之前

image: actual structure of the kernel's random number generator before Linux 4.8

你看到最大的区别了吗?CSPRNG 并不是和随机数生成器一起跑的,它在 /dev/urandom 需要输出但熵不够的时候进行填充。CSPRNG 是整个随机数生成过程的内部组件之一。从来就没有什么 /dev/random 直接从池里输出纯纯的随机性。每个随机源的输入都在 CSPRNG 里充分混合和散列过了,这一切都发生在实际变成一个随机数,被 /dev/urandom 或者 /dev/random 吐出去之前。

另外一个重要的区别是这里没有熵计数器的任何事情,只有预估。一个源给你的熵的量并不是什么很明确能直接得到的数字。你得预估它。注意,如果你太乐观地预估了它,那 /dev/random 最重要的特性——只给出熵允许的随机量——就荡然无存了。很不幸的,预估熵的量是很困难的。

这是个很粗糙的简化。实际上不仅有一个,而是三个熵池。一个主池,另一个给 /dev/random,还有一个给 /dev/urandom,后两者依靠从主池里获取熵。这三个池都有各自的熵计数器,但二级池(后两个)的计数器基本都在 0 附近,而“新鲜”的熵总在需要的时候从主池流过来。同时还有好多混合和回流进系统在同时进行。整个过程对于这篇文档来说都过于复杂了,我们跳过。

Linux 内核只使用事件的到达时间来预估熵的量。根据模型,它通过多项式插值来预估实际的到达时间有多“出乎意料”。这种多项式插值的方法到底是不是好的预估熵量的方法本身就是个问题。同时硬件情况会不会以某种特定的方式影响到达时间也是个问题。而所有硬件的取样率也是个问题,因为这基本上就直接决定了随机数到达时间的颗粒度。

说到最后,至少现在看来,内核的熵预估还是不错的。这也意味着它比较保守。有些人会具体地讨论它有多好,这都超出我的脑容量了。就算这样,如果你坚持不想在没有足够多的熵的情况下吐出随机数,那你看到这里可能还会有一丝紧张。我睡的就很香了,因为我不关心熵预估什么的。

最后要明确一下:/dev/random/dev/urandom 都是被同一个 CSPRNG 饲喂的。只有它们在用完各自熵池(根据某种预估标准)的时候,它们的行为会不同:/dev/random 阻塞,/dev/urandom 不阻塞。

Linux 4.8 以后

image: actual structure of the kernel's random number generator from Linux 4.8 onward

在 Linux 4.8 里,/dev/random/dev/urandom 的等价性被放弃了。现在 /dev/urandom 的输出不来自于熵池,而是直接从 CSPRNG 来。

我们很快会理解为什么这不是一个安全问题。(参见:“CSPRNG 没问题”一节)

阻塞有什么问题?

你有没有需要等着 /dev/random 来吐随机数?比如在虚拟机里生成一个 PGP 密钥?或者访问一个在生成会话密钥的网站?

这些都是问题。阻塞本质上会降低可用性。换而言之你的系统不干你让它干的事情。不用我说,这是不好的。要是它不干活你干嘛搭建它呢?

我在工厂自动化里做过和安全相关的系统。猜猜看安全系统失效的主要原因是什么?操作问题。就这么简单。很多安全措施的流程让工人恼火了。比如时间太长,或者太不方便。你要知道人很会找捷径来“解决”问题。

但其实有个更深刻的问题:人们不喜欢被打断。它们会找一些绕过的方法,把一些诡异的东西接在一起仅仅因为这样能用。一般人根本不知道什么密码学什么乱七八糟的,至少正常的人是这样吧。

为什么不禁止调用 random()?为什么不随便在论坛上找个人告诉你用写奇异的 ioctl 来增加熵计数器呢?为什么不干脆就把 SSL 加密给关了算了呢?

到头来如果东西太难用的话,你的用户就会被迫开始做一些降低系统安全性的事情——你甚至不知道它们会做些什么。

我们很容易会忽视可用性之类的重要性。毕竟安全第一对吧?所以比起牺牲安全,不可用、难用、不方便都是次要的?

这种二元对立的想法是错的。阻塞不一定就安全了。正如我们看到的,/dev/urandom 直接从 CSPRNG 里给你一样好的随机数。用它不好吗!

CSPRNG 没问题

现在情况听上去很惨淡。如果连高质量的 /dev/random 都是从一个 CSPRNG 里来的,我们怎么敢在高安全性的需求上使用它呢?

实际上,“看上去随机”是现存大多数密码学基础组件的基本要求。如果你观察一个密码学哈希的输出,它一定得和随机的字符串不可区分,密码学家才会认可这个算法。如果你生成一个分组加密,它的输出(在你不知道密钥的情况下)也必须和随机数据不可区分才行。

如果任何人能比暴力穷举要更有效地破解一个加密,比如它利用了某些 CSPRNG 伪随机的弱点,那这就又是老一套了:一切都废了,也别谈后面的了。分组加密、哈希,一切都是基于某个数学算法,比如 CSPRNG。所以别害怕,到头来都一样。

那熵池快空了的情况呢?

毫无影响。

加密算法的根基建立在攻击者不能预测输出上,只要最一开始有足够的随机性(熵)就行了。“足够”的下限可以是 256 位,不需要更多了。

介于我们一直在很随意的使用“熵”这个概念,我用“位”来量化随机性希望读者不要太在意细节。像我们之前讨论的那样,内核的随机数生成器甚至没法精确地知道进入系统的熵的量。只有一个预估。而且这个预估的准确性到底怎么样也没人知道。

重新选种

但如果熵这么不重要,为什么还要有新的熵一直被收进随机数生成器里呢?

djb 提到 太多的熵甚至可能会起到反效果。

首先,一般不会这样。如果你有很多随机性可以拿来用,用就对了!

但随机数生成器时不时要重新选种还有别的原因:

想象一下如果有个攻击者获取了你随机数生成器的所有内部状态。这是最坏的情况了,本质上你的一切都暴露给攻击者了。

你已经凉了,因为攻击者可以计算出所有未来会被输出的随机数了。

但是,如果不断有新的熵被混进系统,那内部状态会再一次变得随机起来。所以随机数生成器被设计成这样有些“自愈”能力。

但这是在给内部状态引入新的熵,这和阻塞输出没有任何关系。

random 和 urandom 的 man 页面

这两个 man 页面在吓唬程序员方面很有建树:

/dev/urandom 读取数据不会因为需要更多熵而阻塞。这样的结果是,如果熵池里没有足够多的熵,取决于驱动使用的算法,返回的数值在理论上有被密码学攻击的可能性。发动这样攻击的步骤并没有出现在任何公开文献当中,但这样的攻击从理论上讲是可能存在的。如果你的应用担心这类情况,你应该使用 /dev/random

实际上已经有 /dev/random/dev/urandom 的 Linux 内核 man 页面的更新版本。不幸的是,随便一个网络搜索出现我在结果顶部的仍然是旧的、有缺陷的版本。此外,许多 Linux 发行版仍在发布旧的 man 页面。所以不幸的是,这一节需要在这篇文章中保留更长的时间。我很期待删除这一节!

没有“公开的文献”描述,但是 NSA 的小卖部里肯定卖这种攻击手段是吧?如果你真的真的很担心(你应该很担心),那就用 /dev/random 然后所有问题都没了?

然而事实是,可能某个什么情报局有这种攻击,或者某个什么邪恶黑客组织找到了方法。但如果我们就直接假设这种攻击一定存在也是不合理的。

而且就算你想给自己一个安心,我要给你泼个冷水:AES、SHA-3 或者其它什么常见的加密算法也没有“公开文献记述”的攻击手段。难道你也不用这几个加密算法了?这显然是可笑的。

我们在回到 man 页面说:“使用 /dev/random”。我们已经知道了,虽然 /dev/urandom 不阻塞,但是它的随机数和 /dev/random 都是从同一个 CSPRNG 里来的。

如果你真的需要信息论安全性的随机数(你不需要的,相信我),那才有可能成为唯一一个你需要等足够熵进入 CSPRNG 的理由。而且你也不能用 /dev/random

man 页面有毒,就这样。但至少它还稍稍挽回了一下自己:

如果你不确定该用 /dev/random 还是 /dev/urandom ,那你可能应该用后者。通常来说,除了需要长期使用的 GPG/SSL/SSH 密钥以外,你总该使用/dev/urandom

该手册页的当前更新版本毫不含糊地说:

/dev/random 接口被认为是遗留接口,并且 /dev/urandom 在所有用例中都是首选和足够的,除了在启动早期需要随机性的应用程序;对于这些应用程序,必须替代使用 getrandom(2),因为它将阻塞,直到熵池初始化完成。

行。我觉得没必要,但如果你真的要用 /dev/random 来生成 “长期使用的密钥”,用就是了也没人拦着!你可能需要等几秒钟或者敲几下键盘来增加熵,但这没什么问题。

但求求你们,不要就因为“你想更安全点”就让连个邮件服务器要挂起半天。

正道

本篇文章里的观点显然在互联网上是“小众”的。但如果问一个真正的密码学家,你很难找到一个认同阻塞 /dev/random 的人。

比如我们看看 Daniel Bernstein(即著名的 djb)的看法:

我们密码学家对这种胡乱迷信行为表示不负责。你想想,写 /dev/random man 页面的人好像同时相信:

  • (1) 我们不知道如何用一个 256 位长的 /dev/random 的输出来生成一个无限长的随机密钥串流(这是我们需要 /dev/urandom 吐出来的),但与此同时
  • (2) 我们却知道怎么用单个密钥来加密一条消息(这是 SSL,PGP 之类干的事情)

对密码学家来说这甚至都不好笑了

或者 Thomas Pornin 的看法,他也是我在 stackexchange 上见过最乐于助人的一位:

简单来说,是的。展开说,答案还是一样。/dev/urandom 生成的数据可以说和真随机完全无法区分,至少在现有科技水平下。使用比 /dev/urandom “更好的“随机性毫无意义,除非你在使用极为罕见的“信息论安全”的加密算法。这肯定不是你的情况,不然你早就说了。

urandom 的 man 页面多多少少有些误导人,或者干脆可以说是错的——特别是当它说 /dev/urandom 会“用完熵”以及 “/dev/random 是更好的”那几句话;

或者 Thomas Ptacek 的看法,他不设计密码算法或者密码学系统,但他是一家名声在外的安全咨询公司的创始人,这家公司负责很多渗透和破解烂密码学算法的测试:

用 urandom。用 urandom。用 urandom。用 urandom。用 urandom。

没有完美

/dev/urandom 不是完美的,问题分两层:

在 Linux 上,不像 FreeBSD,/dev/urandom 永远不阻塞。记得安全性取决于某个最一开始决定的随机性?种子?

Linux 的 /dev/urandom 会很乐意给你吐点不怎么随机的随机数,甚至在内核有机会收集一丁点熵之前。什么时候有这种情况?当你系统刚刚启动的时候。

FreeBSD 的行为更正确点:/dev/random/dev/urandom 是一样的,在系统启动的时候 /dev/random 会阻塞到有足够的熵为止,然后它们都再也不阻塞了。

与此同时 Linux 实行了一个新的系统调用syscall,最早由 OpenBSD 引入叫 getentrypy(2),在 Linux 下这个叫 getrandom(2)。这个系统调用有着上述正确的行为:阻塞到有足够的熵为止,然后再也不阻塞了。当然,这是个系统调用,而不是一个字节设备(LCTT 译注:不在 /dev/ 下),所以它在 shell 或者别的脚本语言里没那么容易获取。这个系统调用 自 Linux 3.17 起存在。

在 Linux 上其实这个问题不太大,因为 Linux 发行版会在启动的过程中保存一点随机数(这发生在已经有一些熵之后,因为启动程序不会在按下电源的一瞬间就开始运行)到一个种子文件中,以便系统下次启动的时候读取。所以每次启动的时候系统都会从上一次会话里带一点随机性过来。

显然这比不上在关机脚本里写入一些随机种子,因为这样的显然就有更多熵可以操作了。但这样做显而易见的好处就是它不用关心系统是不是正确关机了,比如可能你系统崩溃了。

而且这种做法在你真正第一次启动系统的时候也没法帮你随机,不过好在 Linux 系统安装程序一般会保存一个种子文件,所以基本上问题不大。

虚拟机是另外一层问题。因为用户喜欢克隆它们,或者恢复到某个之前的状态。这种情况下那个种子文件就帮不到你了。

但解决方案依然和用 /dev/random 没关系,而是你应该正确的给每个克隆或者恢复的镜像重新生成种子文件。

太长不看

别问,问就是用 /dev/urandom !


via: https://www.2uo.de/myths-about-urandom/

作者:Thomas Hühn 译者:Moelf 校对:wxy

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

在树莓派上安装 Ubuntu MATE

$
0
0

这篇快速指南告诉你如何在树莓派设备上安装 Ubuntu MATE。

树莓派 是目前最流行的单板机并且是创客首选的板子。Raspbian 是基于 Debian 的树莓派官方操作系统。它是轻量级的,内置了教育工具和能在大部分场景下完成工作的工具。

安装 Raspbian 安装同样简单,但是与 Debian 随同带来的问题是慢的升级周期和旧的软件包。

在树莓派上运行 Ubuntu 可以给你带来一个更丰富的体验和最新的软件。当在你的树莓派上运行 Ubuntu 时我们有几个选择。

  1. Ubuntu MATE :Ubuntu MATE 是仅有的原生支持树莓派且包含一个完整的桌面环境的发行版。
  2. Ubuntu Server 18.04 + 手动安装一个桌面环境。
  3. 使用 Ubuntu Pi Flavor Maker 社区构建的镜像,这些镜像只支持树莓派 2B 和 3B 的变种,并且不能更新到最新的 LTS 发布版。

第一个选择安装是最简单和快速的,而第二个选择给了你自由选择安装桌面环境的机会。我推荐选择前两个中的任一个。

这里是一些磁盘镜像下载链接。在这篇文章里我只会提及 Ubuntu MATE 的安装。

在树莓派上安装 Ubuntu MATE

去 Ubuntu MATE 的下载页面获取推荐的镜像。

试验性的 ARM64 版本只应在你需要在树莓派服务器上运行像 MongoDB 这样的 64 位应用时使用。

第 1 步:设置 SD 卡

镜像文件一旦下载完成后需要解压。你可以简单的右击来提取它。

也可以使用下面命令做同样的事。

xz -d ubuntu-mate***.img.xz

如果你在 Windows 上你可以使用 7-zip 替代。

安装 Balena Etcher,我们将使用这个工具将镜像写入 SD 卡。确保你的 SD 卡有至少 8 GB 的容量。

启动 Etcher,选择镜像文件和 SD 卡。

一旦进度完成 SD 卡就准备好了。

第 2 步:设置树莓派

你可能已经知道你需要一些外设才能使用树莓派,例如鼠标、键盘、HDMI 线等等。你同样可以不用键盘和鼠标安装树莓派,但是这篇指南不是那样。

  • 插入一个鼠标和一个键盘。
  • 连接 HDMI 线缆。
  • 插入 SD 卡 到 SD 卡槽。

插入电源线给它供电。确保你有一个好的电源供应(5V、3A 至少)。一个不好的电源供应可能降低性能。

Ubuntu MATE 安装

一旦你给树莓派供电,你将遇到非常熟悉的 Ubuntu 安装过程。在这里的安装过程相当直接。

选择你的键盘布局

选择你的时区

选择你的 WiFi 网络并且在网络连接中输入密码。

添加用户名和密码

在设置了键盘布局、时区和用户凭证后,在几分钟后你将被带到登录界面。瞧!你快要完成了。

一旦登录,第一件事你应该做的是更新 Ubuntu。你应该使用下列命令。

sudo apt update
sudo apt upgrade

你同样可以使用软件更新器。

一旦更新完成安装你就可以开始了。你可以根据你的需要继续安装树莓派平台为 GPIO 和其他 I/O 准备的特定软件包。

是什么让你考虑在 Raspberry 上安装 Ubuntu,你对 Raspbian 的体验如何呢?请在下方评论来让我知道。


via: https://itsfoss.com/ubuntu-mate-raspberry-pi/

作者:Chinmay 选题:lujun9972 译者:warmfrog 校对:wxy

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

每日安全资讯:几大 Git 平台仓库被劫,黑客欲勒索比特币

$
0
0

数百名开发人员的 Git 仓库被黑客删除,取而代之的是赎金要求。攻击于 5 月 3 日开始,包括 GitHub、Bitbucket 和 GitLab在内的代码托管平台都受到了影响。 目前已知的情况是,黑客从受害者的 Git 仓库中删除了所有源代码和最近提交的 Repo,只留下了 0.1 比特币(约 ¥3850)的赎金票据。

黑客声称所有源码都已经下载并存储在他们的一台服务器上,并且给受害者十天时间支付赎金,否则,他们会公开代码。

想要恢复丢失的代码并避免泄露:请将 0.1 比特币(BTC)发送至我们的比特币地址 1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA,并将您的 Git 登录信息和付款证明发送至 admin@gitsbackup.com。如果您不确定我们是否有您的数据,请与我们联系,我们将向您发送证明,您的代码已下载并备份在我们的服务器上。如果我们在接下来的 10 天内没有收到付款,我们将公开代码或以其他方式使用。

在 GitHub 上搜索可发现已有 391 个仓库受影响,这些仓库的代码和提交信息均被一个名为 “gitbackup” 的账号删除。

尽管如此,BitcoinAbuse 平台显示,该比特币地址目前还未收到赎金。

一名用户指出 GitHub 在发现攻击后暂停帐户并进行调查:“GitHub 昨晚在他们调查时暂停了我的帐户,希望今天能听到他们的消息,我可能很幸运。”

据 ZDNet 的报道,好消息是,在深入挖掘受害者的案例后,StackExchange 安全论坛的成员发现黑客实际上没有删除,仅仅是改变了 Git 提交标头,这意味着在某些情况下可以恢复代码提交。

最新消息,GitLab 的安全总监 Kathy Wang 告诉 BleepingComputer:

我们根据 Stefan Gabos 昨天提交的赎金票据确定了消息来源,并立即开始调查此问题。我们已确定受影响的用户帐户,并且已通知所有这些用户。根据调查结果,我们有充分证据表明,受损帐户的帐户密码以明文形式存储在相关存储库的部署中。我们强烈建议使用密码管理工具以更安全的方式存储密码,并尽可能启用双因素身份验证,这两种方法都可以防止出现此问题。

目前,平台和用户都在努力解决问题,此处正在持续讨论可能的解决方案。

来源:开源中国

更多资讯

黑客轻松接管 29 个僵尸网络 只因运营者太菜

ZDNet 网站报导,安全专家一次性接管了 29 个僵尸网络,原理十分简单,利用了运营者技术“太菜”的方法。在采访中,安全专家 Subby 介绍了他接管的这 29 个僵尸网络,他指出其实这些僵尸网络都比较小,最初的机器人数量显示总计将近 40000,但在删除重复数据后,实际数量仅为 25000,这样的数据对于一个单独的 IoT 僵尸网络来说都是很小的,更不用说是 29 个的总和了。

来源: 开源中国

详情: http://t.cn/EoPirDH 

德国警方查封全球第二大暗网黑市 Wall Street Market

据外媒 Techspot 报道,近日警方已查封全球第二大暗网黑市。德国当局领导的这项努力导致三名嫌疑人被捕,这是近两年调查的结果。警方还没收了超过 55 万欧元现金以及多辆车、电脑,数据存储和“ 6 位数的加密货币比特币和门罗币”。另外两名嫌疑人在美国被捕,被描述为“销售致幻毒品最多的供应商”。

来源: cnBeta.COM
详情: http://t.cn/EoPiF9c 

何时能不被黑客鱼肉?D-Link 智能摄像头又出事了

近些年来各家厂商把“智能”摄像头市场做的是风生水起,许多消费者也想靠这些大眼睛来守护一方平安。对普通人来说,这些智能化的摄像头确实相当方便,只需连上网络,你就能在千里之外获取自己需要的画面。不过,在你享受方便之余又很容易掉入陷阱,因为安全漏洞背后藏着的坏人太可怕了。

来源: 雷锋网
详情: http://t.cn/EoP67yZ 

Mozilla 曝出大乌龙 证书过期导致全球 Firefox 用户无法使用扩展

今天早上 Mozilla 和全球的 Firefox 用户开了个不大不小的玩笑,许多人一大早起来打开浏览器发现所有的扩展都无法使用,就连手机版也是如此。重装 Firefox 或者重装所有的插件都无济于事,在 Bugzilla 上提交的报告中我们了解到,这是由于 Mozilla 的官方证书没有及时续期所致。

来源: cnBeta.COM
详情: http://t.cn/EoP6b8B 

(信息来源于网络,安华金和搜集整理)


DomTerm:一款为 Linux 打造的终端模拟器

$
0
0

了解一下 DomTerm,这是一款终端模拟器和复用器,带有 HTML 图形和其它不多见的功能。

DomTerm 是一款现代化的终端模拟器,它使用浏览器引擎作为 “GUI 工具包”。这就支持了一些相关的特性,例如可嵌入图像和链接、HTML 富文本以及可折叠(显示/隐藏)命令。除此以外,它看起来感觉就像一个功能完整、独立的终端模拟器,有着出色 xterm 兼容性(包括鼠标处理和 24 位色)和恰当的 “装饰” (菜单)。另外它内置支持了会话管理和副窗口(如同 tmuxGNU Screen 中一样)、基本输入编辑(如在 readline 中)以及分页(如在 less 中)。

图 1: DomTerminal 终端模拟器。

在以下部分我们将看一看这些特性。我们将假设你已经安装好了 domterm (如果你需要获取并构建 Dormterm 请跳到本文最后)。开始之前先让我们概览一下这项技术。

前端 vs. 后端

DomTerm 大部分是用 JavaScript 写的,它运行在一个浏览器引擎中。它可以是像例如 Chrome 或者 Firefox 一样的桌面浏览器(见图 3),也可以是一个内嵌的浏览器。使用一个通用的网页浏览器没有问题,但是用户体验却不够好(因为菜单是为通用的网页浏览而不是为了终端模拟器所打造),并且其安全模型也会妨碍使用。因此使用内嵌的浏览器更好一些。

目前以下这些是支持的:

  • qdomterm,使用了 Qt 工具包 和 QtWebEngine
  • 一个内嵌的 Electron(见图 1)
  • atom-domterm 以 Atom 文本编辑器(同样基于 Electron)包的形式运行 DomTerm,并和 Atom 面板系统集成在一起(见图 2)
  • 一个为 JavaFX 的 WebEngine 包装器,这对 Java 编程十分有用(见图 4)
  • 之前前端使用 Firefox-XUL 作为首选,但是 Mozilla 已经终止了 XUL

在 Atom 编辑器中的 DomTerm 终端面板

图 2:在 Atom 编辑器中的 DomTerm 终端面板。

目前,Electron 前端可能是最佳选择,紧随其后的是 Qt 前端。如果你使用 Atom,atom-domterm 也工作得相当不错。

后端服务器是用 C 写的。它管理着伪终端(PTY)和会话。它同样也是一个为前端提供 Javascript 和其它文件的 HTTP 服务器。domterm 命令启动终端任务和执行其它请求。如果没有服务器在运行,domterm 就会自己来服务。后端与服务器之间的通讯通常是用 WebSockets(在服务器端是libwebsockets)完成的。然而,JavaFX 的嵌入既不用 Websockets 也不用 DomTerm 服务器。相反 Java 应用直接通过 Java-Javascript 桥接进行通讯。

一个稳健的可兼容 xterm 的终端模拟器

DomTerm 看上去感觉像一个现代的终端模拟器。它处理鼠标事件、24 位色、Unicode、倍宽字符(CJK)以及输入方式。DomTerm 在 vttest 测试套件 上工作地十分出色。

其不同寻常的特性包括:

展示/隐藏按钮(“折叠”): 小三角(如上图 2)是隐藏/展示相应输出的按钮。仅需在提示符中添加特定的转义字符就可以创建按钮。

对于 readline 和类似输入编辑器的鼠标点击支持: 如果你点击输入区域(黄色),DomTerm 会向应用发送正确的方向键按键序列。(可以通过提示符中的转义字符启用这一特性,你也可以通过 Alt+点击 强制使用。)

用 CSS 样式化终端: 这通常是在 ~/.domterm/settings.ini 里完成的,保存时会自动重载。例如在图 2 中,设置了终端专用的背景色。

一个更好的 REPL 控制台

一个经典的终端模拟器基于长方形的字符单元格工作的。这在 REPL(命令行)上没问题,但是并不理想。这里有些通常在终端模拟器中不常见的 REPL 很有用的 DomTerm 特性:

一个能“打印”图片、图形、数学公式或者一组可点击的链接的命令: 应用可以发送包含几乎任何 HTML 的转义字符。(HTML 会被剔除部分,以移除 JavaScript 和其它危险特性。)

图 3 显示了来自 gnuplot 会话的一个片段。Gnuplot(2.1 或者跟高版本)支持 DormTerm 作为终端类型。图形输出被转换成 SVG 图片,然后被打印到终端。我的博客帖子在 DormTerm 上的 Gnuplot 展示在这方面提供了更多信息。

图 3:Gnuplot 截图。

Kawa 语言有一个创建并转换几何图像值的库。如果你将这样的图片值打印到 DomTerm 终端,图片就会被转换成 SVG 形式并嵌入进输出中。

图 4:Kawa 中可计算的几何形状。

富文本输出: 有着 HTML 样式的帮助信息更加便于阅读,看上去也更漂亮。图片 1 的下面面板展示 dormterm help 的输出。(如果没在 DomTerm 下运行的话输出的是普通文本。)注意自带的分页器中的 PAUSED 消息。

包括可点击链接的错误消息: DomTerm 可以识别语法 filename:line:column 并将其转化成一个能在可定制文本编辑器中打开文件并定位到行的链接。(这适用于相对路径的文件名,如果你用 PROMPT_COMMAND 或类似的跟踪目录。)

编译器可以侦测到它在 DomTerm 下运行,并直接用转义字符发出文件链接。这比依赖 DomTerm 的样式匹配要稳健得多,因为它可以处理空格和其他字符并且无需依赖目录追踪。在图 4 中,你可以看到来自 Kawa Compiler 的错误消息。悬停在文件位置上会使其出现下划线,file: URL 出现在 atom-domterm 消息栏(窗口底部)中。(当不用 atom-domterm 时,这样的消息会在一个浮层的框中显示,如图 1 中所看到的 PAUSED 消息所示。)

点击链接时的动作是可以配置的。默认对于带有 #position 后缀的 file: 链接的动作是在文本编辑器中打开那个文件。

结构化内部表示:以下内容均以内部节点结构表示:命令、提示符、输入行、正常和错误输出、标签,如果“另存为 HTML”,则保留结构。HTML 文件与 XML 兼容,因此你可以使用 XML 工具搜索或转换输出。命令 domterm view-saved 会以一种启用命令折叠(显示/隐藏按钮处于活动状态)和重新调整窗口大小的方式打开保存的 HTML 文件。

内建的 Lisp 样式优美打印: 你可以在输出中包括优美打印指令(比如,grouping),这样断行会根据窗口大小调整而重新计算。查看我的文章 DomTerm 中的动态优美打印以更深入探讨。

基本的内建行编辑,带着历史记录(像 GNU readline 一样): 这使用浏览器自带的编辑器,因此它有着优秀的鼠标和选择处理机制。你可以在正常字符模式(大多数输入的字符被指接送向进程);或者行模式(通常的字符是直接插入的,而控制字符导致编辑操作,回车键会向进程发送被编辑行)之间转换。默认的是自动模式,根据 PTY 是在原始模式还是终端模式中,DomTerm 在字符模式与行模式间转换。

自带的分页器(类似简化版的 less):键盘快捷键控制滚动。在“页模式”中,输出在每个新的屏幕(或者单独的行,如果你想一行行地向前移)后暂停;页模式对于用户输入简单智能,因此(如果你想的话)你无需阻碍交互式程序就可以运行它。

多路复用和会话

标签和平铺: 你不仅可以创建多个终端标签,也可以平铺它们。你可以要么使用鼠标或键盘快捷键来创建或者切换面板和标签。它们可以用鼠标重新排列并调整大小。这是通过 GoldenLayout JavaScript 库实现的。图 1 展示了一个有着两个面板的窗口。上面的有两个标签,一个运行 Midnight Commander;底下的面板以 HTML 形式展示了 dormterm help 输出。然而相反在 Atom 中我们使用其自带的可拖拽的面板和标签。你可以在图 2 中看到这个。

分离或重接会话:tmux 和 GNU screen 类似,DomTerm 支持会话安排。你甚至可以给同样的会话接上多个窗口或面板。这支持多用户会话分享和远程链接。(为了安全,同一个服务器的所有会话都需要能够读取 Unix 域接口和一个包含随机密钥的本地文件。当我们有了良好、安全的远程链接,这个限制将会有所放松。)

domterm 命令 类似与 tmux 和 GNU screen,它有多个选项可以用于控制或者打开单个或多个会话的服务器。主要的差别在于,如果它没在 DomTerm 下运行,dormterm 命令会创建一个新的顶层窗口,而不是在现有的终端中运行。

tmuxgit 类似,dormterm 命令有许多子命令。一些子命令创建窗口或者会话。另一些(例如“打印”一张图片)仅在现有的 DormTerm 会话下起作用。

命令 domterm browse 打开一个窗口或者面板以浏览一个指定的 URL,例如浏览文档的时候。

获取并安装 DomTerm

DomTerm 可以从其 Github 仓库获取。目前没有提前构建好的包,但是有详细指导。所有的前提条件在 Fedora 27 上都有,这使得其特别容易被搭建。


via: https://opensource.com/article/18/1/introduction-domterm-terminal-emulator

作者:Per Bothner 译者:tomjlw 校对:wxy

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

如何安装和配置 Chrony 作为 NTP 客户端?

$
0
0

NTP 服务器和 NTP 客户端可以让我们通过网络来同步时钟。之前,我们已经撰写了一篇关于 NTP 服务器和 NTP 客户端的安装与配置 的文章。

如果你想看这些内容,点击上述的 URL 访问。

Chrony 客户端

Chrony 是 NTP 客户端的替代品。它能以更精确的时间和更快的速度同步时钟,并且它对于那些不是全天候在线的系统非常有用。

chronyd 更小、更节能,它占用更少的内存且仅当需要时它才唤醒 CPU。即使网络拥塞较长时间,它也能很好地运行。它支持 Linux 上的硬件时间戳,允许在本地网络进行极其准确的同步。

它提供下列两个服务。

  • chronyc:Chrony 的命令行接口。
  • chronyd:Chrony 守护进程服务。

如何在 Linux 上安装和配置 Chrony?

由于安装包在大多数发行版的官方仓库中可用,因此直接使用包管理器去安装它。

对于 Fedora 系统,使用 DNF 命令 去安装 chrony。

$ sudo dnf install chrony

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或者 APT 命令 去安装 chrony。

$ sudo apt install chrony

对基于 Arch Linux 的系统,使用 Pacman 命令 去安装 chrony。

$ sudo pacman -S chrony

对于 RHEL/CentOS 系统,使用 YUM 命令 去安装 chrony。

$ sudo yum install chrony

对于 openSUSE Leap 系统,使用 Zypper 命令 去安装 chrony。

$ sudo zypper install chrony

在这篇文章中,我们将使用下列设置去测试。

  • NTP 服务器:主机名:CentOS7.2daygeek.com,IP:192.168.1.5,OS:CentOS 7
  • Chrony 客户端:主机名:Ubuntu18.2daygeek.com,IP:192.168.1.3,OS:Ubuntu 18.04

服务器的安装请访问 在 Linux 上安装和配置 NTP 服务器 的 URL。

我已经在 CentOS7.2daygeek.com 这台主机上安装和配置了 NTP 服务器,因此,将其附加到所有的客户端机器上。此外,还包括其他所需信息。

chrony.conf 文件的位置根据你的发行版不同而不同。

对基于 RHEL 的系统,它位于 /etc/chrony.conf

对基于 Debian 的系统,它位于 /etc/chrony/chrony.conf

# vi /etc/chrony/chrony.conf

server CentOS7.2daygeek.com prefer iburst
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
maxupdateskew 100.0
makestep 1 3
cmdallow 192.168.1.0/24

更新配置后需要重启 Chrony 服务。

对于 sysvinit 系统。基于 RHEL 的系统需要去运行 chronyd 而不是 chrony

# service chronyd restart
# chkconfig chronyd on

对于 systemctl 系统。 基于 RHEL 的系统需要去运行 chronyd 而不是 chrony

# systemctl restart chronyd
# systemctl enable chronyd

使用像 tackingsourcessourcestats 这样的子命令去检查 chrony 的同步细节。

去检查 chrony 的追踪状态。

# chronyc tracking
Reference ID    : C0A80105 (CentOS7.2daygeek.com)
Stratum         : 3
Ref time (UTC)  : Thu Mar 28 05:57:27 2019
System time     : 0.000002545 seconds slow of NTP time
Last offset     : +0.001194361 seconds
RMS offset      : 0.001194361 seconds
Frequency       : 1.650 ppm fast
Residual freq   : +184.101 ppm
Skew            : 2.962 ppm
Root delay      : 0.107966967 seconds
Root dispersion : 1.060455322 seconds
Update interval : 2.0 seconds
Leap status     : Normal

运行 sources 命令去显示当前时间源的信息。

# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* CentOS7.2daygeek.com          2   6    17    62    +36us[+1230us] +/- 1111ms

sourcestats 命令显示有关 chronyd 当前正在检查的每个源的漂移率和偏移估计过程的信息。

# chronyc sourcestats
210 Number of sources = 1
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
CentOS7.2daygeek.com        5   3    71    -97.314     78.754   -469us   441us

当 chronyd 配置为 NTP 客户端或对等端时,你就能通过 chronyc ntpdata 命令向每一个 NTP 源发送/接收时间戳模式和交错模式的报告。

# chronyc ntpdata

Remote address  : 192.168.1.5 (C0A80105)
Remote port     : 123
Local address   : 192.168.1.3 (C0A80103)
Leap status     : Normal
Version         : 4
Mode            : Server
Stratum         : 2
Poll interval   : 6 (64 seconds)
Precision       : -23 (0.000000119 seconds)
Root delay      : 0.108994 seconds
Root dispersion : 0.076523 seconds
Reference ID    : 85F3EEF4 ()
Reference time  : Thu Mar 28 06:43:35 2019
Offset          : +0.000160221 seconds
Peer delay      : 0.000664478 seconds
Peer dispersion : 0.000000178 seconds
Response time   : 0.000243252 seconds
Jitter asymmetry: +0.00
NTP tests       : 111 111 1111
Interleaved     : No
Authenticated   : No
TX timestamping : Kernel
RX timestamping : Kernel
Total TX        : 46
Total RX        : 46
Total valid RX  : 46

最后运行 date 命令。

# date
Thu Mar 28 03:08:11 CDT 2019

为了立即跟进系统时钟,绕过任何正在进行的缓步调整,请以 root 身份运行以下命令(以手动调整系统时钟)。

# chronyc makestep

via: https://www.2daygeek.com/configure-ntp-client-using-chrony-in-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:arrowfeng 校对:wxy

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

每日安全资讯:国家互联网应急中心开通勒索病毒免费查询服务

$
0
0

从国家互联网应急中心获悉,为了有效控制 WannaCry 勒索病毒的传播感染,国家互联网应急中心近日开通了该病毒感染数据免费查询服务。2017 年 5 月 12 日,WannaCry 勒索病毒利用 Windows SMB(“永恒之蓝”)漏洞在全球快速传播,造成全球计算机大范围感染。

国家互联网应急中心介绍说,为实时掌握 WannaCry 勒索病毒及其变种在我国的传播感染情况,国家互联网应急中心持续开展针对该病毒的监测工作。根据分析,WannaCry 勒索病毒成功感染计算机并运行后,首先会主动连接一个开关域名。如果与开关域名通信成功,该病毒将不运行勒索行为,但病毒文件仍驻留在被感染计算机中;如果通信失败,该病毒将运行勒索行为加密计算机中的文件,并继续向局域网或互联网上的其他计算机传播。

据悉,截至 2019 年 4 月 9 日,国家互联网应急中心监测发现我国境内疑似感染 WannaCry 勒索病毒的计算机数量超过 30 万台,仍有大量的计算机未安装“永恒之蓝”漏洞补丁和杀毒软件。我国计算机感染 WannaCry 勒索病毒疫情依然比较严峻。

为了有效控制 WannaCry 勒索病毒的传播感染,国家互联网应急中心开通了该病毒感染数据免费查询服务。查询说明如下:

1、WannaCry 勒索病毒暂只能感染 Windows 操作系统,请用户在 Windows 操作系统上的浏览器中输入查询地址打开查询页面进行查询,查询地址为:h ttp://wanna-check.cert.org.cn。

2、若提示 IP 地址承载的计算机受到感染,建议使用 WannaCry 勒索病毒专杀工具进行查杀,并及时修复相关漏洞。

3、如果使用宽带拨号上网或手机上网,由于 IP 地址经常变化,会导致查询结果不准确,仅供参考。

来源:快科技

更多资讯

中消协等发智能锁试验报告:半数存指纹识别安全风险

中国消费者协会、四川省保护消费者权益委员会、 深圳市消费者委员会、佛山市消费者委会今天联合发布智能门锁比较试验报告,29 款样品中,48.3% 的样品密码开启安全存在风险,50% 的样品指纹识别开启安全存在风险,85.7% 的样品信息识别卡开启安存在风险。

来源: 央视新闻客户端

详情: http://t.cn/EoLwr4r 

如何让过期证书事故不再发生

证书过期是一种常见的问题,但其影响面却可能极其广泛。此类事故频繁发生是因为安装和更新证书是一个乏味的手动过程。证书过期的现象已经有了改善,Let’s Encrypt 和 SSLMate 等 CA 开始提供证书自动更新的方法。

来源: solidot.org

详情: http://t.cn/EoLwsEt 

男子购买“教程”掌握点餐软件漏洞 边消费边退代金券大肆实施盗窃

如今,各大餐饮行业手机自助点餐软件兴起,特别是在快餐行业中,大大缓解了排队点餐的尴尬。但是由于软件程序中难免存在漏洞,也成为滋生犯罪的土壤。近日,徐汇区检察院对一起利用手机自助点餐软件漏洞,盗窃某知名快餐公司钱款的被告人钟某某提起公诉。

来源: 新民晚报

详情: http://t.cn/EoLAw0A 

中国一智能城市监控系统数据库被发现没有密码保护

智能城市设计旨在让居民生活更轻松,但如果它的监控系统数据泄露?John Wethington 报告一个智能城市数据库没有密码保护可以直接通过浏览器访问。

来源:solidot.org

详情: http://t.cn/EoLAb4Q 

(信息来源于网络,安华金和搜集整理)

比容器快 10-20 倍的 unikernel 应用

$
0
0

unikernel 是一种用于在云基础架构上部署应用程序的更小、更快、更安全的方式。使用 NanoVMs OPS,任何人都可以将 Linux 应用程序作为 unikernel 运行而无需额外编码。

Marcho Verch \(CC BY 2.0\)

随着 unikernel 的出现,构建和部署轻量级应用变得更容易、更可靠。虽然功能有限,但 unikernal 在速度和安全性方面有许多优势。

什么是 unikernel?

unikernel 是一种非常特殊的单一地址空间single-address-space的机器镜像,类似于已经主导大批互联网的云应用,但它们相当小并且是单一用途的。它们很轻,只提供所需的资源。它们加载速度非常快,而且安全性更高 —— 攻击面非常有限。单个可执行文件中包含所需的所有驱动、I/O 例程和支持库。其最终生成的虚拟镜像可以无需其它部分就可以引导和运行。它们通常比容器快 10 到 20 倍。

潜在的攻击者无法进入 shell 并获得控制权,因为它没有 shell。他们无法获取系统的 /etc/passwd/etc/shadow 文件,因为这些文件不存在。创建一个 unikernel 就像应用将自己变成操作系统。使用 unikernel,应用和操作系统将成为一个单一的实体。你忽略了不需要的东西,从而消除了漏洞并大幅提高性能。

简而言之,unikernel:

  • 提供更高的安全性(例如,shell 破解代码无用武之地)
  • 比标准云应用占用更小空间
  • 经过高度优化
  • 启动非常快

unikernel 有什么缺点吗?

unikernel 的唯一严重缺点是你必须构建它们。对于许多开发人员来说,这是一个巨大的进步。由于应用的底层特性,将应用简化为所需的内容然后生成紧凑、平稳运行的应用可能很复杂。在过去,你几乎必须是系统开发人员或底层程序员才能生成它们。

这是怎么改变的?

最近(2019 年 3 月 24 日)NanoVMs 宣布了一个将任何 Linux 应用加载为 unikernel 的工具。使用 NanoVMs OPS,任何人都可以将 Linux 应用作为 unikernel 运行而无需额外编码。该应用还可以更快、更安全地运行,并且成本和开销更低。

什么是 NanoVMs OPS?

NanoVMs 是给开发人员的 unikernel 工具。它能让你运行各种企业级软件,但仍然可以非常严格地控制它的运行。

使用 OPS 的其他好处包括:

  • 无需经验或知识,开发人员就可以构建 unikernel。
  • 该工具可在笔记本电脑上本地构建和运行 unikernel。
  • 无需创建帐户,只需下载并一个命令即可执行 OPS。

NanoVMs 的介绍可以在 Youtube 上的 NanoVMs 视频 上找到。你还可以查看该公司的 LinkedIn 页面并在此处阅读有关 NanoVMs 安全性的信息。

还有有关如何入门的一些信息。


via: https://www.networkworld.com/article/3387299/how-to-quickly-deploy-run-linux-applications-as-unikernels.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:geekpi 校对:wxy

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

12 个可替代树莓派的单板机

$
0
0

正在寻找树莓派的替代品?这里有一些单板机可以满足你的 DIY 渴求。

树莓派是当前最流行的单板机。你可以在你的 DIY 项目中使用它,或者用它作为一个成本效益高的系统来学习编代码,或者为了你的便利,利用一个流媒体软件运行在上面作为流媒体设备。

你可以使用树莓派做很多事,但它不是各种极客的最终解决方案。一些人可能在寻找更便宜的开发板,一些可能在寻找更强大的。

无论是哪种情况,我们都有很多原因需要树莓派的替代品。因此,在这片文章里,我们将讨论最好的 12 个我们认为能够替代树莓派的单板机。

满足你 DIY 渴望的树莓派替代品

这个列表没有特定的顺序排名。链接的一部分是赞助链接。请阅读我们的赞助政策

1、Onion Omega2+

只要 $13,Omega2+ 是这里你可以找到的最便宜的 IoT 单板机设备。它运行 LEDE(Linux 嵌入式开发环境)Linux 系统 —— 这是一个基于 OpenWRT 的发行版。

由于运行一个自定义 Linux 系统,它的组成元件、花费和灵活性使它完美适合几乎所有类型的 IoT 应用。

你可以在亚马逊商城的 Onion Omega 套件或者从他们的网站下单,可能会收取额外的邮费。

关键参数:

  • MT7688 SoC
  • 2.4 GHz IEEE 802.11 b/g/n WiFi
  • 128 MB DDR2 RAM
  • 32 MB on-board flash storage
  • MicroSD Slot
  • USB 2.0
  • 12 GPIO Pins

查看官网

2、NVIDIA Jetson Nano Developer Kit

这是来自 NVIDIA 的只要 $99 的非常独特和有趣的树莓派替代品。是的,它不是每个人都能充分利用的设备 —— 只为特定的一组极客或者开发者而生。

NVIDIA 使用下面的用例解释它:

NVIDIA® Jetson Nano™ Developer Kit 是一个小的、强大的计算机,可以让你并行运行多个神经网络的应用像图像分类、对象侦察、图像分段、语音处理。全部在一个易于使用的、运行功率只有 5 瓦特的平台上。

nvidia

因此,基本上,如果你正在研究 AI 或者深度学习,你可以充分利用开发设备。如果你很好奇,该设备的产品计算模块将在 2019 年 7 月到来。

关键参数:

  • CPU: Quad-core ARM A57 @ 1.43 GHz
  • GPU: 128-core Maxwell
  • RAM: 4 GB 64-bit LPDDR4 25.6 GB/s
  • Display: HDMI 2.0
  • 4 x USB 3.0 and eDP 1.4

查看官网

3、ASUS Tinker Board S

ASUS Tinker Board S 不是大多数人可负担得起的树莓派的替换设备 ($82亚马逊商城),但是它是一个强大的替代品。它的特点是它有你通常可以发现与标准树莓派 3 一样的 40 针脚的连接器,但是提供了强大的处理器和 GPU。同样的,Tinker Board S 的大小恰巧和标准的树莓派3 一样大。

这个板子的主要亮点是 16 GB eMMC (用外行术语说,它的板上有一个类似 SSD 的存储单元使它工作时运行的更快。) 的存在。

关键参数:

  • Rockchip Quad-Core RK3288 processor
  • 2 GB DDR3 RAM
  • Integrated Graphics Processor
  • ARM® Mali™-T764 GPU
  • 16 GB eMMC
  • MicroSD Card Slot
  • 802.11 b/g/n, Bluetooth V4.0 + EDR
  • USB 2.0
  • 28 GPIO pins
  • HDMI Interface

查看网站

4、ClockworkPi

如果你正在想方设法组装一个模块化的复古的游戏控制台,Clockwork Pi 可能就是你需要的,它通常是 GameShell Kit 的一部分。然而,你可以 使用 $49 单独购买板子。

它紧凑的大小、WiFi 连接性和 micro HDMI 端口的存在使它成为许多方面的选择。

关键参数:

  • Allwinner R16-J Quad-core Cortex-A7 CPU @1.2GHz
  • Mali-400 MP2 GPU
  • RAM: 1GB DDR3
  • WiFi & Bluetooth v4.0
  • Micro HDMI output
  • MicroSD Card Slot

查看官网

5、Arduino Mega 2560

如果你正在研究机器人项目或者你想要一个 3D 打印机 —— Arduino Mega 2560 将是树莓派的便利的替代品。不像树莓派,它是基于微控制器而不是微处理器的。

在他们的官网,你需要花费 $38.50,或者在在亚马逊商城是 $33

关键参数:

  • Microcontroller: ATmega2560
  • Clock Speed: 16 MHz
  • Digital I/O Pins: 54
  • Analog Input Pins: 16
  • Flash Memory: 256 KB of which 8 KB used by bootloader

查看官网

6、Rock64 Media Board

用与你可能想要的树莓派 3 B+ 相同的价格,你将在 Rock64 Media Board 上获得更快的处理器和双倍的内存。除此之外,如果你想要 1 GB RAM 版的,它提供了一个比树莓派更便宜的替代品,花费更少,只要 $10 。

不像树莓派,它没有无线连接支持,但是 USB 3.0 和 HDMI 2.0 的存在使它与众不同,如果它对你很重要的话。

关键参数:

  • Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor
  • Supports up to 4GB 1600MHz LPDDR3 RAM
  • eMMC module socket
  • MicroSD Card slot
  • USB 3.0
  • HDMI 2.0

查看官网

7、Odroid-XU4

Odroid-XU4 是一个完美的树莓派的替代品,如果你有能够稍微提高预算的空间($80-$100 甚至更低,取决于存储的容量)。

它确实是一个强大的替代品并且体积更小。支持 eMMC 和 USB 3.0 使它工作起来更快。

关键参数:

  • Samsung Exynos 5422 Octa ARM Cortex™-A15 Quad 2Ghz and Cortex™-A7 Quad 1.3GHz CPUs
  • 2Gbyte LPDDR3 RAM
  • GPU: Mali-T628 MP6
  • USB 3.0
  • HDMI 1.4a
  • eMMC 5.0 module socket
  • MicroSD Card Slot

查看官网

8、PocketBeagle

它是一个难以置信的小的单板机 —— 几乎和树莓派Zero 相似。然而它的价格相当于完整大小的树莓派 3。主要的亮点是你可以用它作为一个 USB 便携式信息终端,并且进入 Linux 命令行工作。

关键参数:

  • Processor: Octavo Systems OSD3358 1GHz ARM® Cortex-A8
  • RAM: 512 MB DDR3
  • 72 expansion pin headers
  • microUSB
  • USB 2.0

查看官网

9、Le Potato

Libre Computer 出品的 Le Potato,其型号是 AML-S905X-CC。它需要花费你 $45

如果你花费的比树莓派更多的钱,你就能得到双倍内存和 HDMI 2.0 接口,这可能是一个完美的选择。尽管,你还是不能找到嵌入的无线连接。

关键参数:

  • Amlogic S905X SoC
  • 2GB DDR3 SDRAM
  • USB 2.0
  • HDMI 2.0
  • microUSB
  • MicroSD Card Slot
  • eMMC Interface

查看官网

10、Banana Pi M64

它自带了 8G 的 eMMC —— 这是替代树莓派的主要亮点。因此,它需要花费 $60。

HDMI 接口的存在使它胜任 4K。除此之外,Banana Pi 提供了更多种类的开源单板机作为树莓派的替代。

关键参数:

  • 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor-R18
  • 2GB DDR3 SDRAM
  • 8 GB eMMC
  • WiFi & Bluetooth
  • USB 2.0
  • HDMI

查看官网

11、Orange Pi Zero

Orange Pi Zero 相对于树莓派来说难以置信的便宜。你可以在 Aliexpress 或者亚马逊上以最多 $10 就能够获得。如果稍微多花点,你能够获得 512 MB RAM

如果这还不够,你可以花费大概 $25 获得更好的配置,比如 Orange Pi 3。

关键参数:

  • H2 Quad-core Cortex-A7
  • Mali400MP2 GPU
  • RAM: Up to 512 MB
  • TF Card support
  • WiFi
  • USB 2.0

查看官网

12、VIM 2 SBC by Khadas

由 Khadas 出品的 VIM 2 是最新的单板机,因此你能够在板上得到蓝牙 5.0 支持。它的价格范围从 $99 的基础款到上限 $140

基础款包含 2 GB RAM、16 GB eMMC 和蓝牙 4.1。然而,Pro/Max 版包含蓝牙 5.0,更多的内存,更多的 eMMC 存储。

关键参数:

  • Amlogic S912 1.5GHz 64-bit Octa-Core CPU
  • T820MP3 GPU
  • Up to 3 GB DDR4 RAM
  • Up to 64 GB eMMC
  • Bluetooth 5.0 (Pro/Max)
  • Bluetooth 4.1 (Basic)
  • HDMI 2.0a
  • WiFi

总结

我们知道有很多不同种类的单板机电脑。一些比树莓派更好 —— 它的一些小规格的版本有更便宜的价格。同样的,像 Jetson Nano 这样的单板机已经被裁剪用于特定用途。因此,取决于你需要什么 —— 你应该检查一下单板机的配置。

如果你知道比上述提到的更好的东西,请随意在下方评论来让我们知道。


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

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

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

Viewing all 9060 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>