Windows: Die hosts Datei schnell und einfach anpassen

Was macht Ihr, wenn Ihr eine Webseite testen wollt, bevor die Domäne registriert wurde oder bevor die DNS Einträge auf den richtigen (neuen) Server zeigen?

Also ich trage mir dann immer die IP Adresse des Servers und die Domäne in die hosts Datei ein. Ein Linux User weiß eh wie man das macht (glaube ich).

Unter Windows muss man sie erst mal finden und wenn man sie mit dem Editor öffnen und kann sie dann nicht mehr speichern, weil die Rechte fehlen.

Da mir das gefummel, den Editor mit Admin Rechten zu starten, irgendwann zu blöd wurde, habe ich mir einen entsprechenden Shortcut eingerichtet: „Windows: Die hosts Datei schnell und einfach anpassen“ weiterlesen

Lass andere teilhaben...

Plesk & NGINX: Domäne umleiten und Ordner ausnehmen

Eine Domäne auf eine andere umleiten ist eigentlich ganz einfach.

Wenn man so etwas wie Plesk benutzt, schaltet man einfach den “Hosting Typ” Umleitung ein und gibt die neue Domäne an. Fertig.
Viele Domain-Registrare bieten auch eine Umleitung an, auch ohne Hosting.

Was aber, wenn man die umgeleiteten Zugriffe statistisch erfassen möchte?
Dann bleibt einem nur übrig, ein normales Hosting einzurichten und die Umleitung mit der .htaccess Datei zu konfigurieren. „Plesk & NGINX: Domäne umleiten und Ordner ausnehmen“ weiterlesen

Lass andere teilhaben...

Let’s Encrypt Zertifikat auf anderen Server kopieren (Plesk)

Ich teste immer wieder WordPress Updates oder größere Änderungen auf einem zweiten Server. Vor allem deswegen, weil ich dort den gleichen Domainnamen einrichten kann, wodurch alle kommerziellen Plugins und Themes aktiviert bleiben und sich updaten lassen.

Eine kleine Herausforderung dabei sind die Let’s Encrypt SSL Zertifikate. Wie man damit umgeht beschreibe ich hier.

„Let’s Encrypt Zertifikat auf anderen Server kopieren (Plesk)“ weiterlesen

Lass andere teilhaben...

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...