2019年4月

是否公开发布安全漏洞(尤其是零日漏洞)的概念验证(PoC)代码历来是备受争议的话题。在代码公开之后往往会被威胁攻击者所利用,在数天乃至数小时内发起攻击,导致终端用户没有充足的时间来修复受影响的系统。而公开这些 PoC 代码的并非坏人或者其他独立来源,而是理论上更应该保护用户的白帽安全研究人员。

围绕着这个争议做法的话题已经持续多年时间,而信息安全领域的专家分成两派。其中一方认为安全研究人员不应该发布 PoC 代码,因为攻击者可以采用该代码并自动化攻击;而另一方认为 PoC 代码同时是测试大型网络和识别存在漏洞系统所必须的,允许IT部门成员模拟未来可能遭受到的攻击。

在上个月发布的“网络安全威胁观 2018 年第四季度”报告中,Positive Technologies 的安全专家再次触及了这场长期争论。

在这份报告中,Positive Technologies 的安全专家并没有给这个争论下判断,而是客观陈述了当前用户面临的安全问题。在漏洞发现的新闻曝光或者零日漏洞的 PoC 代码公开之后,在两种情况下黑客并没有为用户提供充足的时间来修复系统。

在这份季度威胁报告中,Positive Technologies 表示这种情况发生的频率越来越多。在报告中通过罗列了一系列安全事件,表明在PoC代码公开之后会立即被黑客所利用。例如在推特上有安全专家公开了 Windows 系统零日漏洞的 PoC 代码,随后 ESET 安全专家就观测到了此类恶意软件活动。例如在网络上关于中文 PHP 框架的漏洞公开之后,数百万网站立即遭到了攻击。

在接受外媒 ZDNet 采访时候,Positive Technologies 的安全弹性负责人 Leigh-Anne Galloway 表示:

“作为安全行业的一员,我们有责任倡导漏洞公示守则。但是并非所有人都遵循这个原则。同样并非所有安全供应商都知道或者了解。……通常公开披露的驱动因素是因为供应商没有认识到问题的严重性,也没有解决漏洞。或者安全研究人员可能已经尝试了所有其他途径来传达他们的发现。当然,危险的是犯罪分子可能使用此信息来攻击受害者。供应商要求提供证据证明该漏洞实际存在于他们的产品中,并且当研究人员向他们报告漏洞时可以利用这些漏洞。研究人员需要证明它是如何被利用的,为此创建了PoC代码。”

通过 CVSS 系统来标记该漏洞的危险程度。如果供应商向研究人员支付漏洞奖励框架内发现的漏洞,研究人员会从这项工作中赚钱,但供应商通常不会安排他们的 bug-bounty 计划,研究人员可以从中得到的所有内容都是专家社区的公开认可。通过在互联网上演示漏洞,展示操作和 PoC 代码的一个例子,研究人员得到了认可和尊重。

通常情况下,研究人员只有在他们通知供应商有关漏洞的足够长时间后才会发布漏洞利用代码,从而使产品开发人员有机会关闭漏洞并通知用户需要安装升级。但是,很多时候,供应商会推迟发布补丁和更新,有时会延迟六个月以上,因此,在发布补丁之后,[PoC] 漏洞的公示就会发生。

来源:cnBeta.COM

更多资讯

印度外包巨头遭入侵

印度 IT 外包巨头 Wipro 正在调查其 IT 系统遭到入侵,并被用于对其客户发动攻击的报道。Wipro 是印度第三大 IT 外包公司,匿名消息来源称该公司的系统被用于作为起跳点对其数十家客户的系统发动钓鱼式刺探。

来源: solidot.org

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

微软向 Office 用户提供更多数据收集控制选项

近年来,微软对自家产品和服务引入了更加激进的数据收集政策,但这也惹恼了许多注重隐私的客户。无论是 Windows 10 操作系统,还是 Microsoft Office 生产力套件,均包含了获取遥测数据的功能。但长期以来,用户并不能对数据收集的选项作出太多的调整,更别提轻松的找到相关的设置选项了。不过最近,微软正在酝酿给 Office 用户带来一项新的变化。

