Die öffentliche IP Adresse per Webseite oder Kommandozeile

Öffentliche IP? Was ist das denn?

Na ja, Eure Geräte sind in der Regel mit einem Router verbunden, den man normalerweise von seinem Internetprovide bekommt und der mit dem Kabel- oder Telefon-Anschluß verbunden ist.

Alles was zwischen Euren Geräten, z.B. dem Laptop, und dem Internet übertragen wird, läuft über diesen Router. Aus Sicht des Internets hat Eure Router EINE Adresse, auch wenn Ihr 20 Laptops anschließt. Das ist dann die öffentliche IP Adresse.
IP Adressen bestehen übrigens aus 4 mit Punkten getrennten Zahlen und reichen von 0.0.0.0 bis 255.255.255.255.

Der Router verpasst jedem Laptop eine eigene interne Adresse und vermittelt dann die Daten zwischen dem Internet und Euren Geräten.

Wenn Ihr also Euren Laptop fragt, welche IP Adresse er hat, bekommt Ihr nur diese interne Adresse zu sehen, nicht die öffentliche.
Interne IP Adressen erkennt Ihr daran, dass sie mit 192.168.x.x oder 10.x.x.x anfangen. Solche Adressen werden im Internet nicht verwendet.

Wenn Ihr mit Eurem Laptop nun eine Webseite aufruft, sieht der Server, von dem die Seite kommt, aber nicht die interne Adresse Eures Laptops, sondern nur die öffentliche IP Adresse eures Routers. Daran kann die Webseite z.B. feststellen, aus welchem Land Ihr die Seite aufruft.

Wie kommt man an diese Adresse? Wie immer gibt es mehrere Möglichkeiten:

„Die öffentliche IP Adresse per Webseite oder Kommandozeile“ weiterlesen

Lass andere teilhaben...

Office 365 Admin: Fehler beim Anmelden

Schon mal Probleme gehabt, Euch bei Office 365 anzumelden?
Insbesondere, wenn Ihr wie ich mit mehreren Office 365 Konten hantiert?

Chrome scheint gelegentlich alte SSL Verbindungen aufrecht zu erhalten, die dann beim Login mit einem anderen Account zu Problemen führen.
Dann wird z.B. eine Fehlermeldunge ERR_SPDY_PROTOCOL_ERROR oder ähnliches angezeigt.

Um diese Fehler loszuwerden könnte man:

  • Chrome neu starten
  • Die “Browserdaten löschen” (insbesondere die Cookies)
  • chrome://net-internals/#sockets aufrufen und den Button “Flush Socket Pools” anklicken

Besonders letzteres hat sich als nützlich erwiesen und funktioniert zumindest bei mir praktisch immer!

Lass andere teilhaben...

SSH: Login mit Key statt Passwort und schön bunt

Jedes Mal wenn ich einen neuen Raspberry oder Webserver einrichte, mache ich ein paar Modifikationen an der bash Shell und sorge dafür, dass ich mich ohne Passwort mit einem Schlüssel anmelden kann und an der Farbe des Prompts erkenne, ob ich mit root-Rechten arbeite.
Eingefärbte Verzeichnisse und praktische Abkürzungen mag ich auch.

Also bash sicherer und praktisch.

Weiterlesen

VPN Server einrichten

Wolltet Ihr auch schon mal von unterwegs auf Euer NAS zugreifen? Oder auf den PC? Mache ich dauernd. Meistens mit der Hilfe des Teamviewers, aber manchmal hilft der nicht weiter. Z.B. wenn man auf einen FileShare zugreifen möchte.

Dann könnte man ein VPN (virtual private network) benutzen. Damit verbindet man seinen Laptop oder das Handy mit dem Netzwerk zu Hause. Das funktioniert dann genauso als wäre man daheim im WLAN.

Manche Router bieten so etwas von Haus aus. So auch meine FritzBox. Nur ist die Konfiguration der “Clients”, also der Software auf dem Laptop, extrem unpraktisch und unflexibel.

Mit sind Standard-Lösungen lieber, die dann auch von überall, von jedem Handy, Mac, Windows PC und so weiter funktionieren. So eine Standard-Lösung ist OpenVPN, das nun wirklich überall benutzt wird. Warum also nicht einen Raspberry (egal welche Version), die es für wenig Geld überall zu kaufen gibt, als OpenVPN Server benutzen.

Im folgenden beschreibe ich, wie man so etwas einrichtet.

