Ein Powershellskript über die Aufgabenplanung ausführen

Februar 21, 2019 - Lesezeit: ~1 Minute

Wieder so eine Sache die ich gerne nutze, aber mich immer wieder erinnern muss wie genau es funktioniert. Es reicht nämlich nicht auf dem Windows Server das Powershell Skript in die Aufgabe einzubinden. Stattdessen muss eine Powershell über die Aufgabe gestartet werden, der dann direkt das Skript mitgegeben wird.

Unter Aktion die Powershell starten (Programm/Skript):

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Über Argument wird dann das eigentliche Skript an die Powershell übergeben:

-executionpolicy bypass -command "C:\Users\admin\Desktop\Script.ps1"

Bildbeschreibung


Eine NFS Freigabe in Windows Server 2016 einbinden

Dezember 6, 2018 - Lesezeit: 2 Minuten

Eine NFS Freigabe, die z.B. auf einem Linux Server liegt, kann man auch problemlos auf einem Windows Server einbinden und nutzen. Dazu muss der NFS Client installiert sein, dies kann man über den Server Manager machen, aber auch über die Power Shell, was wesentlich flotter geht.

  1. Powershell als Administrator starten (z.B. per Rechtsklick auf das Powershell Symbol und dann "Als Administrator ausführen" wählen).
  2. Per Get-WindowsFeature -Name NFS* prüfen ob das Feature vorhanden ist und dann ...
  3. ... mit Install-WindowsFeature -Name NFS-Client installieren.

Das dauert dann ein paar Sekunden und am Ende sollte folgende Ausgabe zu sehen sein:

Bildbeschreibung

Das war es dann schon fast, jetzt gibt es mehrere Möglichkeiten die NFS Freigabe einzubinden, die einfachste ist nach wie vor: über Computer und dann Netzlaufwerk verbinden.

Bildbeschreibung

Bildbeschreibung

Falls es mit der Freigabe nicht so ganz klappt sollte man kontrollieren ob auf dem NFS Server der neue Server auch eingetragen ist, denn das wird gerne vergessen. Unter Linux sollte man dafür in der Datei /etc/exports nachschauen, die man dann nach einer Änderung auch neu einlesen sollte, z.B. mit (sudo) exportfs -ra


Kein Zugriff auf Samba (smb) nach Windows 10 v1709 Update

November 28, 2017 - Lesezeit: ~1 Minute

Wer auf einen Samba Server nach dem Windows 10 v1709 Update nicht mehr zugreifen kann, sollte mal einen Blick in die Registry werfen und nach diesem Schlüssel suchen:

AllowInsecureGuestAuth

Setzt man den Wert auf 1, klappt es wieder.

Fehlermeldung die man zu Gesicht bekam:

Sie können nicht auf diesen freigegebenen Ordner zugreifen, weil der Zugriff nicht authentifizierter Gäste durch die Sicherheitsrichtlinien Ihrer Organisation blockiert werden. Diese Richtlinien helfen, Ihren PC vor unsicheren oder bösartigen Geräten im Netzwerk zu schützen

Link zum Group Policy Administrative Templates Catalog


LVM

November 28, 2017 - Lesezeit: 4 Minuten

Hat man einen Linux Server mit LVM (Logical Volume Manager) und möchte z.B. eine weitere Partition oder eine neue Festplatte in den LVM aufnehmen, kann man dies wie folgt erledigen.
Achtung! Wie immer gilt, eine Sicherung kann nicht schaden, die Arbeit am Dateisysstem oder den Festplatten kann immer auch nach hinten losgehen. In meinem Szenario ging es vor allem darum eine neue Platte im LVM zu nutzen.

Um zu sehen was man überhaupt für Platten und Partitionen hat empfiehlt sich ein:

(sudo) fdisk -l

sowie ein Überblick über die bereits für den LVM verfügbaren Physical Volumes mit:

(sudo) pvs

und

(sudo) pvdisplay

Wenn das System die Platte noch nicht erkannt hat, muss man ggf. zuerst einen Neustart durchführen und danach eine leere Partition anlegen. Dies geht sehr gut mit

(sudo) cfdisk /dev/sdb

Zuerst die gewünschte Platte oder Partition als PV (Physical Volume) initalisieren, in meinem Fall für /dev/sdb1 :

(sudo) pvcreate /dev/sdb1

Danach kann man mit pvs erneut nachsehen ob es auch geklappt hat. Jetzt hat man die Möglichkeit entweder eine vorhandene Volume Group (VG) zu erweitern (z.B. / oder /home) oder eine neue Volume Group anzulegen. Ähnlich wie oben gibt es auch hier wieder die Befehle vgs und vgdisplay.

Ich lege eine neue VG an mit (samba ist der Name der VG und kann beliebig sinnvoll benannt werden) und füge das gewünschte PV hinzu. Vorteil eine Volume Group kann aus mehreren Physischen Volumes bestehen und so in der Größe variieren:

(sudo) vgcreate samba /dev/sdb1

Jetzt muss in der VG ein Logical Volume erstellt werden, dies können wir dann später mit einem Dateisystem bestücken und damit arbeiten. Auch das LV kann später wieder erweitert werden und somit mehr Platz geschaffen werden.

(sudo) lvcreate -L 500G -n files samba

files ist der Name der LV und Samba der VG.

Möchte man den ganzen Platz der neuen Partition für das Logical Volume verwenden, geht dass über das Flag mit dem kleinen "L":

(sudo) lvcreate -l 100%FREE -n files samba

Dateisystem erstellen:

(sudo) mkfs.ext4 /dev/samba/files

Und mounten, dazu den LV Path benutzen (ggf. über lvdisplay rauszufinden)

