Archiv des Autors: ictschule

Java für Enlight

Im Moment macht ECDL zünftig Tempo. Für die alten Prüfungen mit Enlight wird Java benötigt, meistens in einer einigermassen aktuellen Version. Gemäss Telefon mit dem Support wurde jetzt aber in der Nacht die GESTERN ausgelieferte neue Version 7 Update 51 als Mindestanforderung definiert. image

image

Hoffe, dass dies jetzt nicht jedes Mal so ist, dass man über Nacht Java verteilen müsste.

Zum Glück ist Java relativ einfach zu verteilen, man kann mit Orca ein paar nicht zwingende Änderungen vornehmen und das MSI dann auf dem gewohnten Weg über Gruppenrichtlinien oder SCCM oder… verteilen. Somit sollten dann auch die Prüfungen am Nachmittag funktionieren.

Typo3 Seiten aus Backup wieder herstellen

Um die bestehenden Webseiten auf den neuen (virtuellen) Server zu übertragen, muss man gleich vorgehen, wie wenn man die Webseiten aus einem Backup wiederherstellen müsste. (Denjenigen, die diesen Vorgang lieber als Video Anleitung ansehen, kann ich die Anleitung von jweiland.net empfehlen.) Wichtig ist bei einer Wiederherstellung die Version von Typo3. Entweder muss es die gleiche sein, die auch auf dem alten Server installiert war oder man muss nach der Wiederherstellung die gleichen Schritte durchführen, wie nach einem normalen Upgrade von Typo3. Ein Backup aus dem man wiederherstellen kann, sollte die Datenbanken und die Verzeichnisse mit den Daten sichern (oder jetzt neu dann eine virtuelle Maschine, die man als ganzes komfortabel sichern und wiederherstellen kann).

Installation von Typo3
Als erstes habe ich die gleiche Version der Typo3 Source Dateien installiert, die auch auf dem alten Server benutzt wurde. In diesem Beitrag ist beschrieben, wie man Typo3 installiert.

Datenbank importieren
Um die Datenbank importieren zu können, muss man zuerst eine Datenbank mit dem gleichen Namen anlegen und dann den Dump aus dem Backup in diese importieren. 
mysql –u root –p db_name < dumpfilename.sql
Die nötigen Befehle sind hier aufgeführt.

Daten kopieren
Nun kann man die Daten in das richtige Verzeichnis verschieben. Am einfachsten geht das mit dem Midnight Commander (geht natürlich auch auf der shell mit cp oder auch mit dem Filemanager von Webmin). Zur Sicherheit sollte man im Stammverzeichnis noch überprüfen, ob der Symlink zu den Typo3 Sources auch ans richtige Ort zeigt. Genaueres zum verschieben findet man hier.

Am Schluss sollte man überprüfen, ob alles richtig funktioniert. Ausserdem macht es vielleicht gerade Sinn, die Typo3 Version mal wieder auf eine neuere Version anzuheben. Auf dem neuen Server sollte natürlich auch wieder ein Backup eingerichtet und getestet werden. Linux auf einem Hyper-V-Host kann gemäss meinen Tests problemlos als ganze virtuelle Maschine über DPM wiederhergestellt werden.

Typo3 installieren

In den System-Voraussetzungen heisst es, dass man GraphicsMagick oder Imagemagick 6 oder neuer installieren muss, wenn man die integrierte Bildbearbeitung zurückgreifen möchte.

Installieren kann man Imagemagick durch den Befehl
sudo apt-get install imagemagick

image

image

Wenn nicht bereits installiert, wird auch noch php5-gd benötigt.
sudo apt-get install php5-gd

Eine Typo3 Installation besteht aus 2 “Teilen”. Zum einen aus der “Typo3 Source” und zum anderen aus den eigentlichen Dateien für die Webseite (da gibt es verschiedene Packages).

Wenn man mehrere Seiten betreibt, kann es sinnvoll sein, diese beiden Teile zu trennen und die Source Dateien an einen separaten Ort zu speichern. So belegen die Source Dateien nur einmal Speicherplatz aber der Hauptvorteil liegt darin, dass man Upgrades am Source Code viel einfacher handhaben kann. Das Trennen der beiden Teile ist in der Datei INSTALL.txt im Stammverzeichnis der Installation unter „Installation:recommended“ beschrieben.

Für eine neue leere Installation lädt man das Blank Package mit den Source Dateien und einem leeren Skelett für die neue Seite herunter. Bei einem Upgrade nur noch das Source Packet. Den Link zur Datei kann man von der Homepage kopieren.

image