Ausgangspunkt ist ein Raspberry Pi (Version egal) mit installiertem “Raspbian” Betriebssystem. Eine Anleitung dazu gibt es z.B. auf raspberrypi.org. Außerdem solltet Ihr per SSH auf den Raspberry zugreifen können. SSH schaltet man mittels sudo raspi-config ein (Interfacing Options / SSH) und benutzt anschließend Putty um sich von einem Windows Rechner aus mit Raspi zu verbinden.

Die Anleitung funktioniert aber genauso mit einem Debian-Linux oder Ubuntu.

Erst mal eine Root-Shell öffnen und alles auf den neuesten Stand bringen:
sudo -s
apt-get update
apt-get upgrade

Dann den OpenVPN Server und ein Tool zum generieren der nötigen Schlüssel installieren:
apt-get install openvpn
apt-get install easy-rsa

easy-rsa benötigt ein wenig Konfiguration:
sudo make-cadir /etc/openvpn/easy-rsa

Damit wurden die Konfigurationsdaten kopiert, wir müssen uns nur noch für die richtige openssl-Version entscheiden und die entsprechende Datei umbennen:
cd /etc/openvpn/easy-rsa
mv openssl-1.0.0.cnf openssl.cnf

Nun mittels nano die Datei vars ändern. Also nano vars ausführen und die Zeile
export EASY_RSA="`pwd`"
so ändern:
export EASY_RSA="/etc/openvpn/easy-rsa"
Wer Lust hat, kann auch noch die Angaben für den Ort, Firma usw. ändern, aber das ist nicht unbendingt nötig:
export KEY_COUNTRY="AT"
export KEY_PROVINCE="Vienna"
export KEY_CITY="Vienna"
export KEY_ORG="tethis IT"
export KEY_EMAIL="support@tethis-it.at"
export KEY_OU="VPN"
Speichern und verlassen mit STRG-o, Return und STRG-x

Jetzt können wir die Skripte benutzen um Schlüssel zu generieren. Eine genaue Erklärung der Schritte findet sich in der OpenVPN Dokumentation.

source ./vars
./clean-all
./build-ca

Jetzt kommen ein paar Fragen. Was man da eingibt ist eigentlich egal, einfach mehrmals Return drücken ist ok.

./build-key-server Server