来源: cnBeta.COM

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

卡巴斯基报告:70% 的黑客攻击事件瞄准 Office 漏洞

据美国科技媒体 ZDNet 援引卡巴斯基实验室报告称,黑客最喜欢攻击微软 Office 产品。 在 安全分析师峰会 Security Analyst Summit 上,卡巴斯基表示,分析卡巴斯基产品侦测的攻击后发现,2018 年四季度有 70% 利用了Office 漏洞。而在2016年四季度,这一比例只有16%。

来源: 新浪科技

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

个人数据保护迈出勇敢一步

新加坡亚洲新闻网 4 月 15 日文章,原题:中国加大对个人数据的保护 长期以来,中国政府部门、商业机构及普通消费者一直在努力应对新兴互联网技术对个人数据保护造成的影响。随着有关问题日益严重,中国正推进制定覆盖国内外企业的国家层面的法律,以保护消费者隐私。

来源: 环球时报

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

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

Big News

Open Source Eternal 开源永存

Linux Journal 发布了新的头条文章《Open Source is Eternal》,在文中,作者 Glyn Moody 历数了从 1994 年开始的 Linux Journal 、计算机周刊、互联网档案馆等一系列的服务的历史。并通过这些网站的历史变迁,衬托出开源永生。

不知不觉,Linux 已经来到这时间 28 年了,在过去的 28 年里,Linux 深刻的改变了我们的世界,Linux 推动了云计算、虚拟化等一系列技术的诞生。 Linux 永生!

Quick News

Mozilla 发布了可以在浏览器下运行 Python 数据科学的项目 Pyodide

除了运行 Python 以外,Pyodide 还可以很好的和 JavaScript 进行交互。Mozilla Hacks

Kubernetes 如何简化 Bet365 的软件部署

Bet365是世界上最大的网上投注平台。他们使用 Kuberntets 来进行软件的部署。ComputerWeekly

来自网上投注平台 K8s 实践
放弃 Windows 选择 Linux 的原因

精选的的系统和软件应用、高度可定制化的界面、更加轻量级以及更低可能的数据泄露。SlashGear

还需要更多好用的应用的支持。

如今,大型企业的应用平台正在向微服务架构进行转型。在微服务架构下,应用程序和数据库等底层平台的关系将会被重构。

作为新一代分布式数据库,其架构与功能特性需要保证在与传统数据库全兼容的基础上,拥抱微服务与云计算框架。因此,分布式数据库对于分布式事务与 ACID 必须保证与传统技术完全兼容。同时,在面向微服务应用开发与云计算基础架构时,新一代分布式数据库必须支持弹性扩张、资源隔离、多租户、可配置一致性、多模式(支持各类 SQL 协议)、集群内可配置容灾策略等一系列功能。

传统单点数据库的容量瓶颈,仅仅是分布式数据库所解决的问题之一。更重要的是在未来微服务化应用开发以及云化平台的趋势下,应用不再以“烟囱式”的中间件加数据库模式进行构建,而是采用数千甚至上万的微服务程序构建成的复杂网状模型。因此,分布式数据库需要满足以下能力,才能够满足上层应用的弹性扩展、高并发、高吞吐量、与灵活敏捷的需求。

在这些技术需求驱动下,分布式数据库核心技术能力分为两个方面,一方面是对传统技术的兼容,包括:

  • 完整的 ACID 支持,事务和一致性保证;
  • SQL 的完整支持,传统数据库如 MySQL/PostgreSQL 的语法完全兼容。

另一方面,则是技术创新,包括:

  • 分布式与扩展性,应对数据量的变化,实现存储层和计算层的弹性扩展;
  • 多模式访问接口,支持多类型数据管理和多种模式的访问接口;
  • HTAP 交易/分析混合处理能力,复杂业务需求下,实现数据的物理隔离,互不干扰。

作为一款金融级分布式关系型数据库,SequoiaDB 巨杉数据库的分布式数据库架构和面向微服务的云化产品形态,已经帮助包括民生银行、恒丰银行在内的多家大型金融客户实现了大量业务系统的底层数据库云化转型升级。

