KategorieLinux

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:

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!

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.

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.

tar auf einen remote Server per ssh

Wie kann man per tar direkt auf einen remote Server schreiben? Warum möchte man direkt per tar auf einen remote Server sichern? Diese Fragestellung tritt speziell dann auf, wenn man auf den zu sichernden Server nur wenig verbleibende Disk-Kapazität hat. Typischerweise sind das dann Datenbankserver, oder wie in meinem Fall Webserver, die eine OwnCloud Instanz hosten. Da auch im Web der Festplattenspeicher teuer ist, nutze ich mein NAS zu Hause zu die Daten zu sichern. Hier steht ja in gewissem Maße unbegrenzter Speicherplatz zur Verfügung.

Also gut, dann erzeugen wir ein Archiv und pipen die Ausgabe direkt per SSH auf den Remote Speicher um.

tar zcvf - /var/www/ | ssh -p 22 root@nas.tschoerner.eu "cat > /media/backup/WebServer.tar.gz"

Nun wird das erzeugte Archiv direkt auf den SSH Server umgeleitet.

Müsst Ihr nun ein Backup wieder herstellen, so könnt Ihr das auch, ohne das Archiv kopieren zu müssen:

cd /
ssh -p 22 root@nas.tschoerner.eu "cat /media/backup/WebServer.tar.gz" | tar zxvf -

 

[HowTo] WordPress auf Hiawantha hosten

Kürzlich habe ich meinen WebServer umgestellt und betreibe einen Hiawantha Server. Um WordPress zu betreiben, setze ich mal voraus, dass der Server installiert ist (vergleiche hier), und ihr eine Datenbank angelegt habt.

Nun müsst ihr in der Datei /etc/hiawantha/hiawantha.conf die Rewrite-Rule einfügen:

UrlToolkit {
    ToolkitID = wp-multi
    Match ^/index\.php$ Return
    Match ^/([_0-9a-zA-Z-]+/)?wp-admin$ Redirect /$1wp-admin/
    RequestURI exists Return
    Match ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) Rewrite /$2
    Match ^/([_0-9a-zA-Z-]+/)?(.*\.php)$ Rewrite /$2
    Match .* Rewrite /index.php?$1
}

Jetzt legt Ihr noch ein vHost in der gleichen Konfig an:

VirtualHost {
        Hostname = XXX.tschoerner.eu,*.XXX.tschoerner.eu
        WebsiteRoot = /var/www/XXX.tschoerner.eu/public
        AccessLogfile = /var/www/XXX.tschoerner.eu/log/access.log
        ErrorLogfile = /var/www/XXX.tschoerner.eu/log/error.log
        StartFile = index.php
        TimeForCGI = 60
        UseFastCGI = PHP7 # --> PHP Version
        CustomHeader = X-Frame-Options: sameorigin
        CustomHeader = Vary: Accept-Encoding
        RandomHeader = 64
        UseToolkit = wp-multi # --> This loads the Rewrite Rule
        EnforceFirstHostname = yes
        PreventXSS = yes
        PreventCSRF = yes
        PreventSQLi = yes
}

Nun noch folgende Verzeichnisse anlegen:

mkdir -p /var/www/XXX.tschoerner.eu/log/
mkdir -p /var/www/XXX.tschoerner.eu/public
chown -R www-data:www-data /var/www/XXX.tschoerner.eu

Jetzt WordPress herunterladen:

cd 
wget https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
cd wordpress
mv * ../
cd ..
rm -rf wordpress
rm -rf latest.tar.gz
chown -R www-data:www-data /var/www/XXX.tschoerner.eu

Jetzt Hiawantha einmal neustarten, damit unser vHost erkannt wird.

/etc/init.d/hiawatha restart

Nun kann WordPress installiert werden. Hierzu könnt Ihr einfach eure URL aufrufen, in meinem Fall ist es http://XXX.tschoerner.eu

Wenn ihr WordPress von einem anderen Server umgezogen habt, vergleicht auf den fix der Permalinks.

[HowTo] MySQL/MariaDB User und Datenbank erzeugen