Anstelle von “Server” könnt Ihr auch irgendwas anderes benutzen. Merkt es Euch, denn jetzt kommen ein paar Fragen. Nur die folgenden sich dabei wichtig:
Common Name (eg, your name or your server's hostname) [Server]: => einfach Return drücken
A challenge password []: => einfach Return drücken
Sign the certificate? [y/n]: y
1 out of 1 certificate requests certified, commit? [y/n] y

Nun erzeugen wir je einen Schlüssel für alle Benutzer, die das VPN nutzen wollen. Hier heißt er beispielhaft “user” und bekommt das Passwort “password”
./build-key-pass user
Enter PEM pass phrase: => password + Return
Verifying - Enter PEM pass phrase: => password + Return
Die folgenden Fragen einfach mit Return beantworten. Wer Lust hat, kann die E-Mail-Adresse ändern, aber das Challenge Passwort MUSS leer bleiben und die beiden letzten Fragen werden mit y beantwortet:
A challenge password []: => einfach Return drücken
Sign the certificate? [y/n]: y
1 out of 1 certificate requests certified, commit? [y/n] y

Jetzt noch die DES3-Version dieses Schlüssels erzeugen (für Handys nötig):
cd keys
openssl rsa -in user.key -des3 -out user.3des.key
Man wird zuerst nach der pass phrase von oben gefragt, danach muss man zwei mal eine neue pass phrase eingeben. Einfach drei mal das oben festgelegte “password” eingeben.

Dann brauchen wir noch Schutz gegen Denial-of-Service Attacken und einen Diffie-Hellmann-Key:
cd /etc/openvpn/easy-rsa
openvpn --genkey --secret keys/ta.key
./build-dh
Das dauert. Geht euch ein, zwei Tassen Kaffee holen, oder macht einfach in einem zweiten Putty Fenster weiter, bis Ihr an den Punkt kommt, wo der Raspi rebootet werden muss.

Der OpenVPN Server braucht eine Konfiguration.
Meine Vorlage dazu gibt es hier: server.conf
nano /etc/openvpn/server.conf
Dann den Inhalt der Vorlagen hier hinein kopieren (Strg-C auf der Webseite, dann rechts-klick im nano Fenster).
Es müssen einige IP Adressen angepasst werden. An diesen Stellen sind in der Datei GROSSGESCHRIEBENE Kommentare.
Danach die Daten mit Strg-O und Strg-X speichern.

Jetzt kümmern wir uns um den Linux-Kernel und die Firewall.
Erst mal dem Kernel erlauben, überhaupt Netzwerkpakete weiterzuleiten:
nano /etc/sysctl.conf

Das ‘#’ am Anfang der Zeile #net.ipv4.ip_forward=1 entfernen.
Die Datei mit Strg-O und Strg-X speichern.
sysctl -p macht die Änderung wirksam.

Um eine Ausnahme für die Firewall einzurichten, geben wir folgendes ein:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT –to-source 192.168.XX.XX
Dabei die IP Adresse am Ende durch die IP Adresse des Raspberry ersetzen.
Mit iptables -L -t nat kann man sich ansehen, ob das funktioniert hat. Es sollte etwas wie folgt angezeigt werden:
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all — 10.8.0.0/24 anywhere to:192.168.178.56

Dummerweise geht die Regel beim nächsten Boot wieder verloren, also müssen sie noch permanent machen:
apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4

Damit ist der Server fertig!! Fehlt nur noch ein Reboot:
reboot

Nun wieder dem Raspberry verbinden, sudo su - und nun den OpenVPN Server starten
systemctl start openvpn@server
systemctl enable openvpn@server

 

Lass andere teilhaben...

Eine PHP Entwicklungsumgebung installieren

Nachdem ich jetzt einen weiteren Auftrag für die Entwicklung eines PHP Skripts erhalten habe, wird es langsam Zeit, sich “häuslich einzurichten”. Soll heißen, es braucht eine sinnvolle PHP Entwicklungsumgebung.

Und zwar eine, in der man sich halbwegs schnell zurechtfindet.
In meinem Fall für Windows 10.

Ich schon einige Erfahrungen mit Eclipse gemacht, und dort gibt es schon eine ziemlich Hürde. Bis man damit gut und schnell umgehen kann, dauert es eine Weil.

Viel besser gefällt mir NetBeans!
Einfach einzurichten und leicht zu bedienen. Obwohl eigentlich für die Entwicklung von Java und JavaScript Programmen gedacht, gibt es mittlerweile Pakete, die speziell als Entwicklungsumgebung für PHP und HTML 5 gedacht sind.
Was ich besonder beeindruckend fand, war die Einbindung des Debuggers. Endlich kann ich ein PHP Skript schrittweise ausführen und mir Variableninhalte ansehen, ohne vorher zwei Tage nach Installationsanleitungen zu suchen.

Also, ans Werk! „Eine PHP Entwicklungsumgebung installieren“ weiterlesen

Lass andere teilhaben...

Wo sind die synchronisierten Hintergrundbilder?

Windows 10 hat ja die nette Eigenschaft bestimmte Einstellungen wie Hintergrundbilder, Schriftgrößen, etc. auf alle Computer zu synchronisieren, auf denen man sich mit einem Microsoft Account anmeldet.

Aber was, wenn man sich mit einem neuen Account anmelden möchte (oder muss), und die über Jahrzehnte gesammelten Hintergrundbilder dann nicht mehr wiederfindet?
Das ist selbst dann ärgerlich, wenn es nur um 10 Fotos vom Segeln geht, wie in meinem Fall 🙂

Die Lösung ist einfach, wenn man weiß wo die Bilder sind. „Wo sind die synchronisierten Hintergrundbilder?“ weiterlesen

Lass andere teilhaben...

Office 365 belegt zu viel Platz auf der Festplatte

Ich benutze (und verkaufe) nun seit einiger Zeit Microsoft Office 365 und bin absolut zufrieden damit.
Die Installation der lokal auf dem PC installierten Office Software dauert nur Minuten, und man kann fast sofort damit arbeiten. Selbst während die Installation im Hintergrund weiter voranschreitet.

Der Trick dabei ist eine Technologie, die Microsoft “Click-To-Run” nennt. Kurz zusammengefasst werden Word, Excel und Co. in kompakten, virtuellen Maschinen gestartet. Der Anwender merkt davon nichts und freut sich über die schnelle Installation.

Stehen Updates für Office bereit, wird einfach eine neue Version der virtuellen Maschine heruntergeladen. Auch das merkt der Anwender nicht.

Leider kann es vorkommen, dass alte Versionen der Click-To-Run VMs nicht gelöscht werden, und viel Platz auf der Festplatte belegen.

Bei war das der Fall. Plötzlich war meine 250 GB SSD fast voll. Eine Analyse mit dem sehr praktischen Tool SequioiaView ergab, das das Verzeichnis C:\Users\All Users\Microsoft\ClickToRun auf 21 GB angewachsen war.

In diesem Verzeichnis finden sich etliche Ordner mit UUIDs als Namen, z.B. {9AC08E99-230B-47e8-9721-4577B7F124EA}.
Bei mir war nur einer dieser Ordner halbwegs aktuell, mit einem Änderungsdatum im gleichen Jahr. Alle anderen waren vom Vorjahr.

Man kann diese alten Ordner offensichtlich gefahrlos löschen.
“Offensichtlich”, weil es dafür keine Garantie gibt, Microsoft sagt nicht, dass man sie löschen kann. Aber da schlimmstenfalls eine Neuinstallation von Office nötig ist, hält sich das Risiko in Grenzen.

Ich konnte die Ordner jedenfalls löschen und fast 20 GB freischaufeln.
Aber nur die alten Ordner mit UUIDs als Namen, die anderen bitte so lassen wie sie sind 🙂

 

Lass andere teilhaben...

Bei einer Avada Pricingtable die Farben ändern

Das Avada WordPress Theme ist ziemlich beliebt. Auch bei meinen Kunden.

Gerade hatte ich die Frage auf dem Tisch, ob man die Hintergrundfarbe des mittleren Produkts einzeln ändern könnte, um es noch mehr hervorzuheben.

Prinzipiell kann man bei der Avada Pricingtable die Farben nur für die ganze Tabelle bestimmen. Es haben also also Produkte den gleichen Hintergrund.
Dafür hat man dann einen Mouse-Over Effekt, der den Hintergrund ein wenig ändert, wenn man mit der Maus darüber fährt.

Möchte man die Farbe einzelner Elemente ändern, muss man zunächst die ganze Tabelle mit einer eigenen Klasse versehen.
Das macht man direkt bei den Einstellungen der Pricingtable. Einfach den “class” Parameter auf einen beliebigen Namen, z.B. “meineTabelle” setzen.

Dann benötigen wir ein CSS Ergänzungen, die wir unter Design / Theme Options / Custom CSS eintragen:

.meineTabelle .panel-wrapper:nth-child(2) .panel-heading {
background-color: white !important;
}
.meineTabelle .panel-wrapper:nth-child(2) .panel-body {
background-color: white !important;
}
.meineTabelle .panel-wrapper:nth-child(2) .list-group-item {
background-color: white !important;
}
.meineTabelle .panel-wrapper:nth-child(2) .panel-footer {
background-color: white !important;
}

Das .panel-wrapper:nth-child(x) sucht das x-te Panel aus der Tabelle heraus. Hier also das zweite (mittlere von dreien).
Alle Versuche auf das mittlere Panel mit Hilfe von Klassen oder id’s zuzugreifen sind übrigens fehlgeschlagen, nur die nth-child Methode hat funktioniert.
Jede Zeile ändert die Hintergrundfarbe eines anderen Teils des Eintrags, hier mache ich den kompletten Eintrag weiß.

Eine andere Frage war die Ausrichtung des Textes in den Einträgen.

Soll sie in der ganzen Tabelle gleich sein, folgendes zu den Custom CSS hinzufügen:

#wrapper .fusion-pricing-table .list-group-item {
text-align: left;
}

