Linux – roth-digital.de https://www.roth-digital.de Informatiker Dr. Michael Roth aus Augsburg - Memorial Page Thu, 25 Jul 2019 20:44:02 +0000 de-DE hourly 1 https://wordpress.org/?v=5.2.2 VLANs mit systemd-networkd konfigurieren https://www.roth-digital.de/2018/08/02/vlans-mit-systemd-networkd-konfigurieren/ Thu, 02 Aug 2018 20:20:17 +0000 https://www.roth-digital.de/?p=563 Keine ähnlichen Artikel gefunden. ]]> Mit den neuen vSwitches erlaubt Hetzner Server standortübergreifend mit einem getaggten VLAN zu verbinden. Die Wiki-Seite erklärt die Konfiguration mit ifupdown. Allerdings benutzt das Herzner-Image Ubuntu 18.04 systemd-networkd zum Verwalten der Netzwerkkonfiguration. Aus diesem Grund möchte ich hier meine Konfiguration teilen.

Die Konfigurationsdateien befinden sich im Ordner /etc/systemd/network. Dort befindet sich normalerweise eine Datei pro Interface. Bei mir ist es eine Datei mit dem Namen 10-enp0s31f6.network. Diese muss um einen Eintrag für das neue VLAN erweitert werden. Im Abschnitt [Network] muss die Zeile VLAN=vlan.4000 hinzugefügt werden. Wobei vlan.4000 der Name der weiteren Konfigurationsdateien ist. Die geänderte Datei sieht bei mir folgendermaßen aus:

### Hetzner Online GmbH installimage
[Match]
Name=enp0s31f6

[Network]
Address=x:x:x:x::2/64
Gateway=x.x.x.x
Gateway=fe80::1
VLAN=vlan.4000

[Address]
Address=x.x.x.x
Peer=x.x.x.x/32

Da ich vlan.4000 als  Name gewählt habe, erwartet systemd nun zwei weitere Dateien vlan.4000.netdev und vlan.4000.network in diesem Ordner.

Hier der Inhalt von vlan.4000.netdev:

[NetDev]
Name=vlan.4000
Kind=vlan

[VLAN]
Id=4000

Die letzte Zeile enthält die im Hetzner Robot gewählte VLAN-ID.

Die Datei vlan.4000.network enhält die IP-Konfiguration. In meinem Fall habe ich ein privates Subnetz gewählt und jedem Server eine eigene statische IP-Adresse zugewiesen.

[Match]
Name=vlan.4000

[Network]
DHCP=no

[Address]
Address=192.168.50.0/24

Die letzte Zeile enthält die IP-Adresse des Servers und muss für jeden Server angepasst werden.

Bei mehreren VLANs, müssen einfach mehrer VLAN-Zeilen in die Datei für das Interface, hier 10-enp0s31f6.network, eingefügt werden. Wichtig ist hierbei, dass ein anderer Name, z.B: vlan.4001, gewählt wird. Anschließen müssen dann auch für diesen Namen die .netdev und .network-Dateien angelegt werden, z.B. vlan.4001.netdev und vlan.4001.network. In der netdev-Datei muss dann die entsprechende VLAN-ID und in der network-Datei die verwendete IP-Adresse eingetragen werden.

]]>
Multi-Domain Projects on AWS Elastic Beanstalk https://www.roth-digital.de/2013/01/26/multi-domain-projects-on-aws-elastic-beanstalk/ https://www.roth-digital.de/2013/01/26/multi-domain-projects-on-aws-elastic-beanstalk/#comments Sat, 26 Jan 2013 13:12:14 +0000 http://www.roth-digital.de/?p=409 Keine ähnlichen Artikel gefunden. ]]> Using Elastic Beanstalk from  Amazon Web Services is a create way to deploy large projects and be ready for a gain in visitors. Because I have a few projects which are too small to deploy each project as its own Elastic Beanstalk  application I looked for a way to deploy several projects with multiple Domains into one AWS EB application.

In the past the only way to configure application environments was to use customized AMIs. This would mean that I can not update my application to newer Amazon AMIs. So I would have to update my AMI regularly on my own.

A new and better way is to use the new configuration files. After deploying an application the configuration files, stored in the folder .ebextensions on the root directory of the applichation, are processed. All configuration files must end with ‚.config‘.

