Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Laberthread: Rootserver mit Debian Jessie *FULL ENCRYPTED* inkl. Iptables-Firewall...

Code:
/scripts/init-premount/deupts: line 21: mountpoint: not found
Schau dir mal die Zeile 21 an der Datei.
 
Das ist mir auch aufgefallen, dachte das kommt davon da die Partition verschlüsselt ist?

Das einzige was ich noch an der Anleitung tricky fand, der Hinweis bei sda1 das die Partition „bootfähig“ sein muss.
Ist das eine spezielle Option die gesetzt werden muss?

Oder liegt es am Remote-Unlock Teil das etwas verkehrt ist und er dadurch nicht unlocken kann?
 
Zuletzt bearbeitet:
in der deupts Datei finde ich an Line 21 folgendes...
Code:
[...]
20 # If /dev/pts is already mounted, don't re-mount it.
21 mountpoint -q /dev/pts || exit 0
22
23 log_begin_msg "Mounting devpts"
24
25 mkdir -p /dev/pts
26 mount -t devpts none /dev/pts

erklärt mir aktuell leider noch nicht das Problem/Ursache.

ich habe mit Hilfe von DeepSeek als Lösungsvorschlag folgendes Script hinzugefügt...

Code:
root@xxxx:/# which mountpoint
/bin/mountpoint

script...
Code:
nano /etc/initramfs-tools/hooks/mountpoint

scriptinhalt...
Code:
#!/bin/sh
PREREQ=""
prereqs() {
    echo "$PREREQ"
}
case "$1" in
    prereqs)
        prereqs
        exit 0
        ;;
esac

. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/mountpoint /bin

dann noch ausführbar gemacht...
Code:
chmod +x /etc/initramfs-tools/hooks/mountpoint

und initramfs aktualisiert...
Code:
update-initramfs -u

.... nun ist die Fehlermeldung wohl an Stelle 26 für mount und das es busy ist.
Irgendwas fehlt doch oder ist noch verkehrt oder?
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet von einem Moderator:
Ich habe mal nach alternativen zum entsperren geschaut und da wurde mir folgende Variante...
Code:
~ # echo -n 'pass' | /sbin/cryptsetup open /dev/vda3 vda3_crypt --key-file=-
Unsupported LUKS version 2.

Dabei erhalte ich eine Fehlermeldung wegen der LUKS Version !?
Liegt es vielleicht an der LUKS Version, sodass er nicht entsperren kann per Busybox?

eben mal nachgeschaut, ist LUKS 2...
Code:
root@deb12 ~ # cryptsetup luksDump /dev/vda3 | grep "Version"
Version:           2

edit:
DAS
war es !!!
Es lag an der LUKS Version, mit folgendem Befehl wird anstatt LUKS Version 2 die Version 1 verwendet...
Code:
cryptsetup luksFormat --type luks1 /dev/vda3
... alles andere kann identisch bleiben und dann funktioniert der unlock und er bootet endlich!
 
Zuletzt bearbeitet:
Das IPTables Script habe ich von hier genommen...

iptables -L sieht soweit in Ordnung aus... werde aber später nochmal die Script Variante aus der Anleitung testen.

So nun als nächstes Schritt 3 testen mit dem aktuellen simplebuild3 release von hier...
 
Zuletzt bearbeitet:
Ich habe nun erfolgreich von jessie -> stretch -> buster -> bullseye auf bookworm aktualisiert.
Was einem ab dem ersten Upgrade verfolgt, ist folgender Hinweis...
Code:
dropbear: WARNING: Setting DROPBEAR in /etc/initramfs-tools/initramfs.conf is deprecated and will be ignored in a future release

beim upgrade von bullseye auf bookworm wird es dann ernst und man erhält die Meldung...
Code:
dropbear: WARNING: Missing host keys, SSH login to initramfs won't work!
dropbear: WARNING: Invalid authorized_keys file, SSH login to initramfs won't work!

also ist hier spätestens die Zeit die Setting in...
/etc/initramfs-tools/initramfs.conf
... DROPBEAR=y zu korrigieren/anzupassen.

Laut den bekannten KI Tools, soll man unter...
/etc/dropbear/initramfs
... einen eigenen Hostschlüssel erstellen.
Und für die LUKS freischaltung muss noch folgendes gemacht werden...
Code:
cp ~/.ssh/authorized_keys /etc/dropbear/initramfs
chmod 600 /etc/dropbear/initramfs/authorized_keys

