I'm writing a third edition of Security Engineering, which will be published in November 2020.
With both the first edition in 2001 and the second edition in 2008, I put six chapters online for free at once, then added the others four years after publication. For the third edition, I negotiated an agreement with the publishers to put the chapters online for review as I wrote them. So the book came out by instalments, like Dickens' novels, from April 2019 to Septamber 2020. On the first of November 2020, all except seven sample chapters will disappear for a period of 42 months. I'm afraid the publishers insist on that. But therearefter the whole book will be free online forever.
You may pre-order the paper book here for delivery at the end of November in the USA and here for delivery in January 2021 in the UK.

Dnspython is a DNS toolkit for Python. It can be used for queries, zone transfers, dynamic updates, nameserver testing, and many other things.
Dnspython provides both high and low level access to the DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. Almost all RR types are supported.
dnspython originated at Nominum where it was developed for testing DNS nameservers.
ldapvi is an interactive LDAP client for Unix terminals. Using it, you can update LDAP entries with a text editor.
acme.sh --issue -d example.com --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
acme.sh --renew -d example.com \
--yes-I-know-dns-manual-mode-enough-go-ahead-please- An ACME protocol client written purely in Shell (Unix shell) language.
- Full ACME protocol implementation.
- Support ACME v1 and ACME v2
- Support ACME v2 wildcard certs
- Simple, powerful and very easy to use. You only need 3 minutes to learn it.
- Bash, dash and sh compatible.
- Purely written in Shell with no dependencies on python or the official Let's Encrypt client.
- Just one script to issue, renew and install your certificates automatically.
- DOES NOT require root/sudoer access.
- Docker friendly
- IPv6 support
- Cron job notifications for renewal or error etc.
It's probably the easiest & smartest shell script to automatically issue & renew the free certificates from Let's Encrypt.
ArchiveBox takes a list of website URLs you want to archive, and creates a local, static, browsable HTML clone of the content from those websites (it saves HTML, JS, media files, PDFs, images and more).
You can use it to preserve access to websites you care about by storing them locally offline. ArchiveBox imports lists of URLs, renders the pages in a headless, authenticated, user-scriptable browser, and then archives the content in multiple redundant common formats (HTML, PDF, PNG, WARC) that will last long after the originals disappear off the internet. It automatically extracts assets and media from pages and saves them in easily-accessible folders, with out-of-the-box support for extracting git repositories, audio, video, subtitles, images, PDFs, and more.
Kubernetes has become the de-facto industry standard for container orchestration. It provides the required abstraction for efficiently managing large-scale containerized applications with declarative configurations, an easy deployment mechanism, and both scaling and self-healing capabilities.
As with any system, logs help engineers gain observability into containers and the Kubernetes clusters they’re running on and the key role they play is evident in a lot of incidents featuring Kubernetes failures. Yet Kubernetes poses a set of unique logging challenges.
A flexible and powerful static content management system for building complex and beautiful websites out of flat files — for people who do not want to make a compromise between a CMS and a static blog engine.
Getting your ideas implemented is as easy as frying an egg.
Our webinars are public events that provide an exclusive opportunity to learn about OpenNebula’s key features and most successful integrations with other open source projects and third-party technologies. In these joint events, you’ll get direct access to our experts and to guest speakers from OpenNebula’s technological partners.
Our webinars include presentations from major vendors and technological partners:
*Analysing current tendencies in the cloud and edge computing market.
*Introducing next-generation technologies.
* Exploring OpenNebula’s integrations with other projects and open source tools.
Subscribe to our newsletter and never miss a chance to learn about OpenNebula:
Mehr als zwei Jahre hat Google nach dem Geheimnis für ein produktives Team geforscht, Mitarbeiter befragt und mehr als 100 aktive Gruppen im eigenen Unternehmen untersucht. Eine Erkenntnis sticht dabei besonders hervor. Wir zeigen, wann Teamarbeit erfolgreich ist und wie man Konflikte aus dem Weg räumt.
Man nehme einen Oxford-Absolventen, zwei Extrovertierte, einen Programmierer und einen Doktor – und fertig ist das perfekte Team. Dass es so einfach leider nicht ist, musste Google in seinem langjährigen Projekt „Aristotle“ erfahren. „Wir haben uns gewaltig getäuscht“, schreibt Analystin Julia Rozovsky auf der Google-Website re:Work. Das Unternehmen kommt zu der Erkenntnis, dass es weniger bedeutend ist, wer in einem Team ist, als vielmehr, wie die Mitglieder darin zusammenspielen. Das Ergebnis: Der Schlüssel für gute und erfolgreiche Teamarbeit ist der respektvolle und offene Umgang untereinander.
Ein Informatikprofessor aus Biel widerlegt im Auslieferungsverfahren gegen den Wikileaks-Gründer den zentralen Punkt der Anklage. Begegnung in einem Berner Schnellimbiss.
Setting up and bootstrapping the zone catalog feature. The requierments are:
- a running knot dns server verion >= 3.0
- configured remote, acl and key sections for a primary/secondary zone transfer setup
Assumptions:
- nsp.domain.tld is the primary nameserver.
- ns1.domain.tld is the secondary nameserver
- There exist valid remote, acl and key configurations for this hosts on the other side
- special catalog zone is name "zone.catalog"
-
Create a zone template for the zones, which will be created on this zone catalog feature
- For the primary nameserver:
- id: "catalog-zone-template"
...
notify: ns1
acl: ns1
...- For the secondary nameserver:
- id: "catalog-zone-template"
...
notify: nsp
acl: nsp
... -
Create the special catalog zone for this feature
- For the primary nameserver:
zone:
- domain: "zone.catalog."
...
notify: ns1
acl: ns1
catalog-role: "interpret"
catalog-template: "catalog-zone-template"- For the secondary nameserver:
zone:
- domain: "zone.catalog."
...
notify: nsp
acl: nsp
catalog-role: "interpret"
catalog-template: "catalog-zone-template" -
Create the content for the special catalog zone. We need to have at least a SOA, NS and TXT resource record:
cat<<EOT | su -c "/usr/bin/knotc" knot
zone-begin zone.catalog
zone-set zone.catalog @ 60 NS nsp.REDACTED.DOM.
zone-set zone.catalog @ 60 SOA nsp.REDACTED.DOM. hostmaster.REDACTED.DOM. 1 16384 2048 1048576 2560
zone-set zone.catalog version 0 TXT "2"
zone-commit zone.catalog
EOT -
Create on the primary nameserver member zone in the special catalog zone.
- Create an unique id for the first member zone:
ZUID="id-$RANDOM-$RANDOM" # generate a random id string
# ZUID="id-$(pwgen -AB 8 1)" # or other method of generating a random id string- And create this zone with the knotc command as user knot:
NEWDOMAIN="my-first-domain.invalid"
cat<<EOT | su -c "/usr/bin/knotc" knot
zone-begin zone.catalog
zone-set zone.catalog id-${ZUID}.zones 0 IN PTR ${NEWDOMAIN%.}.
zone-commit zone.catalog
EOT- The easy thing to oversee is ".zones" part in the in the PTR resource record.
-
Last step: Setup the new domain content.
NEWDOMAIN="my-first-domain.invalid"
cat<<EOZ | su -c /usr/bin/knotc knot
zone-begin ${NEWDOMAIN%.}
zone-set ${NEWDOMAIN%.} @ 60 SOA nshp.REDACTED.DOM. hostmaster.REDACTED.DOM. 1 16384 2048 1048576 2560
zone-set ${NEWDOMAIN%.} @ 60 NS nshp.REDACTED.DOM.
zone-commit ${NEWDOMAIN%.}
EOZ -
Check this new domain content on your secondary nameserver:
NEWDOMAIN="my-first-domain.invalid"
su -c "/usr/bin/knotc zone-read ${NEWDOMAIN%.}." knot
Below are some simple Sieve code examples, more can be found at http://sieve.info/examplescripts
The Pigeonhole project provides Sieve support as a plugin for Dovecot's Local Delivery Agent (LDA) and also for its LMTP service. The plugin implements a Sieve interpreter, which filters incoming messages using a script specified in the Sieve language (RFC 5228). The Sieve script is provided by the user and, using that Sieve script, the user can customize how incoming messages are handled. Messages can be delivered to specific folders, forwarded, rejected, discarded, etc.