Nun kann man das Verzeichnis mit wget herunterladen. Mit einem Rechtsklick kann man die vorher kopierte Verknüpfung in Putty einfügen. Die Endung „?download” sollte man aber löschen, damit die tar.gz Datei heruntergeladen wird.

image

Das Archiv kann man nun entpacken:
sudo tar –xzvpf blankpackage-6.1.7.tar.gz
wobei man hier die Bedeutung der einzelnen Schalter findet.
Durch das Anfügen von z.B. –C /opt kann man direkt in das Verzeichnis /opt entpacken.

Nach dem Entpacken kann man die Dateien verschieben. Dazu verwende ich den Midnight Commander. Diesen kann man durch sudo apt-get install mc installieren und mit sudo mc starten. Mit der Taste F6 kann man vom linken Fenster ins rechte verschieben, im unteren Bild ins Verzeichnis /var/www.

image

Die Source Dateien verschiebe ich ins Verzeichnis /opt und der Rest des Blankpackages wird auf den Namen des Webseitenprojekts umbenannt.

Wenn die Sourcedateien nicht am gleichen Ort wie die restlichen Dateien von Typo3 liegen, muss man den symbolischen Link (symlink) auf den neuen Ort “umbiegen”. Dies kann man mit dem Kommando ln (sudo ln –sf /opt/typo3_src-6.1.7/ /var/www/…/typo3_src) erreichen oder auch ganz komfortabel mit dem Filemanager von Webmin.

image

image

Nun muss man noch die Berechtigungen und Besitzer von bestimmten Ordnern anpassen. In der INSTALL.txt sind die benötigten Befehle aufgeführt.

image

image

Wenn man nun die Seite aufruft, bekommt man folgende Meldung, dass das Install Tool geschützt sei.

image

Nachdem man so eine Datei erstellt hat, kann man die Installation beginnen.

image

Man muss sich mit einer Datenbank verbinden und die Tabellen importieren, wird dabei aber schön vom Assistenten geführt und kann eigentlich nicht viel falsch machen.

Nach der vollständigen Installation sollte man alles überprüfen, z.B. ob alle Bildbearbeitungstests funktionieren. Bei mir gab es da einen Fehler mit Imagemagick bei “Combining images”.

image

Um das zu beheben, muss man unter “All Configuration” den Befehl combine auf composite ändern, weil die neueren Versionen von Imagemagick diesen verwenden.

image

Nun hat man eine leere Seite, jetzt muss man sie noch mit Inhalten füllen.

virtuelle Hosts mit Apache

Bei uns laufen die Webseiten von verschiedenen Schulgemeinden. Apache bietet eine Möglichkeit, dies über virtuelle Hosts zu realisieren. Diese verwalte ich mit Webmin.

Unter Servers –> Apache Webserver –> Create virtual host kann man für jede eigene Seite einen virtuellen Host angeben.

image

Wenn man nun den virtuellen Host auswählt, kann man unter “Networking and Addresses” die virtuellen Servernamen eintragen.

image

Webmin zur Linux Server Verwaltung installieren