目前,巨杉数据库在银行生产系统单机群最大物理节点数达到 135 个,单集群最大存储容量超过 2.1 PB,单集群最大管理数据条数 1318 亿条。

SequoiaDB 巨杉数据库作为一款金融级的分布式关系型数据库,在企业客户云化架构转型过程中,提供了多种重要技术能力。

数据存储资源池化

SequoiaDB 数据存储引擎采用原生分布式架构,数据完全打散在分布式节点间存储,自动化数据分布和管理,数据可以按需灵活扩展。

SequoiaDB 采用分片技术为系统提供了横向扩展机制,其分片过程对于应用程序来说完全透明。该机制解决了单台服务器硬件资源(如内存、CPU、磁盘 I/O)受限的问题,并不会增加应用程序开发的复杂性。巨杉数据库通过原生分布式架构,可以轻松实现 PB 级别数据管理,目前生产环境最大支持超过 1500 个节点集群。

SequoiaDB 巨杉数据库存储引擎也实现了 multi-model 多模数据管理,支持非结构化、结构化和半结构化数据全覆盖并统一管理。SequoiaDB 的多模引擎设计让数据库平台场景更多样,也能符合云数据架构下对于多样化业务数据的统一管理与运维要求。

同时,在一个大型集群中,SequoiaDB 提供了多维度、多层级的逻辑与物理隔离能力。在一个典型的数据资源池类型基础数据服务平台(DBaas,DataBase As A Service)中,SequoiaDB 巨杉数据库能够同时服务于成百上千个不同 SLA 服务级别、优先级、业务特性、与数据量的应用程序,并保证应用程序之间的数据逻辑与物理隔离。

SequoiaDB 提供的“数据域(Domain)”特性,能够将整个集群在物理设备层面进行隔离,确保不同的表、表空间、与数据库实例坐落于独立的硬件设备上,保证高优先级的联机交易应用与后台统计分析相互隔离互不干扰。

数据库实例化

SequoiaDB 巨杉数据库支持数据库服务实例化。

针对微服务应用架构,用户可以在同一个集群中创建成百上千个不同的关系型数据库实例。数据库实例的访问与使用方式和传统关系型数据库 100% 兼容,同时其底层所使用的数据从逻辑上完全独立,每个实例拥有自己独立的权限管理、数据管控、甚至可以选择部署在独立的硬件环境或共享设备中。

目前 SequoiaDB 巨杉数据库支持用户创建 MySQL、PostgreSQL 与 SparkSQL 实例,同时还提供了JSON、S3对象存储以及 Posix 文件系统实例,充分满足用户对于结构化、半结构化、以及非结构化数据的需求。

从应用程序开发者与 DBA 的角度看,SequoiaDB 巨杉数据库所提供的关系型数据库实例,与传统 MySQL、PostgreSQL 和 SparkSQL 保持全兼容。例如,在 SequoiaDB 巨杉数据库中的 MySQL 实例中,其所有的增删改查语法、视图、触发器、事务、甚至访问计划都与传统 MySQL 保持一致。

作为分布式数据库,SequoiaDB 巨杉数据库的 SQL 实例用户不需要关心底层的数据到底被分散在一台还是多台设备中。用户可以简单创建一个分区表,向其中写入上亿条记录,其数据将会被自动分散在不同的物理设备中,对于应用程序根本无需关注分库分表,数据库自动提供分布式事务以及分布式访问等能力。

双活容灾与数据安全

双活容灾即灾备系统中使主生产端数据库和备机端数据库同时在线运行,处于可读可写状态的技术。在银行的交易系统中,双活容灾能力不仅保证数据不丢失,也保证系统在遭遇事故时能够短时间内重新上线。在正常情况下,双活架构的两个数据中心都能够同时提供业务的读写服务,而当一个中心宕机后,所有前端应用可以立刻切换至依然存活的数据中心继续使用。

