Skip to content

PostgreSQL 11 - die Neuerungen, sowie Installation und Upgrade unter Ubuntu 18.04 LTS

Letzte Woche war es soweit, nach einen Jahr wurde PostgreSQL 11 veröffentlicht.

Die neue Version 11 hat im Vergleich zur letzten viele Änderungen erhalten. Neben Performance wurde auch an der Usability gearbeitet.

PostgreSQL 11 Neuerungen

Die vielleicht beste Neuerung für den Wald und Wiesen Datenbanknutzer betrifft die Postgres Konsole psql. Diese kann nun mit quit und exit verlassen werden, in Ergänzung zu \q oder Strg+D

postgres

Weitere Änderungen sind:

Die Parallelisierung wurde auf Hash Joins, Append, Index Erstellung, UNION-Abfragen und weitere Elemente erweitert.

JIT (Just in Time ) Kompilierung wurde integriert, was nach eigenen Aussagen 30% Geschwindigkeitszuwachs bringt . JIT muss manuell aktiviert werden.

Die Partitionierung wurde verbessert (z.B. hash partitioning) und PRIMARY KEY und FOREIGN KEY Anweisungen sind nun auch auf Partitionen möglich.

Neue Rollen wurden eingeführt (pg_read_server_files, pg_write_server_files, pg_execute_server_program).

Und ALTER TABLE beherrscht nun ADD COLUMN mit NOT NULL als Standardwert. 

 

Dies ist nur ein minimaler Auszug der neuen Features des aktuellen Releases. Daher verweise ich auf die Release Notes.

Nun zur Installation

Installation PostgreSQL 11 unter Ubuntu 18.04 LTS

sudo wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main 11" >> /etc/apt/sources.list.d/postgresql-11.list'
sudo apt update
sudo apt install postgresql-11

The following additional packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-client-11 postgresql-client-common postgresql-common sysstat
Suggested packages:
  lm-sensors locales-all postgresql-doc-11 libjson-perl isag
The following NEW packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-11 postgresql-client-11 postgresql-client-common postgresql-common sysstat
0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded.
Need to get 30.7 MB of archives.
After this operation, 115 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Upgrade auf PostgreSQL 11 von PostgreSQL 10

Bei einem Upgrade muss die neue Version (wie oben beschrieben) installiert werden. Danach kann überprüft werden, ob beide aktiv sind. Vorher aber das Backup nicht vergessen.

pg_dumpall > Sicherung
pg_lsclusters

Danach wird das neue Cluster vorerst angehalten damit das alte auf das neue migriert werden kann.

sudo pg_dropcluster 11 main --stop
sudo pg_upgradecluster 10 main

  Stopping old cluster...
  Disabling connections to the old cluster during upgrade...
  Restarting old cluster with restricted connections...
  Creating new PostgreSQL cluster 11/main ...
  /usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5 
  --encoding UTF8 --lc-collate en_US.UTF-8 --lc-ctype en_US.UTF-8
  The files belonging to this database system will be owned by user "postgres".
  This user must also own the server process.

  The database cluster will be initialized with locale "en_US.UTF-8".
  The default text search configuration will be set to "english".

  Data page checksums are disabled.

  fixing permissions on existing directory /var/lib/postgresql/11/main ... ok
  creating subdirectories ... ok
  selecting default max_connections ... 100
  selecting default shared_buffers ... 128MB
  selecting dynamic shared memory implementation ... posix
  creating configuration files ... ok
  running bootstrap script ... ok
  performing post-bootstrap initialization ... ok
  syncing data to disk ... ok

pg_lscluster

Im nächsten Schritt kann die korrekte Funktion des Systems und der Datenbanken überprüft werden.

Ist alles in Ordnung kann das alte Cluster entfernt werden.

sudo pg_dropcluster 10 main

 

netplan unter Ubuntu Server 18.04 LTS konfigurieren oder entfernen