The Elastic Beanstalk uses regular EC2 instances with an apache webserver. So I used the configuration files to create an file inside the apache folder to tell the webserver how to handle multiple domains. The deployed PHP application is stored inside the /var/www/html folder.

Here is the configuration file. I saved it under .ebextensions/vhost.config

files:
  "/etc/httpd/conf.d/vhost.conf":
    mode: "000644"
    owner: root
    group: root
    encoding: plain
    content: |
      NameVirtualHost *:80

      <VirtualHost *:80>
        ServerName www.projekt1.de
        ServerAlias projekt1.de
        DocumentRoot /var/www/html/projekt1/
      </VirtualHost>
      <VirtualHost *:80>
        ServerName static.projekt1.de
        DocumentRoot /var/www/html/static/
      </VirtualHost>

The lines after the content entry were copied into a new file /etc/httpd/conf.d/vhost.conf. The webserver reads this file on startup an creates new vhosts with different root folders. All requests for www.projekt1.de or projekt1.de use /var/www/html/projekt1/ als document root. Requests to static.projekt1.de use folder static inside the application as document root.

For detailed information on how to configure multiple domains in apache read the VirtualHost Examples from the apache project page.

If you have any questions, problems or suggestions please write a comment on this post.

]]>
https://www.roth-digital.de/2013/01/26/multi-domain-projects-on-aws-elastic-beanstalk/feed/ 2
Downgrade Debian/Ubuntu mit apt https://www.roth-digital.de/2011/06/13/downgrade-debianubuntu-mit-apt/ Mon, 13 Jun 2011 19:10:25 +0000 http://blog.roth-digital.de/?p=272 Keine ähnlichen Artikel gefunden. ]]> Unter Ubuntu ist es einfach Programm, die nicht offiziell in  Ubuntu enthalten sind über PPA (Personal Package Archives) nachträglich zu installieren. Dazu muss ein solches PPA einfach als neue Paketquelle über den Paketmanager hinzugefügt werden. Anschließend kann das neue Programm installiert werden. Neue Programme benötigen meist auch eine aktuellere Version anderer Pakete, diese werden über die PPA ebenfalls installiert.

Nach so einem Update kann es sein, dass das System nicht mehr stabil läuft. Das neue Programm lässt sich einfach über den Paketmanager oder apt-get remove löschen. Was ist aber mit den neuen Paketen, die mit installiert wurden?

Ein manuelles Löschen und erneutes Installieren kann zu weitreichenden Änderungen führen, falls es sich bei den neuen Paketen um wichtige Systemkomponenten handelt.

Die elegantere Methode ist es, ein Downgrade der Pakete durchzuführen. Dies ist zwar nicht ohne weiteres möglich, aber auch keine Hexerei. Normalerweise werden alle Paketequellen gleich behandelt und das Paket mit der höchsten Versionsnummer installiert.

Das Programm apt, das für die Paketverwaltung bei Ubuntu und Debian verantwortlich ist, erlaubt es Prioritäten einzelner Paketquellen zu setzen. Damit kann die Priorität der original Paketquellen so hoch gesetzt werden, dass die Pakete trotz niedriger Versionsnummer installiert werden.

Bei Ubunut 11.04 muss die Datei /etc/apt/conf.d/downgrade mit folgendem Inhalt angelegt werden:

Package: *
Pin: release a=natty
Pin-Priority: 1002

Package: *
Pin: release a=natty-updates
Pin-Priority: 1002

Nach einem apt-get dist-upgrade kann die Datei wieder gelöscht werden, da nun alle Pakete wieder auf den original Zustand der Ubuntu Version zurück gesetzt sind.

Mehr Information zu diese Methode liefert die Manpage von apt_preferences.

]]>
Apache und PHP stumm schalten https://www.roth-digital.de/2011/01/24/apache-und-php-stumm-schalten/ Mon, 24 Jan 2011 10:01:54 +0000 http://blog.roth-digital.de/?p=234 Ähnliche Artikel:
  1. Webserver beschleunigen
]]>
Apache und PHP senden bei Internetseiten die Versionsnummer mit an den Besucher. Ein Angreifer kann diese Informationen benutzen um gezielt verwundbare Versionen zu finden und dann diese Server anzugreifen. Mit ein paar einfachen Befehlen lassen sich die Ausgaben allerdings unterdrücken.

PHP:

  • Mit expose_php = Off kann in der php.ini die Übermittlung der PHP Versionsnummer im HTTP-Response-Header unterdrückt werden.