SequoiaDB 巨杉数据库在内核层面实现了多种容灾方式,包括同城双活、同城双中心、同城三中心、两地三中心、与三地五中心等容灾策略。通过使用 SequoiaDB 巨杉数据库的容灾与高可用机制,数据中心内的服务器故障可以保证 RTO 与 RPO 均为零,而整个数据中心或同城网络故障也可以做到秒级 RTO=0、RPO=0。

关于 SequoiaDB 巨杉数据库

巨杉数据库专注新一代分布式数据库技术研发,自 2011 年成立以来,坚持从零开始打造分布式开源数据库引擎,是中国首家连续两年入选 Gartner 数据库报告的数据库厂商。

巨杉数据库的主要产品包括 SequoiaDB 分布式关系型数据库与 SequoiaCM 企业内容管理软件,企业级应用场景包括分布式在线交易、数据中台、分布式内容管理等。

目前巨杉数据库已在超过 50 家 500 强级别的大型商业银行核心生产业务上线,企业用户总数超过 1000 家。

最近,我们就同一主题写了两篇文章。这些文章内容帮助你如何检查远程服务器中给定的端口是否打开。

如果你想 检查远程 Linux 系统上的端口是否打开 请点击链接浏览。如果你想 检查多个远程 Linux 系统上的端口是否打开 请点击链接浏览。如果你想 检查多个远程 Linux 系统上的多个端口状态 请点击链接浏览。

但是本文帮助你检查本地系统上的开放端口列表。

在 Linux 中很少有用于此目的的实用程序。然而,我提供了四个最重要的 Linux 命令来检查这一点。

你可以使用以下四个命令来完成这个工作。这些命令是非常出名的并被 Linux 管理员广泛使用。

  • netstat:netstat (“network statistics”) 是一个显示网络连接(进和出)相关信息命令行工具,例如:路由表, 伪装连接,多点传送成员和网络端口。
  • nmap:Nmap (“Network Mapper”) 是一个网络探索与安全审计的开源工具。它旨在快速扫描大型网络。
  • ss: ss 被用于转储套接字统计信息。它也可以类似 netstat 使用。相比其他工具它可以展示更多的TCP状态信息。
  • lsof: lsof 是 List Open File 的缩写. 它用于输出被某个进程打开的所有文件。

如何使用 Linux 命令 netstat 检查系统中的开放端口列表

netstat 是 Network Statistics 的缩写,是一个显示网络连接(进和出)相关信息命令行工具,例如:路由表、伪装连接、多播成员和网络端口。

它可以列出所有的 tcp、udp 连接和所有的 unix 套接字连接。

它用于发现发现网络问题,确定网络连接数量。

# netstat -tplugn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      2038/master
tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      1396/snmpd
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1398/httpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1388/sshd
tcp6       0      0 :::25                   :::*                    LISTEN      2038/master
tcp6       0      0 :::22                   :::*                    LISTEN      1388/sshd
udp        0      0 0.0.0.0:39136           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:56130           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:40105           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:11584           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:30105           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:50656           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:1632            0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:28265           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:40764           0.0.0.0:*                           1396/snmpd
udp        0      0 10.90.56.21:123         0.0.0.0:*                           895/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           895/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           895/ntpd
udp        0      0 0.0.0.0:53390           0.0.0.0:*                           1396/snmpd
udp        0      0 0.0.0.0:161             0.0.0.0:*                           1396/snmpd
udp6       0      0 :::123                  :::*                                895/ntpd

IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      224.0.0.1
eth0            1      224.0.0.1
lo              1      ff02::1
lo              1      ff01::1
eth0            1      ff02::1
eth0            1      ff01::1

你也可以使用下面的命令检查特定的端口。

# # netstat -tplugn | grep :22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1388/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1388/sshd

如何使用 Linux 命令 ss 检查系统中的开放端口列表?

ss 被用于转储套接字统计信息。它也可以显示类似 netstat 的信息。相比其他工具它可以展示更多的 TCP 状态信息。

# ss -lntu

