Postfix: Reprozessieren der Queue erzwingen

Postflix ist ein MTA. Manchmal ist es aus veschiedenen Gründen notwendig die Mailqueue zu reprozessieren.

Die Mailqueue kann man einfach mit „mailq“ oder „postqueue -p“ abfragen.

Um die Mailqueue zu reprozessieren einfach folgenden Befehl ausführen:

postqueue -f

In den Logs könnt Ihr den Fortschritt verfolgen:

tail -f /var/log/mail.log

Proxmox LXC Root Disk verkleinern

Wo es bei Proxmox einfach möglich ist, eine disc zu vergößern ist es schwieriger eine „große“ Disc wieder zu verklenern. Im prinzip besteht die Prozedur aus folgenden Schritten:

  1. Container stoppen
  2. Backup Erstellen
  3. Container löschen
  4. Backup wiederherstellen mit verkleinerter Disk
pct stop 106
vzdump 106 -storage local -compress lzo
pct destroy 106
pct restore 106 /var/lib/vz/dump/vzdump-lxc-106-*.tar.zst --rootfs local:10

Im Beispiel oben gibt die local:10 die Größe der neuen Disk in GB an.

Proxmox LXC Root Disk verkleinern

Docker OpenVPN Client Container für jDownloader, Torrent usw.

Um Dockercontainer über einen VPN Container zu routen muss man nicht viel konfigurieren. Am Beispiel von NordVPN erkläre ich wie ihr andere Container, beispielsweise jDownloader über ein VPN Netzwerk routen könnt.

docker run -ti --cap-add=NET_ADMIN --device /dev/net/tun --name vpn -e RECREATE_VPN_CRON="5 */3 * * *" -e RANDOM_TOP=10 -e USER=<username> -e PASS=<password> -d azinchen/nordvpn

Bei dem obigen aufruf ist es wichtig den Name des Containers zu setzen. In meinem Beispiel „vpn“.

Im Anschluss kann man nun jeden belibigen Container and den VPN Client binden. Im folgenden Beispiel verknüpfe ich einen Debian Container mit dem VPN Client. Hier ist es wichtig –net=container:vpn anzugeben.

docker run -it --net=container:vpn -d debian

Startet man ein traceroute im Debian Container sieht man nun, dass Pakete über den VPN tunnel geroutet werden. Jeder Container kann so über den Tunnel geroutet werden.

MySQL/MariaDB – Tabellen von MyISAM nach InnoDB konvertieren

Manchmal ist es notwendig Datenbank/Tabellen zu konvertieren. Kürzlich stand ich vor dem Problem eine Datenbank reparieren zu müssen.

Table 'tablename' is marked as crashed and should be repaired 

Hier die Queries, welche die notwendigen ALTER statements generieren.

InnoDB nach MyISAM


SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=MyISAM;') 
FROM information_schema.TABLES WHERE ENGINE = 'InnoDB';

MyISAM nach InnoDB

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=InnoDB;') 
FROM information_schema.TABLES WHERE ENGINE = 'MyISAM';
MySQL/MariaDB - Tabellen von MyISAM nach InnoDB konvertieren

MotionEye oder Synology Survilance Station

Kürzlich stand ich vor dem Problem mehr als zwei Kameras in einer Überwachungssoftware zu betreiben. Synology bietet mit der Survilance Stattion ein sehr gutes und einfach zu administrierendes Tool an. Leider schlagen die Lizenzen deutlich zu Buche. Aus diesem Grund habe ich mich entschieden eine OpenSouce zu nutzen.

Auf der suche stieß ich auf MotionEye. Ebenso gibt es docker als auch native Versionen. Ich entschied mich, die Last von meinen Server zu „off-loaden“ und nahm eine Raspberry Pi 3, die sowieso im Schrank rum lag.

Zum Einsatz kam nun das fertige Image von Github und dre ganze Prozess, vom Download, Image-Schreiben bis zum booten dauert nur wenige Minuten.

Nun noch die Initiale Konfiguration durchführen und schon ist die kostenlose Survilance Station mit MotionEye online.

Free and Public Filter DNS [NO ADS]

Hallo, Werbung nervt immer! Aus diesem Grund haben sich einige Entwickler zusammen getan, und einen DNS Ad-Blocker etabliert.

Primärer Adguard/DNS Server

IPv4: 137.74.155.255

Web-Statistiken: https://dns1.tschoerner.eu