Habe mich heute noch nicht weiter damit befasst aber werde ich noch angehen müssen.
Aber solange war ausser beim Upgrade von jessie auf stretch die network settings verloren gegangen, wodurch nur per VNC diese korrigieren konnte.
Ansonsten läuft alles wie firewall scripte und oscam, soweit ich das testen/sehen konnte.
Mit einem aktuellen Bookworm Release wäre ich dann auf dem VPS deutlich beruhigter
 
Zuletzt bearbeitet:
Ok habe nun auch das Dropbear Thema wohl abgeschlossen, ist gar nicht so tricky aber es funktioniert soweit, sodass ich weiterhin nach einem reboot die Partition freischalten kann.
Zunächst extrahiert man den öffentlichen Schlüssel aus seinem bestehenden privaten Schlüssel...
Code:
ssh-keygen -y -f /etc/initramfs-tools/root/.ssh/id_rsa > /tmp/id_rsa.pub
Danach kopiert man den öffentlichen Schlüssel in die authorized_keys-Datei...
Code:
cp /tmp/id_rsa.pub /etc/dropbear/initramfs/authorized_keys
Stellt noch sicher das die Berechtigung nur auf 600 gesetzt sind...
Code:
chmod 600 /etc/dropbear/initramfs/authorized_keys
entfernt die veraltete DROPBEAR=y-Einstellung aus /etc/initramfs-tools/initramfs.conf
Code:
nano /etc/initramfs-tools/initramfs.conf
einfach mit einem # auskommentieren oder die Zeile löschen...
Code:
# DROPBEAR=y
Nun fügt man in die neue dropbear Config den Parameter hinzu...
Code:
nano /etc/dropbear/initramfs/dropbear.conf
den Parameter am Ende der Datei einfügen...
Code:
DROPBEAR=y
dann noch das Initramfs aktualisieren....
Code:
update-initramfs -u

Nun das System rebooten und hoffen das man entsperren kann...
Code:
reboot
 
Zuletzt bearbeitet:
Noch ein weiterer Hinweis erhält man auf das firewall Script aus der Anleitung...
Code:
insserv: warning: script 'firewall.sh' missing LSB tags
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `firewall.sh'
insserv: Default-Stop  undefined, assuming empty stop runlevel(s) for script `firewall.sh'

dafür muss im Script oben lediglich folgendes hinzugefügt werden...
Code:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          firewall
# Required-Start:    $network $syslog
# Required-Stop:     $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/Stop firewall
# Description:       This script manages the firewall rules using iptables.
### END INIT INFO

sleep 5
iptables=$(which iptables)
iptablesv6=$(which ip6tables)

# ... (Rest des Skripts bleibt unverändert)

edit:
ich habe das Firewall Script mal ein wenig erweitert, sodass es für den Nutzer einfacher zu verstehen ist und einige Syntax Probleme dabei behoben.
Zusätzlich habe ich noch den Rate-Limiting Teil von meister85 seiner Script Version hinzugefügt.
Code:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          firewall
# Required-Start:    $network $syslog
# Required-Stop:     $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/Stop firewall
# Description:       This script manages the firewall rules using iptables.
### END INIT INFO

iptables=$(which iptables)
iptablesv6=$(which ip6tables)
#User Definition mit Zugriffen auf spezielle Services
#user="user.dyndns.org,deinedyn.homedns.com"
#(Ist vor Block APNIC eingebaut!)
#sharepartner="bla.dyndns.org"

# wenn iptables nicht installiert, Fehlermeldung ausgeben und abbrechen
if [ -z "$iptables" ]; then
    echo "[Error] iptables is not installed or not in the PATH." >&2
    exit 1
fi

# wenn iptablesv6 nicht installiert, Fehlermeldung ausgeben und abbrechen
if [ -z "$iptablesv6" ]; then
    echo "[Error] iptablesv6 is not installed or not in the PATH." >&2
    exit 1
fi

case "$1" in
start)
echo "[+] Waiting 5 seconds..."
sleep 5
echo "[+] Starting firewall..."
# alle Regeln löschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
#$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptablesv6 -P FORWARD DROP
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
$iptablesv6 -A INPUT -i lo -j ACCEPT
$iptablesv6 -A OUTPUT -o lo -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptablesv6 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#$iptablesv6 -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -P OUTPUT ACCEPT
$iptablesv6 -P OUTPUT ACCEPT

# OpenVPN (IP Adresse ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d 10.20.30.40 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$iptables -A OUTPUT -p icmp --icmp-type 0 -s 10.20.30.40 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22222 -j ACCEPT

#Xtream-Codes (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport PORT -j ACCEPT

#OScam Webif (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport PORT -j ACCEPT

