<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-347582618045055410</id><updated>2026-03-16T02:11:00.881+00:00</updated><category term="ubuntu-planet"/><category term="debian-planet"/><category term="ubuntu"/><category term="debian"/><category term="packaging"/><category term="Debian Packaging"/><category term="clearlinux"/><category term="cryptsetup"/><category term="go"/><category term="golang"/><category term="python3"/><category term="EFF"/><category term="bzr"/><category term="cryptography"/><category term="d-i"/><category term="debconf"/><category term="encryption"/><category term="fosdem"/><category term="intel"/><category term="luks"/><category term="nexus7"/><category term="nginx"/><category term="openssl"/><category term="security"/><category term="tls"/><category term="C"/><category term="HUU"/><category term="NetworkManager"/><category term="Student Politics"/><category term="UDS"/><category term="UXE"/><category term="Xiphos"/><category term="arm64"/><category term="binutils"/><category term="bootexperience"/><category term="bug"/><category term="buzz"/><category term="bzr launchpad debian ubuntu packaging"/><category term="clearcontainers"/><category term="containers"/><category term="crosswire"/><category term="dns"/><category term="dnssec"/><category term="docker"/><category term="externals"/><category term="facebook"/><category term="fips"/><category term="freebsd"/><category term="funny"/><category term="googlebuzz"/><category term="gpg"/><category term="hack"/><category term="identica"/><category term="jaunty"/><category term="kfreebsd"/><category term="launchpad"/><category term="letsencrypt"/><category term="libnih"/><category term="life"/><category term="mac"/><category term="nestedtrees"/><category term="netneutrality"/><category term="nova"/><category term="offlineimap"/><category term="openstack"/><category term="otp"/><category term="pgp"/><category term="politics"/><category term="python"/><category term="random"/><category term="refit"/><category term="resolved"/><category term="ski"/><category term="snowboard"/><category term="snowsports"/><category term="ssl"/><category term="stateless"/><category term="svn"/><category term="svn:externals"/><category term="swap"/><category term="swapfile"/><category term="systemd"/><category term="tcg"/><category term="tls10"/><category term="tls12"/><category term="tls13"/><category term="tpm"/><category term="tpm2"/><category term="twitter"/><category term="ubuntu ramblings"/><category term="upstart"/><category term="uwsgi"/><category term="wsgi"/><title type='text'>Surgut</title><subtitle type='html'>a personal blog of Dimitri John Ledkov</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-5141722112747117887</id><published>2026-03-16T02:11:00.000+00:00</published><updated>2026-03-16T02:11:00.781+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Security-only OpenSSL tarball releases for CVE-2026-2673</title><content type='html'>&lt;p&gt;On Friday May the 13th OpenSSL project has published advisory details for&amp;nbsp;&lt;a href=&quot;https://openssl-library.org/news/vulnerabilities/index.html#CVE-2026-2673&quot;&gt;CVE-2026-2673&lt;/a&gt;. The CVE is treated as non-important by the project. The patches are only provided as commits on the stable branches. No git tag, no precise fixed version, and no source tarballs provided.&lt;/p&gt;&lt;p&gt;The patches that were merged to openssl-3.5 and openssl-3.6 branches were not based on top of the last stable point release and did not split code changes &amp;amp; documentation updates. It means that cherry-picking the commits referenced in the advisory will always lead to conflicts requiring manual resolution. It is not clear if support is provided for snapshot builds off the openssl-3.5 and openssl-3.6 branches. As the builds from the stable branches declare themselves as dev builds of the next unreleased point release. For example, in contrast to projects such as vim and glibc, with every commit to stable branches explicitly recommended for distributors to ship and is supported.&lt;/p&gt;&lt;p&gt;I have requested OpenSSL upstream in the past for the security fixes to branch off the last point release, commit code changes separate from the NEWS.md / CHANGES.md updates, and then merge that into the stable branches. This way the advisory that recommends cherry-picking individual commits, would actually apply conflict free - at no additional maintenance burden to the OpenSSL project and everyone who has to cherry-pick these updates. There is a wide support voiced for such strategy by the OpenSSL distributors and the OpenSSL Corporation. But this is not something that OpenSSL Project is yet choosing to provide.&lt;/p&gt;&lt;p&gt;To avoid duplication of work, I am starting to provide stable OpenSSL re-releases of the last upstream tagged stable point release with security only patches split into code-change only; documentation update; version update to create security only source tarball releases that are easy to build; easy to identify by the security scanners; and which cherry-pick changes without conflicts. The first two releases are published on GitHub as immutable releases with attestations:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/openssl-stable/openssl-stable/releases/tag/openssl-3.6.1%2B1&quot;&gt;OpenSSL 3.6.1+1&lt;/a&gt;&amp;nbsp;- OpenSSL 3.6.1 with fix for&amp;nbsp;CVE-2026-2673&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/openssl-stable/openssl-stable/releases/tag/openssl-3.5.5%2B1&quot;&gt;OpenSSL 3.5.5+1&lt;/a&gt;&amp;nbsp;- OpenSSL 3.5.5 with fix for&amp;nbsp;CVE-2026-2673&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If there are any other branches, CVEs, point releases that would be useful for similar style releases, do open discussion on the &lt;a href=&quot;https://github.com/openssl-stable/openssl-stable/discussions&quot;&gt;GitHub Project&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you find these releases useful, do star the project and download these releases. If this project gets popular, I hope that OpenSSL upstream will reconsider their releases strategy for all security releases. If you have support contracts with OpenSSL - please request OpenSSL corporation to release tagged releases and versioned tarballs.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/5141722112747117887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2026/03/security-only-openssl-tarball-releases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/5141722112747117887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/5141722112747117887'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2026/03/security-only-openssl-tarball-releases.html' title='Security-only OpenSSL tarball releases for CVE-2026-2673'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-5137629174584752121</id><published>2025-07-28T12:13:00.000+01:00</published><updated>2025-07-28T12:13:30.318+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cryptography"/><category scheme="http://www.blogger.com/atom/ns#" term="cryptsetup"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="encryption"/><category scheme="http://www.blogger.com/atom/ns#" term="fips"/><category scheme="http://www.blogger.com/atom/ns#" term="luks"/><category scheme="http://www.blogger.com/atom/ns#" term="tcg"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Achieving actually full disk encryption of UEFI ESP at rest with TCG OPAL, FIPS, LUKS</title><content type='html'>&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDQL9Ducebgoi5rQaoK8ZXCp1ud1YHOguORDpgsmeD5E1PNT9Ptcdps3hLehMw6RHpXeovif1fgMpYF8lAucFgYmUZYgvdl68669qcjgUkN4hcpTRBzSK1HilijZgPjSxpCySZQtvtmkh7EjKMjMB27qIpJvXXmlFfobGPp7bIjoluItyPF6cJ7fnL1A/s1280/pexels-markus-winkler-1430818-3828944.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;853&quot; data-original-width=&quot;1280&quot; height=&quot;427&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDQL9Ducebgoi5rQaoK8ZXCp1ud1YHOguORDpgsmeD5E1PNT9Ptcdps3hLehMw6RHpXeovif1fgMpYF8lAucFgYmUZYgvdl68669qcjgUkN4hcpTRBzSK1HilijZgPjSxpCySZQtvtmkh7EjKMjMB27qIpJvXXmlFfobGPp7bIjoluItyPF6cJ7fnL1A/w640-h427/pexels-markus-winkler-1430818-3828944.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Achieving full disk encryption using FIPS, TCG OPAL and LUKS to encrypt UEFI ESP on bare-metal and in VMs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Many security standards such as CIS and STIG require to protect information at rest. For example, &lt;a href=&quot;https://doi.org/10.6028/NIST.SP.800-53r5&quot;&gt;NIST SP 800-53r5&lt;/a&gt; SC-28 advocate to use cryptographic protection, offline storage and TPMs to enhance protection of information confidentiality and/or integrity.&lt;/p&gt;&lt;p&gt;Traditionally to satisfy such controls on portable devices such as laptops one would utilize software based Full Disk Encryption - &lt;a href=&quot;https://support.apple.com/en-gb/guide/mac-help/mh11785/mac&quot;&gt;Mac OS X FileVault&lt;/a&gt;, &lt;a href=&quot;https://support.microsoft.com/en-us/windows/bitlocker-drive-encryption-76b92ac9-1040-48d6-9f5f-d14b3c5fa178&quot;&gt;Windows Bitlocker&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/cryptsetup/cryptsetup&quot;&gt;Linux cryptsetup LUKS2&lt;/a&gt;. In cases when FIPS cryptography is required, additional burden would be placed onto these systems to operate their kernels in FIPS mode.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://trustedcomputinggroup.org/&quot;&gt;Trusted Computing Group&lt;/a&gt;&amp;nbsp;works on establishing many industry standards and specifications, which are widely adopted to improve safety and security of computing whilst keeping it easy to use. One of their most famous specifications them is TCG&amp;nbsp;&lt;span face=&quot;Roboto-Medium&quot; style=&quot;background-color: white;&quot;&gt;TPM 2.0 (Trusted Platform Module). TPMs are now widely available on most devices and help to protect secret keys and attest systems. For example, most software full disk encryption solutions can utilise TCG TPM to store full disk encryption keys providing passwordless, biometric or pin-base ways to unlock the drives as well as attesting that system have not been modified or compromised whilst offline.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://trustedcomputinggroup.org/resource/storage-work-group-storage-security-subsystem-class-opal/&quot;&gt;TCG Storage Security Subsystem Class: Opal Specification&lt;/a&gt;&amp;nbsp;is a set of specifications for features of data storage devices. The authors and contributors to OPAL are leading and well trusted storage manufacturers such as Samsung, Western Digital, Seagate Technologies, Dell, Google, Lenovo, IBM, Kioxia, among others. One of the features that Opal Specification enables is self-encrypting drives which becomes very powerful when combined with pre-boot authentication. Out of the box, such drives always and transparently encrypt all disk data using hardware acceleration. To protect data one can enter UEFI firmware setup (BIOS) to set NVMe single user password (or user + administrator/recovery passwords) to encrypt the disk encryption key. If one&#39;s firmware didn&#39;t come with such features, one can also use &lt;a href=&quot;https://sedutil.com/&quot;&gt;SEDutil&lt;/a&gt;&amp;nbsp;to inspect and configure all of this. Latest release of major Linux distributions have SEDutil already packaged.&lt;/p&gt;&lt;p&gt;Once password is set, on startup, pre-boot authentication will request one to enter password - prior to booting any operating systems. It means that full disk is actually encrypted, including the UEFI ESP and all operating systems that are installed in case of dual or multi-boot installations. This also prevents tampering with ESP, UEFI bootloaders and kernels which with traditional software-based encryption often remain unencrypted and accessible. It also means one doesn&#39;t have to do special OS level repartitioning, or installation steps to ensure all data is encrypted at rest.&lt;/p&gt;&lt;p&gt;What about FIPS compliance? Well, the good news is that majority of the OPAL compliant hard drives and/or security sub-chips do have FIPS 140-3 certification. Meaning they have been tested by independent laboratories to ensure they do in-fact encrypt data. On the &lt;a href=&quot;https://csrc.nist.gov/Projects/cryptographic-module-validation-program/validated-modules/search&quot;&gt;CMVP&lt;/a&gt; website one can search for module name terms &quot;OPAL&quot; or &quot;NVMe&quot; or name of hardware vendor to locate FIPS certificates.&lt;/p&gt;&lt;p&gt;Are such drives widely available? Yes. For example, a common Thinkpad X1 gen 11 has OPAL NVMe drives as standard, and they have FIPS certification too. Thus, it is likely in your hardware fleet these are already widely available. Use sedutil to check if MediaEncrypt and LockingSupported features are available.&lt;/p&gt;&lt;p&gt;Well, this is great for laptops and physical servers, but you may ask - what about public or private cloud? Actually, more or less the same is already in-place in both. On CVMP website all major clouds have their disk encryption hardware certified, and all of them always encrypt all Virtual Machines with FIPS certified cryptography without an ability to opt-out. One is however in full control of how the encryption keys are managed: cloud-provider or self-managed (either with a cloud HSM or KMS or bring your own / external). See these relevant encryption options and key management docs for &lt;a href=&quot;https://cloud.google.com/docs/security/encryption/default-encryption?hl=en&quot;&gt;GCP&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/azure/virtual-machines/disk-encryption-overview&quot;&gt;Azure&lt;/a&gt;, &lt;a href=&quot;https://maturitymodel.security.aws.dev/en/2.-foundational/kms/&quot;&gt;AWS&lt;/a&gt;. But the key takeaway without doing anything, at rest, VMs in public cloud are always encrypted and satisfy NIST SP 800-53 controls.&lt;/p&gt;&lt;p&gt;What about private cloud? Most Linux based private clouds ultimately use &lt;a href=&quot;https://www.qemu.org/&quot;&gt;qemu&lt;/a&gt;&amp;nbsp;typically with qcow2 virtual disk images. Qemu supports user-space encryption of qcow2 disk, see this &lt;a href=&quot;https://www.qemu.org/docs/master/tools/qemu-img.html&quot;&gt;manpage&lt;/a&gt;. Such encryption encrypts the full virtual machine disk, including the bootloader and ESP. And it is handled entirely outside of the VM on the host - meaning the VM never has access to the disk encryption keys. Qemu implements this encryption entirely in userspace using gnutls, nettle, libgcrypt depending on how it was compiled. This also means one can satisfy FIPS requirements entirely in userspace without a Linux kernel in FIPS mode. Higher level APIs built on top of qemu also support qcow2 disk encryption, as in projects such as &lt;a href=&quot;https://libvirt.org/formatstorageencryption.html&quot;&gt;libvirt&lt;/a&gt; and &lt;a href=&quot;https://docs.openstack.org/cinder/latest/configuration/block-storage/volume-encryption.html&quot;&gt;OpenStack Cinder&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;If you carefully read the docs, you may notice that agent support is explicitly sometimes called out as not supported or not mentioned. Quite often agents running inside the OS may not have enough observability to them to assess if there is external encryption. It does mean that monitoring above encryption options require different approaches - for example monitor your cloud configuration using tools such as Wiz and &lt;a href=&quot;https://orca.security/&quot;&gt;Orca&lt;/a&gt;, rather than using agents inside individual VMs. For laptop / endpoint security agents, I do wish they would start gaining capability to report OPAL SED availability and status if it is active or not.&lt;/p&gt;&lt;p&gt;What about using software encryption none-the-less on top of the above solutions? It is commonly referred to double or multiple encryption. There will be an additional performance impact, but it can be worthwhile. It really depends on what you define as data at rest for yourself and which controls you need. If one has a dual-boot laptop, and wants to keep one OS encrypted whilst booted into the other, it can perfectly reasonable to encrypted the two using separate software encryption keys. In addition to the OPAL encryption of the ESP. For more targeted per-file / per-folder encryption, one can look into using &lt;a href=&quot;https://nuetzlich.net/gocryptfs/&quot;&gt;gocryptfs&lt;/a&gt;&amp;nbsp;which is the best successor to the once popular, but now deprecated&amp;nbsp;&lt;a href=&quot;https://www.ecryptfs.org/&quot;&gt;eCryptfs&lt;/a&gt;&amp;nbsp;(amazing tool, but has fallen behind in development and can lead to data loss).&lt;/p&gt;&lt;p&gt;All of the above mostly talks about cryptographic encryption, which only provides confidentially but not data integrity. To protect integrity, one needs to choose how to maintain that. &lt;a href=&quot;https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/verity.html&quot;&gt;dm-verity&lt;/a&gt; is a good choice for read-only and rigid installations. For read-write workloads, it may be easier to deploy &lt;a href=&quot;https://zfsonlinux.org/&quot;&gt;ZFS&lt;/a&gt; or &lt;a href=&quot;https://btrfs.readthedocs.io/en/latest/index.html&quot;&gt;Btrfs&lt;/a&gt;&amp;nbsp;instead. If one is using filesystems without a built-in integrity support such as XFS or Ext4, one can retrofit integrity layer to them by using &lt;a href=&quot;https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-integrity.html&quot;&gt;dm-integrity&lt;/a&gt;&amp;nbsp;(either standalone, or via dm-luks/cryptsetup --integrity option).&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;If one has a lot of estate and a lot of encryption keys to keep track off a key management solution is likely needed. The most popular solution is likely the one from Thales Group marketed under &lt;a href=&quot;https://cpl.thalesgroup.com/encryption/data-security-platform&quot;&gt;ChiperTrust Data Security Platform&lt;/a&gt; (previously Vormetric), but there are many others including OEM / Vendor / Hardware / Cloud specific or agnostic solutions.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;I hope this crash course guide piques your interest to learn and discover modern confidentially and integrity solutions, and to re-affirm or change your existing controls w.r.t. to data protection at rest.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Full disk encryption, including UEFI ESP /boot/efi is now widely achievable by default on both baremetal machines and in VMs including with FIPS certification. To discuss more let&#39;s connect on&amp;nbsp;&lt;a href=&quot;https://www.linkedin.com/in/dimitri-john-ledkov/&quot;&gt;Linkedin&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/5137629174584752121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2025/07/achieving-actually-full-disk-encryption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/5137629174584752121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/5137629174584752121'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2025/07/achieving-actually-full-disk-encryption.html' title='Achieving actually full disk encryption of UEFI ESP at rest with TCG OPAL, FIPS, LUKS'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDQL9Ducebgoi5rQaoK8ZXCp1ud1YHOguORDpgsmeD5E1PNT9Ptcdps3hLehMw6RHpXeovif1fgMpYF8lAucFgYmUZYgvdl68669qcjgUkN4hcpTRBzSK1HilijZgPjSxpCySZQtvtmkh7EjKMjMB27qIpJvXXmlFfobGPp7bIjoluItyPF6cJ7fnL1A/s72-w640-h427-c/pexels-markus-winkler-1430818-3828944.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-6590406016897929099</id><published>2024-01-25T18:01:00.000+00:00</published><updated>2024-01-25T18:01:15.852+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm64"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Ubuntu Livepatch service now supports over 60 different kernels</title><content type='html'>&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgECGwNOL2qcUgUIbptrFlOV-rAL4ehu3xDLwf2sk_MUkI4x6O1Y4WcRs9pueMk-pxvXfdPG-kTFV8if3OLCwQhimAVsZ9gaod02j-jwsP-Cr3bpf2Jx_oH1k-WfIo4GV4iy5Tr_uQ0StaR2F46r7RDzFJx3SXFs7sComSKPFkOJRhlwAVBGXOCaJKGGxE/s1024/_d0db3ba5-728b-4c40-b8d1-fa6d434b7667.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgECGwNOL2qcUgUIbptrFlOV-rAL4ehu3xDLwf2sk_MUkI4x6O1Y4WcRs9pueMk-pxvXfdPG-kTFV8if3OLCwQhimAVsZ9gaod02j-jwsP-Cr3bpf2Jx_oH1k-WfIo4GV4iy5Tr_uQ0StaR2F46r7RDzFJx3SXFs7sComSKPFkOJRhlwAVBGXOCaJKGGxE/w320-h320/_d0db3ba5-728b-4c40-b8d1-fa6d434b7667.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Linux kernel getting a livepatch whilst running a marathon. Generated with AI.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href=&quot;https://ubuntu.com/security/livepatch&quot; target=&quot;_blank&quot;&gt;Livepatch service&lt;/a&gt; eliminates the need for unplanned maintenance windows for high and critical severity kernel vulnerabilities by patching the Linux kernel while the system runs. Originally the service &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2016-October/000214.html&quot;&gt;launched&lt;/a&gt; in 2016 with just a single kernel flavour supported.&lt;/p&gt;&lt;p&gt;Over the years, additional kernels were added: new LTS releases, ESM kernels, Public Cloud kernels, and most recently HWE kernels too.&lt;/p&gt;&lt;p&gt;Recently livepatch support was expanded for FIPS compliant kernels, Public cloud FIPS compliant kernels, and as well IBM Z (mainframe) kernels. Bringing the total of kernel flavours support to over 60 distinct kernel flavours supported in parallel. The table of &lt;a href=&quot;https://ubuntu.com/security/livepatch/docs/livepatch/reference/kernels&quot;&gt;supported kernels&lt;/a&gt; in the documentation lists the supported kernel flavours ABIs, the duration of individual build&#39;s support window, supported architectures, and the Ubuntu release. This work was only possible thanks to the collaboration with the Ubuntu Certified Public Cloud team, engineers at IBM for IBM Z (s390x) support, Ubuntu Pro team, Livepatch server &amp;amp; client teams.&lt;/p&gt;&lt;p&gt;It is a great milestone, and I personally enjoy seeing the non-intrusive popup on my Ubuntu Desktop that a kernel livepatch was applied to my running system. I do enable &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;Ubuntu Pro&lt;/a&gt; on my personal laptop thanks to the free Ubuntu Pro subscription for individuals.&lt;/p&gt;&lt;p&gt;What&#39;s next? The next frontier is supporting ARM64 kernels. The Canonical kernel team has completed the gap analysis to start supporting Livepatch Service for ARM64. Upstream Linux requires development work on the consistency model to fully support livepatch on ARM64 processors. Livepatch code changes are applied on a per-task basis, when the task is deemed safe to switch over. This safety check depends mostly on kernel stacktraces. For these checks, CONFIG_HAVE_RELIABLE_STACKTRACE needs to be available in the upstream ARM64 kernel. (see &lt;a href=&quot;https://www.kernel.org/doc/html/latest/livepatch/livepatch.html#adding-consistency-model-support-to-new-architectures&quot; target=&quot;_blank&quot;&gt;The Linux Kernel Documentation&lt;/a&gt;). There are preliminary patches that enable reliable stacktraces on ARM64, &lt;a href=&quot;https://github.com/dynup/kpatch/pull/1302#issue-1375125587&quot; target=&quot;_blank&quot;&gt;however these turned out to be problematic&lt;/a&gt; as there are lots of &lt;a href=&quot;https://lore.kernel.org/all/20220707150134.4614-1-madvenka@linux.microsoft.com/#r&quot;&gt;fix revisions&lt;/a&gt; that came after the initial patchset that AWS ships with 5.10. This is a call for help from any interested parties. If you have engineering resources and are interested in bringing Livepatch Service to your ARM64 platforms, please reach out to the Canonical Kernel team on the public Ubuntu Matrix, Discourse, and mailing list. If you want to chat in person, see you at &lt;a href=&quot;https://fosdem.org/2024/&quot;&gt;FOSDEM&lt;/a&gt; next weekend.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/6590406016897929099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2024/01/ubuntu-livepatch-fips-s390-arm64.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6590406016897929099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6590406016897929099'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2024/01/ubuntu-livepatch-fips-s390-arm64.html' title='Ubuntu Livepatch service now supports over 60 different kernels'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgECGwNOL2qcUgUIbptrFlOV-rAL4ehu3xDLwf2sk_MUkI4x6O1Y4WcRs9pueMk-pxvXfdPG-kTFV8if3OLCwQhimAVsZ9gaod02j-jwsP-Cr3bpf2Jx_oH1k-WfIo4GV4iy5Tr_uQ0StaR2F46r7RDzFJx3SXFs7sComSKPFkOJRhlwAVBGXOCaJKGGxE/s72-w320-h320-c/_d0db3ba5-728b-4c40-b8d1-fa6d434b7667.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-6933014224973731619</id><published>2023-11-16T10:45:00.000+00:00</published><updated>2023-11-16T10:45:08.868+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Ubuntu 23.10 significantly reduces the installed kernel footprint</title><content type='html'>&lt;p&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn4rImnreYgG1NES8wXyPT2ML-m8NJ7y5FrxF7Xek7Nni0ZF0F4OLx567s-zeMaYbxiOU-K8KDkUduWeX55fHVWvI30YI_S5o7Q6Y69xtVS25Uis7FI1SIGc7RtKBAgwPbn2RsB30YOv8BBSr4a1fVEeZROSbD2ga7EJZQIhjmpXP02ubhRPZkGH5fVUk/s1280/pexels-pixabay-372796.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn4rImnreYgG1NES8wXyPT2ML-m8NJ7y5FrxF7Xek7Nni0ZF0F4OLx567s-zeMaYbxiOU-K8KDkUduWeX55fHVWvI30YI_S5o7Q6Y69xtVS25Uis7FI1SIGc7RtKBAgwPbn2RsB30YOv8BBSr4a1fVEeZROSbD2ga7EJZQIhjmpXP02ubhRPZkGH5fVUk/w400-h300/pexels-pixabay-372796.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: PlusJakartaSans, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Ubuntu, sans-serif; font-size: 14px; text-align: left; white-space: pre;&quot;&gt;Photo by &lt;a href=&quot;https://www.pexels.com/photo/metal-pippings-with-pressure-gauge-372796/&quot; target=&quot;_blank&quot;&gt;Pixabay&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;Ubuntu systems typically have up to 3 kernels installed, before they are auto-removed by apt on classic installs. Historically the installation was optimized for metered download size only. However, kernel size growth and usage no longer warrant such optimizations. During the 23.10 Mantic Minatour cycle, I led a coordinated effort across multiple teams to implement lots of optimizations that together achieved unprecedented install footprint improvements.&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-66c11ab4-7fff-5998-0d03-a26cf6ea14ef&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Given a typical install of 3 generic kernel ABIs in the default configuration on a regular-sized VM (2 CPU cores 8GB of RAM) the following metrics are achieved in Ubuntu 23.10 versus Ubuntu 22.04 LTS:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;2x less disk space used (1,417MB vs 2,940MB, including initrd)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;3x less peak RAM usage for the initrd boot (68MB vs 204MB)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;0.5x increase in download size (949MB vs 600MB)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;2.5x faster initrd generation (4.5s vs 11.3s)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;approximately the same total time (103s vs 98s, hardware dependent)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;For minimal cloud images that do not install either linux-firmware or modules extra the numbers are:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;1.3x less disk space used (548MB vs 742MB)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;2.2x less peak RAM usage for initrd boot (27MB vs 62MB)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap: wrap; vertical-align: baseline;&quot;&gt;0.4x increase in download size (207MB vs 146MB)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Hopefully, the compromise of download size, relative to the disk space &amp;amp; initrd savings is a win for the majority of platforms and use cases. For users on extremely expensive and metered connections, the likely best saving is to receive air-gapped updates or skip updates.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;This was achieved by precompressing kernel modules &amp;amp; firmware files with the maximum level of Zstd compression at package build time; making actual .deb files uncompressed; assembling the initrd using split cpio archives - uncompressed for the pre-compressed files, whilst compressing only the userspace portions of the initrd; enabling in-kernel module decompression support with matching kmod; fixing bugs in all of the above, and landing all of these things in time for the feature freeze. Whilst leveraging the experience and some of the design choices implementations we have already been shipping on Ubuntu Core. Some of these changes are backported to Jammy, but only enough to support smooth upgrades to Mantic and later. Complete gains are only possible to experience on Mantic and later.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The discovered bugs in kernel module loading code likely affect systems that use LoadPin LSM with kernel space module uncompression as used on ChromeOS systems. Hopefully, Kees Cook or other ChromeOS developers pick up the kernel fixes from the stable trees. Or you know, just use Ubuntu kernels as they do get fixes and features like these first.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The team that designed and delivered these changes is large: Benjamin Drung, Andrea Righi, Juerg Haefliger, Julian Andres Klode, Steve Langasek, Michael Hudson-Doyle, Robert Kratky, Adrien Nader, Tim Gardner, Roxana Nicolescu - and myself Dimitri John Ledkov ensuring the most optimal solution is implemented, everything lands on time, and even implementing portions of the final solution.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Hi, It&#39;s me, I am a Staff Engineer at Canonical and we are hiring &lt;/span&gt;&lt;a href=&quot;https://canonical.com/careers&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #4a6ee0; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://canonical.com/careers&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #0e101a; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Lots of additional technical details and benchmarks on a huge range of diverse hardware and architectures, and bikeshedding all the things below:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-devel/2023-July/thread.html#42652&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://lists.ubuntu.com/archives/ubuntu-devel/2023-July/thread.html#42652&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lists.ubuntu.com/archives/kernel-team/2023-July/thread.html#141412&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://lists.ubuntu.com/archives/kernel-team/2023-July/thread.html#141412&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-devel/2023-July/thread.html#42707&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://lists.ubuntu.com/archives/ubuntu-devel/2023-July/thread.html#42707&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/reduce-initramfs-size-and-speed-up-the-generation-in-ubuntu-23-10/38972&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://discourse.ubuntu.com/t/reduce-initramfs-size-and-speed-up-the-generation-in-ubuntu-23-10/38972&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lore.kernel.org/all/20230830155820.138178-1-andrea.righi@canonical.com/&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://lore.kernel.org/all/20230830155820.138178-1-andrea.righi@canonical.com/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lore.kernel.org/all/20230829123808.325202-1-andrea.righi@canonical.com/&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://lore.kernel.org/all/20230829123808.325202-1-andrea.righi@canonical.com/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://facebook.github.io/zstd/&quot; style=&quot;text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://facebook.github.io/zstd/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;For questions and comments please post to Kernel section on &lt;a href=&quot;https://discourse.ubuntu.com/c/kernel/108&quot; target=&quot;_blank&quot;&gt;Ubuntu Discourse&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6933014224973731619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6933014224973731619'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2023/11/ubuntu-2310-significantly-reduces.html' title='Ubuntu 23.10 significantly reduces the installed kernel footprint'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn4rImnreYgG1NES8wXyPT2ML-m8NJ7y5FrxF7Xek7Nni0ZF0F4OLx567s-zeMaYbxiOU-K8KDkUduWeX55fHVWvI30YI_S5o7Q6Y69xtVS25Uis7FI1SIGc7RtKBAgwPbn2RsB30YOv8BBSr4a1fVEeZROSbD2ga7EJZQIhjmpXP02ubhRPZkGH5fVUk/s72-w400-h300-c/pexels-pixabay-372796.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-7810547490914236021</id><published>2019-08-30T16:42:00.000+01:00</published><updated>2019-08-30T16:42:38.628+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><category scheme="http://www.blogger.com/atom/ns#" term="tls"/><category scheme="http://www.blogger.com/atom/ns#" term="tls10"/><category scheme="http://www.blogger.com/atom/ns#" term="tls12"/><category scheme="http://www.blogger.com/atom/ns#" term="tls13"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>How to disable TLS 1.0 and TLS 1.1 on Ubuntu</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ2ibUiW30SEURIxCIfL08msgCcWcOyJNSHDvpcF7BnYjVsUARHLkaCmdq1QKTevqne2gMBiTyb1anvjvTD4aNl8gonrXTD4vOXf4jJIcdMd6lDHOHAYnZh_1wLCwEdUkYvSPZtn_aWS8/s1600/tls-1.2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1366&quot; data-original-width=&quot;1600&quot; height=&quot;273&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ2ibUiW30SEURIxCIfL08msgCcWcOyJNSHDvpcF7BnYjVsUARHLkaCmdq1QKTevqne2gMBiTyb1anvjvTD4aNl8gonrXTD4vOXf4jJIcdMd6lDHOHAYnZh_1wLCwEdUkYvSPZtn_aWS8/s320/tls-1.2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Example of website that only supports TLS v1.0, which is rejected by the client&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Overivew&lt;/h3&gt;
TLS v1.3 is the latest standard for secure communication over the internet. It is widely supported by desktops, servers and mobile phones. Recently Ubuntu 18.04 LTS received OpenSSL 1.1.1 update bringing the ability to potentially establish TLS v1.3 connections on the latest Ubuntu LTS release. &lt;a href=&quot;https://www.ssllabs.com/ssl-pulse/&quot; target=&quot;_blank&quot;&gt;Qualys SSL Labs Pulse&lt;/a&gt; report shows more than 15% adoption of TLS v1.3. It really is time to migrate from TLS v1.0 and TLS v1.1.&lt;br /&gt;
&lt;br /&gt;
As announced on the 15th of October 2018 &lt;a href=&quot;https://webkit.org/blog/8462/deprecation-of-legacy-tls-1-0-and-1-1-versions/&quot; target=&quot;_blank&quot;&gt;Apple&lt;/a&gt;, &lt;a href=&quot;https://security.googleblog.com/2018/10/modernizing-transport-security.html&quot; target=&quot;_blank&quot;&gt;Google&lt;/a&gt;, and &lt;a href=&quot;https://blogs.windows.com/msedgedev/2018/10/15/modernizing-tls-edge-ie11/&quot; target=&quot;_blank&quot;&gt;Microsoft&lt;/a&gt; will disable TLS v1.0 and TLS v1.1 support by default and thus require TLS v1.2 to be supported by all clients and servers. Similarly, Ubuntu 20.04 LTS will also require TLS v1.2 as the minimum TLS version as well.&lt;br /&gt;
&lt;br /&gt;
To prepare for the move to TLS v1.2, it is a good idea to disable TLS v1.0 and TLS v1.1 on your local systems and start observing and reporting any websites, systems and applications that do not support TLS v1.2.&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
How to disable TLS v1.0 and TLS v1.1 in Google Chrome on Ubuntu&lt;/h3&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create policy directory&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
sudo mkdir -p /etc/opt/chrome/policies/managed&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;Create /etc/opt/chrome/policies/managed/mintlsver.json with&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot;SSLVersionMin&quot; : &quot;tls1.2&quot;&lt;br /&gt;
}&amp;nbsp;&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h3&gt;
How to disable TLS v1.0 and TLS v1.1 in Firefox on Ubuntu&lt;/h3&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Navigate to &lt;b&gt;about:config&lt;/b&gt; in the URL bar&lt;/li&gt;
&lt;li&gt;Search for &lt;b&gt;security.tls.version.min&lt;/b&gt; setting&lt;/li&gt;
&lt;li&gt;Set it to 3, which stand for minimum TLS v1.2&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
How to disable TLS v1.0 and TLS v1.1 in OpenSSL&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Edit /etc/ssl/openssl.cnf&lt;/li&gt;
&lt;li&gt;After oid_section stanza add&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
# System default&lt;br /&gt;
openssl_conf = default_conf&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;After oid_section stanza add&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
[default_conf]&lt;br /&gt;
ssl_conf = ssl_sect&lt;br /&gt;
&lt;br /&gt;
[ssl_sect]&lt;br /&gt;
system_default = system_default_sect&lt;br /&gt;
&lt;br /&gt;
[system_default_sect]&lt;br /&gt;
MinProtocol = TLSv1.2&lt;br /&gt;
CipherString = DEFAULT@SECLEVEL=2&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Save the file&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
How to disable TLS v1.0 and TLS v1.1 in GnuTLS&lt;/h3&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Create config directory&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
sudo mkdir -p&amp;nbsp;/etc/gnutls/&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;Create&amp;nbsp;/etc/gnutls/default-priorities with&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
SYSTEM=SECURE192:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2&amp;nbsp;&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
After performing above tasks most common applications will use TLS v1.2+&lt;br /&gt;
&lt;br /&gt;
I have set these defaults on my systems, and I occasionally hit websites that only support TLS v1.0 and I report them. Have you found any websites and systems you use that do not support TLS v1.2 yet?&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/7810547490914236021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2019/08/how-to-disable-tls-10-and-tls-11-on.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/7810547490914236021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/7810547490914236021'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2019/08/how-to-disable-tls-10-and-tls-11-on.html' title='How to disable TLS 1.0 and TLS 1.1 on Ubuntu'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ2ibUiW30SEURIxCIfL08msgCcWcOyJNSHDvpcF7BnYjVsUARHLkaCmdq1QKTevqne2gMBiTyb1anvjvTD4aNl8gonrXTD4vOXf4jJIcdMd6lDHOHAYnZh_1wLCwEdUkYvSPZtn_aWS8/s72-c/tls-1.2.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-541396208419925515</id><published>2019-02-13T23:09:00.000+00:00</published><updated>2019-02-13T23:09:59.843+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cryptsetup"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="dnssec"/><category scheme="http://www.blogger.com/atom/ns#" term="encryption"/><category scheme="http://www.blogger.com/atom/ns#" term="fosdem"/><category scheme="http://www.blogger.com/atom/ns#" term="luks"/><category scheme="http://www.blogger.com/atom/ns#" term="otp"/><category scheme="http://www.blogger.com/atom/ns#" term="resolved"/><category scheme="http://www.blogger.com/atom/ns#" term="tpm"/><category scheme="http://www.blogger.com/atom/ns#" term="tpm2"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Encrypt all the things</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://imgs.xkcd.com/comics/security.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;274&quot; data-original-width=&quot;448&quot; src=&quot;https://imgs.xkcd.com/comics/security.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://xkcd.com/538/&quot; target=&quot;_blank&quot;&gt;xkcd #538: Security&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Went into blogger settings and enabled TLS on my custom domain blogger blog. So it is now finally a &lt;a href=&quot;https://blog.surgut.co.uk/&quot;&gt;https://blog.surgut.co.uk&lt;/a&gt;&amp;nbsp;However, I do use feedburner and syndicate that to the planet. I am not sure if that is end-to-end TLS connections, thus I will look into removing feedburner between my blog and the ubuntu/debian planets. My experience with changing feeds in the planets is that I end up spamming everyone. I wonder, if I should make a new tag and add that one, and add both feeds to the planet config to avoid spamming old posts.&lt;br /&gt;
&lt;br /&gt;
Next up went into gandi LiveDNS platform and enabled DNSSEC on my domain. It propagated quite quickly, but I believe my domain is now correctly signed with DNSSEC stuff. Next up I guess, is to fix DNSSEC with captive portals. I guess what we really want to have on &quot;wifi&quot; like devices, is to first connect to wifi and not set it as default route. Perform captive portal check, potentially with a reduced DNS server capabilities (ie. no EDNS, no DNSSEC, etc) and only route traffic to the captive portal to authenticate. Once past the captive portal, test and upgrade connectivity to have DNSSEC on. In the cloud, and on the wired connections, I&#39;d expect that DNSSEC should just work, and if it does we should be enforcing DNSSEC validation by default.&lt;br /&gt;
&lt;br /&gt;
So I&#39;ll start enforcing DNSSEC on my laptop I think, and will start reporting issues to all of the UK banks if they dare not to have DNSSEC. If I managed to do it, on my own domain, so should they!&lt;br /&gt;
&lt;br /&gt;
Now I need to publish&amp;nbsp;CAA Records to indicate that my sites are supposed to be protected by Let&#39;s Encrypt certificates only, to prevent anybody else issuing certificates for my sites and clients trusting them.&lt;br /&gt;
&lt;br /&gt;
I think I think I want to publish&amp;nbsp;SSHFP records for the servers I care about, such that I could potentially use those to trust the fingerprints. Also at the &lt;a href=&quot;https://fosdem.org/2019/schedule/event/dns_getdns_local_validation/&quot; target=&quot;_blank&quot;&gt;FOSDEM getdns&lt;/a&gt; talk it was mentioned that openssh might not be verifying these by default and/or need additional settings pointing at the anchor. Will need to dig into that, to see if I need to modify something about this. It did sound odd.&lt;br /&gt;
&lt;br /&gt;
Generated 4k RSA subkeys for my main key. Previously I was using 2k RSA keys, but since I got a new yubikey that supports 4k keys I am upgrading to that. I use yubikey&#39;s OpenGPG for my signing, encryption, and authentication subkeys - meaning for ssh too. Which I had to remember how to use `gpg --with-keygrip -k` to add the right &quot;keygrip&quot; to `~/.gnupg/sshcontrol` file to get the new subkey available in the ssh agent. Also it seems like the order of keygrips in sshcontrol file matters. Updating new ssh key in all the places is not fun I think I did github, salsa and launchpad at the moment. But still need to push the keys onto the many of the installed systems.&lt;br /&gt;
&lt;br /&gt;
Tried to use FIDO2 passwordless login for Windows 10, only to find out that my Dell XPS appears to be incompatible with it as it seems that my laptop does not have TPM. Oh well, I guess I need to upgrade my laptop to have a TPM2 chip such that I can have self-unlocking encrypted drives, and like OTP token displayed on boot and the like as was presented at &lt;a href=&quot;https://fosdem.org/2019/schedule/event/tpm2/&quot; target=&quot;_blank&quot;&gt;this FOSDEM&lt;/a&gt; talk.&lt;br /&gt;
&lt;br /&gt;
Now that &lt;a href=&quot;https://tracker.debian.org/news/1028794/accepted-cryptsetup-2210-1-source-into-unstable/&quot; target=&quot;_blank&quot;&gt;cryptsetup 2.1.0&lt;/a&gt; is out and is in Debian and Ubuntu, I guess it&#39;s time to reinstall and re-encrypt my laptop, to migrate from LUKS1 to LUKS2. It has a bigger header, so obviously so much better!&lt;br /&gt;
&lt;br /&gt;
Changing phone soon, so will need to regenerate all of the OTP tokens. &lt;b&gt;*sigh* &lt;/b&gt;Does anyone backup all the QR codes for them, to quickly re-enroll all the things?&lt;br /&gt;
&lt;br /&gt;
BTW I gave a talk about &lt;a href=&quot;https://fosdem.org/2019/schedule/event/dns_systemd_resolved/&quot; target=&quot;_blank&quot;&gt;systemd-resolved at FOSDEM&lt;/a&gt;. People didn&#39;t like that we do not enable/enforce DNS over TLS, or DNS over HTTPS, or DNSSEC by default. At least, people seemed happy about not leaking queries. But not happy again about caching.&lt;br /&gt;
&lt;br /&gt;
I feel safe.&lt;br /&gt;
&lt;br /&gt;
ps. funny how xkcd uses 2k RSA, not 4k.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/541396208419925515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2019/02/encrypt-all-things.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/541396208419925515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/541396208419925515'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2019/02/encrypt-all-things.html' title='Encrypt all the things'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total><georss:featurename>London, UK</georss:featurename><georss:point>51.5073509 -0.12775829999998223</georss:point><georss:box>51.1912379 -0.77320529999998222 51.8234639 0.51768870000001777</georss:box></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-8507064289051432562</id><published>2018-02-06T15:25:00.002+00:00</published><updated>2018-02-06T15:25:48.135+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ski"/><category scheme="http://www.blogger.com/atom/ns#" term="snowboard"/><category scheme="http://www.blogger.com/atom/ns#" term="snowsports"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Ubuntu Snowsports &amp; Friends Team</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYI6ICxbgV2eZp8QypOA5oEdFrwdFflPWmZTHMoX6w7DogqwqvdpO0LFS1eQSNSoPR5CyrJe3LLzEk-DEy-uwcTgNM9_UTuMmt-b117AQApRqAYaoOnP8TBNFb3WSTgzpL79hWVbRohOE/s1600/pictogram-cloud-orange.svg192.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;192&quot; data-original-width=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYI6ICxbgV2eZp8QypOA5oEdFrwdFflPWmZTHMoX6w7DogqwqvdpO0LFS1eQSNSoPR5CyrJe3LLzEk-DEy-uwcTgNM9_UTuMmt-b117AQApRqAYaoOnP8TBNFb3WSTgzpL79hWVbRohOE/s1600/pictogram-cloud-orange.svg192.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Ubuntu Snowsports and Friends Team&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
After talking to a bunch of people, I&#39;ve realized that a lot of free &amp;amp; open source, debian / ubuntu, etc people do ski or snowboard. So I have this crazy idea, that maybe we can get enough people together to form a social team on Launchpad.&lt;br /&gt;
&lt;br /&gt;
And maybe if we have enough people there, to possibly try to organize a ski trip with or without conference talks. Kind of like a team building meetup / community event / UDS - Ubuntu Developer Snowsports trip, or maybe an Ubucon Snow.&lt;br /&gt;
&lt;br /&gt;
So here we go - please consider joining&amp;nbsp;&lt;a href=&quot;https://launchpad.net/~ubuntu-snowsports&quot;&gt;https://launchpad.net/~ubuntu-snowsports&lt;/a&gt; team, join the mailing list there, and/or hop onto IRC to join #ubuntu-snow on freenode.&lt;br /&gt;
&lt;br /&gt;
I hope we can get more members than&amp;nbsp;&lt;a href=&quot;https://launchpad.net/~ubuntu-cyclists&quot;&gt;https://launchpad.net/~ubuntu-cyclists&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/8507064289051432562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2018/02/ubuntu-snowsports-friends-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/8507064289051432562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/8507064289051432562'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2018/02/ubuntu-snowsports-friends-team.html' title='Ubuntu Snowsports &amp; Friends Team'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYI6ICxbgV2eZp8QypOA5oEdFrwdFflPWmZTHMoX6w7DogqwqvdpO0LFS1eQSNSoPR5CyrJe3LLzEk-DEy-uwcTgNM9_UTuMmt-b117AQApRqAYaoOnP8TBNFb3WSTgzpL79hWVbRohOE/s72-c/pictogram-cloud-orange.svg192.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-2027344606717920550</id><published>2017-12-15T09:09:00.002+00:00</published><updated>2017-12-15T09:09:37.748+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="EFF"/><category scheme="http://www.blogger.com/atom/ns#" term="netneutrality"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>What does FCC Net Neutrality repeal mean to you?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;center&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #f1f1f1; border-color: black; border-radius: 30px; border: 2px solid; padding: 10px; text-align: left; width: 400px;&quot; trbidi=&quot;on&quot;&gt;
&lt;h1 style=&quot;font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 20px; font-weight: bold; line-height: 1.2em;&quot;&gt;
Sorry, the web page you have requested is not available through your internet connection.&lt;/h1&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; margin-bottom: 18.08px; text-align: left;&quot;&gt;
We have received an order from the Courts requiring us to prevent access to this site in order to help protect against Lex Julia Majestatis infridgement.&lt;/div&gt;
&lt;hr style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; text-align: left;&quot; /&gt;
&lt;div style=&quot;font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; margin-top: 18.08px; margin-top: 18px; text-align: left;&quot;&gt;
If you are a home broadband customer, for more information on why certain web pages are blocked, please click&amp;nbsp;&lt;a href=&quot;https://www.eff.org/deeplinks/content-blocking&quot; style=&quot;color: #cc0000; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Home broadband&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; margin-top: 18px; text-align: left;&quot;&gt;
If you are a business customer, or are trying to view this page through your company&#39;s internet connection, please click&amp;nbsp;&lt;a href=&quot;https://www.eff.org/deeplinks/content-blocking&quot; style=&quot;color: #cc0000; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Business&quot;&gt;here&lt;/a&gt;.
&lt;br /&gt;
&lt;div style=&quot;color: red; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 80px; font-weight: normal; line-height: 18.079999923706055px; margin-bottom: 18.08px; margin-top: 18px; text-align: left;&quot;&gt;
∞
&lt;/div&gt;
&lt;/div&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;/center&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/2027344606717920550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2017/12/what-does-fcc-net-neutrality-repeal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2027344606717920550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2027344606717920550'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2017/12/what-does-fcc-net-neutrality-repeal.html' title='What does FCC Net Neutrality repeal mean to you?'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-2971925357095933256</id><published>2017-10-03T14:27:00.000+01:00</published><updated>2017-10-03T14:27:53.642+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="binutils"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="NetworkManager"/><category scheme="http://www.blogger.com/atom/ns#" term="systemd"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>An interesting bug - network-manager, glibc, dpkg-shlibdeps, systemd, and finally binutils</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Not so long ago I went to effectively recompile &lt;a href=&quot;https://launchpad.net/ubuntu/+source/network-manager/1.8.2-1ubuntu6&quot; target=&quot;_blank&quot;&gt;NetworkManager&lt;/a&gt; and fix up minor bug in it. It built fine across all architectures, was considered to be installable etc. And I was expecting it to just migrate across. At the time, glibc was at 2.26 in artful-proposed and NetworkManager was built against it. However release pocket was at glibc 2.24. In Ubuntu we have a &lt;a href=&quot;https://wiki.ubuntu.com/ProposedMigration&quot; target=&quot;_blank&quot;&gt;ProposedMigration&lt;/a&gt; process in place which ensures that newly built packages do not regress in the number of architectures built for; installable on; and do not regress themselves or any reverse dependencies at runtime.&lt;br /&gt;
&lt;br /&gt;
Thus before my build of NetworkManager was considered for migration, it was tested in the release pocket against packages in the release pocket. Specifically, since package metadata only requires glibc 2.17 NetworkManager was tested against glibc currently in the release pocket, which should just work fine....&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;white-space: pre-wrap; word-wrap: break-word;&quot;&gt;
autopkgtest [21:47:38]: test nm: [-----------------------&lt;br /&gt;test_auto_ip4 (__main__.ColdplugEthernet)&lt;br /&gt;ethernet: auto-connection, IPv4 ... FAIL
----- NetworkManager.log -----&lt;br /&gt;NetworkManager: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25&#39; not found (required by NetworkManager)&lt;/blockquote&gt;
&lt;div&gt;
At first I only saw failing tests, which I thought is transient failure. Thus they were retried a few &lt;a href=&quot;http://autopkgtest.ubuntu.com/packages/network-manager/artful/amd64&quot; target=&quot;_blank&quot;&gt;times&lt;/a&gt;. Then I looked at the &lt;a href=&quot;https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-artful/artful/amd64/n/network-manager/20170906_215320_fc70c@/log.gz&quot; target=&quot;_blank&quot;&gt;autopkgtest log&lt;/a&gt; and saw above error messages. Perplexed, I have started a lxd container with ubuntu artful, enabled proposed and installed just network-manager from artful-proposed and indeed a simple `NetworkManager --help` failed with above error from linker.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I am too young to know what dependency-hell means, since ever since I used Linux (Ubuntu 7.04) all glibc symbols were versioned, and &lt;a href=&quot;http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg-shlibdeps.1.html&quot; target=&quot;_blank&quot;&gt;dpkg-shlibdeps&lt;/a&gt;&amp;nbsp;would generate correct minimum dependencies for a package. Alas in this case readelf confirmed that indeed&amp;nbsp;/usr/sbin/NetworkManager requires 2.25 and dpkg depends is &amp;gt;= 2.17.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Further reading readelf output I checked that all of the glibc symbols used are 2.17 or lower, and only the &quot;Version needs section &#39;.gnu.version_r&#39;&quot; referenced GLIBC_2.25 symbol. Inspecting dpkg-shlibdeps code I noticed that it does not parse that section and only searches through the dynamic symbols used to establish the minimum required version.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Things started to smell fishy. On one hand, I trust dpkg-shlibdeps to generate the right dependencies. On the other hand I also trust linker to not tell lies either. Hence I opened a Debian BTS &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874585&quot; target=&quot;_blank&quot;&gt;bug report&lt;/a&gt; about this issue.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
At this point, I really wanted to figure out where the reference to 2.25 comes from. Clearly it was not from any private symbols as then the reference would be on 2.26. Checking glibc abi lists I found there were only a handful of symbols marked as 2.25&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ grep 2.25 ./sysdeps/unix/sysv/linux/x86_64/64/libc.abilist&lt;br /&gt;GLIBC_2.25 GLIBC_2.25 A&lt;br /&gt;GLIBC_2.25 __explicit_bzero_chk&amp;nbsp;F&lt;br /&gt;GLIBC_2.25 explicit_bzero F&lt;br /&gt;GLIBC_2.25 getentropy F&lt;br /&gt;GLIBC_2.25 getrandom F&lt;br /&gt;GLIBC_2.25 strfromd F&lt;br /&gt;GLIBC_2.25 strfromf F&lt;br /&gt;GLIBC_2.25 strfroml F&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
Blindly grepping for these in network-manager source tree I found following:&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ grep explicit_bzero -r configure.ac src/&lt;br /&gt;configure.ac:&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;explicit_bzero],&lt;br /&gt;src/systemd/src/basic/string-util.h:void explicit_bzero(void *p, size_t l);&lt;br /&gt;src/systemd/src/basic/string-util.c:void explicit_bzero(void *p, size_t l) {&lt;br /&gt;src/systemd/src/basic/string-util.c:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; explicit_bzero(x, strlen(x));&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
First of all it seems like network-manager includes a partial embedded copy of systemd. Secondly that code is compiled into a temporary library and has autconf detection logic to use explicit_bzero. It also has an embedded implementation of explicit_bzero when it is not available in libc, however it does not have FORTIFY_SOURCES implementation of said function (__explicit_bzero_chk) as was later pointed out to me. And whilst this function is compiled into an intermediary noinst library, no functions that use explicit_bzero are used in the end by NetworkManger binary. To proof this, I&#39;ve dropped &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=874585;filename=glibc-2.25-abi-drop.patch;msg=17&quot; target=&quot;_blank&quot;&gt;all code that uses explicit_bzero&lt;/a&gt;, rebuild the package against glibc 2.26, and voila it only had Version reference on glibc 2.17 as expected from the end-result usage of shared symbols.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
At this point toolchain bug was a suspect. It seems like whilst explicit_bzero shared symbol got optimised out, the version reference on 2.25 persisted to the linked binaries. At this point in the archive a snapshot version of binutils was in use. And in fact forcefully downgrading bintuils resulted in correct compilation / versions table referencing only glibc 2.17.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Mathias then took over a tarball of object files and filed upstream &lt;a href=&quot;https://sourceware.org/bugzilla/show_bug.cgi?id=22150&quot; target=&quot;_blank&quot;&gt;bug report&lt;/a&gt;&amp;nbsp;against bintuils: &quot;[2.29 Regression] ld.bfd keeps a version reference in .gnu.version_r for symbols which are optimized out&quot;. The discussion in that bug report is a bit beyond me as to me binutils is black magic. All I understood there was &quot;we moved sweep and pass to another place due to some bugs&quot;, doing that introduced this bug, thus do multiple sweep and passes to make sure we fix old bugs and don&#39;t regress this either. Or something like that. Comments / Better description of the bintuils fix are welcomed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Binutils got fixed by upstream developers, cherry-picked into debian, and ubuntu, network-manager got rebuild and everything is wonderful now. However, it does look like unused / deadend code paths tripped up optimisations in the toolchain which managed to slip by distribution package dependency generation and needless require a higher up version of glibc. I guess the lesson here is do not embed/compile unused code. Also I&#39;m not sure why network-manager uses networkd internals like this, and maybe systemd should expose more APIs or serialise more state into /run, as most other things query things over dbus, private socket, or by establishing watches on /run/systemd/netif. I&#39;ll look into that another day.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Thanks a lot to&amp;nbsp;Guillem Jover,&amp;nbsp;Matthias Klose,&amp;nbsp;Alan Modra,&amp;nbsp;H.J. Lu, and others for getting involved. I would not be able to raise, debug, or fix this issue all by myself.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/2971925357095933256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2017/10/an-interesting-bug-network-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2971925357095933256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2971925357095933256'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2017/10/an-interesting-bug-network-manager.html' title='An interesting bug - network-manager, glibc, dpkg-shlibdeps, systemd, and finally binutils'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>London, UK</georss:featurename><georss:point>51.5073509 -0.12775829999998223</georss:point><georss:box>51.1912379 -0.77320529999998222 51.8234639 0.51768870000001777</georss:box></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-7096559900747578164</id><published>2017-01-29T22:23:00.000+00:00</published><updated>2017-01-29T22:23:57.238+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>2017 is the new 1984</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;a href=&quot;http://www.goodreads.com/book/show/5470.1984&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://t2.gstatic.com/images?q=tbn:ANd9GcQdCf2z_9xK2-HvOkf-wlKKgOW1m6-uBBBemJ1KDJO0NXb5nscf&quot; height=&quot;400&quot; width=&quot;245&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&lt;a href=&quot;http://www.goodreads.com/book/show/5470.1984&quot; target=&quot;_blank&quot;&gt;1984: Library Edition&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&lt;a href=&quot;http://www.goodreads.com/book/show/5470.1984&quot; target=&quot;_blank&quot;&gt;Novel by George Orwell, cover picture by Google Search result&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I am scared.&lt;br /&gt;
I am petrified.&lt;br /&gt;
I am confused.&lt;br /&gt;
I am sad.&lt;br /&gt;
I am furious.&lt;br /&gt;
I am angry.&lt;br /&gt;
&lt;br /&gt;
28 days later I shall return from NYC.&lt;br /&gt;
&lt;br /&gt;
I hope.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/7096559900747578164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2017/01/2017-is-new-1984.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/7096559900747578164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/7096559900747578164'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2017/01/2017-is-new-1984.html' title='2017 is the new 1984'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-1669261485899183946</id><published>2016-12-21T18:24:00.001+00:00</published><updated>2017-01-02T13:54:48.434+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="gpg"/><category scheme="http://www.blogger.com/atom/ns#" term="pgp"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Ubuntu Archive and CD/USB images complete migration to 4096 RSA signing keys</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://upload.wikimedia.org/wikipedia/commons/b/bd/Enigma_(crittografia)_-_Museo_scienza_e_tecnologia_Milano.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/b/bd/Enigma_(crittografia)_-_Museo_scienza_e_tecnologia_Milano.jpg&quot; width=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Enigma machine photo by Alessandro Nassiri [&lt;a href=&quot;http://creativecommons.org/licenses/by-sa/4.0&quot;&gt;CC BY-SA 4.0&lt;/a&gt;], &lt;a href=&quot;https://commons.wikimedia.org/wiki/File%3AEnigma_(crittografia)_-_Museo_scienza_e_tecnologia_Milano.jpg&quot;&gt;via Wikimedia Commons&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Ubuntu Archive and CD/USB image use OpenPGP cryptography for verification and integrity protection. In 2012, a new archive signing key &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-devel/2012-September/035903.html&quot;&gt;was created&lt;/a&gt; and we have started to dual-sign everything with both old and new keys.&lt;br /&gt;
&lt;br /&gt;
In April 2017, Ubuntu 12.04 LTS (Precise Pangolin) will go end of life. Precise was the last release that was signed with just the old signing key. Thus when Zesty Zapus is released as Ubuntu 17.04, there will no longer be any supported Ubuntu release that require the 2004 signing keys for validation.&lt;br /&gt;
&lt;br /&gt;
The Zesty Zapus release is now signed with just the 2012 signing key, which is 4096 RSA based key. The old 2004 signing keys, where were 1024 DSA based, have been removed from the default keyring and are no longer trusted by default in Zesty and up. The old keys are available in the removed keys keyring in the ubuntu-keyring package, for example in case one wants to verify things from &lt;a href=&quot;http://old-releases.ubuntu.com/&quot;&gt;old-releases.ubuntu.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thus the signing key transition is coming to an end. Looking forward, I hope that by 18.04 LTS time-frame the &lt;a href=&quot;https://en.wikipedia.org/wiki/SHA-3&quot;&gt;SHA-3&lt;/a&gt; algorithm will make its way into the OpenPGP spec and that we will possibly start a transition to 8096 RSA keys. But this is just wishful thinking as the current key strength, algorithm, and hashsums are deemed to be sufficient.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/1669261485899183946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/12/ubuntu-archive-and-cdusb-images.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1669261485899183946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1669261485899183946'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/12/ubuntu-archive-and-cdusb-images.html' title='Ubuntu Archive and CD/USB images complete migration to 4096 RSA signing keys'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-2498583641382864508</id><published>2016-12-16T11:30:00.001+00:00</published><updated>2016-12-16T11:30:34.811+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="d-i"/><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="swap"/><category scheme="http://www.blogger.com/atom/ns#" term="swapfile"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Swapfiles by default in Ubuntu</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBC0TTWje3xZZQXj5RgHm1LHIG6y2T4-_wwyeZmHnC_QP2ikH54ORlOg8QG1rHEdN5zXLxyhT_xX-RGSKMAqWDSVCDHZ_c1dXKFj9PLV_dEpOAKF3Nghxu_miDup1tiiaBrTyAaxHnD_k/s1600/EmulexPersyst_4M_ISA.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBC0TTWje3xZZQXj5RgHm1LHIG6y2T4-_wwyeZmHnC_QP2ikH54ORlOg8QG1rHEdN5zXLxyhT_xX-RGSKMAqWDSVCDHZ_c1dXKFj9PLV_dEpOAKF3Nghxu_miDup1tiiaBrTyAaxHnD_k/s400/EmulexPersyst_4M_ISA.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;4MB RAM card&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
By default, in Ubuntu, we usually create a swap partition.&lt;br /&gt;
&lt;br /&gt;
Back in the day of 4MB RAM cards this made total sense, as the ration of RAM to disk space, was still very low. Things have changed since. Server, desktop, embedded systems have migrated to newer generations of both RAM and persistent storage. On the high performance side of things we see machines with faster storage in the form of NVMe and SSD drives. Reserving space for swap on such storage, can be seen as expensive and wasteful. This is also true for recent enough laptops and desktops too. Mobile phones have substantial amounts of RAM these days, and at times, coupled with eMMC storage - it is flash storage of lower performance, which have limited number of write cycles, hence should not be overused for volatile swap data. And there are also unicorns in a form of high performance computing of high memory (shared memory) systems with little or no disk space.&lt;br /&gt;
&lt;br /&gt;
Today, carving a partition and reserving twice the RAM size for swap makes little sense. For a common, general, machine most of the time this swap will not be used at all. Or if said swap space is in use but is of inappropriate size, changing it in-place in retrospect is painful.&lt;br /&gt;
&lt;br /&gt;
Starting from 17.04 Zesty Zapus release, instead of creating swap partitions, swapfiles will be used by default for non-lvm based installations.&lt;br /&gt;
&lt;br /&gt;
Secondly, the sizing of swapfiles is very different. It is no more than 5% of free disk space or 2GiB, whichever is lower.&lt;br /&gt;
&lt;br /&gt;
For preseeding, there are two toggles that control this behavior:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;d-i partman-swapfile/percentage string 5&lt;/li&gt;
&lt;li&gt;d-i partman-swapfile/size string 2048&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Setting either of those to zero, will result in system without any swap at all. And one can tweak relative integer percentage points and absolute limits in integer percentage points or MiB.&lt;/div&gt;
&lt;br /&gt;
On LVM based installations, swap logical volumes are used, since unfortunately LVM snapshots do not exclude swapfile changes. However, I would like to move partman-auto to respect the above proposed 5%-or-2GB limits.&lt;br /&gt;
&lt;br /&gt;
Ps. 4MB RAM card picture is by Bub&#39;s (Photo) [&lt;a href=&quot;http://www.gnu.org/copyleft/fdl.html&quot;&gt;GFDL&lt;/a&gt; or &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/&quot;&gt;CC-BY-SA-3.0&lt;/a&gt;], &lt;a href=&quot;https://commons.wikimedia.org/wiki/File%3AEmulexPersyst_4M_ISA.jpeg&quot;&gt;via Wikimedia Commons&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/2498583641382864508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/12/swapfiles-by-default-in-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2498583641382864508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/2498583641382864508'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/12/swapfiles-by-default-in-ubuntu.html' title='Swapfiles by default in Ubuntu'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBC0TTWje3xZZQXj5RgHm1LHIG6y2T4-_wwyeZmHnC_QP2ikH54ORlOg8QG1rHEdN5zXLxyhT_xX-RGSKMAqWDSVCDHZ_c1dXKFj9PLV_dEpOAKF3Nghxu_miDup1tiiaBrTyAaxHnD_k/s72-c/EmulexPersyst_4M_ISA.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-351366275132285519</id><published>2016-11-14T15:11:00.000+00:00</published><updated>2016-11-14T15:11:12.670+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="d-i"/><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>/boot less LVM rootfs in Zesty</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivTTqlmcmE3Tp89Yie19CSfVdjGlUvWue25jzSiQ1RQg_ceIjOuJnGHJjIbt1p7hFw7dzkTiOWFyqRmgH63qERNuZghDpO819G17J0AGmgKXAxTZN2N8966whL8yWIRyXE3IByJ-JlEAk/s1600/old-shoes-1466074526leD.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivTTqlmcmE3Tp89Yie19CSfVdjGlUvWue25jzSiQ1RQg_ceIjOuJnGHJjIbt1p7hFw7dzkTiOWFyqRmgH63qERNuZghDpO819G17J0AGmgKXAxTZN2N8966whL8yWIRyXE3IByJ-JlEAk/s400/old-shoes-1466074526leD.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On Ubuntu many of the default boot loaders support booting kernels located on LVM volumes. This includes following platforms&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;i686, x86_64 bios grub2&lt;/li&gt;
&lt;li&gt;arm64, armhf, i686, x86_64 UEFI grub2&lt;/li&gt;
&lt;li&gt;PReP partitions on IBM PowerPC&lt;/li&gt;
&lt;li&gt;zipl on IBM zSystems&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
For all of the above the d-i has been modified in Zesty to create LVM based installations without a dedicated /boot partition. We shall celebrate this achievement. Hopefully this means one doesn&#39;t need to remove kernels as much, or care about sizing /boot volume appropriately any more.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If there are more bootloaders in Ubuntu that support booting off LVM, please do get in touch with me. I&#39;m interested if I can safely enable following platforms as well:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;armhf with u-boot&lt;/li&gt;
&lt;li&gt;arm64 with u-boot&lt;/li&gt;
&lt;li&gt;ppc64el with PReP volume&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
ps. boots pic is from &lt;a href=&quot;http://www.publicdomainpictures.net/view-image.php?image=175609&amp;amp;picture=old-shoes&quot;&gt;here&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/351366275132285519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/11/boot-less-lvm-rootfs-in-zesty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/351366275132285519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/351366275132285519'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/11/boot-less-lvm-rootfs-in-zesty.html' title='/boot less LVM rootfs in Zesty'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivTTqlmcmE3Tp89Yie19CSfVdjGlUvWue25jzSiQ1RQg_ceIjOuJnGHJjIbt1p7hFw7dzkTiOWFyqRmgH63qERNuZghDpO819G17J0AGmgKXAxTZN2N8966whL8yWIRyXE3IByJ-JlEAk/s72-c/old-shoes-1466074526leD.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-9072390229181577756</id><published>2016-06-25T20:24:00.001+01:00</published><updated>2016-06-25T20:24:41.524+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="politics"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Post-Brexit - The What Now?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Out of 46,500,001 electorate 17,410,742 voted to leave, which is a mere 37.4% or just over a third. [&lt;a href=&quot;http://www.electoralcommission.org.uk/find-information-by-subject/elections-and-referendums/upcoming-elections-and-referendums/eu-referendum/electorate-and-count-information&quot;&gt;source&lt;/a&gt;]. On my books this is not a clear expression of the UK wishes.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The reaction that the results have caused are devastating. The Scottish First Minister has announced plans for 2nd Scottish Independence referendum [&lt;a href=&quot;http://www.snp.org/statement_on_euref_result_and_it_s_implications_for_scotland&quot;&gt;source&lt;/a&gt;]. Londoners are filing petitions calling for Independent London [&lt;a href=&quot;https://www.change.org/p/sadiq-khan-declare-london-independent-from-the-uk-and-apply-to-join-the-eu&quot;&gt;source&lt;/a&gt;, &lt;a href=&quot;https://petition.parliament.uk/petitions/133704/moderation-info&quot;&gt;source&lt;/a&gt;]. The Prime Minister announced his resignation [&lt;a href=&quot;http://www.bbc.co.uk/news/uk-politics-36615028&quot;&gt;source&lt;/a&gt;]. Things are not stable.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I do not believe that super majority of the electorate are in favor of leaving the EU. I don&#39;t even believe that those who voted to leave have considered the break up of the UK as the inevitable outcome of the leave vote. There are numerous videos on the internet about that, impossible to quantify or reliably cite, but for example this [&lt;a href=&quot;http://www.independent.co.uk/news/uk/politics/brexit-petition-latest-eu-referendum-rules-change-force-second-vote-poll-government-a7102486.html&quot;&gt;source&lt;/a&gt;]&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;So What Now?&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;P R O T E S T&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
I urge everyone to start protesting the outcome of the mistake that happened last Thursday. 4th of July is a good symbolic date to show your discontent with the UK governemnt and a tiny minority who are about to cause the country to fall apart with no other benefits. Please stand up and make yourself heard.&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Please &lt;a href=&quot;http://www.bbc.co.uk/news/uk-politics-36615028&quot;&gt;sign petition&lt;/a&gt; for the 2nd EU Referendum&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;On Tuesday the 28th please come to &lt;a href=&quot;https://www.facebook.com/events/1671704409745795/&quot;&gt;Trafalgar Square to support London Stays campaign&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;General Strikes 4th &amp;amp; 5th of July&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;All 2 million EU citizens working in the UK Walk Out - &lt;a href=&quot;https://www.facebook.com/events/278078699220301/?active_tab=posts&quot;&gt;event&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;London National Black Bloc - &lt;a href=&quot;https://www.facebook.com/events/1548749878752473/&quot;&gt;GENERAL STRIKE SOLIDARITY LONDON&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.classwarparty.org.uk/event/toriesout-general-strike-protest-direct-action/&quot;&gt;Glasgow Tories Out General Strike&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.teachers.org.uk/campaigns/stand-up-for-education&quot;&gt;National Union of Teachers - Stand Up for Eduction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
There are 64,100,000 people living in the UK according to the World Bank, maybe the government should fear and listen to the &lt;a href=&quot;http://www.votenone.org.uk/uk-unheard-third.html&quot;&gt;unheard third&lt;/a&gt;. The current &quot;majority&quot; parliament was only elected by 24% of electorate.&lt;br /&gt;
&lt;br /&gt;
It is time for people to actually take control, we can fix our parliament, we can stop austerity, we can prevent the break up of the UK, and we can stay in the EU. Over to you.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;ps. How to elect next PM?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Electing next PM will be done within the Conservative Party, and that&#39;s kind of a bummer, given that the desperate state the country currently is in. It is not that hard to predict that Boris Johnson is a front-runner. If you wish to elect a different PM, I urge you to splash out 25 quid and register to be a member of the Conservative Party just for one year =) this way you will get a chance to directly elect the new Leader of the Conservative Party and thus the new Prime Minister. You can backdoor the Conservative election &lt;a href=&quot;https://www.conservatives.com/join&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/9072390229181577756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/06/post-brexit-what-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/9072390229181577756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/9072390229181577756'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/06/post-brexit-what-now.html' title='Post-Brexit - The What Now?'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-6591904429564392366</id><published>2016-02-06T23:30:00.000+00:00</published><updated>2016-02-06T23:30:08.356+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cryptography"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="letsencrypt"/><category scheme="http://www.blogger.com/atom/ns#" term="nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><category scheme="http://www.blogger.com/atom/ns#" term="tls"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Blogging about Let&#39;s encrypt over HTTP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
So &lt;a href=&quot;https://letsencrypt.org/&quot;&gt;let&#39;s encrypt&lt;/a&gt; thing started. And it can do challenges over http (serving text files) and over dns (serving .txt records).&lt;br /&gt;
&lt;br /&gt;
My &quot;infrastructure&quot; is fairly modest. I&#39;ve seen too many of my email accounts getting swamped with spam, and or companies going bust. So I got my own domain name &lt;a href=&quot;http://surgut.co.uk/&quot;&gt;surgut.co.uk&lt;/a&gt;. However, I don&#39;t have money or time to run my own services. So I&#39;ve signed up for the Google Apps account for my domain to do email, blogging, etc.&lt;br /&gt;
&lt;br /&gt;
Then later i got the &lt;a href=&quot;http://libnih.la/&quot;&gt;libnih.la&lt;/a&gt; domain to host API docs for the mentioned library. In the world of .io startups, I thought it&#39;s an incredibly funny domain name.&lt;br /&gt;
&lt;br /&gt;
But I also have a VPS to host static files on ad-hoc basis, run VPN, and an irc bouncer. My irc bouncer is ZNC and I used a self-signed certificate there, thus i had &quot;ignore&quot; ssl errors in all of my irc clients... which kind of defeats the purposes somewhat.&lt;br /&gt;
&lt;br /&gt;
I run my VPS on i386 (to save on memory usage) and on Ubuntu 14.04 LTS managed with Landscape. And my little services are just configured by hand there (not using juju).&lt;br /&gt;
&lt;br /&gt;
My first attempt at getting on the let&#39;s encrypt bandwagon was to use the official client. By fetching debs from xenial, and installing that on LTS. But the package/script there is huge, has support for things I don&#39;t need, and wants dependencies I don&#39;t have on 14.04 LTS.&lt;br /&gt;
&lt;br /&gt;
However I found a minimalist implementation &lt;a href=&quot;http://letsencrypt.sh/&quot;&gt;letsencrypt.sh&lt;/a&gt;&amp;nbsp;implemented in shell, with openssl and curl. It was trivial to get dependencies for and configure. Specified a domains text file, and that was it. And well, added sym links in my NGINX config to serve the challenges directory &amp;amp; a hook to deploy certificate to znc and restart that. I&#39;ve added a cronjob to renew the certs too. Thinking about it, it&#39;s not complete as I&#39;m not sure if NGINX will pick up certificate change and/or if it will need to be reloaded. I shall test that, once my cert expires.&lt;br /&gt;
&lt;br /&gt;
Tweaking config for NGINX was easy. And I was like, let&#39;s see how good it is. I pointed&amp;nbsp;&lt;a href=&quot;https://www.ssllabs.com/ssltest/&quot;&gt;https://www.ssllabs.com/ssltest/&lt;/a&gt; at my&amp;nbsp;&lt;a href=&quot;https://x4d.surgut.co.uk/&quot;&gt;https://x4d.surgut.co.uk/&lt;/a&gt;&amp;nbsp;and I got a &quot;C&quot; rating. No forward secrecy, vulnerable to down grade attacks, BEAST, POODLE and stuff like that. I went googling for all types of NGINX configs and eventually found website with &quot;best known practices&quot;&amp;nbsp;&lt;a href=&quot;https://cipherli.st/&quot;&gt;https://cipherli.st/&lt;/a&gt;&amp;nbsp;However, even that only got me to &quot;B&quot; rating, as it still has&amp;nbsp;Diffie-Hellman things that ssltest caps at &quot;B&quot; rating. So I disabled those too. I&#39;ve ended up with this gibberish:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_ciphers &quot;EECDH+AESGCM:AES256+EECDH&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_ecdh_curve secp384r1; # Requires nginx &amp;gt;= 1.1.0&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_session_cache shared:SSL:10m;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;#ssl_session_tickets off; # Requires nginx &amp;gt;= 1.5.9&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_stapling on; # Requires nginx &amp;gt;= 1.3.7&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ssl_stapling_verify on; # Requires nginx =&amp;gt; 1.3.7&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;#resolver $DNS-IP-1 $DNS-IP-2 valid=300s;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;#resolver_timeout 5s;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;add_header Strict-Transport-Security &quot;max-age=63072000; includeSubdomains; preload&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;add_header X-Frame-Options DENY;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;add_header X-Content-Type-Options nosniff;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I call it gibberish, because IMHO, I shouldn&#39;t need to specify any of the above... Anyway I got my A+ rating.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
However, security is as best as the weakest link. I&#39;m still serving things over HTTP, maybe I should disable that. And I&#39;m yet to check how &quot;good&quot; the TLS is on my znc. Or if I need to further harden my sshd configuration.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This has filled a big gap in my infrastructure. However a few things remain served over HTTP only.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://blog.surgut.co.uk/&quot;&gt;http://blog.surgut.co.uk&lt;/a&gt; is hosted by an Alphabet&#39;s / Google&#39;s Blogger service. Which I would want to be served over HTTPS.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://libnih.la/&quot;&gt;http://libnih.la&lt;/a&gt; is hosted by GitHub Inc service. Which I would want to be served over HTTPS.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I do not want to manage those services, experience load / spammers / DDoS attacks etc. But I am happy to sign CSRs with let&#39;s encrypt and deploy certs over to those companies. Or allow them to self-obtain certificates from let&#39;s encrypt on my behalf. I used &lt;a href=&quot;http://gandi.net/&quot;&gt;gandi.net&lt;/a&gt; as my domain names provider, which offers an RPC API to manage domains and their zones files, thus e.g. I can also generate an API token for those companies to respond with a dns-01 challenge from let&#39;s encrypt.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One step at a time I guess.&lt;/div&gt;
&lt;br /&gt;
The postings on this site are my own and don&#39;t necessarily represent any past/present/future employers&#39; positions, strategies, or opinions.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/6591904429564392366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/02/blogging-about-lets-encrypt-over-http.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6591904429564392366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6591904429564392366'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/02/blogging-about-lets-encrypt-over-http.html' title='Blogging about Let&#39;s encrypt over HTTP'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-132067448911727721</id><published>2016-01-30T01:37:00.001+00:00</published><updated>2016-01-30T01:39:43.523+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="fosdem"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Four gunmen outside</title><content type='html'>&lt;p dir=&quot;ltr&quot;&gt;There are four gunmen outside of my hotel. They are armed with automatic rifles and pistols. I am scared for my life having sneaked past them inside. Everyone else is acting as if everything is normal. Nobody is scared or running for cover. Nobody called the police. I&#39;ve asked the reception to talk to the gunmen and ask them to leave. They looked at me as if I am mad. Maybe I am. Is this what shizophrenia&amp;nbsp;feels like?! Can you see them on the picture?! Please help. There are four gunmen outside of my hotel. I am not in central Beirut, I am in central Brussels.&lt;/p&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi48fJridajbDjER5RSoRsQPslhV4UTw7BQ_AA5PiwKPK4xBCiNtvp-z2IlOcWbQF6m7B0ags4fFmwNFq3xz_dXKH3WYM-rRqx-x29n5I3sdyZyAc3SHBn4pDUlrmC_n-2IisnLt6l-ozc/s1600/IMG_20160129_193735.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi48fJridajbDjER5RSoRsQPslhV4UTw7BQ_AA5PiwKPK4xBCiNtvp-z2IlOcWbQF6m7B0ags4fFmwNFq3xz_dXKH3WYM-rRqx-x29n5I3sdyZyAc3SHBn4pDUlrmC_n-2IisnLt6l-ozc/s640/IMG_20160129_193735.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/132067448911727721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2016/01/four-gunmen-outside.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/132067448911727721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/132067448911727721'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2016/01/four-gunmen-outside.html' title='Four gunmen outside'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi48fJridajbDjER5RSoRsQPslhV4UTw7BQ_AA5PiwKPK4xBCiNtvp-z2IlOcWbQF6m7B0ags4fFmwNFq3xz_dXKH3WYM-rRqx-x29n5I3sdyZyAc3SHBn4pDUlrmC_n-2IisnLt6l-ozc/s72-c/IMG_20160129_193735.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Brussels, Brussels</georss:featurename><georss:point>50.850338 4.3517103</georss:point></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-4345453370760693430</id><published>2015-10-12T11:23:00.000+01:00</published><updated>2015-10-12T11:23:06.055+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clearlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="nova"/><category scheme="http://www.blogger.com/atom/ns#" term="openstack"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="uwsgi"/><category scheme="http://www.blogger.com/atom/ns#" term="wsgi"/><title type='text'>uwsgi gains --paste-name option</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
One of the &lt;a href=&quot;https://www.python.org/dev/peps/pep-3333/&quot;&gt;WSGI&lt;/a&gt; servers that is commonly using with &lt;a href=&quot;http://nginx.org/&quot;&gt;nginx&lt;/a&gt; is &lt;a href=&quot;https://uwsgi-docs.readthedocs.org/en/latest/&quot;&gt;uwsgi&lt;/a&gt;. One way to configure and deploy simple and complex WSGI middlewares and apps is by using &lt;a href=&quot;http://pythonpaste.org/deploy/&quot;&gt;Paste deploy&lt;/a&gt; tooling. However, until now uwsgi was only able to load a default app under the suffix &quot;main&quot;. There is no such limitation in the Paste deploy code itself, as functions there accept a name argument. What was missing is an option in uwsgi to pass, optionally, alternative non-default name of the app to load.&lt;br /&gt;
&lt;br /&gt;
A &lt;a href=&quot;https://github.com/clearlinux/uwsgi/commit/a6005624af58c44114635489b5bdd420884aa149&quot;&gt;patch&lt;/a&gt; adding this option has now been &lt;a href=&quot;https://github.com/unbit/uwsgi/pull/1066#event-432027974&quot;&gt;merged upstream&lt;/a&gt; and should be available in the next uwsgi release.&lt;br /&gt;
&lt;br /&gt;
What I was hoping that one will be able to do something like this:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ uwsgi --ini-paste /etc/nova/api-paste.ini --paste-name&amp;nbsp;osapi_compute&lt;/blockquote&gt;
But alas that didn&#39;t work. I wish all OpenStack Software service were deployable as normal wsgi stand-alone apps without any addition glue code. Keystone is kind of like this with /usr/share/httpd/cgi-bin/keystone/main entry point for deploying keystone as a wsgi app, instead of a daemon.&lt;br /&gt;
&lt;br /&gt;
Also can nova operate on top of nginx ugreen threats? Or is that something entirely difference from the recent day eventlet?!&lt;br /&gt;
&lt;br /&gt;
The postings on this site are my own and don&#39;t necessarily represent Intel’s positions, strategies, or opinions.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/4345453370760693430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/10/uwsgi-gains-paste-name-option.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/4345453370760693430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/4345453370760693430'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/10/uwsgi-gains-paste-name-option.html' title='uwsgi gains --paste-name option'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-3711770139759631042</id><published>2015-09-18T22:11:00.000+01:00</published><updated>2015-09-18T22:11:09.170+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clearcontainers"/><category scheme="http://www.blogger.com/atom/ns#" term="clearlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="containers"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="docker"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Clear Containers for Docker* Engine</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Today at work, I announced something James Hunt, Ikey Doherty and myself have been working on. We integrated &lt;a href=&quot;https://lwn.net/Articles/644675/&quot;&gt;Clear Containers&lt;/a&gt;&amp;nbsp;technology with &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker* Engine&lt;/a&gt;&amp;nbsp;to create &lt;a href=&quot;https://lists.clearlinux.org/pipermail/dev/2015-September/000049.html&quot;&gt;Clear Containers for Docker* Engine&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After following &lt;a href=&quot;https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&amp;amp;package=clear-containers-docker&quot;&gt;installation instructions&lt;/a&gt;, one can pull and run existing Docker* containers in the secure Clear Containers environment. This means that instead of namespaces, a fast virtual machine is started using the kvmtool hypervisor. This VM is running an optimised minimal Linux* kernel and the optimised Clear Linux* for Intel&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;®&lt;/span&gt;&amp;nbsp;Architecture Project user-space, with the only goal to execute the Docker* workload and then shut down.&lt;br /&gt;
&lt;br /&gt;
The net effect is almost indistinguishable from typical Docker* container usage:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ docker run -ti ubuntu:vivid&lt;br /&gt;root@d88a60502ed7:/# systemd-detect-virt&lt;br /&gt;kvm&lt;/blockquote&gt;
Apart from, as you see, it&#39;s running inside a kvm VM, and thus protected by&amp;nbsp;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;Intel® Virtualization Technology.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;This is available on Clear Linux* as well as multiple other operating systems.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;nbsp;hope this is exciting enough for people to try out, and if you have any feedback, feel free to leave comments or join our &lt;a href=&quot;https://lists.clearlinux.org/mailman/listinfo/dev&quot;&gt;mailing list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;*Other names and brands may be claimed as the property of others&lt;br /&gt;&lt;br /&gt;The postings on this site are my own and don&#39;t necessarily represent Intel’s positions, strategies, or opinions.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/3711770139759631042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/09/clear-containers-for-docker-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/3711770139759631042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/3711770139759631042'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/09/clear-containers-for-docker-engine.html' title='Clear Containers for Docker* Engine'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-3576028178736356756</id><published>2015-08-27T11:39:00.000+01:00</published><updated>2015-08-28T10:48:57.355+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="go"/><category scheme="http://www.blogger.com/atom/ns#" term="golang"/><category scheme="http://www.blogger.com/atom/ns#" term="python3"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Go enjoy Python3</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Given a string, get a truncated string of length up to 12.&lt;br /&gt;
&lt;br /&gt;
The task is ambiguous, as it doesn&#39;t say anything about whether or not 12 should include terminating null character or not. None the less, let&#39;s see how one would achieve this in various languages.&lt;br /&gt;
Let&#39;s start with python3
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre&gt;&lt;code&gt;
import sys
print(sys.argv[1][:12])&lt;/code&gt;
&lt;/pre&gt;
&lt;/blockquote&gt;
Simple enough, in essence given first argument, print it up to length 12. As an added this also deals with unicode correctly that is if passed arg is 車賈滑豈更串句龜龜契金喇車賈滑豈更串句龜龜契金喇, it will correctly print 車賈滑豈更串句龜龜契金喇. (note these are just random Unicode strings to me, no idea what they stand for).
&lt;br /&gt;
&lt;br /&gt;
In C things are slightly more verbose, but in essence, I am going to use strncpy function:
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre&gt;&lt;code&gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
void main(int argc, char *argv[]) {
 char res[12];
 strncpy(res,argv[1],12);
 printf(&quot;%s\n&quot;,res);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
This treats things as byte-array instead of unicode, thus for unicode test it will end up printing just 車賈滑豈. But it is still simple enough.
&lt;br /&gt;
Finally we have Go
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre&gt;&lt;code&gt;package main

import &quot;os&quot;
import &quot;fmt&quot;
import &quot;math&quot;

func main() {
 fmt.Printf(&quot;%s\n&quot;, os.Args[1][:int(math.Min(12, float64(len(os.Args[1]))))])
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
This similarly treats argument as a byte array, and one needs to cast the argument to a rune to get unicode string handling. But there are quite a few caveats. One cannot take out of bounds slices. Thus a&amp;nbsp;naïve os.Args[1][:12] can result in a runtime panic that slice bounds are out of range. Or if a string is known at compile time, a compile time error. Hence one needs to calculate length, and do a min comparison. And there lies the next caveat, math.Min() is only defined for float64 type, and slice indexes can only be integers and thus we end up writing ]))))])...&lt;br /&gt;
&lt;br /&gt;
12 points for python3, 8 points for C, and Go receives nul points Eurovision style.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EDIT:&amp;nbsp;&lt;/b&gt;&lt;span class=&quot;Ub gna&quot; style=&quot;-webkit-transition: color 0.218s initial initial; background-color: white; color: #262626; cursor: pointer; font-family: Roboto, arial, sans-serif; font-size: 13px; font-weight: bold; line-height: 18.2000007629395px; text-decoration: none; transition: color 0.218s initial initial;&quot;&gt;&lt;a href=&quot;https://apis.google.com/u/0/wm/1/101919461013229598346&quot; oid=&quot;101919461013229598346&quot; style=&quot;background-color: white; color: #427fed; cursor: pointer; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.2000007629395px; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Andreas Røssland&lt;/a&gt;&amp;nbsp;and James Hunt are full of win. Both suggesting fmt.Printf(&quot;%.12s\n&quot;, os.Args[1]) for go. I like that a lot, as it gives simplicity &amp;amp; readability without compromising the default safety against out of bounds access. Hence the scores are now: 14 points for Go, 12 points for python3 and 8 points for C.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EDIT2:&lt;/b&gt;&amp;nbsp;I was pointed out much better C implementation by Keith Thompson -&amp;nbsp;&lt;a href=&quot;http://pastebin.com/5i7rFmMQ&quot;&gt;http://pastebin.com/5i7rFmMQ&lt;/a&gt; in essence it uses strncat() which has much better null termination semantics. And Ben posted a C implementation which handles wide characters&amp;nbsp;&lt;a href=&quot;http://www.decadent.org.uk/ben/blog/truncating-a-string-in-c.html&quot;&gt;http://www.decadent.org.uk/ben/blog/truncating-a-string-in-c.html&lt;/a&gt;. I regret to inform you that this blog post got syndicated onto hacker news and has now become the top viewed post on my blog of all time, overnight. In retrospect, I regret awarding points at the end of the blog post, as that&#39;s just was merely an expression of opinion and is highly subjective measure. But this problem statement did originate from me reviewing go code that did &quot;if/then/else&quot; comparison and got it wrong to truncate a string and I thought surely one can just do [:12] which has lead me down the rabbit hole of discovering a lot about Go; it&#39;s compile and runtime out of bounds access safeguards; lack of universal Min() function; runes vs strings handling and so on. I&#39;m only a beginner go programmer and I am very sorry for wasting everyone&#39;s time on this. I guess people didn&#39;t have much to do on a Throwback Thursday.&lt;br /&gt;
&lt;br /&gt;
The postings on this site are my own and don&#39;t necessarily represent Intel’s positions, strategies, or opinions.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/3576028178736356756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/08/go-enjoy-python3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/3576028178736356756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/3576028178736356756'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/08/go-enjoy-python3.html' title='Go enjoy Python3'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-4693329871045035477</id><published>2015-03-30T16:15:00.001+01:00</published><updated>2015-03-30T16:15:45.245+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clearlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="intel"/><category scheme="http://www.blogger.com/atom/ns#" term="packaging"/><category scheme="http://www.blogger.com/atom/ns#" term="stateless"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Boiling frog, or when did we loose it with /etc ?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: left;&quot;&gt;
$ sudo find /etc -type f | wc -l&lt;br /&gt;
2794&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Stateless&lt;/h4&gt;
When was the last time you looked at /etc and thought - &quot;I honestly know what every single file in here is&quot;. Or for example had a thought &quot;Each file in here is configuration changes that I made&quot;. Or for example do you have confidence that your system will continue to function correctly if any of those files and directories are removed?&lt;br /&gt;
&lt;br /&gt;
Traditionally most *NIX utilities are simple enough utilities, that do not require any configuration files what&#39;s so ever. However most have command line arguments, and environment variables to manipulate their behavior. Some of the more complex utilities have configuration files under /etc, sometimes with &quot;layer&quot; configuration from user&#39;s home directory (~/). Most of them are generally widely accepted. However, these do not segregate upstream / distribution / site administrator / local administrator / user configuration changes. Most update mechanisms created various ways to deal with merging and maintaining the correct state of those. For example both &lt;a href=&quot;https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files&quot;&gt;dpkg&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://www.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html&quot;&gt;RPM (%config)&lt;/a&gt; have elaborate strategies and policies and ways to deal with them. However, even today, still, they cause problems: prompting user for whitespace changes in config files, not preserving user changes, or failing to migrate them.&lt;br /&gt;
&lt;br /&gt;
I can&#39;t find exact date, but it has now been something like 12 years since &lt;a href=&quot;http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html&quot;&gt;XDG Base directory specification&lt;/a&gt; was drafted. It came from Desktop Environment requirements, but one thing it achieves is segregation between upstream / distro / admin / user induced changes. When applications started to implement Base directory specification, I started to feel empowered. Upstream ships sensible configs in /usr, distribution integrators ship their overlay tweaks packaged in /usr, my site admin applies further requirements in /etc, and as I user I am free to improve or brake everything with configs in ~/. One of the best things from this setup - no upgrade prompts, and ease of reverting each layer of those configs (or at least auditing where the settings are coming from).&lt;br /&gt;
&lt;br /&gt;
However, the uptake of XDG Base directory spec is slow / non-existing among the core components of any OS today. And at the same time /etc has grown to be a dumping ground for pretty much everything under the sun:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Symlink farms - E.g. /etc/rc*.d/*, /etc/systemd/system/*.wants/*, /etc/ssl/certs/*&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Cache files - E.g. /etc/ld.so.cache&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Empty (and mandatory) directories&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Empty (and mandatory) &quot;configuration&quot; files. - E.g. whitespace &amp;amp; comments only&lt;/li&gt;
&lt;/ul&gt;
Let&#39;s be brutally honest and say that none of the above belongs in /etc. /etc must be for end-user configuration only, made by the end user alone and nobody else (or e.g. an automation tool driven by the end-user, like puppet).&lt;br /&gt;
&lt;br /&gt;
Documentation of available configuration options and syntax to specify those in the config files should be shipped... in the documentation. E.g. man pages, /usr/share/doc, and so on. And not as the system-wide &quot;example&quot; config files. Absence of the files in /etc must not be treated as fatal, but a norm, since most users use default settings (especially for the most obscure options). Lastly compiled-in defaults should be used where possible, or e.g. layer configuration from multiple locations (e.g. /usr, /etc, ~/ where appropriate).&lt;br /&gt;
&lt;br /&gt;
Above observations are not novel, and shared by most developers and users in the wider open source ecosystem. There are many projects and concepts to deal with this problem by using automation (e.g. puppet, chef), by migrating to new layouts (e.g. implementing / supporting XDG base dir spec), using &quot;app bundles&quot; (e.g. mobile apps, docker), or fully enumerating/abstracting everything in a generic manner (e.g. &lt;a href=&quot;http://nixos.org/&quot;&gt;NixOS&lt;/a&gt;). Whilst fixing the issue at hand, these solutions do increase the dependency on files in /etc to be available. In other words we grew a de-facto user-space API we must not break, because modifications to the well known files in /etc are expected to take effect by both users and many administrator tools.&lt;br /&gt;
&lt;br /&gt;
Since August last year, I have joined &lt;a href=&quot;https://01.org/&quot;&gt;Open Source Technology Center&lt;/a&gt; at &lt;a href=&quot;http://www.intel.com/&quot;&gt;Intel&lt;/a&gt;, and have been working on &lt;a href=&quot;https://clearlinux.org/&quot;&gt;Clear Linux* Project for Intel Architecture&lt;/a&gt;. One of the goals we have set out is to achieve stateless operation - that is to have empty /etc by default, reserved for user modification alone, yet continuing to support all legacy / well-known configuration paths. The premise is that all software can be patched with auto-detection, built-in defaults or support for layered configuration to achieve this. I hope that this work would interest everyone and will be widely adopted.&lt;br /&gt;
&lt;br /&gt;
Whilst the effort to convert everything is still on going, I want to discuss a few examples of any core system.&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Shadow&lt;/h4&gt;
The &lt;a href=&quot;http://linux.die.net/man/1/login&quot;&gt;login(1)&lt;/a&gt;&amp;nbsp;command, whilst having built-in default for every single option exits with status 1, if it cannot &lt;a href=&quot;http://linux.die.net/man/2/stat&quot;&gt;stat(2)&lt;/a&gt; &lt;a href=&quot;http://linux.die.net/man/5/login.defs&quot;&gt;login.defs(5)&lt;/a&gt; file.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href=&quot;http://linux.die.net/man/1/passwd&quot;&gt;passwd(1)&lt;/a&gt; command will write out the salted/hashed password in the &lt;a href=&quot;http://linux.die.net/man/5/passwd&quot;&gt;passwd(5)&lt;/a&gt; file, rather than in &lt;a href=&quot;http://linux.die.net/man/5/shadow&quot;&gt;shadow(5)&lt;/a&gt;, if it cannot stat the shadow(5) file. There is similar behavior with gshadow. I found it very ironic, that upstream project &quot;shadow&quot; does not use shadow(5) by default.&lt;br /&gt;
&lt;br /&gt;
Similarly, stock files manipulated by passwd/useradd/groupadd utilities are not created, if missing.&lt;br /&gt;
&lt;br /&gt;
Some settings in login.defs(5) are not applicable, when compiled with PAM support, yet present in the default shipped login.defs(5) file.&lt;br /&gt;
&lt;br /&gt;
Patches to resolve above issues are undergoing review on the &lt;a href=&quot;http://lists.alioth.debian.org/pipermail/pkg-shadow-devel/2015-March/010589.html&quot;&gt;upstream mailing list&lt;/a&gt;.&lt;br /&gt;
&lt;h4&gt;
DBus&lt;/h4&gt;
In xml based configuration, `includedir&#39; elements are mandatory to exist on disk, that is empty directory must be present, if referenced. If these directories are non-existant, the configuration fails to load and the system or session bus are not started.&lt;br /&gt;
&lt;br /&gt;
Similarly, upstream have general agreement with the stateless concept and patches to move all of dbus default configurations from /etc to /usr are being reviewed for inclusion at &lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=89280&quot;&gt;the bug tracker&lt;/a&gt;. I hope this change will make into the 1.10 stable release.&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
GNU Lib C&lt;/h4&gt;
Today, we live in a dual-stack IPv4 and IPv6 world, where even the localhost has multiple IP addresses. As a slightly ageist time reference, the first VCS I ever used was git. Thus when I read below, I get very confused:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ cat /etc/host.conf&lt;br /&gt;
# The &quot;order&quot; line is only used by old versions of the C library.&lt;br /&gt;
order hosts,bind&lt;br /&gt;
multi on&lt;/blockquote&gt;
Why not simply do this:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
--- a/resolv/res_hconf.c&lt;br /&gt;
+++ b/resolv/res_hconf.c&lt;br /&gt;
@@ -309,6 +309,8 @@ do_init (void)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if (hconf_name == NULL)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;hconf_name = _PATH_HOSTCONF;&lt;br /&gt;
&lt;br /&gt;
+ &amp;nbsp;arg_bool (ENV_MULTI, 1, &quot;on&quot;, HCONF_FLAG_MULTI);&lt;br /&gt;
+&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fp = fopen (hconf_name, &quot;rce&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if (fp)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
There are still many other packages that needed fixes similar to above. Stay tuned for further stateless observations about Glibc, OpenSSH, systemd and other well known packages.&lt;br /&gt;
&lt;br /&gt;
In the mean time, you can try out&amp;nbsp;&lt;a href=&quot;https://clearlinux.org/&quot;&gt;https://clearlinux.org/&lt;/a&gt; images that implement above and more already. If you want to chat about it more, comment on G+, find myself on irc - xnox&amp;nbsp;@ &lt;a href=&quot;irc://irc.freenode.net/clearlinux&quot;&gt;irc.freenode.net&lt;/a&gt;&amp;nbsp;#clearlinux and join our &lt;a href=&quot;https://lists.clearlinux.org/mailman/listinfo/dev&quot;&gt;mailing list&lt;/a&gt; to kick the conversation off, if you are interested in making the world more stateless.&lt;br /&gt;
&lt;br /&gt;
ps.&lt;br /&gt;
I am a professional Linux Distribution developer, currently employed by Intel, however the postings on this site are my own and don&#39;t necessarily represent Intel&#39;s or any other past/present/future employer positions, strategies, or opinions.&lt;br /&gt;
&lt;br /&gt;
* Other names and brands may be claimed as the property of others&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/4693329871045035477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/03/boiling-frog-or-when-did-we-loose-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/4693329871045035477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/4693329871045035477'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/03/boiling-frog-or-when-did-we-loose-it.html' title='Boiling frog, or when did we loose it with /etc ?'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>London, UK</georss:featurename><georss:point>51.5073509 -0.12775829999998223</georss:point><georss:box>51.1912379 -0.77320529999998222 51.8234639 0.51768870000001777</georss:box></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-1916348221333994093</id><published>2015-03-15T23:30:00.000+00:00</published><updated>2015-03-15T23:30:05.524+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>My IDE needs a makeover</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Current Setup&lt;/h2&gt;
I am a Linux Distribution Engineer and work on arbitrary open source projects. Mostly I&#39;m patching/packaging existing things, and sometimes start fresh projects.&lt;br /&gt;
&lt;br /&gt;
My &quot;IDE&quot;, or rather I shall say &quot;toolbox&quot; is rather sparse:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;GNOME Terminal&lt;/li&gt;
&lt;li&gt;Google Chrome&lt;/li&gt;
&lt;li&gt;GNU Emacs&lt;/li&gt;
&lt;li&gt;GCC toolcahin with GDB&lt;/li&gt;
&lt;li&gt;Python3 - iPython, iPdb, pyflakes&lt;/li&gt;
&lt;li&gt;git, GNU bazaar&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
There are a few things that annoy me, and should be done better these days.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Documentation&lt;/h2&gt;
&lt;div&gt;
I lookup documentation mostly with Google Chrome. This includes the texinfo renderings of the docs. There are a few reasons for that. First of all my developer machine is not polluted with all the dev packages under the sun, instead I compile practically everything in a chroot. And most of the time chroots have much newer versions of everything (from gcc &amp;amp; automake, to boost and whatever other dependencies are in use). However I would like to have easy generic lookup builtin for common things that I lookup in the references and which have not changed for a long time:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;gcc builtins &amp;amp; defines&lt;/li&gt;
&lt;li&gt;glibc functions&lt;/li&gt;
&lt;li&gt;automake/autoconf functions definitions&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Given that my preferred editor is Emacs, it should be natural to use `info&#39; mode to look things up. However, the rendering there is archaic and is really hard to read. At least when visiting the HTML renderings, the function names are in &lt;b&gt;bold&lt;/b&gt;&amp;nbsp;and stand out from the rest of the description.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ideally I would have unified place to lookup docs, instead of using Google Chrome and navigating: gnu.org, gnome.org, readthedocs.org, freedesktop.org.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Project Management&lt;/h2&gt;
&lt;div&gt;
I really hate &quot;traditional&quot; IDEs that create and pollute the working directories with random extra files. My project management tool is VCS, thus .git should be automatically recognized as a &quot;project&quot;. I should be able to navigate repository files, have them scanned for tab-completion and jumping to symbols and the like. At the moment, I exit the editor and use git grep to find things and open those files in the editor again. I don&#39;t use any tagging systems at the moment, ideally git repository would be scanned and Exuberant Tags (this seems to be the latest hotness in tagging space) stored inside the .git directory automatically.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&quot;SDK&quot; aware aka chroot support&lt;/h2&gt;
&lt;div&gt;
The IDE should be aware of chroots, how to compile things in a chroot and ideally how to compile packages with sbuild, mock or obs build (these are apt, yum and zypper preferred solutions for package compilation). Most importantly to use those chroots to tag includes headers for tab completion.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Shell&lt;/h2&gt;
&lt;div&gt;
Gnome Terminal is good enough for my needs. I do have a problem of too many terminal windows... I have tried Terminator (a tiling single-window / multiple-tabs terminal). However during development the things I use shell for, should be part of the IDE directly: changing projects, opening/closing/navigating/creating files, invoking build, invoking debug, &quot;refactoring&quot; (sed). I think I do want to try out a pull-down terminal for temporal look-ups together with a tiling &quot;main&quot; terminal. Or ideally ditch it all together. Emacs does provide multiple terminals, but when I did that I ended up with &quot;inception&quot; -&amp;gt; launching an instance of emacs, inside the terminal, inside emacs...&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Conclusion&lt;/h2&gt;
&lt;div&gt;
If anybody has tips or suggestions do share. I will investigate and experiment with all of the above, and see if I can experiment and find new cool things that work better than my current setup.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/1916348221333994093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/03/my-ide-needs-makeover.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1916348221333994093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1916348221333994093'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/03/my-ide-needs-makeover.html' title='My IDE needs a makeover'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-530342476466125089</id><published>2015-03-14T15:19:00.001+00:00</published><updated>2015-03-14T15:19:36.446+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="intel"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Intel CPU microcode support in ubuntu-drivers-common</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Ubuntu Vivid Vervet 15.04 is on its final approach to release at the end of next month. Here is a highlight of one of the features that I have helped to land.&lt;br /&gt;
&lt;br /&gt;
ubuntu-drivers-common is a framework to detect hardware-dependent components on user&#39;s machine and offer to install additional packages to enable better support for such hardware. Typical examples are drivers for the graphics cards. This cycle I have added CPU family detection plugin, which helps to detect cpu family and install appropriate microcode update. E.g. if one is running Intel CPU, intel-microcode package is installed.&lt;br /&gt;
&lt;br /&gt;
Check out:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ ubuntu-drivers devices&lt;br /&gt;
$ ubuntu-drivers list&lt;br /&gt;
$ ubuntu-drivers autoinstall&lt;/blockquote&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/530342476466125089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/03/intel-cpu-microcode-support-in-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/530342476466125089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/530342476466125089'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/03/intel-cpu-microcode-support-in-ubuntu.html' title='Intel CPU microcode support in ubuntu-drivers-common'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-1423440652404981225</id><published>2015-01-21T00:06:00.000+00:00</published><updated>2015-01-21T00:06:12.155+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bzr"/><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="launchpad"/><category scheme="http://www.blogger.com/atom/ns#" term="python3"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Python 3 ports of launchpadlib &amp; ubuntu-dev-tools (library) are available</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I&#39;m happy to announce that Python 3 ports of launchpadlib &amp;amp; ubuntu-dev-tools (library) are available for consumption.&lt;br /&gt;
&lt;br /&gt;
These are 1.10.3 &amp;amp; 0.155 respectfully.&lt;br /&gt;
&lt;br /&gt;
This means that everyone should start porting their reports, tools, and scriptage to python3.&lt;br /&gt;
&lt;br /&gt;
ubuntu-dev-tools has the library portion ported to python3, as I did not dare to switch individual scripts to python3 without thorough interactive testing. Please help out porting those and/or file bug reports against the python3 port. Feel free to subscribe me to the bug reports on launchpad.&lt;br /&gt;
&lt;br /&gt;
For the time being, I believe some things will not be easy to port to python3 because of the elephant in the room - bzrlib. For some things like lp-shell, it should be easy to move away from bzrlib, as non-vcs things are used there. For other things the current suggestion is to probably fork to bzr binary or a python2 process. I ponder if a minimal usable python3-bzrlib wrapper around python2 bzrlib is possible to satisfy the needs of basic and common scripts.&lt;br /&gt;
&lt;br /&gt;
On a side note, launchpadlib &amp;amp; lazr.restfulclient have out of the box proxy support enabled. This makes things like add-apt-repository work behind networks with such setup. I think a few people will be happy about that.&lt;br /&gt;
&lt;br /&gt;
All of these goodies are available in Ubuntu 15.04 (Vivid Vervet) or Debian Experimental (and/or NEW queue).&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/1423440652404981225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2015/01/python-3-ports-of-launchpadlib-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1423440652404981225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/1423440652404981225'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2015/01/python-3-ports-of-launchpadlib-ubuntu.html' title='Python 3 ports of launchpadlib &amp; ubuntu-dev-tools (library) are available'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-891316966744494680</id><published>2014-11-23T21:15:00.001+00:00</published><updated>2014-11-23T21:15:51.202+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="go"/><category scheme="http://www.blogger.com/atom/ns#" term="golang"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>Analyzing public OpenPGP keys</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
OpenPGP Message Format (&lt;a href=&quot;https://tools.ietf.org/html/rfc4880&quot; target=&quot;_blank&quot;&gt;RFC 4880&lt;/a&gt;) well defines key structure and wire formats (openpgp packets). Thus when I looked for public key network (SKS) server setup, I quickly found pointers to dump files in said format for bootstrapping a key server.&lt;br /&gt;
&lt;br /&gt;
I did not feel like experimenting with Python and instead opted for Go and found &lt;a href=&quot;http://code.google.com/p/go.crypto/openpgp/packet&quot;&gt;http://code.google.com/p/go.crypto/openpgp/packet&lt;/a&gt;&amp;nbsp;library that has comprehensive support for parsing openpgp low level structures. I&#39;ve downloaded the SKS dump, verified it&#39;s MD5SUM hashes (lolz), and went ahead to process them in Go.&lt;br /&gt;
&lt;br /&gt;
With help from &lt;a href=&quot;http://github.com/lib/pq&quot;&gt;http://github.com/lib/pq&lt;/a&gt;&amp;nbsp;and database/sql, I&#39;ve written a small program to churn through all the dump files, filter for primary RSA keys (not subkeys) and inject them into a database table. The things that I have chosen to inject are fingerprint, N, E. N &amp;amp; E are the modulus of the RSA key pair and the public exponent. Together they form a public part of an RSA keypair. So far, nothing fancy.&lt;br /&gt;
&lt;br /&gt;
Next I&#39;ve run an SQL query to see how unique things are... and found 92 unique N &amp;amp; E pairs that have from two and up to fifteen duplicates. In total it is 231 unique fingerprints, which use key material with a known duplicate in the public key network. That didn&#39;t sound good. And also odd - given that over 940 000 other RSA keys managed to get unique enough entropy to pull out a unique key out of the keyspace haystack (which is humongously huge by the way).&lt;br /&gt;
&lt;br /&gt;
Having the list of the keys, I&#39;ve fetched them and they do not look like regular keys - their UIDs do not have names &amp;amp; emails, instead they look like something from the &lt;a href=&quot;http://web.monkeysphere.info/&quot; target=&quot;_blank&quot;&gt;monkeysphere&lt;/a&gt;. The keys look like they are originally used for TLS and/or SSH authentication, but were converted into OpenPGP format and uploaded into the public key server. This reminded me of the Debian&#39;s SSL key generation vulnerability &lt;a href=&quot;https://wiki.debian.org/SSLkeys&quot; target=&quot;_blank&quot;&gt;CVE-2008-0166&lt;/a&gt;. So these keys might have been generated with bad entropy due to affected tools by that CVE and later converted to OpenPGP.&lt;br /&gt;
&lt;br /&gt;
Looking at the &lt;a href=&quot;https://tracker.debian.org/pkg/openssl-blacklist&quot;&gt;openssl-blacklist&lt;/a&gt; package, it should be relatively easy for me to generate all possible RSA key-pairs and I believe all other material that is hashed to generate the fingerprint are also available (&lt;a href=&quot;https://tools.ietf.org/html/rfc4880#section-12.2&quot;&gt;RFC 4880#12.2&lt;/a&gt;). Thus it should be reasonably possible to generate matching private keys, generate revocation certificates and publish the revocation certificate with pointers to CVE-2008-0166. (Or email it to the people who have signed given monkeysphered keys). When I have a minute I will work on generating openpgp-blacklist type of scripts to address this.&lt;br /&gt;
&lt;br /&gt;
If anyone is interested in the Go source code I&#39;ve written to process openpgp packets, please drop me a line and I&#39;ll publish it on github or something.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/891316966744494680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2014/11/analyzing-public-openpgp-keys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/891316966744494680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/891316966744494680'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2014/11/analyzing-public-openpgp-keys.html' title='Analyzing public OpenPGP keys'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-347582618045055410.post-6525478635878090593</id><published>2014-08-03T05:21:00.000+01:00</published><updated>2014-08-03T05:30:09.576+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian-planet"/><category scheme="http://www.blogger.com/atom/ns#" term="EFF"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu-planet"/><title type='text'>What is net neutrality?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;center&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #F1F1F1; border-color: black; border-radius: 30px; border: 2px solid; padding: 10px; text-align: left; width: 400px;&quot; trbidi=&quot;on&quot;&gt;
&lt;h1 style=&quot;font-family: Arial, sans-serif; font-size: 20px; line-height: 1.2em; font-weight: bold;&quot;&gt;
Sorry, the web page you have requested is not available through your internet connection.&lt;/h1&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; margin-bottom: 18.08px; text-align: left;&quot;&gt;
We have received an order from the Courts requiring us to prevent access to this site in order to help protect against Lex Julia Majestatis infridgement.&lt;/div&gt;
&lt;hr style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; text-align: left;&quot; /&gt;
&lt;div style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; margin-top: 18.08px; text-align: left;margin-top: 18px;&quot;&gt;
If you are a home broadband customer, for more information on why certain web pages are blocked, please click&amp;nbsp;&lt;a href=&quot;https://www.eff.org/deeplinks/content-blocking&quot; style=&quot;color: #cc0000; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Home broadband&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, sans-serif; font-size: 16px; font-weight: normal; line-height: 18.079999923706055px; text-align: left; margin-top: 18px;&quot;&gt;
If you are a business customer, or are trying to view this page through your company&#39;s internet connection, please click&amp;nbsp;&lt;a href=&quot;https://www.eff.org/deeplinks/content-blocking&quot; style=&quot;color: #cc0000; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Business&quot;&gt;here&lt;/a&gt;.
&lt;div style=&quot;font-family: Arial, sans-serif; font-size: 80px; font-weight: normal; line-height: 18.079999923706055px; margin-bottom: 18.08px; text-align: left; color: red;margin-top: 18px;&quot;&gt;
∞
&lt;/div&gt;
&lt;/div&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;/center&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.surgut.co.uk/feeds/6525478635878090593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.surgut.co.uk/2014/08/what-is-net-neutrality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6525478635878090593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/347582618045055410/posts/default/6525478635878090593'/><link rel='alternate' type='text/html' href='http://blog.surgut.co.uk/2014/08/what-is-net-neutrality.html' title='What is net neutrality?'/><author><name>Dimitri John Ledkov</name><uri>http://www.blogger.com/profile/03781709847888802395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>