Datacenter: Roubaix, Frankreich

Sekundärer Adguard/DNS Server

IPv4: 173.249.20.137

Web-Statistiken: https://dns2.tschoerner.eu

Datacenter: Nürnberg, Deutschland

Generelles

Ich benutze diese Adlist: http://git.tschoerner.eu/felix/piholeadlist

Beide Server unterstützen RPL Query’s, und leiten Anfragen an OpenDNS, cloudflar und Google weiter und sind NUR aus Deutschland erreichbar.

Disclaimer

Ich betreibe den Dienst. Daten werden nicht weitergegeben. Für mich sind Netz Neutralität, Privatsphäre und Internet Sicherheit  sehr wichtig, weshalb ich diesen Dienst betreibe.

Da man im Internet typischerweise nichts umsonst bekommt, möchte ich hier ganz besonders noch ein mal betonen, dass keine Daten weitergegeben werden und DU nicht „das Produkt“ bist!

Nichtsdestotrotz betreibe ich diesen Dienst ohne jegliche Granite und unter Ausschluss sämtlicher Haftung.

Um zu starten, kannst Du hier schauen: Setup Pihole

Routing für PrivateInternetAccess/Socks, aber ohne VPN

Hi, heute möchte ich Euch ein kurzes HowTo zusammen stellen, wie Ihr ohne OpenVPN oder l2tp einen Router mittels eines anonymen Socksservers aufsetzt. Ich werde das am Beispiel von Private Internet Access machen, aber es funktioniert natürlich ebenso mit jedem anderen Dienst.

Das Stichwort lautet hier „badvpn-tun2socks“.

Viele von Euch werden das Problem kennen. Ich möchte „anonymer“ im Internet unterwegs sein. Typischerweise wird im gleichen Satz das Wort VPN-Provider mit genannt. Diese Provider nutzen meist OpenVPN als Technologie. Leider müssen somit alle Pakete, sofern AES-NI nicht hardwareseitig unterstützt, von der CPU verarbeitet werden. Dieses ver-/entpacken der Pakete geschieht zudem auch nicht multi-threaded, was dazu führt, dass der Router alles mittels eines CPU-Kerns erledigen muss. Da gerade in bei solchen vorhaben eher auf „alte“ Hardware gesetzt wird, denn diese liegt sowieso im Schrank herum, habe ich dieses Tutorial erarbeitet. Hierbei möchte ich noch 2 Punkte erwähnen. Zu einem ist ein Socks-Tunnel kein 100%iger Schutz. Pakete können dechiffriert werden. Zum anderen bietet die Kombination mit nur einem VPN-Provider weniger Schutz als die Kombination von verschiedenen Diensten.

Nun zum entgeltlichen Tutorial. Ich habe mein Socks-Gateway mit Ubuntu 16.04 realisiert. Der Grund hierfür war einfach, denn das Paket badvpn-tun2socks war direkt verfügbar. Los geht es mit der Installation:

add-apt-repository ppa:hda-me/badvpn-tun2socks
apt-get update
apt install badvpn-tun2socks

Im Anschluss bereite wir das System für das Routing vor. Dazu wird die Datei /etc/sysctl.conf bearbeitet. Hier muss das „#“ vor net.ipv4.ip_forward=1 entfernt werden. Und anschließend die Konfiguration mit sysctl -p übernommen werden.

nano /etc/sysctl.conf

####
net.ipv4.ip_forward=1
####

sysctl -p

Jetzt haben wir schon einen Großteil geschafft. Das System ist vorbereitet. Als nächstes legen wir uns ein Script an, welches das „Fake“-tun Device erzeugt und die Verbindung zum Socks Server herstellt. Hierzu legen wir die Datei /root/restart_socks_Route.sh an.

nano /root/restart_socks_Route.sh