(sudo) mount /dev/samba/files /samba

Damit der Mount dauerhaft zur Verfügung steht muss er in die /etc/fstab eingetragen werden.

Vergrößern und erweitern kann man bei Bedarf. Dazu immer erst die VG erweitern mit vgextend, dann die LV erwietern mit lvextend, außer in der VG wäre noch Platz, dann reicht natürlich ein lvextend, z.B.

lvextend ‐L +10G files

Erweitert das LV um 10 GB. Lässt man das + weg kann man die gewünschte Gesamtgröße angeben oder auch +100%FREE für die maximale Größe verwenden.Jetzt sollte man auf jeden Fall mit resizefs -p /dev/name das Dateisystem auch erweitern um den neuen Platz nutzen zu können. Verkleinern geht auch, habe ich aber noch nie benutzt, dazu gibt es den Befehl lvreduce

Schön ist auch die Möglichkeit Snapshots zu erstellen, dazu ein ander Mal mehr.


Ubuntu 14.04 auf 16.04

September 26, 2017 - Lesezeit: 2 Minuten

Für September hatte ich mir vorgenommen einige Ubuntu Server von 14.04 LTS auf 16.04 LTS zu bringen. Die 14er LTS erhält zwar noch bis ca. April 2019 Updates, aber die 16er gibt es jetzt ja auch schon etwas über ein Jahr und bringt zudem offiziell PHP7 mit (ja ich weiß man kann es auch in der 14er installieren). Wie üblich empfiehlt sich ein Backup vom System und allen benötigten Daten auf dem Server zu haben. Neben den Backups habe ich das Glück das meine Ubuntu Server alle virtualisiert auf über ESX Server laufen und sich somit Snapshots anfertigen lassen.

Vor jedem Release upgrade sollte man das momentane System so aktuell wie möglich halten. Also vorher nochmal:

apt-get update
und
apt-get upgrade

durchführen. Außerdem empfiehlt sich auch ein

apt-get autoremove

um nicht mehr benötigte Pakete zu entfernen. Das lässt sich übrigens auch automatisieren.

Außerdem sollte man mit df -h auch mal schnell checken ob genügend Platz auf den Partitionen zur Verfügung steht. Auf einem Server war die /boot Partition so ziemlich voll und enthielt noch einige alte Kernel Versionen die ich dann vorher entfernt habe. Bevor man das macht sollte man sich aber mit uname -r vergewissern welcher Kernel aktuell verwendet wird und diesen natürlich auf keinen Fall entfernen.

Dann kann es mit

do-release upgrade

losgehen. Ubuntu leitet euch dann etwas durch den Vorgang und fragt bei neueren Configs nach ob diese eingebunden werden sollen oder lieber die alten verwendet werden sollen. Ich bleibe zu 99% bei den alten, sollten einige Dienste mit den alten Configs Probleme machen, lassen sich diese später noch verstehen und beheben, was ich deutlich besser finde als angepasste Configs zu verlieren.

Wenn das Upgrade durchgelaufen ist hatte ich meistens immer Probleme mit dem Netzwerk, was wohl auch an der Virtualisierung liegt. Auf jeden Fall wurde aus eth0 meistens irgendwas anderes. Mit ip link lässt sich aber schnell der neue Name der Netzwerkkarte rausfinden. Danach dann unter /etc/network/interfaces eth0 durch den neuen Namen ersetzen und das Netzwerk oder den Server neustarten. Danach sollte der Server wieder laufen und mann kann seine Dienste checken und z.B. PHP 7 installieren.


https und www erzwingen (Apache 2.4)

März 28, 2017 - Lesezeit: 2 Minuten

Hat man für eine Webseite SSL (https) eingerichtet kann man den Benutzer automatisch dazu zwingen die Seite nur noch verschlüsselt aufzurufen. Verwendet man als Webserver Apache geht dies wie folgt: Im Netz finden sich viele Beispiele im Zusammenspiel mit mod_rewrite, allerdings empfehlen die Apache Entwickler diese Technik für diesen Fall nicht unbedingt (hier nachzulesen: http://httpd.apache.org/docs/2.4/rewrite/avoid.html). Stattdessen reicht in der Seitenkonfiguration ein einfaches:

<VirtualHost *:80>
...
Redirect / https://www.domain.de
...
</VirtualHost>

Wer es trotzdem mit mod_rewrite machen will oder muss, kann dazu folgende Zeilen verwenden, ebenfalls in der Config oder über eine .htaccess Datei:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.doamin.de%{REQUEST_URI} [R=301,L]

Soweit so gut, wer jetzt noch eine ordentliche URLmag und auch immer das www in der Adresszeile haben will, egal ob der Benutzer es eingibt oder nicht, der muss etwas tricksen. Zumindest habe ich keinen einfacheren Weg gefunden. Und zwar muss man seine SSL Config klonen, bzw. zwei Virtual Hosts für SSL einrichten. Der erste ist für die URL ohne www

<VirtualHost *:443>
    ServerName domain.de

    ....

    Redirect / https://www.domain.de

</VirtualHost>

Und der zweite dann für eure URL mit www.

<VirtualHost *:443>
    ServerName www.domain.de

    ....

</VirtualHost>

Was passiert? Alle https Anfragen ohne www werden dann umgeleitet auf mit www. Wichtig ist das beide Virtual Host Konfigurationen ansonsten identisch sind, also mit Directory und SSLEngine On etc.

Über mod_rewrite habe ich keinen Weg gefunden https ohne www auf https mit www umzuleiten. Hat bei mir alles mit der Kombination aus SSL erzwingen nicht funktioniert.