Netid  State      Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port
udp    UNCONN     0      0                                      *:39136                                              *:*
udp    UNCONN     0      0                                      *:56130                                              *:*
udp    UNCONN     0      0                                      *:40105                                              *:*
udp    UNCONN     0      0                                      *:11584                                              *:*
udp    UNCONN     0      0                                      *:30105                                              *:*
udp    UNCONN     0      0                                      *:50656                                              *:*
udp    UNCONN     0      0                                      *:1632                                               *:*
udp    UNCONN     0      0                                      *:28265                                              *:*
udp    UNCONN     0      0                                      *:40764                                              *:*
udp    UNCONN     0      0                            10.90.56.21:123                                                *:*
udp    UNCONN     0      0                              127.0.0.1:123                                                *:*
udp    UNCONN     0      0                                      *:123                                                *:*
udp    UNCONN     0      0                                      *:53390                                              *:*
udp    UNCONN     0      0                                      *:161                                                *:*
udp    UNCONN     0      0                                     :::123                                               :::*
tcp    LISTEN     0      100                                    *:25                                                 *:*
tcp    LISTEN     0      128                            127.0.0.1:199                                                *:*
tcp    LISTEN     0      128                                    *:80                                                 *:*
tcp    LISTEN     0      128                                    *:22                                                 *:*
tcp    LISTEN     0      100                                   :::25                                                :::*
tcp    LISTEN     0      128                                   :::22                                                :::*

你也可以使用下面的命令检查特定的端口。

# # ss -lntu | grep ':25'

tcp    LISTEN     0      100       *:25                    *:*
tcp    LISTEN     0      100      :::25                   :::*

如何使用 Linux 命令 nmap 检查系统中的开放端口列表?

Nmap (“Network Mapper”) 是一个网络探索与安全审计的开源工具。它旨在快速扫描大型网络,当然它也可以工作在独立主机上。

Nmap 使用裸 IP 数据包以一种新颖的方式来确定网络上有哪些主机可用,这些主机提供什么服务(应用程序名称和版本),它们运行什么操作系统(版本),使用什么类型的数据包过滤器/防火墙,以及许多其他特征。

虽然 Nmap 通常用于安全审计,但许多系统和网络管理员发现它对于日常工作也非常有用,例如网络资产清点、管理服务升级计划以及监控主机或服务正常运行时间。

# nmap -sTU -O localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2019-03-20 09:57 CDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00028s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 1994 closed ports

PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
199/tcp open  smux
123/udp open  ntp
161/udp open  snmp

Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.7 - 3.9
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.93 seconds

你也可以使用下面的命令检查特定的端口。

# nmap -sTU -O localhost | grep 123

123/udp open  ntp

如何使用 Linux 命令 lsof 检查系统中的开放端口列表?

它向你显示系统上打开的文件列表以及打开它们的进程。还会向你显示与文件相关的其他信息。

# lsof -i

COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
ntpd      895    ntp   16u  IPv4   18481      0t0  UDP *:ntp
ntpd      895    ntp   17u  IPv6   18482      0t0  UDP *:ntp
ntpd      895    ntp   18u  IPv4   18487      0t0  UDP localhost:ntp
ntpd      895    ntp   20u  IPv4   23020      0t0  UDP CentOS7.2daygeek.com:ntp
sshd     1388   root    3u  IPv4   20065      0t0  TCP *:ssh (LISTEN)
sshd     1388   root    4u  IPv6   20067      0t0  TCP *:ssh (LISTEN)
snmpd    1396   root    6u  IPv4   22739      0t0  UDP *:snmp
snmpd    1396   root    7u  IPv4   22729      0t0  UDP *:40105
snmpd    1396   root    8u  IPv4   22730      0t0  UDP *:50656
snmpd    1396   root    9u  IPv4   22731      0t0  UDP *:pammratc
snmpd    1396   root   10u  IPv4   22732      0t0  UDP *:30105
snmpd    1396   root   11u  IPv4   22733      0t0  UDP *:40764
snmpd    1396   root   12u  IPv4   22734      0t0  UDP *:53390
snmpd    1396   root   13u  IPv4   22735      0t0  UDP *:28265
snmpd    1396   root   14u  IPv4   22736      0t0  UDP *:11584
snmpd    1396   root   15u  IPv4   22737      0t0  UDP *:39136
snmpd    1396   root   16u  IPv4   22738      0t0  UDP *:56130
snmpd    1396   root   17u  IPv4   22740      0t0  TCP localhost:smux (LISTEN)
httpd    1398   root    3u  IPv4   20337      0t0  TCP *:http (LISTEN)
master   2038   root   13u  IPv4   21638      0t0  TCP *:smtp (LISTEN)
master   2038   root   14u  IPv6   21639      0t0  TCP *:smtp (LISTEN)
sshd     9052   root    3u  IPv4 1419955      0t0  TCP CentOS7.2daygeek.com:ssh->Ubuntu18-04.2daygeek.com:11408 (ESTABLISHED)
httpd   13371 apache    3u  IPv4   20337      0t0  TCP *:http (LISTEN)
httpd   13372 apache    3u  IPv4   20337      0t0  TCP *:http (LISTEN)
httpd   13373 apache    3u  IPv4   20337      0t0  TCP *:http (LISTEN)
httpd   13374 apache    3u  IPv4   20337      0t0  TCP *:http (LISTEN)
httpd   13375 apache    3u  IPv4   20337      0t0  TCP *:http (LISTEN)

