sysctl -w net.ipv4.conf.eth0.route_localnet=1
iptables -t nat -A PREROUTING -p tcp -d [eigene IP von OpenVas] --dport 443 -j DNAT --to-destination 127.0.0.1:9392
30.12.16
27.12.16
Luks - cryptsetup - Fehlermeldung kernel aes-xts-plain64
System: Root Server von 1blu
Luks installieren
apt-get install cryptsetup
Modul aktivieren
modprobe dm-crypt
Nachdem ich ein dynamisches Laufwerk (als Datei) mittels
truncate -s 4G DATEINAME
erstellt hatte, wollte ich es mittels
cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 -y GERÄTEDATEI
formatieren.
Danach kam die Fehlermeldung, dass das Modul kernel aes-xts-plain64 nicht unterstützt wird.
Abhilfe schaffte ein
apt-get install linux-image-generic linux-headers-generic
und ein anschließender Reboot.
Dann kann das Gerät geöffnet werden mit
cryptsetup luksOpen DATEINAME NAME_DES_GERAETESDateisystem installieren
mkfs.ext4 /dev/mapper/NAME_DES_GERAETES
und mounten
mount /dev/mapper/NAME_DES_GERAETES /mnt/MOUNTPOINT
Aushängen:
umount /mnt/MOUNTPOINT
cryptsetup luksClose NAME_DES_GERAETES
16.12.16
Quickstart - Webseite mit Symfony
sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfonysudo chmod a+x /usr/local/bin/symfony
symfony new symfony
Wenn Apache, dann
chmod -R www-data:www-data /var/www/html/symfony
a2enmod mod_rewrite
Wenn Fehlermeldung:
Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions :
/var/www/html/symfony/web/
Dann hinzufügen:
<IfModule mod_rewrite.c>
Options -MultiViews +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
13.12.16
Postfix - Standard Installation mit Dovecot Auth - quick memo
apt-get install dovecot dovecot-managesieved postgrey spamassassin dovecot-lmtpd
main.cf:
smtpd_recipient_restrictions =.
# Unsere Kinderchens erlauben!
permit_sasl_authenticated,
permit_mynetworks,
# RBL checken (könnte auch nur über policyd-weight erfolgen)
reject_rbl_client zen.spamhaus.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client bl.spamcop.net,
# policyd-weight
#check_policy_service inet:127.0.0.1:12525,
# Greylisting checken über TCP-Socket:
check_policy_service inet:127.0.0.1:10023,
reject_unauth_destination,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain
Dazu:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_use_tls = yes
soft_bounce = yes
Fehler beim Versenden:
fatal: no SASL authentication mechanisms
In /etc/dovecot/conf.d/10-master.conf ggfs. einkommentieren
unix_listener auth-userdb {
mode = 0666
user = postfix
group = postfix
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
LMTP für Sieve aktivieren
/etc/dovecot/conf.d/20-lmtp.conf
protocol lmtp {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins sieve
}
Pfad:
/etc/dovecot/conf.d/90-sieve.conf: sieve = file:~/sieve;active=~/.dovecot.sieve
Im Home:
.dovecot.sieve -> sieve/Alles.sieve
Bei Änderung in der config von Postfix, soft_bounce = yes => alle Fehler werden zu temporären Fehlern, d.h. Mails bleiben in der Queue.
Login lokal testen:
telnet localhost 143
a login "user@domain" "password"
Sieve läuft auf Port 4190. Nach Update von dovecot(?) startete der Sieve-Daemon nicht mehr.
Gucken, ob in der /etc/dovecot/dovecout.conf folgende Zeile enthalten ist:
protocols = imap pop3 sieve
12.12.16
Postfix und Sieve / Pigeonhole
Autoresponder und andere Sachen in
/var/zpanel/vmail/andreas-gregor.de/archiv/sieve/managesieve.sieve
Bzw. nach /home/user/sieve, wenn Mail dort abgelegt wird.
Anstoßen und Test des Filters mit:
sieve-filter -v -u archiv /home/archiv/sieve/Test.sieve 'INBOX'
dann
sieve-filter -e -W -u archiv /home/archiv/sieve/Test.sieve 'INBOX'
# Bestellungen in extra Ordner
if header :contains "subject" ["Bestellung", "Rechnung"] {
fileinto "Bestellungen";
}
require ["fileinto", "envelope", "vacation"];
# Einordnen
if address :is "from" ["xxx@gmx.de","yyyy@web.de"]
{
fileinto "Important";
}
vacation
# Reply at most once a day to a same sender
:days 1
:subject "Out of office reply"
# List of additional recipient addresses which are included in the auto replying.
# If a mail's recipient is not the envelope recipient and it's not on this list,
# no vacation reply is sent for it.
:addresses ["root@myurl.de", "archiv@testmail.de"]
"Dies ist ein Autoresponder";
sievec -u archiv managesieve.sieve
Testen:
sieve-filter -v -C -u "my@email.de" .sieve 'INBOX'
Ausführen:
-e - excute, -W write
Can't load plugin sieve_plugin : Plugin is intended to be used only by binaries: lda lmtp (we're managesieve)
Lösung war:
sieve in protocols /usr/share/dovecot/protocols.d/ aktivieren mit
!include_try /usr/share/dovecot/protocols.d/*.protocol
Auskommentieren von
#mail_plugins = $mail_plugins quota sieve
5.12.16
Rsyslog - Nachricht in eigene Logdatei schreiben und nicht nach /var/log/syslog
Neue Regel definieren, z.b.
Inhalt:
Dann
/etc/rsyslog.d/45-[meineRegel].confDiese Regel muss greifen vor der 50er-default-Regel!
Inhalt:
:programname,contains,"Was auch immer" /var/log/neuesLog.log
& stop
Dann
service rsyslog restart
2.12.16
Apache: Symbolic link not allowed or link target not accessible
Fehlermeldung:
Symbolic link not allowed or link target not accessible:
Meine Lösung war:
Options +FollowSymLinks -SymLinksIfOwnerMatch
GGfs. Rechte in der Verlinkung noch anpassen.
Symbolic link not allowed or link target not accessible:
Meine Lösung war:
Options +FollowSymLinks -SymLinksIfOwnerMatch
GGfs. Rechte in der Verlinkung noch anpassen.
29.11.16
ip - Kurzübersicht
Wie manch anderen war mir bis vor kurzem nicht bekannt, dass die "klassischen" Befehle ifconfig, route, arp etc. deprecated sind.
ip aus der Suite iproute2 löst sie alle ab.
oder kurz auch: ip a
oder kurz: ip r
ss -lnt - TCP
ss -lnu -UDP
ss -ltun -beides
ip aus der Suite iproute2 löst sie alle ab.
Anzeigen der IP Adressen
ip addr show
oder kurz auch: ip a
Route anzeigen
ip route show
oder kurz: ip r
Default Route löschen
ip route del default via xx.xx.xx.xxDefault Route hinzufügen
ip route add default via xx.xx.xx.xxRoute für einzelne IP hinzufügen
ip route add 192.168.178.223 via 192.168.178.245 dev eth0"ARP"
ip neighbouroder kurz: ip n
ARP-Einträge löschen
ip neighbour delete 192.168.0.77 dev eth0
ARP-Eintrag ändern auf permanent
ip neighbour change 192.168.0.200 dev eth0 lladdr 45:43:34:34:34:54 nud permanent
Link anzeigen
ip link show eth0
Link aktivieren/deaktivieren
ip link set eth0 up/down
IP hinzufügen / löschen
ip addr add 192.168.0.5/24 broadcast + dev eth0
ip addr delete 192.168.0.5/24 dev eth0
Löschen aller IP Adressen von einem Device
ip -4 address flush label eth0
Statistiken abrufen
ip -s -s link show eth0
ip -s neigh show
MAC Adresse ändern
ip link set eth0 address 45:45:45:45:45:45
Interfacenamen ändern
ip link set eth0 name eth20
Socket Statistics
ss -tss -lnt - TCP
ss -lnu -UDP
ss -ltun -beides
Node.js | Onvif auf dem RPI installieren
apt-get install npm
Dann versuchen nach dieser Anleitung vorzugehen.
Also:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt install nodejs
Fehlermeldungen:
1. jshint nicht gefunden
2. jscs nicht gefunden
3. coffee nicht gefunden
4. xml2js nicht gefunden
5. dot nicht gefunden
6. nimble nicht gefunden
7. istanbul nicht gefunden
8. cover nicht gefunden
9. _mocha nicht gefunden
npm install jshint jscs coffee test-coffee-module xml2js dot nimble istanbul cover mocha
Fehlermeldung beim Installieren:
Abhilfe: Ich war in einem Verzeichnis, wo ein package.json existierte!
Dank an https://github.com/ashleygwilliams für den Hinweis!
Nach dem Installieren von onvif über npm, das Beispiel example2.js anpassen (IP, User, PW, Ports) und mit
ausführen.
Dann versuchen nach dieser Anleitung vorzugehen.
Also:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt install nodejs
Fehlermeldungen:
1. jshint nicht gefunden
2. jscs nicht gefunden
3. coffee nicht gefunden
4. xml2js nicht gefunden
5. dot nicht gefunden
6. nimble nicht gefunden
7. istanbul nicht gefunden
8. cover nicht gefunden
9. _mocha nicht gefunden
npm install jshint jscs coffee test-coffee-module xml2js dot nimble istanbul cover mocha
Fehlermeldung beim Installieren:
pi@pi-3:~/tmp/node_modules/onvif $ npm install jshint
npm ERR! Linux 4.1.19-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "jshint"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! Cannot read property 'target' of null
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/tmp/node_modules/onvif/npm-debug.log
Abhilfe: Ich war in einem Verzeichnis, wo ein package.json existierte!
Dank an https://github.com/ashleygwilliams für den Hinweis!
Nach dem Installieren von onvif über npm, das Beispiel example2.js anpassen (IP, User, PW, Ports) und mit
node example2.js
ausführen.
21.11.16
Systemd - eigenen Service erstellen
Zunächst erstelle ich ein kleines Script in
Darin wird testweise alle 5 Sekunden eine Zeile an den Logger (syslog) geschickt.
Damit es auch über den Service beendet werden kann, wird ein trap eingebaut.
Ausführbar machen mit
Nun erstelle ich die Datei
mit folgendem Inhalt:
Den Service aktivieren mit
Status anzeigen lassen mit
Starten mit
Im Systemlog (/var/log/syslog) sollten nun alle 5 Sekunden neue Einträge auftauchen.
Service stoppen mit
Sehr schön ist in diesem Zusammenhang das Zusammenspiel mit journalctl.
Ein
journalctl -u myscript.service listet nur die Einträge des soeben definierten Services auf.
/usr/local/bin/myscript
Darin wird testweise alle 5 Sekunden eine Zeile an den Logger (syslog) geschickt.
Damit es auch über den Service beendet werden kann, wird ein trap eingebaut.
#!/bin/bash
killit()
{
echo "...Ende" | logger
exit 0
}
trap killit HUP
while true; do
sleep 5
echo "...sleeping" | logger
done
Ausführbar machen mit
chmod +x /usr/local/bin/myscript
Nun erstelle ich die Datei
/lib/systemd/system/myscript.service
mit folgendem Inhalt:
[Unit]
Description=My own little script
After=network.target.
[Service]
#EnvironmentFile=
ExecStart=/usr/local/bin/myscript
ExecStop=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=myscript.service
Den Service aktivieren mit
systemctl enable myscript
Status anzeigen lassen mit
service myscript status
Starten mit
service myscript start
Im Systemlog (/var/log/syslog) sollten nun alle 5 Sekunden neue Einträge auftauchen.
Service stoppen mit
service myscript stop
Sehr schön ist in diesem Zusammenhang das Zusammenspiel mit journalctl.
Ein
journalctl -u myscript.service listet nur die Einträge des soeben definierten Services auf.
2.11.16
Per X11 auf den RPI zugreifen
Nach einigen Mißerfolgen eine Kurzanleitung:
1. Xming Server unter Windows installieren
2. auf dem RPI unter /etc/ssh/sshd.conf => X11Forwarding yes (Standard bei Raspbian, Ubuntu Mate)
3. auf dem Windows Rechner z.B. mit Cygwin Terminal export DISPLAY=127.0.01:0 (mit 0:0 ging es bei mir nicht)
4. ssh -Y user@rpi
5. z.B. iceweasel starten
1. Xming Server unter Windows installieren
2. auf dem RPI unter /etc/ssh/sshd.conf => X11Forwarding yes (Standard bei Raspbian, Ubuntu Mate)
3. auf dem Windows Rechner z.B. mit Cygwin Terminal export DISPLAY=127.0.01:0 (mit 0:0 ging es bei mir nicht)
4. ssh -Y user@rpi
5. z.B. iceweasel starten
27.10.16
Joomla - Inhalte per Script auf neue Version übertragen
Ich stand vor dem Problem, die Inhalte einer ziemlich alten Joomla Version (V 1.5) auf eine neue Joomla Installation zu übertragen.
Hier ein schnell dahin gehacktes Script. Dieses muss noch mit den Zugangsdaten der alten und neuen Datenbank angepasst werden. Dann noch die Startwerte von $rgt und $lft anpassen. Ich habe keine Ahnung, wozu sie sind. Auf jeden Fall müssen sie hochgezählt werden. Einfach mal in die Tabelle assets nach den entsprechenden Spalten gucken und die letzten Werte +1 übernehmen in das Script.
Hier ein schnell dahin gehacktes Script. Dieses muss noch mit den Zugangsdaten der alten und neuen Datenbank angepasst werden. Dann noch die Startwerte von $rgt und $lft anpassen. Ich habe keine Ahnung, wozu sie sind. Auf jeden Fall müssen sie hochgezählt werden. Einfach mal in die Tabelle assets nach den entsprechenden Spalten gucken und die letzten Werte +1 übernehmen in das Script.
<?php
$prefix = "c27gy_";
$rgt = 36;
$lft = 35;
class mydatabase
{
var $database = "";
var $prefix = "c27gy_"; // Prefix der Joomla Tabellen
function db_connect($database)
{
$user = "[user]";
$pw = "[PASSWORD]";
$mysqli = new mysqli("localhost", $user, $pw, $database);
/* check connection */
if (mysqli_connect_errno())
{
$error = "Connect failed: " . mysqli_connect_error();
//$this->errorReport($error, true);
exit();
}
$mysqli->query("SET NAMES 'utf8'");
return $mysqli;
}
function getAssetID($title, $lft, $rgt, $name)
{
$sql_asset = "INSERT INTO " . $this->prefix . "assets
(level,name,title, lft, rgt, parent_id, rules)
VALUES
('3', '$name','$title', '$lft', '$rgt', '27','{\"core.admin\":{\"7\":1},\"core.manage\":{\"6\":1},\"core.create\":{\"3\":1},\"core.delete\":[],\"core.edit\":{\"4\":1},\"core.edit.state\":{\"5\":1},\"core.edit.own\":[]}')";
$link=$this->db_connect("[DATABASE]");
$link->query($sql_asset);
//echo "DEBUG $sql_asset <br>";
return $link->insert_id;
}
function truncateTables()
{
$link=$this->db_connect($this->db_new);
// Die u.a. id anpassen!!! Nicht, dass existente Datensätze gelöscht werden
$link->query("DELETE FROM " . $this->prefix . "assets WHERE id > 65");
$link->query("TRUNCATE TABLE " . $this->prefix . "content");
$link->query("TRUNCATE TABLE " . $this->prefix . "content_frontpage");
}
}
$db = new \mydatabase();
// ACHTUNG: NICHT UNBEDINGT NÖTIG!!
//$db->truncateTables(); // Tabellen leeren bzw. Einträge löschen
// Mit den Datenbanken verbinden
$link = $db->db_connect("[DATABASE]");
$link1 = $db->db_connect("[DATABASE_OLD]");
// Daten aus der alten Tabelle holen
$sql_abfrage = "SELECT * FROM jos_content where state=1 ORDER by created DESC";
$result = $link1->query($sql_abfrage);
$zaehler = 0;
while ($row = $result->fetch_array())
{
$zaehler++;
echo $zaehler . " " . $row['alias'] . "<br>";
$title = $row['title'];
$alias = $row['alias'];
$introtext = $row['introtext'];
$fulltext = $link->real_escape_string($row['fulltext']);
$created = $row['created'];
$old_id=$row['id'];
$id = $db->getAssetID($title, $lft, $rgt, "com_content.article." . $old_id);
$rgt+=2;
$lft+=2;
$sql_insert = "INSERT INTO ${prefix}content (
asset_id,
title,
alias,
state,
catid,
introtext,
`fulltext`,
language,
created, publish_up,
featured,
version,
access)
VALUES('$id', '$title',
'$alias',
1,
2,
'$introtext',
'$fulltext',
'*',
'$created', '$created',
1,
2,
1)";
if(!$link->query($sql_insert))
{
echo "Fehler! " . $link->error . "<br>$sql_insert";
}
$content_id=$link->insert_id;
$sql_frontpage="INSERT INTO ${prefix}content_frontpage (content_id, ordering)
VALUES ('$content_id', '$zaehler')";
if(!$link->query($sql_frontpage))
{
echo "Fehler! " . $link->error . "<br>$sql_frontpage";
}
}
7.10.16
Webmin / Apache: Virtuelle Hosts einrichten
Belegen:
Document_Root
ServerName
Alles andere auf Default lassen.
Für Subdomains unter Virtual Server Options -> Networking and Addresses -> Alternate Virtual Server Names z.B. *.meineseite.de eintragen.
Nicht:
<VirtualHost gehrdener.de:80>
sondern
<VirtualHost *:80>
eintragen!!
certbot-auto --apache -d gehrdener.de -d www.gehrdener.de
3.10.16
Raspberry LCD Display aus China ansteuern
Das 3.2 Inch Display habe ich für wenig Geld aus China bekommen (Gearbest.com?).
Es ist nicht plug&play, d.h. ich brauche einen Treiber.
Hier wurde ich schließlich fündig.
Falls die Seite mal verschwindet:
1. Configure your Pi:
Es ist nicht plug&play, d.h. ich brauche einen Treiber.
Hier wurde ich schließlich fündig.
Falls die Seite mal verschwindet:
Method 1. Driver installation
Description: Supports the latest version of Raspbian and Ubuntu Mate.1. Configure your Pi:
sudo raspi-configSet as:
- Select Expand Filesystem.
- Boot Option -> Desktop Autologin (may differ depending on Raspbian revision)
tar xvf LCD-show-YYMMDD.tar.gz cd LCD-show/This toggles the mode to LCD display: ./LCD32-show 3. After system rebooting, the RPi LCD is ready to use.
DHCP Server konfigurieren
Adresspool definieren:
Eigenen Adressraum für virtuelle Maschinen festlegen:
Unbekannte Geräte ausschließen
DHCP Server im Netz finden
class "virtualbox"
{
match if binary-to-ascii(16,8,":",substring(hardware,1 ,2)) == "08:00";
}
Eigenen Adressraum für virtuelle Maschinen festlegen:
pool
{
allow members of "virtualbox";
range 192.168.1.200 192.168.1.220:
}
Unbekannte Geräte ausschließen
subnet 192.168.178.0 netmask 255.255.255.0
{
option routers x.x.x.x;
range 192.168.178.50 192.168.178.150;
deny unknown-clients;
}
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers x.x.x.x;
range 192.168.1.50 192.168.1.150;
option host-name = concat("intruder", binary-to-ascii(10,8,"",substring(leased-address,3,1)));
allow unknown-clients;
}
DHCP Server im Netz finden
dhcping -s 255.255.255.255 -r -vEin Dank an Heise!
10.8.16
Default Gateway einrichten
Linux
Shell als root
Default gw löschen
route del default gw 192.x.x.x
Neuen gw eintragen
route add default gw 192.x.x.x
Windows
Powershell als Admin starten
route change 0.0.0.0 mask 0.0.0.0 192.x.x.x
Ansehen der Config:
netsh interface ip show config
Shell als root
Default gw löschen
route del default gw 192.x.x.x
Neuen gw eintragen
route add default gw 192.x.x.x
Windows
Powershell als Admin starten
route change 0.0.0.0 mask 0.0.0.0 192.x.x.x
Ansehen der Config:
netsh interface ip show config
15.7.16
Screen Multiuser - Reminder
Hier ist die Anleitung. Zur Sicherheit werde ich es bei mir auch noch auszugsweise verewigen...
User1:
Screen mit anderem User teilen:
User2 loggt sich ein:
User1:
screen -S Testscreen
Ctr-A : multiuser on
Screen mit anderem User teilen:
Str.-A :acladd User2
GGfs:
chmod u+s $(which screen)chmod 755 /var/run/screenrm -fr /var/run/screen/*
User2 loggt sich ein:
screen -x User1/Testscreen
8.7.16
Transparente Bridge mit dem RPI
Hier habe ich eine kleine, feine Anleitung gefunden.
Hardware:
RPI mit USB-Ethernet (eth1 - wird automatisch erkannt)
USB WLAN Dongle Dlink (wird auch automatisch erkannt)
Software installieren:
/etc/network/interfaces anpassen:
WPA Passwort für das Wlan-Netzwerk (erforderlich hier zur Fern-Administration) erstellen mit
und in die Datei wpa_supplicant.conf einfügen
Wenn Wlan läuft, kann man sich per SSH einloggen und den RPI rebooten bzw. das Netzwerk br0 hochfahren mit
Hardware:
RPI mit USB-Ethernet (eth1 - wird automatisch erkannt)
USB WLAN Dongle Dlink (wird auch automatisch erkannt)
Software installieren:
apt-get install bridge-utils tcpdump
/etc/network/interfaces anpassen:
############ WLAN
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
########## Bridge
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
bridge_stp on
WPA Passwort für das Wlan-Netzwerk (erforderlich hier zur Fern-Administration) erstellen mit
wpa_passphrase 'SSID des Routerst' 'Passwort'
und in die Datei wpa_supplicant.conf einfügen
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Name des Routers"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk=[erstellt mit WPA-pass] }
Wenn Wlan läuft, kann man sich per SSH einloggen und den RPI rebooten bzw. das Netzwerk br0 hochfahren mit
ifup br0 (als root)
19.5.16
Bitcoin - Bruteforce wallet - BitcoinD installieren
Hier ist der Sourcecode für Unix Maschinen.
Nötig ist die Installation der SSL libs
apt-get install libssl-dev
sowie der Berkeley DB
apt-get install make
apt-get install libdb6.0++-dev
Configure, Make, Make install
Bitcoind installieren
Hier gehts zur Anleitung.
Nötig ist die Installation der SSL libs
apt-get install libssl-dev
sowie der Berkeley DB
apt-get install make
apt-get install libdb6.0++-dev
Configure, Make, Make install
Bitcoind installieren
Hier gehts zur Anleitung.
sudo add-apt-repository
ppa:bitcoin/bitcoin7.4.16
zPanel mit SSL - Part 2
Nach der Installation mehrerer Zertifikate von letsencrypt hatte ich zunächst mit "Override a Virtual Host Setting" diese eingefügt.
Das klappte aber nur bedingt. Trotz nahezu identischer Einstellungen konnte man manchmal per https zugreifen und gleichzeitig per http, aber manchmal komischerweise nicht.
Außerdem wurde bei manchen Domains das CSS nicht mehr richtig angezeigt.
Hier nun eine (wie immer geklaute) Anleitung, mit der es klappen soll.
Meine Zertifikate für jede Domain liegen in
Dort relevant fullchain.pem und privkey.pem.
Damit das Ganze mehr oder weniger automatisiert abläuft, habe ich mir eine SSL-Vorlage erstellt:
Dann habe ich ein Verzeichnis
Damit diese includiert werden einfach in die
folgende Zeile einfügen:
Das nachfolgende Script (create-ssl-domain.sh) erwartet als ersten Parameter die Domain, für die ein SSL-Eintrag eingerichtet werden soll:
Ausführbar machen, dann ausführen mit
und schwups, eine neue Konfiguration ist angelegt und wenn die entsprechenden Zertifikate vorhanden sind, meckert der Apache bei einem
auch nicht!
Das klappte aber nur bedingt. Trotz nahezu identischer Einstellungen konnte man manchmal per https zugreifen und gleichzeitig per http, aber manchmal komischerweise nicht.
Außerdem wurde bei manchen Domains das CSS nicht mehr richtig angezeigt.
Hier nun eine (wie immer geklaute) Anleitung, mit der es klappen soll.
Meine Zertifikate für jede Domain liegen in
/etc/letsencrypt/live/[DOMAIN]
Dort relevant fullchain.pem und privkey.pem.
Damit das Ganze mehr oder weniger automatisiert abläuft, habe ich mir eine SSL-Vorlage erstellt:
# DOMAIN: NEWDOMAIN
<virtualhost *:443>
ServerName NEWDOMAIN
ServerAlias NEWDOMAIN www.NEWDOMAIN
ServerAdmin admin@localhost.de
DocumentRoot "/var/zpanel/hostdata/zadmin/public_html/NEWPATH"
php_admin_value open_basedir "/var/zpanel/hostdata/zadmin/public_html/NEWPATH:/var/zpanel/temp/"
php_admin_value suhosin.executor.func.blacklist "passthru, show_source, shell_exec, system, pcntl_exec, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg, exec"
ErrorLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-error.log"
CustomLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-access.log" combined
CustomLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-bandwidth.log" common
<Directory />
Options FollowSymLinks Indexes
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
AddType application/x-httpd-php .php3 .php
ScriptAlias /cgi-bin/ "/_cgi-bin/"
<location /cgi-bin>
AddHandler cgi-script .cgi .pl
Options ExecCGI -Indexes
</location>
DirectoryIndex index.html index.htm index.php index.asp index.aspx index.jsp index.jspa index.shtml index.shtm
# Custom Global Settings (if any exist)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/NEWDOMAIN/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/NEWDOMAIN/privkey.pem
# Custom VH settings (if any exist)
</virtualhost>
# END DOMAIN: NEWDOMAIN
Dann habe ich ein Verzeichnis
/etc/zpanel/configs/apache/ssl_enablederstellt, in dem dann die SSL-Konfigurationen hineinkopiert werden sollen.
Damit diese includiert werden einfach in die
/etc/zpanel/configs/apache/http.conf
folgende Zeile einfügen:
# Custom SSL Apache config
Include /etc/zpanel/configs/apache/ssl_enabled
Das nachfolgende Script (create-ssl-domain.sh) erwartet als ersten Parameter die Domain, für die ein SSL-Eintrag eingerichtet werden soll:
#!/bin/bash
CONFIGPATH=/etc/zpanel/configs/apache/ssl_enabled
VORLAGE=/etc/zpanel/configs/apache/VORLAGE
domainstring="s/NEWDOMAIN/$1/g"
replacepath=`echo $1 | sed 's/\./_/g'`
pathstring="s/NEWPATH/$replacepath/g"
if [ ! "$1" ]; then
echo "Fehler! Domain übergeben!"
exit 0
fi
echo "Bereite SSL für Domain " $1 "vor"
sed -e $domainstring -e $pathstring $VORLAGE > $CONFIGPATH/$1.conf
Ausführbar machen, dann ausführen mit
create-ssl-domain.sh [DOMAIN]
und schwups, eine neue Konfiguration ist angelegt und wenn die entsprechenden Zertifikate vorhanden sind, meckert der Apache bei einem
service apache2 restart
auch nicht!
6.4.16
SSL mit Postfix
Das Postfixbuch ist das Mittel der Wahl bei der Installation von Postfix.
Auf Seite 595 ff. der 3. Auflage ist auch beschrieben, wie man Zertifikate erstellt.
Leider hat sich dabei ein kleiner Fehler eingeschlichen, der natürlich in einer neueren Version wieder ausgebügelt sein wird (nicht Peer? ;)).
Also zum Mitschreiben.....
Neues CA erstellen (Pfad stammt aus einer Ubuntu Installation)
Request erstellen
Wichtig
Common Name (e.g. server FQDN or YOUR name) []:
Hier muss der FQDN des Mailservers stehen, z.B. mx1.example.com
Dann das Client Zertifikat signieren mit
Nun muss man noch das Passwort des neuen Zertifikates entfernen, damit Postfix ohne Rückfrage starten kann.
Hier fehlen im Postfixbuch die Anweisungen -in und -out.
Damit nicht jeder lesen kann, die Rechte mit
setzen. Auch im Verzeichnis demoCA (falls angelegt) und demoCA/private.
In Postfix braucht es nur eine Anweisung und drei Pfade:
Wenn Dovecot installiert ist, kann man die gleichen Zertifikate zum Abruf der Emails verwenden.
Datei:
/etc/dovecot/conf.d/10-ssl.conf
SSL aktivierern dort mit
Verbindung testen:
Auf Seite 595 ff. der 3. Auflage ist auch beschrieben, wie man Zertifikate erstellt.
Leider hat sich dabei ein kleiner Fehler eingeschlichen, der natürlich in einer neueren Version wieder ausgebügelt sein wird (nicht Peer? ;)).
Also zum Mitschreiben.....
Neues CA erstellen (Pfad stammt aus einer Ubuntu Installation)
/usr/lib/ssl/misc/CA.pl -newca
Request erstellen
/usr/lib/ssl/misc/CA.pl -newreq(Passwort des Root CA angeben)
Wichtig
Common Name (e.g. server FQDN or YOUR name) []:
Hier muss der FQDN des Mailservers stehen, z.B. mx1.example.com
Dann das Client Zertifikat signieren mit
/usr/lib/ssl/misc/CA.pl -sign
Nun muss man noch das Passwort des neuen Zertifikates entfernen, damit Postfix ohne Rückfrage starten kann.
Hier fehlen im Postfixbuch die Anweisungen -in und -out.
openssl rsa -in newkey.pem -out key.pem
Damit nicht jeder lesen kann, die Rechte mit
chmod 400 *.pem
setzen. Auch im Verzeichnis demoCA (falls angelegt) und demoCA/private.
In Postfix braucht es nur eine Anweisung und drei Pfade:
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_cert_file = /etc/postfix/cert.pem
smtpd_tls_key_file = /etc/postfix/ssl/key.pem
smtpd_use_tls = yes
Wenn Dovecot installiert ist, kann man die gleichen Zertifikate zum Abruf der Emails verwenden.
Datei:
/etc/dovecot/conf.d/10-ssl.conf
## Meine Zertifikate
ssl_cert = </etc/postfix/cert.pem
ssl_key = </etc/postfix/key.pem
SSL aktivierern dort mit
ssl = yes (oder required)Protokoll ergänzen in der dovecot.conf
protocols = imap pop3 lmtp sieve imaps
Verbindung testen:
openssl s_client -starttls smtp -crlf -connect localhost:25
5.4.16
Über Konsole mit TLS auf Mailserver einloggen
Einloggen mit TLS
Username&Passwort base64 codieren
Zertifikat auf dem Server überprüfen
Oder so:
openssl s_client -host mail.irgend.wo -port 25 -starttls smtp
ehlo test
AUTH PLAIN [Benutzer|Passwort - base64]
Username&Passwort base64 codieren
echo -ne "\0mail@test.de\0password"|base64
Zertifikat auf dem Server überprüfen
Dann ctrl-D drücken....
apt-get install gnutls-bin
gnutls-cli -s -p smtp mail.picoda.de
Oder so:
openssl x509 -noout -in [PFAD ZUM ZERTIFIKAT] -subject -issuer -dates
31.3.16
Putty / Kitty Konfiguration sichern / kopieren
Nach jahrelanger Nutzung von Putty bin ich vollends auf Kitty umgestiegen, da es einige Funktionen bietet, die über die von Putty hinausgehen.
Hier kann man sich darüber informieren.
Eines der "Probleme", die insbesondere bei extensiver Nutzung von eingetragenen Port-Forwardings auftauchen ist die Frage, wie ich mal schnell eine Session kopieren kann.
Das ist unter Kitty (ich nutze die portable Version) ganz einfach.
Man muss einstellen, dass die Sessions nicht irgendwo in der Registry versteckt werden, sondern in einem Ordner.
Hier ist die Anleitung dazu (kitty.ini -> savemode=dir).
Danach kann ich die erstellten Sessions, die im Ordner von Kitty/Sessions aufgeführt sind, ganz normal kopieren und die Einstellungen bleiben erhalten für andere Sessions.
Hier kann man sich darüber informieren.
Eines der "Probleme", die insbesondere bei extensiver Nutzung von eingetragenen Port-Forwardings auftauchen ist die Frage, wie ich mal schnell eine Session kopieren kann.
Das ist unter Kitty (ich nutze die portable Version) ganz einfach.
Man muss einstellen, dass die Sessions nicht irgendwo in der Registry versteckt werden, sondern in einem Ordner.
Hier ist die Anleitung dazu (kitty.ini -> savemode=dir).
Danach kann ich die erstellten Sessions, die im Ordner von Kitty/Sessions aufgeführt sind, ganz normal kopieren und die Einstellungen bleiben erhalten für andere Sessions.
11.3.16
FFP mit NAS 540 - Fix von uwsiteloader.sh
Installation des externen Repos von Mijzelf:
Link
Link
mkdir /i-data/sysvol/admin/zy-pkgs
echo "http://zyxel.diskstation.eu/Users/Mijzelf/zypkg-repo/" > /i-data/sysvol/admin/zy-pkgs/web_prefix
echo "http://zyxel.diskstation.eu/Users/Mijzelf/zypkg-repo/" > /i-data/sysvol/admin/zy-pkgs/web_prefix
Fehler:
uwsiteloader.sh -- no checksum
Ändern:
wget http://wolf-u.li/u/439 -O $TMPFILE1 || --no-check-certificate -> aber falsche Links
daher:
wget http://ffp.picoda.de/ffp-list -O $TMPFILE1
Links angepasst:
FFP
http://zyxel.diskstation.eu/Users/Mijzelf/FFP/
/ffp/funpkg/cache/sites
Alt:
s rsync://ffp.inreto.de/ffp/0.7/arm/packages
mz http://downloads.zyxel.nas-central.org/Users/Mijzelf/FFP-Stick/packages/0.7/arm
mz http://downloads.zyxel.nas-central.org/Users/Mijzelf/FFP-Stick/packages/0.7/arm
Neu:
s rsync://ffp.inreto.de/ffp/0.7/arm/packages
mz http://zyxel.diskstation.eu/Users/Mijzelf/FFP/packages/0.7/arm/
uli rsync://funplug.wolf-u.li/funplug/0.7/arm/packages
mz http://zyxel.diskstation.eu/Users/Mijzelf/FFP/packages/0.7/arm/
uli rsync://funplug.wolf-u.li/funplug/0.7/arm/packages
5.2.16
zPanel - SSL Verbindung mit letsencrypt
Anhand dieser Anleitung habe ich die entsprechenden Zertifikate erstellt.
Hier wird beschrieben, wie diese dann in zPanel eingebunden werden.
Meine Config sieht dann so aus:
Port Override 443
ServerName picoda.de
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/picoda.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/picoda.de/privkey.pem
DocumentRoot "/var/zpanel/hostdata/zadmin/public_html/picoda_de"
Diese Änderungen werden vom Cron-Daemon alle 5 Minuten in die /etc/httpd-vhosts.conf Datei geschrieben.
Der Daemon kann händisch gestartet werden mit
Hier wird beschrieben, wie diese dann in zPanel eingebunden werden.
Meine Config sieht dann so aus:
Port Override 443
ServerName picoda.de
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/picoda.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/picoda.de/privkey.pem
DocumentRoot "/var/zpanel/hostdata/zadmin/public_html/picoda_de"
Diese Änderungen werden vom Cron-Daemon alle 5 Minuten in die /etc/httpd-vhosts.conf Datei geschrieben.
Der Daemon kann händisch gestartet werden mit
/usr/bin/php -q /etc/zpanel/panel/bin/daemon.phpEr ist als Cronjob in /etc/cron.d/zdaemon definiert.
Abonnieren
Posts (Atom)
Openhab und Ecoflow Max - API Anbindung
Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...
-
Nach jahrelanger Nutzung von Putty bin ich vollends auf Kitty umgestiegen, da es einige Funktionen bietet, die über die von Putty hinausgehe...
-
Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...
-
Zuerst wollte ich sipcmd nach dieser Anleitung installieren, doch es trat folgender Fehler auf: src/includes.h:23:19: fatal error: ptli...