Wenn Ihr einen PHP-Skript (WordPress, Drupal …) auf eurem Server hostet und keine Webhosting Interface nutzt, dann könnt Ihr mit diesen Schritten schnell eine Datenbank & DB-User erstellen. Mit diesen Schritten erzeugt Ihr eine Datenbank & DB-User mit gleichen Namen.

Folgendes nacheinander ausführen und USER_blog und geheim ersetzten.

# mysql

CREATE USER 'USER_blog'@'%' IDENTIFIED BY 'geheim';
GRANT USAGE ON *.* TO 'USER_blog'@'%' IDENTIFIED BY 'geheim' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `USER_blog`;
GRANT ALL PRIVILEGES ON `USER_blog`.* TO 'USER_blog'@'%';
QUIT;

 

[HowTo] Hiawatha auf Debian Jessie (8.x)

Kürzlich habe ich wieder auffällige Http Attacken auf meine WebServer gesehen. Es kam hierbei zu keinem großen Problem, jedoch hab ich mir die Frage gestellt, ob es sicherere WebServer Konfigurationen als der üblichen LAMP (Linux, Apache, MySQL/MaraDB, PHP) , LNMP (…,Nginx,…) oder LLMP (…Lighttpd…) gibt. Hierbei bin ich dann auf einen interessanten Vergleich gestoßen. Natürlich muss man bei der Quelle etwas vorsichtiger sein (ist die Hiawatha projekt page), aber durchaus sehr interessamt.

Link: Performance testing while under attack

Typischerweise sind Webserver, welche seltenere verbreitet sind weniger im Punkt der Angreifer. Zudem ist Hiawatha ein WebServer, welcher auf Sicherheit ausgelegt ist. Hiawatha stammt vom Entwickler Hugo Leisink und wurde wie bereits erwähnt auf Sicherheit getrimmt. Out of the box ist er bereits gegen Denial-of-Service-Attacken gewappnet.

Nachfolgen beschreibe ich die Konfiguration von Hiawatha auf Debian Jessie mit Php5 & Php7.

System Vorbereiten, neue PHP Quellen hinzufügen & PHP5/7 installieren:

echo "deb http://packages.dotdeb.org jessie all" | tee -a /etc/apt/sources.list.d/dotdeb.list
wget -qO - http://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update
apt-get remove apache*
apt-get install php5 php-pear php5-curl php5-mysql php5-fpm  php5-gd mariadb-server libxslt1.1 cron logrotate libpopt0 htop nano
apt-get install php7.0-cli php7.0-curl php7.0-dev php7.0-fpm php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-opcache php7.0-mbstring php7.0-zip

Nun den Webserver herunterladen:

cd ~
wget https://files.tuxhelp.org/hiawatha/hiawatha_10.2_amd64.deb
dpkg -i hiawatha*

Im Großen und Ganzen war es das auch schon, nun geht es an die Konfiguration. Hierbei werde ich die “Standard” Konfiguration von Php-fpm für Version 5 & 7 nutzen. Beide Versionen stellen nach der Installation einen Unix-Socket bereit. Ich trenne die PHP Konfig hier nicht nach Web/User.

PHP5 Default Socket

/var/run/php5-fpm.sock

PHP7 Default Socket

/run/php/php7.0-fpm.sock

Nun den PHP Interpreter in der Hiawatha Konfig bekannt machen:

FastCGIserver {
FastCGIid = PHP5
ConnectTo = /var/run/php5-fpm.sock
Extension = php
}

FastCGIserver {
FastCGIid = PHP7
ConnectTo = /run/php/php7.0-fpm.sock
Extension = php
}

Und im Standard Webserver bekannt machen, unterhalb von:

# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#

folgendes einfügen:

UseFastCGI = PHP7 # --> für PHP7

oder 

UseFastCGI = PHP5 # --> für Php 5.6

Anschließend alle Services einmal neustarten:

/etc/init.d/php7.0-fpm restart
/etc/init.d/php5-fpm restart
/etc/init.d/hiawatha restart

Jetzt noch schnell checken ob Hiawatha auch lauscht:

root@server:~# netstat -anp |grep hiawatha
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9397/hiawatha
tcp6       0      0 :::443                  :::*                    LISTEN      9397/hiawatha
tcp6       0      0 :::80                   :::*                    LISTEN      9397/hiawatha

Wenn Ihr nun im Browser folgendes aufruft http://<serverip> sollte sicher Hiawatha wie folgt melden.

2016-06-13 09_40_51-Hiawatha webserver

Um nun zu testen ob auch PHP funktioniert einfach folgendes ausführen:

echo "<?php phpinfo(); ?>" > /var/www/hiawatha/info.php

Anschließend folgendes im Browser aufrufen: http://<serverip>/info.php

Im besten Fall sieht das Ergebnis wie folgt aus:

2016-06-13 09_55_55-phpinfo()

Limit CPU usage on Linux

Kürzlich stand ich vor dem Problem, dass einer meiner VPS Server immer vom Hoster gestoppt wurde. Dieses Problem tritt häufig auf, wenn bei einem 1 vCPU Server der CPU-load länger als 10 Minuten über 1.00 liegt.

Zur Lösung des Problems habe ich das Tool CPULIMIT entdeckt. Es gibt es auf Ubuntu & Centos / bereits als pre-kompiliertes Paket un kann einfach via apt-get oder yum installiert werden.

yum install cpulimit gawk

Im Anschluss habe ich ein Skript zu start eines Daemon hier /usr/bin/cpulimit_daemon.sh angelegt, mit diesem Inhalt:

#!/bin/bash
# ==============================================================
# CPU limit daemon - set PID's max. percentage CPU consumptions
# ==============================================================

# Variables
CPU_LIMIT=20       	# Maximum percentage CPU consumption by each PID
DAEMON_INTERVAL=3  	# Daemon check interval in seconds
BLACK_PROCESSES_LIST=   # Limit only processes defined in this variable. If variable is empty (default) all violating processes are limited.
WHITE_PROCESSES_LIST=   # Limit all processes except processes defined in this variable. If variable is empty (default) all violating processes are limited.

# Check if one of the variables BLACK_PROCESSES_LIST or WHITE_PROCESSES_LIST is defined.
if [[ -n "$BLACK_PROCESSES_LIST" &&  -n "$WHITE_PROCESSES_LIST" ]] ; then    # If both variables are defined then error is produced.
   echo "At least one or both of the variables BLACK_PROCESSES_LIST or WHITE_PROCESSES_LIST must be empty."
   exit 1
elif [[ -n "$BLACK_PROCESSES_LIST" ]] ; then                                 # If this variable is non-empty then set NEW_PIDS_COMMAND variable to bellow command
   NEW_PIDS_COMMAND="top -b -n1 -c | grep -E '$BLACK_PROCESSES_LIST' | gawk '\$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
elif [[ -n "$WHITE_PROCESSES_LIST" ]] ; then                                 # If this variable is non-empty then set NEW_PIDS_COMMAND variable to bellow command
   NEW_PIDS_COMMAND="top -b -n1 -c | gawk 'NR>6' | grep -E -v '$WHITE_PROCESSES_LIST' | gawk '\$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
else
   NEW_PIDS_COMMAND="top -b -n1 -c | gawk 'NR>6 && \$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
fi

# Search and limit violating PIDs
while sleep $DAEMON_INTERVAL
do
   NEW_PIDS=$(eval "$NEW_PIDS_COMMAND")                                                                    # Violating PIDs
   LIMITED_PIDS=$(ps -eo args | gawk '$1=="cpulimit" {print $3}')                                          # Already limited PIDs
   QUEUE_PIDS=$(comm -23 <(echo "$NEW_PIDS" | sort -u) <(echo "$LIMITED_PIDS" | sort -u) | grep -v '^$')   # PIDs in queue

   for i in $QUEUE_PIDS
   do
       cpulimit -p $i -l $CPU_LIMIT -z &   # Limit new violating processes
   done
done

Um das Skript ausführen zu können müssen noch die Berechtigungen geändert werden:

chmod 755 /usr/bin/cpulimit_daemon.sh

Um nun den Job zu starten einfach ein Skript wie folgt unter /etc/init.d/cpulimit anlegen:

#!/bin/sh
#
# Script to start CPU limit daemon
#
set -e

case "$1" in
start)
if [ $(ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print $1}' | wc -l) -eq 0 ]; then
    nohup /usr/bin/cpulimit_daemon.sh >/dev/null 2>&1 &
    ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print}' | wc -l | gawk '{ if ($1 == 1) print " * cpulimit daemon started successfully"; else print " * cpulimit daemon can not be started" }'
else
    echo " * cpulimit daemon can't be started, because it is already running"
fi
;;
stop)
CPULIMIT_DAEMON=$(ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print $1}' | wc -l)
CPULIMIT_INSTANCE=$(ps -eo pid,args | gawk '$2=="cpulimit" {print $1}' | wc -l)
CPULIMIT_ALL=$((CPULIMIT_DAEMON + CPULIMIT_INSTANCE))
if [ $CPULIMIT_ALL -gt 0 ]; then
    if [ $CPULIMIT_DAEMON -gt 0 ]; then
        ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print $1}' | xargs kill -9   # kill cpulimit daemon
    fi

    if [ $CPULIMIT_INSTANCE -gt 0 ]; then
        ps -eo pid,args | gawk '$2=="cpulimit" {print $1}' | xargs kill -9                    # release cpulimited process to normal priority
    fi
    ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print}' | wc -l | gawk '{ if ($1 == 1) print " * cpulimit daemon can not be stopped"; else print " * cpulimit daemon stopped successfully" }'
else
    echo " * cpulimit daemon can't be stopped, because it is not running"
fi
;;
restart)
$0 stop
sleep 3
$0 start
;;
status)
ps -eo pid,args | gawk '$3=="/usr/bin/cpulimit_daemon.sh"  {print}' | wc -l | gawk '{ if ($1 == 1) print " * cpulimit daemon is running"; else print " * cpulimit daemon is not running" }'
;;
esac
exit 0

Nun noch die Berechtigungen ändern:

chown root:root /etc/init.d/cpulimit

Um das Skript auf CentOs zu starten habe ich es einfach am ende von /etc/rc.config eingefügt. somit wird es nach dem Booten automatisch gestartet und limitiert dann die CPU intensiven Jobs.

Quelle: http://ubuntuforums.org/showthread.php?t=992706

OpenmediaVault, J1900 und der Kernel 4.4

Nach vielen Problemen mit dem 3.16 er Debian Backport Kernel, hatte ich mich im Dezember 2015 dazu entschieden mein NAS auf den 4.x Kernel zu heben. Die war jetzt doch ein längerer Prozess, da es mir einfach nicht gelingen wollte einen Kernel zu bauen welcher von USB bootet.

Es gibt zwar einige Anleitungen wie man den Kernel baut, im speziellen auch für OpenMediaVault, doch leider beinhalten diese keinen USB ohci Treiber. Das System bleibt dann mit folgendem Fehler beim Booten hängen:

modprobe: module ehci-orion not found in modules.dep

2016-03-04 13_18_41-Photo Station 6

Das Problem liegt darin, dass das System das Root-Device nicht findet. Ich boote mein NAS von einem USB Stick am USB3 Port. Nachdem ich nun die USB Storage Module fest im Kernel mit-kompiliere bootet das System auch wieder.

Gerne Stelle ich Euch noch meine “Kernel” für OMV zur Verfügung!

linux-image-4.4.1-amd64_06+custom+fts_amd64.deb

linux-headers-4.4.1-amd64_06+custom+fts_amd64.deb

Installiert werden diese dann mittels des Befehls:

dpkg -i linux-image-4.4.1-amd64_06+custom+fts_amd64.deb linux-headers-4.4.1-amd64_06+custom+fts_amd64.deb

Hier noch ein link zu meinem Kernel-Ordner

Openmediavault Kernel

Bei Kernelversionen > 3.10 (Version 3) und Kernel Versionen > 4.1.6 musste ich mit dem Argument “intel_idle.max_cstate=1” arbeiten. Hierbei steigt jedoch die Stromaufnahme an. Das Setting muss in “/etc/default/grub” eingepflegt werden oder im Bios.

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

ersetzen mit:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=1"

anschließend
update-grub