Woensdag is de nieuwe halfjaarlijkse release van OpenBSD uitgekomen. Op deze pagina is een uitgebreide lijst van ftp- en http-downloadlocaties te vinden. OpenBSD stamt af van de originele Berkeley Software Distribution en heeft als kenmerk dat de ontwikkelaars alleen opensourcesoftware willen gebruiken. Verder staat het besturingssysteem bekend om zijn uitstekende documentatie en veiligheid. Zoals gewoonlijk met een nieuwe versie van OpenBSD is er ook een nieuw thema rondom het besturingssysteem ontworpen, vergezeld van een heuse theme song en verkrijgbaar op audio-cd, als poster en als T-shirt. Als titel van het thema heeft men deze keer gekozen voor Blade Swimmer. Hieronder is een uitgebreid overzicht van de doorgevoerde veranderingen in versie 5.3 te vinden.
Improved hardware support, including:Generic network stack improvements:
- New driver oce(4) for Emulex OneConnect 10Gb Ethernet adapters.
- New driver rtsx(4) for the Realtek RTS5209 card reader.
- New driver mfii(4) for the LSI Logic MegaRAID SAS Fusion controllers.
- New driver smsc(4) for SMSC LAN95xx 10/100 USB Ethernet adapters.
- New drivers for Toradex OAK USB sensors: uoaklux(4) (illuminance), uoakrh(4) (temperature and relative humidity) and uoakv(4) (+/- 10V 8channel ADC).
- New drivers for virtio(4) devices: vio(4) (network), vioblk(4) (block devices, attaching as SCSI disks) and viomb(4) (memory ballooning).
- Support for Adaptec 39320LPE added to ahd(4).
- Broadcom 5718/5719/5720 Gigabit Ethernet devices supported in bge(4).
- Intel X540-based 10Gb Ethernet devices supported in ix(4).
- Support for SFP+ hot-plug (82599) and various other improvements in ix(4).
- TX interrupt mitigation, hardware VLAN tagging and checksum offload reduce CPU use in vr(4).
- Baby jumbo frames supported in vr(4) and sis(4) useful for e.g. MPLS, vlan(4) tag stacking (QinQ) and RFC4638 pppoe(4).
- TCP RX Checksum offload in gem(4).
- Improvements for NICs using 82579/pch2 in em(4).
- Flow control is now supported on bnx(4) 5708S/5709S adapters, gem(4) and jme(4).
- Power-saving clients supported in hostap mode with acx(4) and athn(4).
- A cause of RT2661 ral(4) wedging in hostap mode was fixed.
- iwn(4) supports additional devices (Centrino Advanced-N 6235 and initial support for Centrino Wireless-N 1030).
- Improvements to ahci(4).
- Support for the fixed-function performance counter on newer x86 chips with constant time stamp counters.
- Elantech touchpads supported in pms(4) and synaptics(4).
- Support for "physical devices" on skinny mfi(4) controllers.
- VMware emulated SAS adapters supported by mpi(4).
- Support for Intel's Supervisor Mode Execution Protection (SMEP) and Supervisor Mode Access Prevention (SMAP) features on i386 and amd64.
- Support for the RDRAND instruction to read the hardware random number generator on recent Intel processors.
- amd64 PCI memory extent changed to cover the whole 64-bit memory space; fixes erroneous extent allocation panic on IBM x3100.
- ulpt(4) can now upload firmware to certain HP LaserJet printers.
- Added stat clock to Loongson machines, improving accuracy of CPU usage statistics.
- CPU throttling supported on Loongson 2F.
- Support for Apple UniNorth and U3 AGP added to agp(4).
- DRM support for macppc.
Routing daemons and other userland network improvements:
- Restriction on writing to trunk(4) member interfaces relaxed; BPF can now write to interfaces directly (useful for LLDP).
- UDP support added to sosplice(9) (zero-copy socket splicing).
- IPv6 autoconfprivacy is enabled by default (can be disabled per-interface with an ifconfig(8) flag).
- ifconfig(8) hwfeatures displays the maximum MTU supported by the driver (indicating support for jumbo/baby-jumbo frames).
- Vastly improved IPsec v3 compatibility, including support for Extended Sequence Numbers in the AES-NI driver for AES-GCM and other modes.
dhclient(8) improvements:
- OpenBSD now includes npppd(8), a server-side daemon for L2TP, L2TP/IPsec, PPTP and PPPoE.
- New standalone tftp-proxy(8) to replace the old inetd(8)-based implementation.
- SNMPv3 supported in snmpd(8).
- bgpd(8) is more tolerant of unknown capabilities when bringing up a session (logs a warning rather than fails).
- bgpd(8) now handles client side of "graceful restart".
- bgpd(8) can now filter based on the NEXTHOP attribute.
- A stratum can now be assigned to hardware sensors in ntpd(8).
- authpf(8) now supports the use of per-group rules files.
- ftp(1) client now supports basic HTTP authentication as per RFC 2617 and 3986 like "ftp http[s]://user:pass@host/file".
- ftp(1) client's mput command allows to upload a directory tree recursively using the -r switch.
- relayd(8) has various improvements including additional scheduling algorithms (least-states, for redirections, and random/source-hash, for relays).
- The iked(8) IKEv2 daemon supports NAT-T. (The isakmpd daemon for IKEv1 has supported this for a long time).
- iked(8) blocks IPv6 traffic unless there are v6 VPN flows; this is to prevent leakages as described in draft-gont-opsec-vpn-leakages.
pf(4) improvements:
- dhclient-script eliminated, all configuration is done with ioctl's and routing sockets.
- interface configuration is much faster.
- HUP signals cause dhclient to restart; making it re-read the dhclient.conf(5) and resolv.conf.tail(5) files, and obtain a new lease.
- INIT, USR1, USR2 signals cause dhclient to exit after attempting to remove routes and addresses it configured.
- resolv.conf(5) is written only when the in-use default route was inserted by dhclient. Possible changes to the default route are detected and cause dhclient to write out resolv.conf when appropriate.
- interface hardware address changes are detected and cause dhclient to restart.
- dhclient.conf directive 'ignore' and command line option '-i' added, allowing the suppression of specific options offered by server.
- '-L' command line option added, allowing the creation of a complete record of the most recent offer and what we modified it to when binding the lease.
- rejected offers no longer prevent dhclient from trying recorded leases and going daemon.
- cleanup of routing tables when starting and exiting is more complete.
- log messages cleaned up and reduced.
- dhclient is automatically placed in the routing domain of the interface.
- incoming and outgoing packet buffers are separate, eliminating possible transmission of inappropriate packets when re-trying DISCOVER and REQUEST.
- resolv.conf.tail read only once, at startup.
- both OFFER and ACK packets that lack required options are rejected.
- file names passed to '-L' and '-l' are constrained to be regular files.
- bind success reported after binding complete, not when it is started.
- privileged process daemonizes, eliminating its controlling terminal.
- STDIN/STDOUT/STDERR no longer redirected to /dev/null when '-d' specified.
- all existing addresses on the interface are deleted when binding a new lease.
- leases which would cause routing problems because another interface is already configured with the same subnet are rejected.
- premature and repeated DISCOVER and/or REQUEST messages at startup are avoided.
- permanent ARP cache entries are no longer deleted during binding.
- allow empty lists of option names for 'ignore', 'request', and 'require' dhclient.conf directives, so lists can be reset in interface declarations.
- dhcpd(8) and dhclient recognize the same list of dhcp options.
- hand-rolled IMSG implementation replaced with imsg_init(3) and related functions..
- hand-rolled date string construction replaced with strftime(3) invocations.
- hand-rolled '%m' option replaced with strerror(3) invocations.
- many other internal code improvements.
OpenSMTPD 5.3:
- The divert(4) socket now supports the new IP_DIVERTFL socket option to control whether both inbound and outbound packets are diverted (the default) or only packets travelling in one direction.
- Sloppy state tracking (a special mode occasionally needed with asymmetric routing) now works correctly with ICMP.
- PF now restricts the fragment limit to protect against a misconfiguration running the kernel out of mbuf clusters.
Security improvements:
- New features:
- code is now considered stable and suitable for use in production.
- smtpctl(8) trace supports runtime tracing of various components, including imsg exchanges, incoming and outgoing sessions, aliases expansion and much more.
- smtpctl(8) monitor can now be used to monitor in real-time an instance of smtpd(8).
- smtpctl(8) show queue now supports an "online" mode where the scheduler is queried instead of the disk-based queue to provide more accurate information.
- virtual domain support has been reworked to simplify and bring support for new features like global catch-alls and shared user mappings.
- new table API replaces the map API: better handling of transient errors, improved performances and a much better interface.
- the transfer process may now select the source IP address to use as well as the HELO hostname to advertise from a table.
- each listener may advertise a different banner hostname.
- an alternate user database may be provided instead of relying on getpwnam(3).
- users may now be authenticated using credentials from a table.
- incoming sessions can be tagged, allowing for rules to only match envelopes that have been reinjected in the daemon after being passed to a proxy tool.
- intermediate bounces are now sent at configurable rates.
- rules can now check for a sender email address or domain.
- experimental (yet functional) support for aldap and sqlite as table backends.
- Improvements:
- improved logging format to make it both easier to read and parse.
- improved memory use by scheduler, smtp, queue and transfer processes.
- more reliable and efficient disk-based queue.
- improved scheduler, dns and relaying logic that optimizes transfers.
- simplified grammar for smtpd.conf(5).
- initial support for client and server SSL peer certificates validation.
- SSL certificate tree is now isolated and network-facing processes request SSL information on-demand by imsg.
- improved and simplified SMTP and MTA engines.
- much improved performances on both incoming and outgoing code paths.
- tons of cleanup and assorted minor bug fixes.
Performance improvements:
- Position-independent executables (PIE) are now used by default on alpha, amd64, hppa, landisk, loongson, sgi and sparc64.
- gcc(1) stack smashing protector added for Alpha and MIPS (enabled by default).
- Shared libraries on GCC 4 platforms now each get their own stack protector cookies instead of sharing a single global cookie.
Threading improvements:
- Switch default disk I/O sort algorithm to NSCAN for improved fairness and response times.
- Softdep speedup improvements by the revert of a previously necessary workaround to prevent kva starvation.
- Large performance and reliability improvements in make(1), especially in parallel mode. make no longer does any busy waiting, it handles concurrent targets correctly, and displays more accurate error messages.
- Increased stack alignment in constructor functions and new threads on i386 to meet requirements for SSE.
- Coredumping no longer hogs CPU or I/O and can be aborted by sending the process a SIGKILL signal.
Assorted improvements:
- Threaded programs and libraries can now be linked with the POSIX-standard -lpthread flag instead of the OpenBSD-specific -pthread flag
- abort(3) and raise(3) now direct the signal to the calling thread, as specified by POSIX.
- Whether a thread is currently executing on an alternate signal stack (c.f. sigaltstack(2)) is now determined dynamically, so the stack can be reused if siglongjmp(3) is used to exit the signal handler.
- libpthread now caches automatically allocated, default size thread stacks.
- Improvements in the handling of profiling, tracing, and %cpu calculation of threaded processes.
OpenSSH 6.2:
- ldomctl(8) was added to manage logical domains on sun4v systems through ldomd(8).
- Support for WPA Enterprise was added to the wpa_supplicant package.
- OpenBSD/luna88k and OpenBSD/mvme88k have switched to GCC 3, elf(5) and gained shared library support.
- OpenBSD/hp300 and OpenBSD/mvme68k have switched to GCC 3 and elf(5).
- softraid(4) RAID1 and crypto volumes are now bootable on i386 and amd64 (full disk encryption).
- The mg(1) emacs-like editor now supports diff-buffer-with-file, make-directory and revert-buffer. Column numbers have been made configurable and locale is respected for ctype purposes, like displaying ISO Latin 1 characters.
- Improved our own pkg-config(1) implementation to make it compatible with freedesktop.org's 0.27.1 release.
- A number of improvements to the buffer cache and page daemon interactions to avoid issues in low memory/low kva situations.
- Various bug fixes in uvm to avoid potential races and deadlock issues.
- Memory filesystem (mfs) switched to bufq, giving us queue limits and FIFO queueing (rather than the current LIFO queueing).
- Many improvements to the cwm(1) window manager, including tab completion and Xft support for menus, improved Xinerama support, and per-group vertical/horizontal manual tiling support.
- Added dprintf(3), grantpt(3), posix_openpt(3), ptsname(3), unlockpt(3), and vdprintf(3).
- Corrected the order of invocation of constructor and destruction functions.
- Improved compliance and/or cleanliness of header files, particularly <dlfcn.h>, <netdb.h>, <net/if.h>, <netinet/in.h>, <sys/socket.h>, <sys/uio.h>, and <sys/un.h>.
Over 7,800 ports, major performance and stability improvements in the package build process
- New features:
- ssh(1) and sshd(8): Added support for AES-GCM authenticated encryption in SSH protocol 2. The new cipher is available as "aes128-gcm@openssh.com" and "aes256-gcm@openssh.com". It uses an identical packet format to the AES-GCM mode specified in RFC 5647, but uses simpler and different selection rules during key exchange.
- ssh(1) and sshd(8): Added support for encrypt-then-mac (EtM) MAC modes for SSH protocol 2. These modes alter the packet format and compute the MAC over the packet length and encrypted packet rather than over the plaintext data. These modes are considered more secure and are used by default when available.
- ssh(1) and sshd(8): Added support for the UMAC-128 MAC as "umac-128@openssh.com" and "umac-128-etm@openssh.com". The latter being an encrypt-then-mac mode.
- sshd(8): Added support for multiple required authentication in SSH protocol 2 via an AuthenticationMethods option. This option lists one or more comma-separated lists of authentication method names. Successful completion of all the methods in any list is required for authentication to complete. This allows, for example, requiring a user having to authenticate via public key or GSSAPI before they are offered password authentication.
- sshd(8) and ssh-keygen(1): Added support for Key Revocation Lists (KRLs), a compact binary format to represent lists of revoked keys and certificates that take as little as one bit per certificate when revoking by serial number. KRLs may be generated using ssh-keygen(1) and are loaded into sshd(8) via the existing RevokedKeys sshd_config(5) option.
- ssh(1): IdentitiesOnly now applies to keys obtained from a PKCS11Provider. This allows control of which keys are offered from tokens using IdentityFile.
- sshd(8): sshd_config(5)'s AllowTcpForwarding now accepts "local" and "remote" in addition to its previous "yes"/"no" keywords to allow the server to specify whether just local or remote TCP forwarding is enabled.
- sshd(8): Added a sshd_config(5) option AuthorizedKeysCommand to support fetching authorized_keys from a command in addition to (or instead of) from the filesystem. The command is run under an account specified by an AuthorizedKeysCommandUser sshd_config(5) option.
- sftp-server(8): Now supports a -d option to allow the starting directory to be something other than the user's home directory.
- ssh-keygen(1): Now allows fingerprinting of keys hosted in PKCS#11 tokens using "ssh-keygen -lD pkcs11_provider".
- ssh(1): When SSH protocol 2 only is selected (the default), ssh(1) now immediately sends its SSH protocol banner to the server without waiting to receive the server's banner, saving time when connecting.
- ssh(1) Added ~v and ~V escape sequences to raise and lower the logging level respectively.
- ssh(1) Made the escape command help (~?) context sensitive so that only commands that will work in the current session are shown.
- ssh-keygen(1): When deleting host lines from known_hosts using "ssh-keygen -R host", ssh-keygen(1) now prints details of which lines were removed.
- The following significant bugs have been fixed in this release:
- ssh(1): Force a clean shutdown of ControlMaster client sessions when the ~. escape sequence is used. This means that ~. should now work in mux clients even if the server is no longer responding.
- ssh(1): Correctly detect errors during local TCP forward setup in multiplexed clients. (bz#2055)
- ssh-add(1): Made deleting explicit keys "ssh-add -d" symmetric with adding keys with respect to certificates. It now tries to delete the corresponding certificate and respects the -k option to allow deleting of the key only.
- sftp(1): Fix a number of parsing and command-editing bugs, including bz#1956.
- ssh(1): When muxmaster is run with -N, ensure that it shuts down gracefully when a client sends it "-O stop" rather than hanging around. (bz#1985)
- ssh-keygen(1): When screening moduli candidates, append to the file rather than overwriting to allow resumption. (bz#1957)
- ssh(1): Record "Received disconnect" messages at ERROR rather than INFO priority. (bz#2057)
- ssh(1): Loudly warn if explicitly-provided private key is unreadable. (bz#1981)
Some highlights:
- The parallel ports builder is more efficient. The main improvement is that dpb consumes much less cpu on busy boxes, but there are lots of small optimizations that amount to a large performance increase: dpb can now build selected large ports using parallel make, and it has a notion of affinity, so that ports failing on a cluster will be preferentially restarted on the same machine.
The system includes the following major components from outside suppliers:
- GNOME 3.6.2
- KDE 3.5.10
- Xfce 4.10
- MySQL 5.1.68
- PostgreSQL 9.2.3
- Postfix 2.9.6
- OpenLDAP 2.3.43 and 2.4.33
- Mozilla Firefox 3.6.28 and 18.0.2
- Mozilla Thunderbird 17.0.2
- GHC 7.4.2
- LibreOffice 3.6.5.2
- Emacs 21.4 and 24.2
- Vim 7.3.154
- PHP 5.2.17 and 5.3.21
- Python 2.5.4, 2.7.3 and 3.2.3
- Ruby 1.8.7.370 and 1.9.3.392
- Tcl/Tk 8.5.13 and 8.6.0
- Jdk 1.6.0.32 and 1.7.0.11
- Mono 2.10.9
- Chromium 24.0.1312.68
- Groff 1.21
- Go 1.0.3
- GCC 4.6.3 and 4.7.2
- LLVM/Clang 3.2
- Xenocara (based on X.Org 7.7 with xserver 1.12.3 + patches, freetype 2.4.11, fontconfig 2.8.0, Mesa 7.11.2, xterm 287, xkeyboard-config 2.7 and more)
- Gcc 4.2.1 (+patches), 3.3.6 (+ patches) and 2.95.3 (+ patches)
- Perl 5.12.2 (+ patches)
- Our improved and secured version of Apache 1.3, with SSL/TLS and DSO support
- Nginx 1.2.6 (+ patches)
- OpenSSL 1.0.1c (+ patches)
- SQLite 3.7.14.1 (+ patches)
- Sendmail 8.14.6, with libmilter
- Bind 9.4.2-P2 (+ patches)
- NSD 3.2.15
- Lynx 2.8.7rel.2 with HTTPS and IPv6 support (+ patches)
- Sudo 1.7.2p8
- Ncurses 5.7
- Heimdal 0.7.2 (+ patches)
- Binutils 2.15 (+ patches)
- Gdb 6.3 (+ patches)
- Less 444 (+ patches)
- Awk Aug 10, 2011 version