#CCcam Share (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport PORT -j ACCEPT

#Cs378x Share (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport PORT -j ACCEPT

#DROPS (unerwünschte IPs, von denen JEGLICHE Anfragen verworfen werden):
#$iptables -I INPUT --source <IP> -j DROP
#$iptables -I INPUT --source <IP> -j DROP

#Sharepartner Beispiel CE Port 1337
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source $sharepartner -p tcp --dport 1337-j ACCEPT
#Jeder Sharepartner kann somit auf Port 1337 connecten.
#Willst du das es einer nicht mehr tut, dann einfach oben in der Variable den betroffenen Sharepartner entfernen!

#Block APNIC LACNIC
#Hinweis: Blockiert Asien, Südamerika, Mittelamerika, beschränkt Russland bzw. Osteuropa!
APNIC=(
        "1.0.0.0/8"
        "14.0.0.0/8"
        "27.0.0.0/8"
        "36.0.0.0/8"
        "39.0.0.0/8"
        "42.0.0.0/8"
        "43.0.0.0/8"
        "49.0.0.0/8"
        "58.0.0.0/8"
        "59.0.0.0/8"
        "60.0.0.0/8"
        "61.0.0.0/8"
        "101.0.0.0/8"
        "103.0.0.0/8"
        "106.0.0.0/8"
        "110.0.0.0/8"
        "111.0.0.0/8"
        "112.0.0.0/8"
        "113.0.0.0/8"
        "114.0.0.0/8"
        "115.0.0.0/8"
        "116.0.0.0/8"
        "117.0.0.0/8"
        "118.0.0.0/8"
        "119.0.0.0/8"
        "120.0.0.0/8"
        "121.0.0.0/8"
        "122.0.0.0/8"
        "123.0.0.0/8"
        "124.0.0.0/8"
        "125.0.0.0/8"
        "126.0.0.0/8"
        "133.0.0.0/8"
        "150.0.0.0/8"
        "153.0.0.0/8"
        "163.0.0.0/8"
        "171.0.0.0/8"
        "175.0.0.0/8"
        "177.0.0.0/8"
        "179.0.0.0/8"
        "180.0.0.0/8"
        "181.0.0.0/8"
        "182.0.0.0/8"
        "183.0.0.0/8"
        "186.0.0.0/8"
        "187.0.0.0/8"
        "189.0.0.0/8"
        "190.0.0.0/8"
        "200.0.0.0/8"
        "201.0.0.0/8"
        "202.0.0.0/8"
        "203.0.0.0/8"
        "210.0.0.0/8"
        "211.0.0.0/8"
        "218.0.0.0/8"
        "219.0.0.0/8"
        "220.0.0.0/8"
        "221.0.0.0/8"
        "222.0.0.0/8"
        "223.0.0.0/8"
        )

for blockapnic in "${APNIC[@]}"
do
        $iptables -A INPUT --source $blockapnic -j DROP
done

$iptables -N LOGGING
$iptables -A INPUT -j LOGGING
$iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
$iptables -A LOGGING -j DROP
$iptables -A LOGGING -j REJECT

#PING Sperre
$iptables -A INPUT -i eth0 -j REJECT

# SICHERHEIT
$iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
$iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
$iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s

echo "[OK] Firewall has been activated, the server is protected."
;;
stop)
echo "[+] Stopping firewall..."

$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptablesv6 -P INPUT ACCEPT
$iptablesv6 -P OUTPUT ACCEPT
$iptablesv6 -P FORWARD ACCEPT

echo "[!] Firewall has been stopped, the server is unprotected."
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
echo "[Error] Invalid argument."
echo "Usage: $0 (start|stop|restart)"
exit 1
#;;
esac
exit 0
 
Zuletzt bearbeitet:
@axel @Osprey habt ihr was dagegen, wenn ich die Anleitung neu schreibe inklusive dem Weg bis hoch auf Debian 12?
Soweit funktioniert dann auch wie gewohnt fail2ban und alles andere, da die aktuellen Repos/Packages von Debian 12 verfügbar sind

Habe meinen VPS nun paar neu aufgesetzt um die einzelnen Schritte zu checken und soweit sieht es ziemlich gut aus.
Das einzige, man erhält auch mit der aktuellen firewall.sh von euch unmengen fehlgeschlagene ssh login Versuche aus aller Welt.
Daher ist die Kombination aus firewall, fail2ban und korrekter sshd config ziemlich wichtig sonst gehört der VPS schnell jemanden anderem und nicht mehr euch selber
 
Zuletzt bearbeitet:
Erledigt ...
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…