Ein Linuxserver kann komplett auf der Komandozeile (shell) verwaltet werden. Viel komfortabler ist es aber, dies auf einer grafischen Oberfläche zu machen. Ich habe mich da für Webmin entschieden und in den letzten Jahren keine Probleme damit gehabt. Darum werde ich Webmin auch auf dem neuen Server wieder einsetzen.

Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms (and Java for the File Manager module), you can setup user accounts, Apache, DNS, file sharing and so on. (Quelle:http://www.webmin.com/intro.html).

Alternativ zu einer manuellen Installation, kann man Webmin wie hier beschrieben auch über das Paketverwaltungstool “apt” verwalten. Dazu muss man in /etc/apt/sources.list die Zeile für das Repository eintragen. Ich verwende als Editor dazu nano.

Also nano mit “sudo nano /etc/apt/sources.list” starten und ganz zuunterst die Zeile  
deb http://download.webmin.com/download/repository sarge contrib
hinzufügen.

image

image

Wenn man nun mit ctrl+x nano verlässt, wird man noch gefragt, ob man die Änderungen speichern möchte, was man mit y bestätigt.

image

Zum Speichern muss man dann noch den Dateinamen mit der Entertaste bestätigen.

image

Damit man nachher nicht bei jedem apt-get update eine Fehlermeldung wegen dem fehlenden PGP-Schlüssel erhält…

image

…kann man den fehlenden Schlüssel mit
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

installieren. Die mit wget heruntergeladene Schlüsseldatei kann nach dem Import wieder gelöscht werden.

Nun kann webmin normal mit apt installiert werden.
sudo apt-get update
sudo apt-get install webmin

image

Nach erfolgreicher Installation kann man sich mit Webmin über https://server-ip-adresse:10000 verbinden.

image

Obwohl ja viele Administratoren webmin verwenden, ist es eine zusätzliche Anwendung, die auch angegriffen werden könnte. Sicher macht es daher Sinn, webmin wie alle anderen Anwendungen aktuell zu halten. Zusätzlich kann man den Port 10’000 für den Zugriff auf webmin vom Internet her auf der Firewall geschlossen lassen.

Linux auf Hyper-V-Cluster

Wir betreiben ja in unserer DMZ immer noch unseren eigenen Webserver. Da wir als Ersatz für unsere alten Server einen Hyper-V-Cluster/Failovercluster gekauft haben, wollte ich auch den alten Webserver durch einen virtuellen Server auf dem Cluster ersetzen.

Netzwerk
Damit der Webserver weiterhin in der DMZ und nicht im internen Netzwerk steht, muss man ihm einen eigenen Netzwerkanschluss auf den Hyper-V-Hosts zuweisen, der für nichts anderes benutzt wird.

image

Diesen kann man dann mit der DMZ bei der Firewall verbinden. Somit ist gewährleistet, dass der ins Internet exponierte Webserver durch die Firewall vom Rest des internen Netzwerks getrennt ist.

Installation
Um den neuen Server zu installieren, kann man im Failovercluster-Manager “Virtuelle Computer…” –> “Neuer virtueller Computer…” erstellen und den Clusterknoten auswählen, auf dem dieser primär laufen soll.

Als Speicherort muss das CSV (Cluster Shared Volume) ausgewählt sein, auf das alle Clusterknoten Zugriff haben.

image

Für Linux muss Generation 1 ausgewählt werden.

image

Der Arbeitsspeicher kann auch später jederzeit angepasst werden.

image

Hier muss nun eben der Netzwerkadapter ausgewählt werden, der ausschliesslich für die DMZ verwendet und auch so verbunden wird.

image

Für die virtuelle Festplatte habe ich die Standardwerte verwendet.

image

Für den Webserver verwende ich wieder Ubuntu Server in der LTS (long time support) Version, den ich schon für den alten Webserver benutzt habe.

image 

image

Am Schluss bekommt man eine Warnung wegen der virtuellen DVD. Das ISO ist nicht auf dem CSV abgelegt, somit kann die Maschine kein Failover durchführen, da der Pfad auf dem zweiten Knoten nicht verfügbar wäre. Dies macht aber nichts, da ich die DVD nach der Installation eh entferne.

image

Nun kann man den Server starten und installieren.

image   image

Als Land habe ich Schweiz ausgewählt, als Tastaturmodell “ch”. Danach muss man in vielen Dialogen das Netzwerk manuell einrichten, einen Rechnernamen vergeben und ein Benutzerkonto anlegen. 

Jetzt kann man die Festplatten partitionieren lassen.

image

Aktualisierungen sollen nicht automatisch installiert werden, das möchte ich lieber manuell ausführen und kontrollieren.

image

Im nächsten Dialogfeld kann man zusätzliche Software-Sammlungen installieren. Für die Webseite benötige ich den LAMP Server (LAMP steht für Linux, Apache, MySQL, PHP). Der OpenSSH Server wird für einen Zugang auf die Konsole benötigt. Der Mailserver wird benötigt, damit der Inhalt von Formularen als Mail verschickt werden können. Mit Samba biete ich einen Zugang über eine Windowsfreigabe an. So können auf einen Rutsch z.B. sehr viele Bilder auf den Webserver übertragen werden. Aus Sicherheitsgründen öffne ich auf der Firewall die Ports für SSH und Samba nur vom internen Netzwerk. Es soll möglichst nur das notwendigste vom Internet her erreichbar sein.

image

Für MySQL muss man nun noch ein Root Passwort vergeben und für Postfix werden die Mailinformationen abgefragt. Am Schluss muss man noch bestätigen, dass Grub in den MBR installiert werden darf.

image

Die CD wird automatisch “ausgeworfen”. Nun kann man neu starten.

image

Nach dem Neustart empfiehlt sich ein:

sudo apt-get update
sudo apt-get dist-upgrade

um den Server mit den neuesten Updates zu versorgen.

ECDL Zeitplan für Umstieg auf NEW ECDL

Hier habe ich bereits beschrieben, wie die Umstellung zum neuen ECDL ablaufen kann. Wie ich mir schon damals gedacht habe, ist der Zeitplan für die Umstellung sehr ehrgeizig. Auf http://www.ecdl.ch/schulen/fuer-test-center/ heisst es:

Bestehende ECDL Test Center können ab dem 1. Januar 2014 alle Module des neuen ECDL Programms anbieten.

Nur fehlen uns leider dafür die Lehrmittel. Gemäss Telefon mit bitmedia wird es etwa Anfangs Februar, bis wir mit dem Onlinekurs auf Educanet2 die neuen Inhalte der Base Module üben können, die Standard Module kommen dann noch später. Eigentlich wollten wir einen neuen Zertifizierungsanlass mit neuen Lehrkräften zusammen mit einer Rezertifizierung durchführen, aber so muss ich den Termin nochmals nach hinten schieben.

Ist nicht wirklich zufriedenstellend im Moment.

MySQL Befehle

Nur so als Gedankenstütze, damit ich nicht immer im Internet nachforschen muss.

mysql --user=root --password=verysecure
Stellt eine Verbindung zum MySQL Server her. Danach wird in der shell mysql> vorangestellt. Befehle müssen mit einem Semikolon (;) abgeschlossen werden. Wenn man kein Passwort angibt, wird man nach der Eingabe des Befehls danach gefragt.

mysql> show databases;
Zeigt die vorhandenen MySQL-Datenbanken an.

mysql> CREATE DATABASE db_name;
Erstellt eine neuen Datenbank db_name.

mysql> CREATE DATABASE IF NOT EXISTS db_name;
Überprüft vor dem Erstellen einer neuen Datenbank, ob bereits eine mit dem gleichen Namen existiert.

mysql> DROP DATABASE db_name;
Löscht eine ganze Datenbank.

mysql> DROP DATABASE IF EXISTS db_name;
Überprüft vor dem Löschen einer Datenbank, ob eine Datenbank mit dem Namen existiert.

mysql> CREATE USER ‘newuser’@’localhost’ IDENTIFIED BY ‘password’;
Erstellt einen neuen User newuser mit dem Passwort password. Dieser neue User hat aber keine Berechtigungen auf irgendeine Datenbank.

mysql> GRANT [type of permission] ON [database name].[table name] TO ‘newuser’@’localhost’;
Wenn bei type of permission  ALL PRIVILEGES gesetzt wird, bekommt der User alle Berechtigungen auf die Datenbank. Um Berechtigungen auf alle Datenbanken und deren Tabellen zu geben, kann man den Stern verwenden (*.*)
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘newuser’@’localhost’;
Nachdem die Berechtigungen verändert wurden, sollten man sie abschliessen durch
mysql> FLUSH PRIVILEGES;

mysql> REVOKE [type of permission] ON [database name].[table name] FROM ‘newuser’@’localhost’;
Entfernt die Berechtigungen vom Benutzer (analog zu GRANT).

mysql>DROP USER ‘newuser’@’localhost’;
Löscht den Benutzer

mysql> select user, host from mysql.user;
Erstellt eine Liste mit User und Host.

mysql> show grants for ‘newuser’@’localhost’;
Zeigt die Berechtigungen für den entsprechenden Benutzer auf localhost.

mysql> QUIT
Beendet die Verbindung zum MySQL-Server.

Mit dem Programm mysqldump kann man Sicherungen einer MySQL-Datenbank erstellen

Das Programm mysqldump kann direkt auf der shell ausgeführt werden, man muss sich also nicht mit dem Datenbankserver verbinden.

mysqldump --user=root --password=verysecure db_name > dumpfilename.sql
Erstellt ein Backup der Datenbank in die Datei dumpfilename.sql.

mysqldump --user=root --password=verysecure db_name | gzip > /Verzeichnispfad/dumpfilename.gz
Erstellt ein komprimiertes Backup der Datenbank in die Datei dumpfilename.gz. Dies kann sinnvoll bei automatisierten Backups sein.

mysql --user=root --password=verysecure db_name < dumpfilename.sql
Spielt das Backup aus der Datei dumpfilename.sql in die Datenbank db_name. Die Datenbank muss vorher erstellt werden.

Access Control Lists (ACL) auf HP Switch

In grösseren Netzwerken sollte aus Performance- und Sicherheitsüberlegungen mit VLAN’s gearbeitet werden. Für einen ersten Überblick zu VLAN’s bietet sich der Blog Schulnetz.info von Edi Pfisterer an. Später wird man sich mit der Anleitung des eigenen Switches auseinandersetzen müssen, die dann aber oft viel technischer verfasst ist.

Hier habe ich bereits ein paar Befehle zusammengefasst, die ich immer mal wieder benötige. Neu kann unser Switch nun auch mit ACL’s umgehen. VLAN’s ohne ACL’s bringen (nur) mehr Performance, weil Broadcastverkehr eingeschränkt wird.
(Broadcasts sind Datenpakete, die ins ganze Netzwerk gesendet werden, weil nicht bekannt ist, an welcher Adresse sich der Empfänger befindet. Je mehr solcher Broadcasts durch das Netzwerk übermittelt werden, desto weniger “Platz” hat es auf der verwendeten Leitung für “Nutzverkehr”, das Netzwerk wird also langsamer).

Wenn Datenverkehr von VLAN zu VLAN übermittelt werden muss, spricht man von Routing. Häufig wird Routing benötigt, um z.B. auf das VLAN mit den Servern zu kommen. Mit eingestelltem Routing bringen VLAN’s also nur weniger Broadcastverkehr, aber keinen Sicherheitsgewinn. Dafür werden ACL’s benötigt, in denen angegeben werden kann, was genau von einem VLAN in das andere darf. Unser neuer Switch kann nun auch mit ACL’s umgehen. So gibt es Zugangspunkte in unserem Netzwerk, die aus Sicherheitsüberlegungen nicht von allen VLAN’s aus zugänglich sein sollten (wie z.B. die Hyper-V-Hosts oder die Verwaltungswebseiten von Servern und Storage, …). Trotzdem wäre es praktisch, wenn ich zur Verwaltung Zugang von meinem Rechner aus hätte und nicht einen Verwaltungsrechner nur für diesen Zweck einsetzen müsste.

Die folgenden Dinge treffen für unseren HP Switch zu. Bei anderen Herstellern muss man zu deren Dokumentation greifen.

Eine ACL (Access Control List) besteht aus einer oder mehreren ACE(s) (Access Control Entry). HP unterscheidet zwischen “standard ACLs” und “extended ACLs”. Bei den “standard ACLs” werden nur die “source addresses” (SA) betrachtet, also sind nur Regeln möglich, die den Verkehr VON xy regeln. Besser geeignet für meine Vorhaben sind die “extended ACLs”, die den Verkehr VON xy NACH uv regeln können.

image

(config)# ip access-list extended <name-str>
Mit diesem Befehl kann man eine extended ACL bearbeiten oder neu erstellen, falls es noch keine ACL mit diesem Namen gibt. Falls der <name-str> Leerzeichen enthält, muss man den Namen in einfache oder doppelte Anführungszeichen setzen. Die Namen dürfen aus 64 Zeichen (alphanumeric) bestehen.

(config-ext-nacl)# deny ip any host 192.168.1.15
Erstellt eine ACE die den Verkehr von allen Netzwerken zum Host 192.168.1.15 verhindert.
image

Um eine neue ACE in eine bereits bestehende Liste einzufügen, kann man einfach die gewünschte Zahl voranstellen, also z.B. 15 deny ip any host 192.168.1.15.

# show access-list
Zeigt eine Übersicht über die eingetragenen ACLs.

# show access-list config
Zeigt Konfigurationsdetails der eingetragenen ACLs an.

#show access-list vlan <vid>
Zeigt die ACLs an, die dem angegebenen VLAN zugeordnet sind.

# vlan <vid> ip access-group <identifier> <in out>
Ordnet eine ACL einem VLAN zu. Wenn man “no” dem Befehl voranstellt, wird die Zuordnung wieder gelöscht. <identifier> muss mit dem Namen (oder der Nummer) der ACL ersetzt werden.
image

Implicit Deny
Wenn eine ACL einem Port oder einem VLAN zugeordnet ist, werden alle nicht explizit erlaubten Fälle abgelehnt.
image

Konkret
Viel einfacher wäre es gewesen, alle Verwaltungsadressen in ein eigenes VLAN zu stecken, aber wie so oft ist man schlauer, wenn alles schon gemacht ist und eine Änderung aufwendig wird. Unsere Server sind im gleichen Subnetz/VLAN wie die Hyper-V-Hosts und die Verwaltungswebseiten von Storage/Hyper-V-Hosts. Also müssen alle Clients aus ihren VLANS Zugang zum Server-VLAN haben, aber nicht zu den einzelnen dieser Ausnahmen. Dies kann mit den ACLs erreicht werden.

Die ACL kann so angelegt werden:
ip access-list extended „Server out“
deny ip any host 192.168.13.25
deny ip any host 192.168.13.28
deny ip any host 192.168.13.35
deny ip any host 192.168.13.36
deny ip any host 192.168.13.50
deny ip any host 192.168.13.51
permit ip any any
exit

Nun muss die ACL noch dem entsprechenden Server VLAN zugewiesen werden
vlan 207 ip access-group “Server out” out