Apache2:

  • ServerTokens Prod unterbindet das Übermitteln der Apache Versionsnummer im HTTP-Response-Header
  • Die Option ServerSignature Off deaktiviert das Anzeigen der Versionsnummer auf von Apache generierten Seiten. Dazu zählen die Fehlerseiten oder Index-Seiten, falls das Indizieren von Ordner ohne index.html aktiviert ist.
  • Apache ermöglicht es ein paar Funktionen aus der Ferne zu debuggen. Diese Funktionalität wird auf einem Produktivsystem nicht benötigt und kann mit TraceEnable Off ausgeschaltet werden.
]]>
Thawte SSL123 Zertifikat wird nicht erkannt https://www.roth-digital.de/2010/10/23/thawte-ssl123-zertifikat-wird-nicht-erkannt/ Sat, 23 Oct 2010 12:33:58 +0000 http://blog.roth-digital.de/?p=167 Ähnliche Artikel:
  1. Sichere Authentifizierung
  2. Apache und PHP stumm schalten
]]>
Gestern habe ich neue Zertifikate von Thawte auf einem Webserver installiert und war dann doch verwundert, dass das Zertifikat nicht bei allen getesteten Browsern und Betriebssystem erkannt wurde. Mit Windows 7 gab es kein Problem, anders sah es mit MacOSx, Ubunut Linux und Windows Vista aus.

Nach längerem Suchen im Netz, habe ich den Grund gefunden. Thawte hat neue Zertifikate Anfang des Jahres erstellt um die Schlüssellänge von 1024 auf 2048 Bit zu  erhöhen. Die neuen Zertifikate sind wohl noch nicht bei allen Clients installiert.

Bei Thawte können die neue Zertifikate herunter geladen werden. Dieses Zertifikat muss dann in den Server eingebunden werde, damit es mit dem Server-Zertifikat an den Client gesendet wird. Das Thawte-Root-Zertifikat ist noch bis 2038 gültig, daher reicht es das Zwischenzertifikat mitzusenden.

Ich habe das CA Bundle für SSL123 heruntergeladen. Bei Apache kann das CA Bundle mit dem Kommando SSLCertificateChainFile in die SSL-Konfiguration eingebunden werden.

Bei dem Cyrus Imap Server hilft der Befehl tls_ca_file.

Damit dürfte bis zum Ablauf des Zwischenzertifikats am 17.02.2020 um 23:59:59 GMT Ruhe sein.

]]>
Webserver beschleunigen https://www.roth-digital.de/2010/03/13/webserver-beschleunigen/ Sat, 13 Mar 2010 08:02:21 +0000 http://blog.roth-digital.de/?p=42 Ähnliche Artikel:
  1. Webserver mit mod_pagespeed beschleunigen
  2. Apache und PHP stumm schalten
]]>
Den Webserver zu beschleunigen hat nicht nur Vorteile für Besucher, sondern auch Auswirkungen auf die Platzierung der Seite bei Google.

Die Ausführungszeit von PHP-Skripten kann mit einem PHP-Cache, wie eAccelerator oder Zend Optimizer, verringert werden. Dadurch werden die PHP- Dateien nicht mehr bei jedem Aufruf von PHP übersetzt, sondern nach dem ersten Aufruf übersetzt und gespeichert. Wenn nun noch ein Zugriff erfolgt, so wird die bereits übersetzte Version benutzt und das Skript nur erneut übersetzt, falls sich etwas am Quellcode geändert hat. Dadurch konnte ich bei einigen Projekten die Ausführungszeit um den Faktor 10 verbessern.

Neben der Ausführungszeit von Skripten, werden auch die Übertragungszeiten von Bildern und CSS-Dateien von Google zur Ladezeit gerechnet.

Um das Übertragen von statischen Inhalten zu verbessern, kann beim Webserver die komprimierte Datenübertragung aktiviert werden. Dann werden die Dateien vor dem Senden mit GZIP gepackt und an den Besucher gesendet. Bei Apache kann dies mit mod_deflate gemacht werden. Durch diese Maßnahme wird zwar die Last auf dem Server vergrößert aber dafür das Netzwerk entlastet. Vor allem bei langsamen Internetanbindungen wird die Seite dadurch merklich schneller.

Die sind nur einige Anregungen, wie dir Geschwindigkeit erhöht werden kann. Wer mehr wissen will, findet bei Google hilfreiche Treffer.

]]>