Soll nur ein einzelnes Panel betroffen sein, einfach das Schema von oben benutzen. Aber nur die list-group-item Klasse:

.meineTabelle .panel-wrapper:nth-child(2) .list-group-item {
background-color: white !important;
text-align: left;
}

 

Lass andere teilhaben...

iSCSI Target und Initiator einrichten

Fileshares sind ja ganz praktisch, aber manchmal nicht das was man braucht. Zum Beispiel ist die Vergabe von Zugriffsberechtigungen komplett anders.
Bei einem  Fileshare wird das auf dem Server erledigt, der ja auch das Filesystem (NTFS, ext4, …) vorgibt.
Stellt man ein Laufwerk per iSCSI zur Verfügung, ist das für den Client wie eine zusätzliche Festplatte. Man kann das iSCSI Laufwerk partitionieren, formatieren und Rechte vergeben, ganz wie bei einer Festplatte.

Im folgenden beschreibe ich, wie man eine Festplatte oder ein logisches Laufwerk an einem Linux Server (hier mit CentOS 7) mittels iSCSI freigibt und dann von einem anderen Linux Rechner aus benutzt.
Das automatische Verbinden beim Neustart und den Windows Initiator beschreibe ich in separaten Postings.

D.h. auf dem Server wird ein “iSCSI Target” konfiguriert, auf dem anderen Computer ein “iSCSI Initiator”.

„iSCSI Target und Initiator einrichten“ weiterlesen

Lass andere teilhaben...