你也可以使用下面的命令检查特定的端口。

# lsof -i:80

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    1398   root    3u  IPv4  20337      0t0  TCP *:http (LISTEN)
httpd   13371 apache    3u  IPv4  20337      0t0  TCP *:http (LISTEN)
httpd   13372 apache    3u  IPv4  20337      0t0  TCP *:http (LISTEN)
httpd   13373 apache    3u  IPv4  20337      0t0  TCP *:http (LISTEN)
httpd   13374 apache    3u  IPv4  20337      0t0  TCP *:http (LISTEN)
httpd   13375 apache    3u  IPv4  20337      0t0  TCP *:http (LISTEN)

via: https://www.2daygeek.com/linux-scan-check-open-ports-using-netstat-ss-nmap/

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

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

在过去十年中,从 Linux 和 MySQL 到 Kubernetes、Spark、Presto 和 MongoDB,开源一直是云的创新支柱。但最近的一些事态发展为开源背后的商业模式带来了阴霾,业界现在必须采取行动,以避免扼杀其最大的创新来源之一。

作为 Apache Hive 项目的共同创始人和前负责人,我知道激励对于开源生态系统的蓬勃发展至关重要。独立开发者需要激励他们为开源项目贡献自己的时间和技能,而那些具有创业思维的人需要激励他们围绕这些项目建立公司以帮助它们蓬勃发展。

公有云可能会破坏这些激励因素,因为它改变了开源的形态。大型云服务商很容易将开源项目拿来,并将其作为托管服务提供个客户。如果它是在没有回馈社区的情况下这样做的,它就是从别人的工作中获得不公平的利润,从而破坏了开源所需要的蓬勃发展的动力。

我们在围绕 AWS 的当前讨论中已经看到了这一点,AWS 被指责 将开源项目作为服务而提供,并对这些开源项目进行品牌重塑,却不总是回馈这些开源社区。这促使包括 ConfluentRedis LabsMongoDB 在内的开源软件供应商使用了新的许可证,以阻止大型商业云服务商将其代码作为托管服务提供。

我不认为这是一种正确的方法。这些新的许可证尚未得到 开源推进组织 Open Source Initiative (OSI)的认可,并且它们有可能会混淆开源软件的使用权。正如 软件自由保护协会 Software Freedom Conservancy 主席 Bradley M. Kuhn 所说,软件自由应该“对所有人来说都是平等的,无论他们是否是商业行为者。”开源之所以蓬勃发展,是因为这个原则一直受到尊重,任何模糊不清的地方都可能会阻止人们加入社区。

我同情那些寻求保护其业务的开源公司。尽管独立开发人员付出了很多的努力,但开源项目需要公司的资源和管理工作才能被视为足够稳定,才足以供企业广泛使用。Linux 在企业领域中起飞,是因为 Red Hat 和 IBM 全力支持它。Kubernetes 的发展是如此的快,也是因为它得到了谷歌的支持。当然也有例外,但如果一个开源项目背后有一家公司,那么这个开源项目更有可能在大型企业中取得成功。

