OpenBSD 是一个免费项目,提供了一个多平台类UNIX操作系统,该系统具有便携,高效,安全且基于4.4BSD平台。它是一种功能强大的服务器产品,用于全球数十万台计算机上。
可用性,启动选项,支持的平台
操作系统可从专用部分(见上文)免费下载,作为ISO映像或二进制包,允许用户通过网络安装。 ISO映像可以刻录到CD光盘上,可以直接从大多数PC的BIOS启动。
OpenBSD支持SVR4(Solaris),FreeBSD,Linux,BSD,SunOS和HP-UX的大多数程序的二进制仿真。它可以安装在各种架构上,包括i386,sparc64,alpha,m68k,sh,amd64,PowerPC,m88k,  sparc,ARM,hppa,vax,mips64和mips64el。
CD映像会在没有用户交互的情况下自动启动,并会询问他们是否要手动安装,升级或自动安装操作系统,以及放入shell提示符。
手动或自动安装
标准(读取:手动)安装将要求用户选择键盘布局,设置主机名,选择网络接口并使用IPv4和/或IPv6进行配置,以及为根设置新密码(系统管理员)帐户。
此外,您可以选择在系统启动时启动SSH和NTP服务,选择是否要使用X Window系统,设置用户,选择时区,分区磁盘驱动器和安装集
在可用于OpenBSD的软件包中,我们可以提到GNOME,KDE和Xfce桌面环境,MySQL,PostgreSQL,Postfix和OpenLDAP服务器,Mozilla Firefox,Mozilla Thunderbird,LibreOffice,Emacs,Vim和Chromium应用程序,以及PHP,Python,Ruby,Tcl / Tk,JDK,Mono和Go编程语言。
底线
总结一下,OpenBSD是一个功能强大且备受好评的面向服务器的BSD / UNIX操作系统,它为我们提供了最先进的软件,包括OpenSSH,OpenNTPD,OpenSMTPD,OpenBGPD,OpenIKED和mandoc。
此版本中的新功能:
- 改进了硬件支持,包括:
- OpenBSD / arm64平台上的SMP支持。
- OpenBSD / armv7平台上的VFP和NEON支持。
- 用于X-Powers AC100音频编解码器和实时时钟的新acrtc(4)驱动程序。
- 用于X-Powers AXP电源管理IC的新型axppmic(4)驱动程序。
- Broadcom BCM2835 / BCM2836 / BCM2837随机数发生器的新bcmrng(4)驱动程序。
- 用于Broadcom BCM2835 / BCM2836 / BCM2837温度监控器的新bcmtemp(4)驱动程序。
- 用于博世运动传感器的新bgw(4)驱动程序。
- 用于Broadcom和赛普拉斯FullMAC 802.11设备的新bwfm(4)驱动程序(仍然是实验性的,默认情况下未编译到内核中)
- 用于EFI运行时服务的新efi(4)驱动程序。
- 用于i.MX6集成稳压器的新imxanatop(4)驱动程序。
- Rockchip RK3399主机/ PCIe网桥的新rkpcie(4)驱动程序。
- Allwinner Reduced Serial Bus controller的新sxirsb(4)驱动程序。
- Allwinner温度监控器的新sxitemp(4)驱动程序。
- Allwinner A10 / A20触控板控制器上用于温度传感器的新sxits(4)驱动程序。
- 在几个Allwinner SoC上发现了用于双线总线的新sxitwi(4)驱动程序。
- Silergy SY8106A调节器的新sypwr(4)驱动程序。
- 支持Rockchip RK3328 SoC已添加到dwge(4),rkgrf(4),rkclock(4)和rkpinctrl(4)驱动程序中。
- 对rchtemp(4)驱动程序添加了对Rockchip RK3288 / RK3328 SoC的支持。
- 支持Allwinner A10 / A20,A23 / A33,A80和R40 / V40 SoC已添加到sxiccmu(4)驱动程序中。
- 支持Allwinner A33,GR8和R40 / V40 SoC已添加到sxipio(4)驱动程序中。
- mfii(4)驱动程序中添加了对SAS3.5 MegaRAID的支持。
- em(4)驱动程序中添加了对Intel Cannon Lake和Ice Lake集成以太网的支持。
- cnmac(4)端口现在分配给不同的CPU内核以进行分布式中断处理。
- pms(4)驱动程序现在可以检测并处理重置通知。
- on amd64 Intel CPU微码在启动时加载并由fw_update(1)安装/更新。
- 支持sun4v hypervisor中断cookie API,增加对SPARC T7-1 / 2/4机器的支持。
- 为连接到sdhc(4)控制器的SD / MMC存储添加了Hibernate支持。
- clang(1)现在用作armv7上的系统编译器,它也在sparc64上提供。
- vmm(4)/ vmd(8)改进:
- 通过vioscsi(4)向vmd(8)添加CD-ROM / DVD ISO支持。
- vmd(8)不再为vm.conf(5)中定义的虚拟交换机创建基础网桥接口。
- vmd(8)结合vm.conf(5)中的设置从底层交换机接口接收交换机信息(rdomain等)。
- 来宾VM中的时间戳计数器(TSC)支持。
- 支持vmm(4)中的ukvm / Solo5 unikernel。
- 更好地处理有效(但不常见)的指令编码。
- 为32位Linux来宾VM提供更好的PAE分页支持。
- vmd(8)现在允许每个VM中最多四个网络接口。
- 为AMD SVM / RVI主机添加暂停的迁移和快照支持到vmm(4)。
- 通过pty(4)发送的BREAK命令现在由vmd(8)理解。
- 许多修复vmctl(8)和vmd(8)错误处理。
- IEEE 802.11无线堆栈改进:
- iwm(4)和iwn(4)驱动程序将自动在共享ESSID的访问点之间漫游。使用ifconfig的bssid命令强制特定AP的MAC地址将禁用漫游。
- 配置新网络ESSID时自动清除已配置的WEP / WPA密钥。
- 删除了userland从内核读取已配置的WEP / WPA密钥的功能。
- iwm(4)驱动程序现在可以连接到具有隐藏SSID的网络。
- athn(4)驱动程序支持的USB设备现在使用开源固件,hostap模式现在可以使用这些设备。
- 通用网络堆栈改进:
- 启用IPsec时,网络堆栈不再与KERNEL_LOCK()一起运行。
- 现在,在没有KERNEL_LOCK()的情况下处理传入的TCP / UDP数据包。
- 套接字拼接任务在没有KERNEL_LOCK()的情况下运行。
- 清除和删除sys / netinet6中的代码,因为autoconfiguration现在在userland中运行。
- bridge(4)成员使用新的受保护选项与对方交谈。
- 简化了pf转移包功能。已从divert(4)中删除了IP_DIVERTFL套接字选项。
- pf divert-to和divert-reply的各种角落案例现在更加一致。
- 在pf(4)中强制所有邻居发现数据包在其IPv6标头跳数限制字段中有255个。
- pf.conf(5)中的新set syncookies选项。
- 支持GRE over IPv6。
- 用于GRE隧道以太网的新egre(4)驱动程序。
- 支持gre(4)和egre(4)中的可选GRE密钥头和GRE密钥熵。
- 使用通用路由封装进行网络虚拟化的新nvgre(4)驱动程序。
- 支持配置隧道接口封装的Do not Fragment标志报文。
- 安装程序改进:
- 如果install.site或upgrade.site失败,请在存储rand.seed后通知用户并输出错误。
- 允许使用CIDR表示法。
- 从镜像列表中修复HTTP镜像的选择。
- 允许在用户名中使用' - '。
- 在安装/升级过程结束时提出问题,因此回车会导致相应的操作,例如:重新启动。
- 就会显示模式(安装或升级)shell提示。
- 正确检测哪个接口具有默认路由以及是否通过DHCP配置。
- 确保可以从预取区域读取集合。
- 确保URL重定向对整个安装/升级有效。
- 将获取集时使用的HTTP代理添加到rc.firsttime,其中fw_update和syspatch可以找到并使用它。
- 使用SLAAC添加逻辑以支持RFC 7217。
- 确保为动态创建的网络接口(如vlan(4)。 )配置IPv6
- 在DHCP租约中提供域名和域搜索选项时创建正确的主机名。
- 路由守护进程和其他用户态网络改进:
- bgpctl(8)有一个新的ssv选项,它输出rib条目作为单个分号分隔,如输出前的选择。
- slaacd(8)根据RFC 7217生成随机但稳定的IPv6无状态自动配置地址。默认情况下,这些地址根据RFC 8064启用。
- slaacd(8)遵循RFC 4862,使用RFC 7217(随机但稳定)和RFC 4941(隐私)样式无状态自动配置地址删除对/ 64大小前缀的人为限制。
- ospfd(8)现在可以根据接口的状态设置路由的度量。
- ifconfig(8)有一个新的staticarp选项,使接口仅回复ARP请求。
- ipsecctl(8)现在可以折叠具有相同来源或目的地的流量输出。
- netstart(8)中的-n选项不再与默认路由混淆。现在也有记录。
- 安全改进:
- 在各种架构上使用更多的陷阱雪橇。
- 在汇编源中更多地使用.rodata作为常量变量。
- 停止使用x86" repz ret"在树上满是灰尘的角落里。
- 介绍“execpromises”在承诺(2)。
- 用于构建ramdisks的elfrdsetroot实用程序和反弹(8)监控过程现在使用承诺(2)。
- 准备在6.3。 之后将MAP_STACK引入mmap(2)
- 在启动时将一小段KARL链接的内核文本作为熵推入随机数生成器。
- 在线程堆栈的顶部放置一个小的随机间隙,以便攻击者可以为他们的ROP工作执行另一个计算。
- 缓解英特尔品牌amd64 CPU的崩溃漏洞。
- OpenBSD / arm64现在使用内核页表隔离来缓解Spectre变种3(Meltdown)攻击。
- OpenBSD / armv7和OpenBSD / arm64现在刷新执行推测执行的处理器上的分支目标缓冲区(BTB)以减轻Spectre变种2的攻击。</ li>
- pool_get(9)扰乱了新分配页面上项目的顺序,使内核堆布局更难预测。
- 删除了fktrace(2)系统调用。
- dhclient(8)改进:
- 解析dhclient.conf(5)不再泄漏SSID字符串,对于解析缓冲区来说太长的字符串或重复的字符串选项和命令。
- 不再支持在dhclient.conf(5)中存储租约。
- 'DENY'在dhclient.conf(5)中不再有效。
- dhclient.conf(5)和dhclient.leases(5)解析错误消息已经过简化和澄清,在出现意外分号的情况下改进了行为。
- 更加注意只使用已成功解析的配置信息。
- ' - n'已添加,导致dhclient(8)在解析dhclient.conf(5)后退出。
- 选项classless-static-routes(121)和classless-ms-static-routes(249)中的默认路由现在可以在dhclient.leases(5)文件中正确表示。
- 覆盖用'-L'指定的文件,而不是附加到它。
- dhclient.leases(5)中的租约现在包含一个'epoch'属性,记录租约被接受的时间,用于计算正确的续订,重新绑定和到期时间。
- 在违反RFC 952的名称中不再唠叨下划线。
- 在请求租约时无条件发送主机名信息,无需在默认安装中使用dhclient.conf(5)。
- 默认情况下请保持安静。 '-q'已被删除,并添加'-v'以启用详细日志记录。
- 拒绝所请求地址的重复优惠。
- 在链接超时秒后无条件进入后台。
- 在安静时显着减少日志记录,但使'-v'记录所有调试信息,而无需编译自定义可执行文件。
- 忽略dhclient.leases(5)中的'interface'语句,并假设文件中的所有租约都是针对正在配置的接口。
- 显示绑定到接口的租约来源。
- 'ignore','request'和'require'声明在dhclient.conf(5)中现在将指定的选项添加到相关列表而不是替换列表。
- 在没有配置界面的情况下,消除可能导致dhclient(8)退出的启动竞赛。
- 各种改进:
- 对malloc(3)和朋友进行代码重组和其他改进,以提高它们的效率。
- 执行挂起或休眠操作时,确保所有文件系统已正确同步并标记为干净,或者如果它们无法在磁盘上处于完全干净状态(由于打开+未链接的文件),则将其标记为脏,以便恢复失败/ unhibernate保证执行fsck(8)。
- acme-client(1)自动检测协议URL并遵循30x HTTP重定向。
- 添加了__cxa_thread_atexit()以支持现代C ++工具链。
- 为kqueue(2)添加了EVFILT_DEVICE支持,用于监控drm(4)设备的更改。
- ldexp(3)现在可以在mips64上正确处理非正规数字的符号。
- 新的sincos(3)在libm中起作用。
- fdisk(8)现在可以确保编辑时输入的MBR分区偏移的有效性。
- fdisk(8)现在确保默认值位于有效范围内。
- less(1)现在只在'$'上拆分环境变量LESS。
- less(1)在初始命令中遇到'$'时不再创建虚假文件。
- softraid(4)现在验证组装卷时的块数,确保磁盘上和内存中的元数据保持同步。
- disklabel(8)现在总是提供在编辑块大小之前编辑FFS分区的片段大小。
- disklabel(8)现在允许编辑柱面/组(cpg)属性,只要可以编辑分区块大小。
- disklabel(8)现在在(R)esize命令期间检测^ D和无效输入。
- disklabel(8)现在可以在使用 - / +运算符时检测下溢和溢出。
- disklabel(8)现在可以在计算空闲块中的柱面数时避免一个接一个。
- disklabel(8)现在根据最大空闲块的大小而不是总可用空间来验证请求的分区大小。
- 支持通过bpf(4)转储USB传输。
- tcpdump(8)现在可以理解USBPcap格式的USB传输转储。
- csh(1),ksh(1)和sh(1)的默认提示现在包含主机名。
- ksh(1)中的内存分配从calloc(3)切换回malloc(3),从而更容易识别未初始化的内存。因此,发现并修复了emacs编辑模式中与历史相关的错误。
- 新脚本(1)-c选项,用于运行命令而不是shell。
- 新的grep(1)-m选项,用于限制匹配数。
- 新的uniq(1)-i选项,用于不区分大小写的比较。
- 查找%格式时,不再验证printf(3)格式字符串。基于android的提交并遵循大多数其他操作系统。
- 改进了vfwprintf(3)中的错误检查。
- 许多基础程序已经过陈旧的文件描述符的审核和修复,包括cron(8),ftp(1),mandoc(1),openssl(1),ssh(1)和sshd(8)。
- jot(1)中的各种错误修复和改进:
- 删除了-b,-s,-w选项的参数的任意长度限制。
- 现在支持%F格式说明符,并修复了%D格式的错误。
- 回归测试中更好的代码覆盖率。
- 修复了几个缓冲区溢出。
- patch(1)实用程序现在可以更好地处理创建或删除文件的git差异。
- pkg_add(1)现在已经改进了对HTTP(S)重定向器的支持,例如cdn.openbsd.org。
- ftp(1)和pkg_add(1)现在支持HTTPS会话恢复以提高速度。
- mandoc(1)-T ps输出文件大小减少50%以上。
- syslogd(8)记录启动期间是否有警告。
- syslogd(8)停止记录到完整文件系统中的文件。现在它会写一个警告,并在空间可用后继续。
- vmt(4)现在允许克隆并获取正在运行的guest虚拟机的仅磁盘快照。
- OpenSMTPD 6.0.4
- 将spf walk选项添加到smtpctl(8)。
- 各种清理和改进。
- 许多手册页修复和改进。
- OpenSSH 7.7
- 新功能/已更改功能:
- 全部:基于https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures中描述的算法,为PQC XMSS密钥(基于扩展哈希的签名)添加实验支持-12 XMSS签名代码是实验性的,默认情况下不编译。
- sshd(8):添加“rdomain” sshd_config匹配关键字的条件,允许条件配置取决于接收连接的路由域(当前在OpenBSD和Linux上受支持)。
- sshd_config(5):向ListenAddress指令添加可选的rdomain限定符,以允许侦听不同的路由域。目前仅支持OpenBSD和Linux。
- sshd_config(5):添加RDomain指令以允许将经过身份验证的会话置于显式路由域中。目前仅支持OpenBSD。
- sshd(8):添加“到期时间” authorized_keys文件的选项允许到期密钥。
- ssh(1):添加BindInterface选项以允许将传出连接绑定到接口的地址(基本上是更有用的BindAddress)。
- ssh(1):通过新的%T扩展为LocalCommand公开为tun / tap转发分配的设备。这允许使用LocalCommand来准备接口。
- sshd(8):通过新的SSH_TUNNEL环境变量公开为tun / tap转发分配的设备。这允许在服务器上自动设置接口和周围网络配置。
- ssh(1)/ scp(1)/ sftp(1):为ssh,sftp和scp添加URI支持,例如: ssh:// user @ host或sftp:// user @ host / path。 draft-ietf-secsh-scp-sftp-ssh-uri-04中描述的其他连接参数未实现,因为草稿中的ssh指纹格式使用了弃用的MD5哈希,无法指定任何其他算法。
- ssh-keygen(1):允许证书有效期间隔仅指定开始或停止时间(而不是两者或两者都不是)。
- sftp(1):允许“cd”和“lcd”没有显式路径参数的命令。 lcd将像往常一样更改为本地用户的主目录。 cd将更改为会话的起始目录(因为协议无法获取远程用户的主目录)。 BZ#2760
- sshd(8):使用sshd -T进行配置测试时,只需要匹配条件中实际使用的属性,而不是所有条件的(不完整列表)。
- 此版本中修复了以下重大错误:
- ssh(1)/ sshd(8):在密钥交换期间更严格地检查签名类型与协商的内容。防止将使用SHA-256/512进行的RSA签名降级为SHA-1。
- sshd(8):修复对广告协议版本为“1.99”的客户端的支持。 (表示他们准备接受SSHv1和SSHv2)。在删除SSHv1支持期间,这在OpenSSH 7.6中被破坏了。 BZ#2810
- ssh(1):当请求rsa-sha2-256 / 512签名时代理返回ssh-rsa(SHA1)签名时发出警告。当使用旧的或非OpenSSH代理时,这种情况是可能的。 BZ#2799
- ssh-agent(1):修复7.6中的回归引入,如果出现无效的签名请求消息,则导致ssh-agent致命退出。
- sshd_config(5):接受yes / no标志选项不区分大小写,就像ssh_config(5)中的情况一样。 BZ#2664
- ssh(1):改善连接期间失败的错误报告。在某些情况下,会出现误导性错误。 BZ#2814
- ssh-keyscan(1):添加-D选项以允许直接以SSHFP格式打印结果。 BZ#2821
- 回归测试:修复上次发布的SSHv1删除中破坏的PuTTY互操作测试。 BZ#2823
- ssh(1):在发送IUTF8(RFC8160)选项时错误地断开连接的某些服务器的兼容性修补程序。
- scp(1):在scp启动的ssh会话中禁用RemoteCommand和RequestTTY(sftp已经这样做了。)
- ssh-keygen(1):拒绝创建具有无法使用的主体数量的证书。
- ssh-keygen(1):如果ssh-keygen在密钥生成期间无法写入所有公钥,则会致命地退出。以前它会默默地忽略编写注释和终止换行的错误。
- ssh(1):不要通过自动强制它们为小写来修改地址的主机名参数。相反,规范化它们在与known_hosts匹配之前解决歧义(例如:: 0001 =&gt; :: 1)。 BZ#2763
- ssh(1):在“是”之后不接受垃圾或“不”响应hostkey提示。 BZ#2803
- sftp(1):当解码第一个数据包失败时,让sftp打印关于shell清洁度的警告,这通常是由于shell污染了非交互式初创公司的stdout。 BZ#2800
- ssh(1)/ sshd(8):将分组代码中的定时器从使用挂钟时间切换到单调时间,允许分组层在一个时钟步骤中更好地起作用,并避免在步骤期间可能出现整数溢出。
- 许多手册页修复和改进。
- LibreSSL 2.7.2
- 根据对应用程序中实际使用情况的观察,添加了对许多OpenSSL 1.0.2和1.1 API的支持。它们与现有的OpenSSL 1.0.1 API并行实现 - 尚未对现有结构进行可见性更改,允许为较旧的OpenSSL API编写的代码继续工作。
- 对API文档进行了广泛的更正,改进和补充,包括OpenSSL中没有预先存在文档的新公共API。
- 在libcrypto,libssl和libtls中添加了对自动库初始化的支持。现在,目标操作系统需要支持pthread_once或兼容的等效项。作为副作用,最低Windows支持是Vista或更高版本。
- 将更多数据包处理方法转换为CBB,从而提高生成TLS消息时的弹性。
- 完成了TLS扩展处理重写,提高了格式错误和重复扩展的检查的一致性。
- 使用模板化ASN.1重写了ASN1_TYPE_ {get,set} _octetstring()。这将从需要继续存在的API中删除旧的M_ASN1_ *宏(asn1_mac.h)的最后剩余使用。
- 在libtls中添加了对客户端会话恢复的支持。 libtls客户端可以指定会话文件描述符(具有适当所有权和权限的常规文件),libtls将管理跨TLS握手的会话数据读取和写入。
- 改进了对ARMv7体系结构严格对齐的支持,在这些情况下有条件地启用程序集。
- 修复了重用tls_config时libtls中的内存泄漏问题。
- 将更多DTLS支持合并到常规TLS代码路径中,删除重复的代码。
- 端口和包:
- dpb(1)和普通端口(7)现在可以通过设置PORTS_PRIVSEP =是 来享受相同的权限分离模型
- 每个架构的许多预构建包:
- aarch64:7990
- alpha:1
- amd64:9912
- arm:XXXX
- hppa:XXXX
- i386:9861
- mips64:8149
- mips64el:XXXX
- powerpc:XXXX
- sh:1
- sparc64:XXXX
- 一些亮点:
- AFL 2.52b
- CMake 3.10.2
- Chromium 65.0.3325.181
- Emacs 21.4和25.3
- GCC 4.9.4
- GHC 8.2.2
- Gimp 2.8.22
- GNOME 3.26.2
- 去1.10
- Groff 1.22.3
- JDK 8u144
- KDE 3.5.10和4.14.3(加上KDE4核心更新)
- LLVM / Clang 5.0.1
- LibreOffice 6.0.2.1
- Lua 5.1.5,5.2.4和5.3.4
- MariaDB 10.0.34
- Mozilla Firefox 52.7.3esr和59.0.2
- Mozilla Thunderbird 52.7.0
- Mutt 1.9.4和NeoMutt 20180223
- Node.js 8.9.4
- Ocaml 4.03.0
- OpenLDAP 2.3.43和2.4.45
- PHP 5.6.34和7.0.28
- Postfix 3.3.0和3.4-20180203
- PostgreSQL 10.3
- Python 2.7.14和3.6.4
- R 3.4.4
- Ruby 2.3.6,2.4.3和2.5.0
- Rust 1.24.0
- Sendmail 8.16.0.21
- SQLite3 3.22.0
- Sudo 1.8.22
- Tcl / Tk 8.5.19和8.6.8
- TeX Live 2017
- Vim 8.0.1589
- Xfce 4.12
- 像往常一样,手动页面和其他文档的稳步改进。
- 该系统包括来自外部供应商的以下主要组件:
- Xenocara(基于X.Org 7.7,xserver 1.19.6 +补丁,freetype 2.8.1,fontconfig 2.12.4,Mesa 13.0.6,xterm 330,xkeyboard-config 2.20等)
- LLVM / Clang 5.0.1(+补丁)
- GCC 4.2.1(+补丁)和3.3.6(+补丁)
- Perl 5.24.3(+补丁)
- NSD 4.1.20
- Unbound 1.6.8
- Ncurses 5.7
- Binutils 2.17(+补丁)
- Gdb 6.3(+补丁)
- Awk 2011年8月10日版
- Expat 2.2.5
现在可以阻止
输入IPv4和IPv6地址时,
只要没有主机名已知,
版本6.2中的新功能:
- 新/扩展平台:
- ARMv7的:
- 添加了EFI bootloader,内核现在从FFS而不是FAT或EXT文件系统加载,没有U-Boot头。
- 单个内核和ramdisk现在用于所有SoC。
- 硬件通过扁平化设备树(FDT)动态枚举,而不是通过基于电路板ID号的静态表进行枚举。
- Miniroot安装程序映像包括U-Boot 2016.07,支持EFI有效负载。
- VAX:
- 移除。
- 改进了硬件支持,包括:
- 用于Intel Bay Trail GPIO控制器的新的bytgpio(4)驱动程序。
- 用于Intel Cherry View GPIO控制器的新chvgpio(4)驱动程序。
- Maxim DS1307实时时钟的新maxrtc(4)驱动程序。
- 用于Non-Volatile Memory Express(NVMe)主机控制器接口的新nvme(4)驱动程序。
- 用于恩智浦PCF8523实时时钟的新pcfrtc(4)驱动程序。
- 移动宽带接口模型(MBIM)的新umb(4)驱动程序。
- 基于RealTek RTL8152的10/100 USB以太网设备的新型ure(4)驱动程序。
- 基于Fushicai USBTV007的音频/视频捕捉设备的新utvfu(4)驱动程序。
- iwm(4)驱动程序现在支持Intel Wireless 3165和8260设备,并且在RAMDISK内核中工作更可靠。
- dwiic(4)增加了对带有GPIO信号中断的I2C HID设备的支持。
- sdmmc(4),rtsx(4),sdhc(4)和imxesdhc(4)增加了对更大总线宽度,高速模式和DMA传输的支持。
- 支持Octeon II SoC上符合EHCI和OHCI标准的USB控制器。
- 在OpenBSD / octeon上启用了许多USB设备驱动程序。
- 改进了对硬件减少的ACPI实施的支持。
- 改进了对ACPI 5.0实施的支持。
- AES-NI加密现在无需持有内核锁即可完成。
- 改进了PowerPC G5机器上的AGP支持。
- 增加了对Intel Bay Trail SoC中SD卡插槽的支持。
- ichiic(4)驱动程序现在忽略了SMBALERT#中断,以防止出现错误的BIOS实现的中断风暴。
- 已修复axen(4)驱动程序的设备附件问题。
- 使用RT2860设备时,ral(4)驱动器在负载下更稳定。
- 恢复后死键盘的问题已在pckbd(4)驱动程序中修复。
- rtsx(4)驱动程序现在支持RTS522A设备。
- 已添加对MSI-X的初始支持。
- 支持virtio(4)驱动程序中的MSI-X。
- 为dc(4)驱动程序添加了硬件DMA溢出的解决方法。
- 如果ACPI使用迟滞进行主动冷却,acpitz(4)驱动程序现在会在冷却后将风扇旋转。
- xhci(4)驱动程序现在可以正确地从支持xHCI的BIOS执行切换。
- wsmouse(4)驱动程序中添加了对多点触控输入的支持。
- uslcom(4)驱动程序现在支持Aruba 7xxx无线控制器的串行控制台。
- re(4)驱动程序现在适用于APU1 EEPROM中损坏的LED配置。
- ehci(4)驱动程序现在可以解决ATI USB控制器(例如SB700)的问题。
- xen(4)驱动程序现在支持Qubes OS下的domU配置。
- IEEE 802.11无线堆栈改进:
- HT块确认接收缓冲逻辑更紧密地遵循802.11-2012规范中给出的算法。
- iwn(4)驱动程序现在跟踪与11n AP关联的HT保护更改。
- 无线堆栈和多个驱动程序可以更积极地使用RTS / CTS,以避免来自传统设备和隐藏节点的干扰。
- netstat(1)-W命令现在显示有关802.11n事件的信息。
- 在hostap模式下,不要重用仍然缓存的节点的关联ID。修复了使用ral(4)驱动程序的访问点卡在1 Mbps的问题,因为错误的节点对象上发生了Tx速率记帐。
- 通用网络堆栈改进:
- 路由表现在基于ART,提供更快的查找。
- 转发路径中每个数据包的路由查找次数已减少为1。
- 现在可以在vlan(4)接口上发送的IPv4数据包的每个片段上正确设置VLAN标头上的prio字段。
- 为bpf(4)启用设备克隆。这允许系统在/ dev中只有一个bpf设备节点,为所有bpf消费者提供服务(最多1024个)。
- 现在可以与内核的其余部分并行处理cnmac(4)驱动程序的Tx队列。
- 网络输入路径现在在线程上下文中运行。
- 安装程序改进:
- 更新受限用户代码列表
- install.sh和upgrade.sh合并到install.sub
- update在fw_update(1) 之前以批处理模式自动运行sysmerge(8)
- 问题和答案以可用作自动安装使用的响应文件的格式记录(8)
- / usr / local在安装期间设置为wxallowed
- 路由守护进程和其他用户态网络改进:
- 将路由表支持添加到rc.d(8)和rcctl(8)。
- 除了端口号之外,让nc(1)支持服务名称。
- 将-M和-m TTL标志添加到nc(1)。
- 将AF_UNIX支持添加到tcpbench(1)。
- 修正了rarpd(8)中的回归问题。如果守护程序闲置很长时间,它就会挂起。
- 在ifconfig(8)中添加了llprio选项。
- 使用bpf(4)的多个程序已经过修改,可以通过打开/ dev / bpf0而不是通过/ dev / bpf *设备循环来利用bpf(4)设备克隆。这些程序包括arp(8),dhclient(8),dhcpd(8),dhcrelay(8),hostapd(8),mopd(8),npppd(8),rarpd(8),rbootd(8)和tcpdump (8)。 libpcap库也已相应修改。
- 安全改进:
- W ^ X现在默认严格执行;如果可执行文件标记为PT_OPENBSD_WXNEEDED并且位于使用wxallowed mount(8)选项安装的文件系统上,则程序只能违反该程序。因为仍有太多端口违反W ^ X,安装程序会使用wxallowed挂载/ usr / local文件系统。只要/ usr / local是一个单独的文件系统,这就允许基本系统更安全。如果您没有使用违反W ^ X的程序,请考虑手动撤销该选项。
- setjmp(3)系列函数现在将xOR cookie应用于amd64,hppa,i386,mips64和powerpc上的jmpbuf中的堆栈和返回地址值。
- SROP缓解:sigreturn(2)现在只能由内核提供的信号trampoline使用,并使用cookie来检测重用它的尝试。
- 为了阻止代码重用漏洞,rc(8)在启动时重新链接libc.so,以随机顺序放置对象。
- 在getpwnam(3)系列函数中,默认情况下停止打开影子数据库。
- 允许tcpdump(8)-r在没有root权限的情况下启动。
- 删除systrace。
- 删除Linux仿真支持。
- 删除对usermount选项的支持。
- TCP SYN缓存不时重新设置其随机散列函数。这可以防止攻击者通过计时攻击来计算哈希函数的分布。
- 为了防止SYN泛洪攻击,管理员现在可以更改哈希数组的大小。 netstat(1)-s -p tcp显示使用sysctl(8)net.inet.tcp调整SYN缓存的相关信息。
- 管理员可以要求root权限以使用sysctl(8)net.inet.tcp.rootonly和sysctl(8)net.inet.udp.rootonly绑定到某些TCP和UDP端口。
- 从mbuf(9)数据结构中删除函数指针,并将索引用于可接受函数的数组中。
- 各种改进:
- 现在可以将线程库加载到单线程进程中。
- 改进了libc中的符号处理和标准合规性。例如,定义open()函数将不再干扰fopen(3)的操作。
- 最初加载的对象现在支持PT_TLS部分。
- 改进了对“无路径”的处理。和“空路径”在fts(3)。
- 在pcap(3)中,提供pcap_free_datalinks()和pcap_offline_filter()函数。
- editline(3)库中的许多错误修正和结构清理。
- 删除古老的dbm(3)函数; ndbm(3)仍然存在。
- 在doas.conf(5)中添加setenv关键字以实现更强大的环境处理。
- 将-g和-p选项添加到aucat.1以进行时间定位。
- 使用更简单的用户界面重写audioctl(1)。
- 在关闭文件之前,添加-F选项以将文件安装(1)到fsync(2)。
- kdump(1)现在转储pollfd结构。
- 改进ksh(1)POSIX合规性的各种细节。
- mknod(8)以承诺(2)友好的方式重写,并支持一次创建多个设备。
- 实施rcctl(8)get all和getdef all。
- 实施rcs(1)-I(交互式)标志。
- 在rcs(1)中,实现Mdocdate关键字替换。
- 在top(1)中,允许过滤进程参数(如果正在显示它们)。
- 为fold(1)和rev(1)添加了UTF-8支持。
- 默认情况下在xterm(1)和pod2man(1)中启用UTF-8。
- 过滤掉墙(1)中的非ASCII字符。
- 在许多程序中一致地处理COLUMNS环境变量。
- 选项-c和-k允许在发送端为syslogd(8)提供TLS客户端证书。通过这种方式,接收方可以验证日志消息是否可信。请注意,syslogd还没有此检查功能。
- 当klog缓冲区溢出时,syslogd将写一条日志消息,表明缺少某些条目。
- 在OpenBSD / octeon上,启用CPU缓存写缓冲以提高性能。
- pkg_add(1)和pkg_info(1)现在理解了分支的概念,以便于选择一些流行的软件包,如python或php,例如pkg_add python%3.4来选择3.4分支,并使用pkg_info -zm来得到一个模糊列表,其分支选择适合pkg_add -l。
- fdisk(8)和pdisk(8)会立即退出,除非传递了角色特殊设备
- st(4)正确跟踪可变大小块的当前块计数
- fsck_ext2fs(8)再次工作
- softraid(4)卷可以使用扇区大小不是512字节的磁盘构建
- dhclient(8)拒绝并丢弃未使用的OFFER。
- dhclient(8)如果其接口(例如网桥(4))在发送数据包时返回EAFNOSUPPORT,则会立即退出。
- httpd(8)为HTTP v0.9请求返回400 Bad Request。
- ffs2的延迟节点初始化避免将随机磁盘数据视为inode
- fcntl(2)基础程序中的调用使用成语fcntl(n,F_GETFL)代替fcntl(n,F_GETFL,0)
- socket(2)和accept4(2)调用使用SOCK_NONBLOCK来消除对单独fcntl(2)的需要。
- 默认情况下未启用tmpfs
- pledge(2)的内核语义在很多方面得到了改进。重点包括:新的承诺承诺,允许承诺的程序设置setugid属性,更严格执行recvfd承诺和chroot(2)不再允许承诺的程序。
- 许多承诺(2)相关的错误(缺少承诺,行为的意外变化,崩溃)被修复,特别是在gzip(1),nc(1),sed(1),skeyinit(1),stty (1),以及各种与磁盘相关的实用程序,例如disklabel(8)和fdisk(8)。
- 已修复audio(4)驱动程序中的块大小计算错误。
- usb(4)驱动程序现在缓存供应商和产品ID。修复了usbdevs(8)在循环中调用会导致USB大容量存储设备停止运行的问题。
- rsu(4)和ural(4)司机在5.9中意外破坏后再次正在工作。
- OpenSMTPD 6.0.0
- 安全性:
- 在smtpd(8)中实现fork + exec模式。
- 修复SMTP状态机中的逻辑问题,该问题可能导致无效状态并导致崩溃。
- 插入文件指针泄漏,可能导致资源耗尽并导致崩溃。
- 使用自动DH参数而不是固定参数。
- 默认情况下禁用DHE,因为它的计算成本很高且是潜在的DoS向量。
- 版本6.2中带来了以下改进:
- 将-r选项添加到smtpd(8)enqueuer以与mailx兼容。
- 在侦听提交端口时添加缺少日期或消息ID。
- 修复“smtpctl show queue”报告“无效”信封状态。
- 重写“已收到”的格式标题,以便TLS部分不违反RFC。
- 增加允许本地地址建立的连接数,并减少同一会话中事务之间的延迟。
- 修复LMTP传递到返回延续行的服务器。
- 进一步改进仍在进行实验的过滤器API并修复各种相关问题。
- 开始改进和统一日志消息的格式。
- 修复了手册页中的几个文档差异和拼写错误。
- OpenSSH 7.3
- 安全性:
- sshd(8):通过sshd(8)缓解对系统crypt(3)功能的潜在拒绝服务攻击。攻击者可能会发送非常长的密码,这会导致在密码中使用过多的CPU(3)。 sshd(8)现在拒绝接受长度超过1024个字符的密码验证请求。
- sshd(8):在发送长密码并在服务器上使用特定密码哈希算法时,缓解密码身份验证中的时序差异,该身份验证可用于从无效帐户名中辨别有效。 CVE-2016-6210。
- ssh(1),sshd(8):修复CBC填充oracle对策中可观察到的时序弱点。请注意,默认情况下禁用CBC密码,仅包括旧版兼容性。
- ssh(1),sshd(8):改进加密 - 然后 - MAC(EtM)模式传输MAC算法的MAC验证的顺序,以在解密任何密文之前验证MAC。这消除了时间差异泄露有关明文的事实的可能性,尽管没有这种泄漏是已知的。
- 新功能/已更改功能:
- ssh(1):添加ProxyJump选项和相应的-J命令行标志,以允许通过一个或多个SSH堡垒或“跳转主机”进行简化间接。
- ssh(1):添加IdentityAgent选项以允许指定特定代理套接字,而不是从环境中接受一个代理套接字。
- ssh(1):使用ssh -W时,允许可选地覆盖ExitOnForwardFailure和ClearAllForwardings。 (BZ#2577)
- ssh(1),sshd(8):根据draft-sgtatham-secsh-iutf8-00实现对IUTF8终端模式的支持。
- ssh(1),sshd(8):从draft-ietf-curdle-ssh-kex-sha2-03添加对其他固定Diffie-Hellman 2K,4K和8K组的支持。
- ssh-keygen(1),ssh(1),sshd(8):在证书中支持SHA256和SHA512 RSA签名。
- ssh(1):为ssh_config(5)文件添加Include指令。
- ssh(1):允许从服务器发送的预认证横幅中的UTF-8字符。 (BZ#2058)
- 版本6.2中修复了以下重大错误:
- 在scp(1)和sftp(1)中,通过转义不形成ASCII或UTF-8字符的字节来防止搞砸终端设置。
- ssh(1),sshd(8):从LOG_CRIT中减少一些相对常见的协议事件的syslog级别。 (BZ#2585)
- sshd(8):拒绝AuthenticationMethods =&quot;&quot;在配置中接受AuthenticationMethods = any表示不需要多次身份验证的默认行为。 (BZ#2398)
- sshd(8):删除过时且具有误导性的“可能的突然袭击!”正向和反向DNS不匹配时的消息。 (BZ#2585)
- ssh(1):关闭ControlPersist后台进程stderr,但在调试模式下或登录到syslog时除外。 (BZ#1988)
- misc:为direct-streamlocal@openssh.com创建PROTOCOL描述。通道打开消息匹配已部署的代码。 (BZ#2529)
- ssh(1):重复使用LocalForward和RemoteForward条目以在启用ExitOnForwardFailure和hostname规范化时修复失败。 (BZ#2562)
- sshd(8):从模数中删除回退到过时的“素数” 2001年弃用的文件。(bz#2559)
- sshd_config(5):UseDNS的正确描述:它影响authorized_keys的ssh主机名处理,而不是known_hosts。 (BZ#2554)
- ssh(1):使用代理中的单独证书密钥修复身份验证,而不在文件系统上使用相应的私钥。 (BZ#2550)
- sshd(8):在设置基于时间的RekeyLimit时发送ClientAliveInterval ping;以前的keepalive数据包没有被发送。 (BZ#2252)
- OpenNTPD 6.0
- 当单个“约束”时指定,尝试所有返回的地址,直到成功,而不是第一个返回的地址。
- 放宽约束误差范围以与NTP对等体的数量成比例,避免在存在错误的NTP对等体时不断重新连接。
- 删除了已禁用的热插拔(4)传感器支持。
- 添加了对检测约束子进程中崩溃的支持。
- 将约束的执行从ntp进程移动到父进程,从而允许更好的权限分离,因为可以进一步限制ntp进程。
- 修复网络故障时的高CPU使用率。
- 修复了各种内存泄漏问题。
- 切换到RMS以进行抖动计算。
- 与其他OpenBSD基本程序一起使用统一日志记录功能。
- 设置MOD_MAXERROR以避免在使用ntp_adjtime时未同步的时间状态。
- 修复了HTTP时间戳标头解析,以便以更便携的方式使用strptime(3)。
- 针对ntpd(8)约束的强化TLS,启用服务器名称验证。
- LibreSSL 2.4.2
- 用户可见的功能:
- 修复了安装目标中的一些损坏的联机帮助页链接。
- cert.pem已经重组并与Mozilla的证书商店同步。
- 可靠性修复,在解析超过16k的某些ASN.1元素时纠正错误。
- 实施了IETF ChaCha20-Poly1305密码套件。
- 修复了openssl(1)的密码提示,以正确处理^ C.
- 代码改进:
- 通过添加'install_sw'构建目标来解决nginx兼容性问题。
- 将默认EVP_aead_chacha20_poly1305(3)实施更改为IETF版本,现在是默认版本。
- 在libtls中重写错误处理,以便更容易看到配置错误。
- 围绕bn_wexpand(3)调用添加了缺失的错误处理。
- 为释放的ASN.1对象添加了explicit_bzero(3)调用。
- 修正X509_ * set_object函数在分配失败时返回0。
- 不推荐使用EVP_ [Cipher | Encrypt | Decrypt] _Final。
- 修复了一个问题,即使设置了标志BN_FLG_CONSTTIME,也会阻止DSA签名算法在常量时间内运行。
- 修复了OCSP代码中可能导致错误生成和解析OCSP请求的几个问题。这可以解决在这些函数中解析时缺少错误的问题,并确保根据RFC 6960,OCSP只接受GENERALIZEDTIME格式。
- 以下CVE已修复:
- CVE-2016-2105-EVP_EncodeUpdate overflow。
- CVE-2016-2106-EVP_EncryptUpdate溢出。
- CVE-2016-2107-padding oracle in AES-NI CBC MAC check。
- ASN.1编码器中的CVE-2016-2108内存损坏。
- CVE-2016-2109-ASN.1 BIO过多的内存分配。
- 端口和包:
- ports树中的新proot(1)工具,用于在chroot中构建包。
- 每个架构的许多预构建包:
- alpha:7422
- amd64:9433
- hppa:6346
- i386:9394
- mips64:7921
- mips64el:7767
- powerpc:8318
- sparc64:8570
- 一些亮点:
- Afl 2.19b
- Chromium 51.0.2704.106
- Emacs 21.4和24.5
- GCC 4.9.3
- GHC 7.10.3
- Gimp 2.8.16
- GNOME 3.20.2
- 去1.6.3
- Groff 1.22.3
- JDK 7u80和8u72
- KDE 3.5.10和4.14.3(加上KDE4核心更新)
- LLVM / Clang 3.8.0
- LibreOffice 5.1.4.2
- Lua 5.1.5,5.2.4和5.3.3
- MariaDB 10.0.25
- Mono 4.4.0.182
- Mozilla Firefox 45.2.0esr和47.0.1
- Mozilla Thunderbird 45.2.0
- Mutt 1.6.2
- Node.js 4.4.5
- Ocaml 4.3.0
- OpenLDAP 2.3.43和2.4.44
- PHP 5.5.37,5.6.23和7.0.8
- Postfix 3.1.1和3.2-20160515
- PostgreSQL 9.5.3
- Python 2.7.12,3.4.5和3.5.2
- R 3.3.1
- 红宝石1.8.7.374,2.0.0.648,2.1.9,2.2.5,2.3.1和
- Rust 1.9.0-20160608
- Sendmail 8.15.2
- Sudo 1.8.17.1
- Tcl / Tk 8.5.18和8.6.4
- TeX Live 2015
- Vim 7.4.1467
- Xfce 4.12
- 像往常一样,手动页面和其他文档的稳步改进。
- 该系统包括来自外部供应商的以下主要组件:
- Xenocara(基于X.Org 7.7的xserver 1.18.3 +补丁,freetype的2.6.3,2.11.1的fontconfig,梅萨11.2.2,xterm的322,xkeyboard-配置2.18和以上)
- GCC 4.2.1(+补丁)和3.3.6(+补丁)
- Perl 5.20.3(+补丁)
- SQLite 3.9.2(+补丁)
- NSD 4.1.10
- Unbound 1.5.9
- Ncurses 5.7
- Binutils 2.17(+补丁)
- Gdb 6.3(+补丁)
- Awk 2011年8月10日版
- Expat 2.1.1
基本程序中的
版本6.1中的新功能:
- 新/扩展平台:
- ARMv7的:
- 添加了EFI bootloader,内核现在从FFS而不是FAT或EXT文件系统加载,没有U-Boot头。
- 单个内核和ramdisk现在用于所有SoC。
- 硬件通过扁平化设备树(FDT)动态枚举,而不是通过基于电路板ID号的静态表进行枚举。
- Miniroot安装程序映像包括U-Boot 2016.07,支持EFI有效负载。
- VAX:
- 移除。
- 改进了硬件支持,包括:
- 用于Intel Bay Trail GPIO控制器的新的bytgpio(4)驱动程序。
- 用于Intel Cherry View GPIO控制器的新chvgpio(4)驱动程序。
- Maxim DS1307实时时钟的新maxrtc(4)驱动程序。
- 用于Non-Volatile Memory Express(NVMe)主机控制器接口的新nvme(4)驱动程序。
- 用于恩智浦PCF8523实时时钟的新pcfrtc(4)驱动程序。
- 移动宽带接口模型(MBIM)的新umb(4)驱动程序。
- 基于RealTek RTL8152的10/100 USB以太网设备的新型ure(4)驱动程序。
- 基于Fushicai USBTV007的音频/视频捕捉设备的新utvfu(4)驱动程序。
- iwm(4)驱动程序现在支持Intel Wireless 3165和8260设备,并且在RAMDISK内核中工作更可靠。
- dwiic(4)增加了对带有GPIO信号中断的I2C HID设备的支持。
- sdmmc(4),rtsx(4),sdhc(4)和imxesdhc(4)增加了对更大总线宽度,高速模式和DMA传输的支持。
- 支持Octeon II SoC上符合EHCI和OHCI标准的USB控制器。
- 在OpenBSD / octeon上启用了许多USB设备驱动程序。
- 改进了对硬件减少的ACPI实施的支持。
- 改进了对ACPI 5.0实施的支持。
- AES-NI加密现在无需持有内核锁即可完成。
- 改进了PowerPC G5机器上的AGP支持。
- 增加了对Intel Bay Trail SoC中SD卡插槽的支持。
- ichiic(4)驱动程序现在忽略了SMBALERT#中断,以防止出现错误的BIOS实现的中断风暴。
- 已修复axen(4)驱动程序的设备附件问题。
- 使用RT2860设备时,ral(4)驱动器在负载下更稳定。
- 恢复后死键盘的问题已在pckbd(4)驱动程序中修复。
- rtsx(4)驱动程序现在支持RTS522A设备。
- 已添加对MSI-X的初始支持。
- 支持virtio(4)驱动程序中的MSI-X。
- 为dc(4)驱动程序添加了硬件DMA溢出的解决方法。
- 如果ACPI使用迟滞进行主动冷却,acpitz(4)驱动程序现在会在冷却后将风扇旋转。
- xhci(4)驱动程序现在可以正确地从支持xHCI的BIOS执行切换。
- wsmouse(4)驱动程序中添加了对多点触控输入的支持。
- uslcom(4)驱动程序现在支持Aruba 7xxx无线控制器的串行控制台。
- re(4)驱动程序现在适用于APU1 EEPROM中损坏的LED配置。
- ehci(4)驱动程序现在可以解决ATI USB控制器(例如SB700)的问题。
- xen(4)驱动程序现在支持Qubes OS下的domU配置。
- IEEE 802.11无线堆栈改进:
- HT块确认接收缓冲逻辑更紧密地遵循802.11-2012规范中给出的算法。
- iwn(4)驱动程序现在跟踪与11n AP关联的HT保护更改。
- 无线堆栈和多个驱动程序可以更积极地使用RTS / CTS,以避免来自传统设备和隐藏节点的干扰。
- netstat(1)-W命令现在显示有关802.11n事件的信息。
- 在hostap模式下,不要重用仍然缓存的节点的关联ID。修复了使用ral(4)驱动程序的访问点卡在1 Mbps的问题,因为错误的节点对象上发生了Tx速率记帐。
- 通用网络堆栈改进:
- 路由表现在基于ART,提供更快的查找。
- 转发路径中每个数据包的路由查找次数已减少为1。
- 现在可以在vlan(4)接口上发送的IPv4数据包的每个片段上正确设置VLAN标头上的prio字段。
- 为bpf(4)启用设备克隆。这允许系统在/ dev中只有一个bpf设备节点,为所有bpf消费者提供服务(最多1024个)。
- 现在可以与内核的其余部分并行处理cnmac(4)驱动程序的Tx队列。
- 网络输入路径现在在线程上下文中运行。
- 安装程序改进:
- 更新受限用户代码列表
- install.sh和upgrade.sh合并到install.sub
- update在fw_update(1) 之前以批处理模式自动运行sysmerge(8)
- 问题和答案以可用作自动安装使用的响应文件的格式记录(8)
- / usr / local在安装期间设置为wxallowed
- 路由守护进程和其他用户态网络改进:
- 将路由表支持添加到rc.d(8)和rcctl(8)。
- 除了端口号之外,让nc(1)支持服务名称。
- 将-M和-m TTL标志添加到nc(1)。
- 将AF_UNIX支持添加到tcpbench(1)。
- 修正了rarpd(8)中的回归问题。如果守护程序闲置很长时间,它就会挂起。
- 在ifconfig(8)中添加了llprio选项。
- 使用bpf(4)的多个程序已经过修改,可以通过打开/ dev / bpf0而不是通过/ dev / bpf *设备循环来利用bpf(4)设备克隆。这些程序包括arp(8),dhclient(8),dhcpd(8),dhcrelay(8),hostapd(8),mopd(8),npppd(8),rarpd(8),rbootd(8)和tcpdump (8)。 libpcap库也已相应修改。
- 安全改进:
- W ^ X现在默认严格执行;如果可执行文件标记为PT_OPENBSD_WXNEEDED并且位于使用wxallowed mount(8)选项安装的文件系统上,则程序只能违反该程序。因为仍有太多端口违反W ^ X,安装程序会使用wxallowed挂载/ usr / local文件系统。只要/ usr / local是一个单独的文件系统,这就允许基本系统更安全。如果您没有使用违反W ^ X的程序,请考虑手动撤销该选项。
- setjmp(3)系列函数现在将xOR cookie应用于amd64,hppa,i386,mips64和powerpc上的jmpbuf中的堆栈和返回地址值。
- SROP缓解:sigreturn(2)现在只能由内核提供的信号trampoline使用,并使用cookie来检测重用它的尝试。
- 为了阻止代码重用漏洞,rc(8)在启动时重新链接libc.so,以随机顺序放置对象。
- 在getpwnam(3)系列函数中,默认情况下停止打开影子数据库。
- 允许tcpdump(8)-r在没有root权限的情况下启动。
- 删除systrace。
- 删除Linux仿真支持。
- 删除对usermount选项的支持。
- TCP SYN缓存不时重新设置其随机散列函数。这可以防止攻击者通过计时攻击来计算哈希函数的分布。
- 为了防止SYN泛洪攻击,管理员现在可以更改哈希数组的大小。 netstat(1)-s -p tcp显示使用sysctl(8)net.inet.tcp调整SYN缓存的相关信息。
- 管理员可以要求root权限以使用sysctl(8)net.inet.tcp.rootonly和sysctl(8)net.inet.udp.rootonly绑定到某些TCP和UDP端口。
- 从mbuf(9)数据结构中删除函数指针,并将索引用于可接受函数的数组中。
- 各种改进:
- 现在可以将线程库加载到单线程进程中。
- 改进了libc中的符号处理和标准合规性。例如,定义open()函数将不再干扰fopen(3)的操作。
- 最初加载的对象现在支持PT_TLS部分。
- 改进了fts(3)中“无路径”和“空路径”的处理。
- 在pcap(3)中,提供pcap_free_datalinks()和pcap_offline_filter()函数。
- editline(3)库中的许多错误修正和结构清理。
- 删除古老的dbm(3)函数; ndbm(3)仍然存在。
- 在doas.conf(5)中添加setenv关键字以实现更强大的环境处理。
- 将-g和-p选项添加到aucat.1以进行时间定位。
- 使用更简单的用户界面重写audioctl(1)。
- 在关闭文件之前,添加-F选项以将文件安装(1)到fsync(2)。
- kdump(1)现在转储pollfd结构。
- 改进ksh(1)POSIX合规性的各种细节。
- mknod(8)以承诺(2)友好的方式重写,并支持一次创建多个设备。
- 实施rcctl(8)get all和getdef all。
- 实施rcs(1)-I(交互式)标志。
- 在rcs(1)中,实现Mdocdate关键字替换。
- 在top(1)中,允许过滤进程参数(如果正在显示它们)。
- 为fold(1)和rev(1)添加了UTF-8支持。
- 默认情况下在xterm(1)和pod2man(1)中启用UTF-8。
- 过滤掉墙(1)中的非ASCII字符。
- 在许多程序中一致地处理COLUMNS环境变量。
- 选项-c和-k允许在发送端为syslogd(8)提供TLS客户端证书。通过这种方式,接收方可以验证日志消息是否可信。请注意,syslogd还没有此检查功能。
- 当klog缓冲区溢出时,syslogd将写一条日志消息,表明缺少某些条目。
- 在OpenBSD / octeon上,启用CPU缓存写缓冲以提高性能。
- pkg_add(1)和pkg_info(1)现在理解了分支的概念,以便于选择一些流行的软件包,如python或php,例如pkg_add python%3.4来选择3.4分支,并使用pkg_info -zm来得到一个模糊列表,其分支选择适合pkg_add -l。
- fdisk(8)和pdisk(8)会立即退出,除非传递了角色特殊设备
- st(4)正确跟踪可变大小块的当前块计数
- fsck_ext2fs(8)再次工作
- softraid(4)卷可以使用扇区大小不是512字节的磁盘构建
- dhclient(8)拒绝并丢弃未使用的OFFER。
- dhclient(8)如果其接口(例如网桥(4))在发送数据包时返回EAFNOSUPPORT,则会立即退出。
- httpd(8)为HTTP v0.9请求返回400 Bad Request。
- ffs2的延迟节点初始化避免将随机磁盘数据视为inode
- fcntl(2)基础程序中的调用使用成语fcntl(n,F_GETFL)代替fcntl(n,F_GETFL,0)
- socket(2)和accept4(2)调用使用SOCK_NONBLOCK来消除对单独fcntl(2)的需要。
- 默认情况下未启用tmpfs
- pledge(2)的内核语义在很多方面得到了改进。重点包括:新的承诺承诺,允许承诺的程序设置setugid属性,更严格执行recvfd承诺和chroot(2)不再允许承诺的程序。
- 许多承诺(2)相关的错误(缺少承诺,行为的意外变化,崩溃)被修复,特别是在gzip(1),nc(1),sed(1),skeyinit(1),stty (1),以及各种与磁盘相关的实用程序,例如disklabel(8)和fdisk(8)。
- 已修复audio(4)驱动程序中的块大小计算错误。
- usb(4)驱动程序现在缓存供应商和产品ID。修复了usbdevs(8)在循环中调用会导致USB大容量存储设备停止运行的问题。
- rsu(4)和ural(4)司机在5.9中意外破坏后再次正在工作。
- OpenSMTPD 6.0.0
- 安全性:
- 在smtpd(8)中实现fork + exec模式。
- 修复SMTP状态机中的逻辑问题,该问题可能导致无效状态并导致崩溃。
- 插入文件指针泄漏,可能导致资源耗尽并导致崩溃。
- 使用自动DH参数而不是固定参数。
- 默认情况下禁用DHE,因为它的计算成本很高且是潜在的DoS向量。
- 版本6.1中带来了以下改进:
- 将-r选项添加到smtpd(8)enqueuer以与mailx兼容。
- 在侦听提交端口时添加缺少日期或消息ID。
- 修复“smtpctl show queue”报告“无效”信封状态。
- 重写“已接收”标题的格式,以便TLS部分不违反RFC。
- 增加允许本地地址建立的连接数,并减少同一会话中事务之间的延迟。
- 修复LMTP传递到返回延续行的服务器。
- 进一步改进仍在进行实验的过滤器API并修复各种相关问题。
- 开始改进和统一日志消息的格式。
- 修复了手册页中的几个文档差异和拼写错误。
- OpenSSH 7.3
- 安全性:
- sshd(8):通过sshd(8)缓解对系统crypt(3)功能的潜在拒绝服务攻击。攻击者可能会发送非常长的密码,这会导致在密码中使用过多的CPU(3)。 sshd(8)现在拒绝接受长度超过1024个字符的密码验证请求。
- sshd(8):在发送长密码并在服务器上使用特定密码哈希算法时,缓解密码身份验证中的时序差异,该身份验证可用于从无效帐户名中辨别有效。 CVE-2016-6210。
- ssh(1),sshd(8):修复CBC填充oracle对策中可观察到的时序弱点。请注意,默认情况下禁用CBC密码,仅包括旧版兼容性。
- ssh(1),sshd(8):改进加密 - 然后 - MAC(EtM)模式传输MAC算法的MAC验证的顺序,以在解密任何密文之前验证MAC。这消除了时间差异泄露有关明文的事实的可能性,尽管没有这种泄漏是已知的。
- 新功能/已更改功能:
- ssh(1):添加一个ProxyJump选项和相应的-J命令行标志,以允许通过一个或多个SSH堡垒或“跳转主机”简化间接。
- ssh(1):添加IdentityAgent选项以允许指定特定代理套接字,而不是从环境中接受一个代理套接字。
- ssh(1):使用ssh -W时,允许可选地覆盖ExitOnForwardFailure和ClearAllForwardings。 (BZ#2577)
- ssh(1),sshd(8):根据draft-sgtatham-secsh-iutf8-00实现对IUTF8终端模式的支持。
- ssh(1),sshd(8):从draft-ietf-curdle-ssh-kex-sha2-03添加对其他固定Diffie-Hellman 2K,4K和8K组的支持。
- ssh-keygen(1),ssh(1),sshd(8):在证书中支持SHA256和SHA512 RSA签名。
- ssh(1):为ssh_config(5)文件添加Include指令。
- ssh(1):允许从服务器发送的预认证横幅中的UTF-8字符。 (BZ#2058)
- 版本6.1中修复了以下重大错误:
- 在scp(1)和sftp(1)中,通过转义不形成ASCII或UTF-8字符的字节来防止搞砸终端设置。
- ssh(1),sshd(8):从LOG_CRIT中减少一些相对常见的协议事件的syslog级别。 (BZ#2585)
- sshd(8):在配置中拒绝AuthenticationMethods =“”并接受AuthenticationMethods = any表示不需要多次身份验证的默认行为。 (BZ#2398)
- sshd(8):删除过时的和误导性的“可能的突然袭击!”正向和反向DNS不匹配时的消息。 (BZ#2585)
- ssh(1):关闭ControlPersist后台进程stderr,但在调试模式下或登录到syslog时除外。 (BZ#1988)
- misc:为direct-streamlocal@openssh.com创建PROTOCOL描述。通道打开消息匹配已部署的代码。 (BZ#2529)
- ssh(1):重复使用LocalForward和RemoteForward条目以在启用ExitOnForwardFailure和hostname规范化时修复失败。 (BZ#2562)
- sshd(8):从模数中删除回退到2001年弃用的过时“primes”文件。(bz#2559)
- sshd_config(5):UseDNS的正确描述:它影响authorized_keys的ssh主机名处理,而不是known_hosts。 (BZ#2554)
- ssh(1):使用代理中的单独证书密钥修复身份验证,而不在文件系统上使用相应的私钥。 (BZ#2550)
- sshd(8):在设置基于时间的RekeyLimit时发送ClientAliveInterval ping;以前的keepalive数据包没有被发送。 (BZ#2252)
- OpenNTPD 6.0
- 如果指定了单个“约束”,请尝试所有返回的地址,直到成功,而不是第一个返回的地址。
- 放宽约束误差范围以与NTP对等体的数量成比例,避免在存在错误的NTP对等体时不断重新连接。
- 删除了已禁用的热插拔(4)传感器支持。
- 添加了对检测约束子进程中崩溃的支持。
- 将约束的执行从ntp进程移动到父进程,从而允许更好的权限分离,因为可以进一步限制ntp进程。
- 修复网络故障时的高CPU使用率。
- 修复了各种内存泄漏问题。
- 切换到RMS以进行抖动计算。
- 与其他OpenBSD基本程序一起使用统一日志记录功能。
- 设置MOD_MAXERROR以避免在使用ntp_adjtime时未同步的时间状态。
- 修复了HTTP时间戳标头解析,以便以更便携的方式使用strptime(3)。
- 针对ntpd(8)约束的强化TLS,启用服务器名称验证。
- LibreSSL 2.4.2
- 用户可见的功能:
- 修复了安装目标中的一些损坏的联机帮助页链接。
- cert.pem已经重组并与Mozilla的证书商店同步。
- 可靠性修复,在解析超过16k的某些ASN.1元素时纠正错误。
- 实施了IETF ChaCha20-Poly1305密码套件。
- 修复了openssl(1)的密码提示,以正确处理^ C.
- 代码改进:
- 通过添加'install_sw'构建目标来解决nginx兼容性问题。
- 将默认EVP_aead_chacha20_poly1305(3)实施更改为IETF版本,现在是默认版本。
- 在libtls中重写错误处理,以便更容易看到配置错误。
- 围绕bn_wexpand(3)调用添加了缺失的错误处理。
- 为释放的ASN.1对象添加了explicit_bzero(3)调用。
- 修正X509_ * set_object函数在分配失败时返回0。
- 不推荐使用EVP_ [Cipher | Encrypt | Decrypt] _Final。
- 修复了一个问题,即使设置了标志BN_FLG_CONSTTIME,也会阻止DSA签名算法在常量时间内运行。
- 修复了OCSP代码中可能导致错误生成和解析OCSP请求的几个问题。这可以解决在这些函数中解析时缺少错误的问题,并确保根据RFC 6960,OCSP只接受GENERALIZEDTIME格式。
- 以下CVE已修复:
- CVE-2016-2105-EVP_EncodeUpdate overflow。
- CVE-2016-2106-EVP_EncryptUpdate溢出。
- CVE-2016-2107-padding oracle in AES-NI CBC MAC check。
- ASN.1编码器中的CVE-2016-2108内存损坏。
- CVE-2016-2109-ASN.1 BIO过多的内存分配。
- 端口和包:
- ports树中的新proot(1)工具,用于在chroot中构建包。
- 每个架构的许多预构建包:
- alpha:7422
- amd64:9433
- hppa:6346
- i386:9394
- mips64:7921
- mips64el:7767
- powerpc:8318
- sparc64:8570
- 一些亮点:
- Afl 2.19b
- Chromium 51.0.2704.106
- Emacs 21.4和24.5
- GCC 4.9.3
- GHC 7.10.3
- Gimp 2.8.16
- GNOME 3.20.2
- 去1.6.3
- Groff 1.22.3
- JDK 7u80和8u72
- KDE 3.5.10和4.14.3(加上KDE4核心更新)
- LLVM / Clang 3.8.0
- LibreOffice 5.1.4.2
- Lua 5.1.5,5.2.4和5.3.3
- MariaDB 10.0.25
- Mono 4.4.0.182
- Mozilla Firefox 45.2.0esr和47.0.1
- Mozilla Thunderbird 45.2.0
- Mutt 1.6.2
- Node.js 4.4.5
- Ocaml 4.3.0
- OpenLDAP 2.3.43和2.4.44
- PHP 5.5.37,5.6.23和7.0.8
- Postfix 3.1.1和3.2-20160515
- PostgreSQL 9.5.3
- Python 2.7.12,3.4.5和3.5.2
- R 3.3.1
- 红宝石1.8.7.374,2.0.0.648,2.1.9,2.2.5,2.3.1和
- Rust 1.9.0-20160608
- Sendmail 8.15.2
- Sudo 1.8.17.1
- Tcl / Tk 8.5.18和8.6.4
- TeX Live 2015
- Vim 7.4.1467
- Xfce 4.12
- 像往常一样,手动页面和其他文档的稳步改进。
- 该系统包括来自外部供应商的以下主要组件:
- Xenocara(基于X.Org 7.7,xserver 1.18.3 +补丁,freetype 2.6.3,fontconfig 2.11.1,Mesa 11.2.2,xterm 322,xkeyboard-config 2.18等)
- GCC 4.2.1(+补丁)和3.3.6(+补丁)
- Perl 5.20.3(+补丁)
- SQLite 3.9.2(+补丁)
- NSD 4.1.10
- Unbound 1.5.9
- Ncurses 5.7
- Binutils 2.17(+补丁)
- Gdb 6.3(+补丁)
- Awk 2011年8月10日版
- Expat 2.1.1
基本程序中的
评论没有发现