Seit einiger Zeit stellt Canonical für seine Distributionen die Netzwerkkonfiguration via netplan bereit.

Mit der Einführung der Serverversion 18.04 LTS ist diese fester Bestandteil der Long Term Support Edition.

Doch wo ist der Unterschied zur alten Konfiguration und welche Befehle werden benötigt?

netplan.iologo

netplan.io

Anders als die alten Netzwerkkonfigurationsdateien, beruht netplan auf der YAML Syntax. Außerdem werden als Renderer Networkmanager (Desktop), sowie system-networkd (Server) unterstützt.

Die Funktion ist relativ schnell erklärt: Beim Bootvorgang wird aus allen yaml Dateien  /etc/netplan/*.yaml eine Konfiguration generiert und unter /run abgelegt.

Die Konfiguration lässt sich aber auch im laufenden Betrieb anpassen.

Eine klassische Konfigurationsdatei /etc/netplan/01-netcfg.yaml mit fester IP-Adresse würde wie folgt aussehen:

system
network:
        version: 2
        renderer: networkd
        ethernets:
                eth0:
                        dhcp4: no
                        dhcp6: no
                        addresses: [192.169.1.100/24]
                        gateway4: 192.169.1.1
                        nameservers:
                                search: [itrig.lokal]
                                addresses: [1.1.1.1,8.8.8.8]

Als Renderer ist in diesem Fall networkd hinterlegt, es kann aber genauso renderer: NetworkManager angegeben werden, beispielsweise bei einem Desktop Betriebssystem.

Die Notation des Subnetzes erfolgt hier im CIDR Format. Als kleine Hilfestellung hier eine Tabelle wink

Prefix   | Subnet mask IPv4 | Subnet mask IPv6
/24      | 255.255.255.0    | 11111111.11111111.11111111.00000000
/25      | 255.255.255.128  | 11111111.11111111.11111111.10000000
/26      | 255.255.255.192  | 11111111.11111111.11111111.11000000
/27      | 255.255.255.224  | 11111111.11111111.11111111.11100000
/28      | 255.255.255.240  | 11111111.11111111.11111111.11110000
/29      | 255.255.255.248  | 11111111.11111111.11111111.11111000
/30      | 255.255.255.252  | 11111111.11111111.11111111.11111100
/31      | 255.255.255.254  | 11111111.11111111.11111111.11111110
/32      | 255.255.255.255  | 11111111.11111111.11111111.11111111

Um die neue Konfiguration zu generieren und anzuwenden werden folgende Befehle verwendet.

sudo netplan generate
sudo netplan apply

Eine Kontrolle kann mit neuen

sudo netplan try

sudo netplan --debug apply

sudo netplan config show

oder alternativ auch mit alten Befehlen erfolgen.

ip a

Hier gilt zu beachten, dass netplan apply keine virtuellen Geräte wie Netzwerkbrücken oder Netzwerkbündel entfernt, auch wenn sie nicht mehr in der Netplan Konfiguration stehen.

Hier muss momentan noch mit ip link delete dev bond0 operiert werden.

netplan.io

 

/etc/network/interfaces

Zum Vergleich eine alte Konfiguration, welche unter  /etc/network/interface zu finden ist.

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    #dns-nameservers 1.1.1.1 8.8.8.8
    dns-search itrig.lokal


netplan.io entfernen oder deaktivieren

Es besteht die Möglichkeit die oben beschriebene frühere Variante weiter zu verwenden. So bleibt eine alte Konfiguration beispielsweise bei einem Update von 16.04 auf 18.04 erhalten.

Bei einer Neuinstallation von 18.04 LTS kann ein Administrator ebenso auf die alte Variante schwenken, dazu muss das benötigte Paket installiert werden.

sudo apt-get install ifupdown

sudo apt -y purge netplan.io

Nun kann die Netzwerkkonfiguration unter /etc/network/interface abgelegt werden, sowie ein Neustart des Dienstes erfolgen.

sudo systemctl restart networking

Zu Bedenken sind noch die DNS Settings, welche unter /etc/systemd/resolved.conf abgelegt werden sollten.

#
# See resolved.conf(5) for details

[Resolve]
DNS=1.1.1.1 8.8.8.8
#FallbackDNS=8.8.8.8 8.8.4.4
#Domains=
#LLMNR=yes

Nun sollten die Netzwerkeinstellungen wieder der von Ubuntu 16.04 LTS oder 14.04 LTS entsprechen.

Kali Linux, Parrot Sec und BackBox mit neuen Updates

Um auf einen aktuellen Stand zu kommen, hier kurz zusammengefasst die neuesten Updates bekannter Sicherheitsdistributionen.

Kali Linux 2018.3

Kali_Linux

Der Platzhirsch Kali Linux hat mit Release 2018.3 den Kernel 4.17.0 und ein paar neue Tools erhalten:

  • idb – iOS Penetrations Test Tool
  • gdb-peda – Python Exploit Development Assistance for GDB
  • datasploit – OSINT Framework to perform various recon techniques
  • kerberoast – Kerberos assessment tools

Bekannte Tools wie OpenVAS, wpscan oder aircrack-ng haben aktuelle Updates erhalten.

Die komplette Liste wie immer unter bugs.kali.org.

Download


Parrot Security 4.2.2

parrot

Auch Parrot zieht pünktlich mit einem Update nach, welches nicht nur nach außen (neuer Hintergrund und neues Theme) Verbesserungen bietet.

Der Papagei arbeitet mit Linux Kernel 4.18 und hat eine neue Debian Installationsroutine für Netz- oder Standardimages dabei. 

Diverse Firmwares, sowie AppArmor und Firejail wurde aktualisiert. Programme wie Firefox oder LibreOffice arbeiten nun auch wieder up2date.

In der Tool Ecke wurden Armitage, Metasploit, Wireshark, Hashcat und weitere aktualisiert.

Abseits von Softwareupdates wurde und wird das DokuWiki zu https://www.parrotsec.org/docs/ umgezogen.

Download


BackBox Linux 5.2

backbox

Bereits vor einiger Zeit hat das BackBox Team eine neue Version veröffentlicht.
Diese basiert auf dem damaligen neuen Kernel 4.15 und hat ebenfalls aktualisierte Hacker Tools mit an Bord.

Download


 

Übersicht 09/2018

 

Name Version Tools Besonderes Basis GUI
Autopsy 4.8.0 ??? The Sleuth Kit Windows  
BackBox 5.2 70+ eigenes Repo Ubuntu Xfce
BlackArch 2018.06.01 1750+ ArchLinux ArchLinux Gnome
CAINE 9 100+ WinUFO Ubuntu Mate
DracOS 3.0 100+ CLI LFS DWM
DEFT Zero 2018.2 250+ Mac Support Lubuntu 14.04 Lxde
Kali Linux 2018.3 300+ ARM fähig Debian Testing Multi
LionSec 5.0 ???   Ubuntu  
Matriux v3 RC1 300+ out of date Debian Gnome
NST 28 ??? Server integriert Fedora  
NetSecL OS 6.0 50+   OpenSuse Lxde
Paladin 7.0 30+   Ubuntu  
Parrot Sec 4.2.2 700+ Cloud fähig Debian Buster MATE
Pentoo 2018.0 RC7.1 ??? 64bit Gentoo Xfce
Ronin   150+ out of date Lubuntu Lxde
Sans SIFT 3.0 20+   Ubuntu  

 

Ubuntu Server 18.04 LTS - Was ist der Unterschied zwischen der „live" und der "alternative" Version?

Mit dem Ubuntu LTS Server 18.04 wurde eine neue Langzeitversion der bekannten Distribution veröffentlicht.

Das Release wurde mit einem neuen Installer mit dem Namen Subiquity versehen und es wurden viele weitere Änderungen und Neuerungen gemacht. Die kompletten Release Notes zum Ubuntu Server 18.04 LTS gibt es hier.

Zusätzlich steht Ubuntu Server nun in einer Live ubuntu-18.04-live-server-amd64.iso und einer alternativen Version ubuntu-18.04-server-amd64.iso zur Verfügung. Der Standarddownload auf der Canonical Seite verweist auf das "live" Image. 

Doch worin unterscheiden sich die Versionen und warum hat man überhaupt zwei Server im Programm?

Der wesentliche Unterschied dieser Servervarianten besteht in den mitgelieferten Paketen und der damit verbundenen Ausrichtung. Wobei die live Variante auf Cloud Installationen ausgerichtet ist und die alternative Variante auf Standard Installationen. 

ubuntu-18.04-live-server-amd64

Die Cloud Variante beinhaltet beispielsweise das Paket cloud-init und den openssh-server. Beide werden mitausgeliefert und sind nach der Installation aktiv.

Das Paket cloud-init ist auf Anbieter wie DigitalOcean, Azure und Co Installationen spezialisiert (siehe Screenshot) , es läuft im Hintergrund und bezieht diverse Systemkonfigurationen über die Cloud.

Diverse Einstellungen lassen sich unter sudo /etc/cloud/cloud.cfg einsehen.

Eine interaktive Konfiguration ist ebenfalls möglich.

sudo dpkg-reconfigure cloud-init

cloud-init

Über cloud-config würden sich theoretisch wichtige Konfigurationen setzen lassen.

Die Notation ist in YAML gehalten, hier ein Beispiel:

 

#cloud-config
users:
  - name: Dr.Cloud
    ssh-authorized-keys:
      - ssh-rsa AAAAxxxxxx
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: adm
    shell: /bin/bash
    write_files:
  - path: /etc/ssh/sshd_config
    content: |
         Port 22
         Protocol 2
         HostKey /etc/ssh/ssh_host_rsa_key
         HostKey /etc/ssh/ssh_host_ed25519_key
         PermitRootLogin no
         PubkeyAuthentication yes
         KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
         …


Zusätzlich werden bei der live Installation noch andere Partitionen angelegt und weitere Änderungen gemacht, welche ich hier nicht im Detail erwähnen möchte.

Wichtig sollte sein, dass Einstellungen wie Hostname oder feste IPs via Cloud Konfiguration gesetzt werden und sich klassisch via hostnamectl  nicht dauerhaft ändern lassen, ohne die Cloudabfrage zu deaktivieren oder anzupassen.

Download

ubuntu-18.04-server-amd64

Die alternative Variante verhält sich etwas anders, sowohl bei der Installation, als auch bei der Konfiguration.

Canonical schreibt dazu:

The next generation Subiquity server installer, brings the comfortable live session and speedy install of Ubuntu Desktop to server users at last.

N.B., If you require LVM, RAID, multipath, vlans, bonds, or the ability to re-using existing partitions, you will want to continue to use the alternate installer which can be downloaded from http://cdimage.ubuntu.com/releases/18.04/release/

Neben klassischem LVM ist im Vergleich zur live Version beim Standardinstaller eine Language Pack language-pack-en vorinstalliert.

Für Fernwartungen muss der SSH Server manuell installiert werden.

Eine Konfiguration des Hostnamens wird auf dem bekannten Weg via hostnamectl  vorgenommen. Wie oben bereits erwähnt, würde die live Version diesen Eintrag wieder überschreiben.

Allerdings hat sich durch netplan die IP Konfiguration ebenfalls geändert und ist nun unter /etc/netplan/01-netcfg.yaml zu finden und wie der Name erkennen lässt, im YAML Format gehalten.

logo-ubuntuDownload

Fazit

Für eine normale Serverinstallation ist die Standardvariante ausreichend, denn das cloud-init Paket und einen SSH Server sollte jeder im Bedarfsfall selbst nachinstallieren können. 

Durch gängige Automatisierung bietet sich ein Cloud Initialisierung natürlich ebenfalls an, sollte die Infrastruktur dafür schon vorhanden sein.

Es ist mir allerdings ein Rätsel, warum Canonical dies auf der Downloadseite nicht klar unterscheidet und nur kurz im Text erwähnt, anstatt gleich zwei Downloadvarianten anzubieten. So werden sich die meisten erst einmal die gepushte Cloudvariante laden, um sich danach noch einmal zu belesen bzw. das cloud-init Paket wieder entfernen oder eine andere Variante laden.
Sicher gut als Lerneffekt, aber wenig zielführend.

Übersicht: bekannte Sicherheitsdistributionen - Parrot 4.0 und Kali Linux 2018.2

Parrot 4.0

Bereits vor einiger Zeit hat Parrot Security mit der Version 4.0 einen neuen Meilenstein erreicht.

Die italienische Sicherheitsdistribution bringt mit einer experimentellen Netzinstallation und einer Docker Unterstützung zwei neue Installationsmethoden mit. Beide Methoden werden die Verwendung um einiges vereinfachen und die eigene Bedürfnisse besser bedienen. Dockerfiles lassen sich leicht anpassen und eine Core Installation bietet zusätzliche Installationsoptionen an.

Parrot-Security-4.0
Desweitern wurde ein aktueller Kernel 4.16 eingebunden und die Oberfläche auf MATE 1.20 aktualisiert. 

Im Hintergrund werkelt nun eine firejail Sandbox, sowie NGINX anstatt Apache. 

Insgesamt wurden über 1500 Pakete aktualisiert.

Das System ist schnell aktualisiert.

sudo apt update
sudo apt purge tomoyo-tools
sudo apt full-upgrade
sudo apt autoremove

Download Parrot


Kali Linux 2018.2

Die bekannteste Distribution für Sicherheitsexperten und Penetration Tester hat ebenfalls nachgelegt und mit der neuen Version den Kernel 4.15 implementiert, um den Spectre und Meltdown Lücken den Garaus zu machen. Hier werden in Zukunft, wohl noch einige Fixes folgen müssen.

Die Unterstützung für AMD GPUS wurde verbessert, sowie AMD Secure Encrypted Virtualization integriert, was euch erlaubt den Hauptspeicher zu verschlüsseln.

Kali_Linux

Anwender des Metasploit Frameworks erhalten mit dem neuen Release einfacheren Zugang zu Scripten. Diese sind normalerweise unter "/usr/share/metasploit-framework/tools/exploit/" zu finden, sind nun aber Dank PATH direkt mit "msf-scriptname" aufrufbar.

Andere Tools wie BurpSuite, hashcat oder JoomScan wurden ebenfalls aktualisiert. Der komplette Changelog verrät alle Details.

Download Kali



Übersicht 05/2018

 

Name Version Tools Besonderes Basis GUI
Autopsy 4.0 ??? The Sleuth Kit Windows  
BackBox 5 70+ eigenes Repo Ubuntu Xfce
BlackArch 2017.11.24 1750+ ArchLinux ArchLinux Gnome
CAINE 9 100+ WinUFO Ubuntu Mate
DracOS 3.0 100+ CLI LFS DWM
DEFT 2017.1 250+ Dart2 Lubuntu 14.04 Lxde
Kali Linux 2018.2 300+ ARM fähig Debian Testing Multi
LionSec 5.0 ???   Ubuntu  
Matriux v3 RC1 300+ out of date Debian Gnome
NST 26 ??? Server integriert Fedora  
NetSecLOS 6.0 50+   OpenSuse Lxde
Paladin 6.0 30+   Ubuntu  
Parrot Sec 4.0 700+ Cloud fähig Debian Buster MATE
Pentoo 2015.0 RC5 ??? 64bit Gentoo Xfce
Ronin   150+ out of date Lubuntu Lxde
Sans SIFT 3.0 20+   Ubuntu