#/bin/bash
/usr/bin/killall badvpn-tun2socks
#Remove default gateway
/sbin/route del -net 0.0.0.0
#Only allow the connection thru my router to dns & Socks-Server
/sbin/route add 46.166.190.150 gw 192.168.178.1 metric 5
/sbin/route add 84.200.69.80 gw 192.168.178.1 metric 5
/sbin/route add 84.200.70.40 gw 192.168.178.1 metric 5
#Announce the DNS-Server
echo "nameserver 84.200.69.80" > /etc/resolv.conf
echo "nameserver 84.200.70.40" > /etc/resolv.conf
#Start the connection to the Socks-Server
/usr/bin/badvpn-tun2socks --loglevel none --tundev tun0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 46.166.190.150:1080 --username XXX --password geheim &
#Ugly but secure ;)
/bin/sleep 1
#Bring up the tun Device
/sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0
#Announce the default Gateway
/sbin/route add default gw 10.0.0.2 metric 6
#Do the Routing stuff
/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Im Script sind folgende Parameter anzupassen. Die IP des Gateways, also eures Routers müsst Ihr ändern. Mein Default Gateway ist 192.168.178.1. Als weiteren Punkt müsst Ihr natürlich die socks-server-addr anpassen. In meinem Beispiel habe ich den Socksserver von PrivateInternetAccess eingetragen (46.166.190.150). Als letztes müsst ihr die Authentifizierung anpassen, für XXX den Usernamen eintragen und euer Passwort.

Als letztes nun das Script ausführbar machen und anstarten.

chmod a+x /root/restart_socks_Route.sh

#Starten des tunnels
/root/restart_socks_Route.sh

Ab jetzt seit ihr sicher … sicherer online im Netz unterwegs. Leider funktionieren traceroute und ping nicht durch diesen Tunnel, aber ihr könnt mit dieser Abfrage eure public Ip bestimmen. Diese sollte nun der IP eures Socks Providers gehören. Ggf. müsst Ihr noch curl installieren.

/usr/bin/curl -t 10 -s http://server4.tschoerner.eu/ip.php

Das Ergebnis könnte so aussehen:

Routing für PrivateInternetAccess/Socks, aber ohne VPN

Hier noch ein Script, welches prüft ob ihr sicher unterwegs seit

#!/bin/bash

localip=$(/usr/bin/dig <Your public DDNS> +short)
remoteip=$(/usr/bin/curl -t 10 -s http://server4.tschoerner.eu/ip.php)

#echo "Local IP:" $localip
#echo "Remote IP:"$remoteip"XXX"

if [[ $localip == $remoteip ]] || [ -z $remoteip ];
then
        echo "not secure"
        echo $localip
        echo $remoteip
else
        echo $localip
        echo "Public IP: "$remoteip
        echo "secure"
fi

Viel Spaß damit! Und bis bald!

Es geht wieder los …

Nach nun einer längeren Pause habe ich wieder Zeit gefunden, meinen Blog weiter zu führen. In nächster Zeit werde ich über einige Themen wie „Privacy beim Surfen“, Virtualisierung, Netzwerktechniken und verschiedene Linux Topics wieder bloggen.

Ein großes Thema meiner Abstinenzzeit war auch das Thema – Hausautomatisierung. Hier habe ich mich speziell mit HomeAssistant, verschiedenen Arduino’s auseinander gesetzt.

Es gibt also viel zu berichten.

VMWare – Shrink/Compact Disk eines Linux Gastes

Im Zeitalter von SSDs ist man wieder mehr darauf bedacht, Speicherplatz zu sparen. Im Normalfall hat man seine VMs ja heutzutage auf eher kleineren SSD liegen, so dass man sicher stellen muss, dass diese Files von Zeit zu Zeit „ge-shrinked“ werden.

Ein einfaches schrinken des Diskfiles unter VMWare führt in den meisten fällen nicht zu gewünschten Ergebnis.

VMWare - Shrink/Compact Disk eines Linux GastesVMWare - Shrink/Compact Disk eines Linux Gastes

So sind beispielsweise nur ~13GB im Gast belegt, das Diskfile ist jedoch ganze 100GB groß. Um für VMWare den freien Speicherplatz zu markieren, muss dieser mit NULL/Zero vollgeschrieben werden. Dies mach aber auch nur sinn, wenn vorher alle Daten an den Anfang des Files verschoben wurden. Somit besteht die Prozedur aus 1. dem Defragmentieren und 2. dem Wipen der Disk, wo sich keine Daten befinden.

# 1. Defragmentieren (no need to un/remount anything)
sudo e4defrag /

#Fehler können ignoriert werden. Symlinks & Devices können nicht defragmentiert werden.

#2. Wipe the unused disk.
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

#3. Starte den VMWare Shrink Prozess
sudo vmware-toolbox-cmd disk shrinkonly

Danach wurden knapp 87GB wieder freigegeben, da diese nicht benutzt wurden.

VMWare - Shrink/Compact Disk eines Linux Gastes