我需要说明一下我的利益相关立场。我的公司提供了一个基于云的数据分析平台,该平台严重依赖 Spark、Presto 和 Hive 等开源组件。与此同时,我们通过两个项目回馈社区,成为优秀的开源公民:Sparklens,一个提高 Spark 应用程序性能的框架;以及 RubiX,一个提升 Presto 和 Spark 性能的缓存框架。

在云中提供开源软件有助于这些项目吸引更多用户和开发人员。但是,如果商业云服务商获利不公平,则会对下一代企业家程序员们构建开源公司和投资者支持他们产生抑制作用。

因此,如果新的许可证不是解决方案,那么什么是呢?

部分要靠大型云服务商的公平竞争。我不认为 AWS 是“邪恶的”,他们的行为是他们认为最符合他们商业利益的行为。但他们需要认识到,从长远来看,破坏开源对他们的伤害会像对其它人的伤害一样。开源倡导者应该继续提高对这个问题的认识,并对云服务商施加公众压力,以便让他们采取负责任的行动。我们已经看到证据表明这种压力可行

我们还需要一个开源的“ 道德规范 code of ethics ”,由社区(贡献者、项目负责人)和开源组织(如 OSI 和 Apache)创建。一个企业的行为即便是 100% 符合开源许可证,但仍然能够以损害社区的方式行事。这个道德规范能够指出一个广泛认可的道德准则,列出了不可接受的做法,这将使公司和个人对他们的行为负责。

最终的推动力来自于竞争。确实,大型云服务商在吸引客户方面具有优势;它们被 CIO 们视为“简单”和“安全”之选。但客户也可以选择最好的软件和支持。如果开源公司能够为他们自己的发布版本提供更好的功能和更好的支持,他们可以说服客户选择他们自己的产品。

我已经概述了社区可以采取的改善这种情况的行动,但我们每个人也都可以以个人身份采取行动。通过让云服务商了解我们的担忧,我们能够对市场产生一定的影响。要求他们通过反馈表和产品论坛向社区提供特定功能,这是让你发出自己的声音的一种方式。这些云服务商的开发人员也在开源论坛中闲逛,并希望成为开源社区的一员;让这些要求引起他们的注意会促使这种改变。

我们所面临的这个挑战并没有简单的解决方案,但我们需要认真对待。开源模式并不脆弱,不会在一夜之间崩坏。但是,如果商业云服务商继续利用开源项目而不给予回馈,那么他们就会削弱帮助开源成功的激励措施。杀死产下金蛋的鸡并不符合他们的利益,这肯定也不符合开发者和客户的利益。


via: https://venturebeat.com/2019/04/14/how-open-source-can-survive-the-cloud/

作者:Ashish Thusoo 译者:wxy 校对:wxy

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

在我们关于树莓派入门系列的第 14 篇也是最后一篇文章中,回顾一下我们学到的所有东西。

派节快乐!

每年的 3 月 14 日,我们这些极客都会庆祝派节。我们用这种方式缩写日期: MMDD,3 月 14 于是写成 03/14,它的数字上提醒我们 3.14,或者说 π 的前三位数字。许多美国人没有意识到的是,世界上几乎没有其他国家使用这种日期格式,因此派节几乎只适用于美国,尽管它在全球范围内得到了庆祝。

无论你身在何处,让我们一起庆祝树莓派,并通过回顾过去两周我们所涉及的主题来结束本系列:

 title=

我将结束本系列,感谢所有关注的人,尤其是那些在过去 14 天里从中学到了东西的人!我还想鼓励大家不断扩展他们对树莓派以及围绕它构建的所有开源(和闭源)技术的了解。

我还鼓励你了解其他文化、哲学、宗教和世界观。让我们成为人类的是这种惊人的 (有时是有趣的) 能力,我们不仅要适应外部环境,而且要适应智力环境。

不管你做什么,保持学习!


via: https://opensource.com/article/19/3/happy-pi-day

作者:Anderson Silva (Red Hat) 选题:lujun9972 译者:geekpi 校对:wxy

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