Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
gelöstRootserver mit Debian 13 (Trixie) *FULL ENCRYPTED* inkl. Firewall/fail2ban und OSCam
Angemieteten "Dedicated Rootserver"/VPS vollverschlüsseln via "Rescue-System"
Iptables- (Firewall-)Skript zur Absicherung des Servers
fail2ban um ungewünschte Login Versuche auszusperren
Installation von IPC oder simplebuild3 zum "selbstbacken" von OSCam
Vorteile:
Kein Realtime-Monitoring durch Provider
Kein Provider-Kernel
Download von Paketen nicht über Provider, sondern direkt über Debian
Direkter SSH-Zugang als Superuser root
Möglichst unabhängig von Provider-Infrastruktur
Minimalsystem
Komplett verschlüsselter Root-Server mit Entschlüsselung über SSH
Ich habe mir hierfür einen VPS (
Sie müssen registriert sein, um Links zu sehen
1€/Monat) bei netcup zugelegt, ihr könnt theoretisch jeden Anbieter nehmen, er sollte euch jedoch ein Rescue-System Zugang anbieten.
Warum sollte ich einen VPS verwenden?
- In meinem Fall um die Verfügbarkeit des Servers noch weiter zu erhöhen, da der VPS immer verfügbar für meine Clients ist und ich die lokalen Karten auf zwei getrennte Netzwerke verteilen kann.
Fällt ein lokaler Server mal aus oder muss gewartet werden, greifen die Clients nur noch auf die Karten des zweiten lokalen Server und bemerken somit nichts davon das der erste lokale Server aktuell mal nicht verfügbar ist.
Voraussetzung dafür ist natürlich das man von seinen Karten zwei gleiche besitzt (Zweitkarte) um sie auf die beiden lokalen Server aufteilen zu können.
Aber auch wenn ihr vielleicht Karten mit anderen Usern "tauscht" hat der VPS einen rießen Vorteil für euch, da die Tausch Verbindung nun über den VPS läuft und dadurch immer aktiv bleibt.
Wichtig vorab:
Bevor wir zusammen nun starten...
Öffnet auf eurem Rechner einen Texteditor eurer Wahl.
Für Windows ist Notepad++ und für macOS ist Visual Studio Code eine gute Wahl dafür.
Kopiert ALLE Befehle und ALLE Ausgaben die ihr bei der Installation erlebt direkt in diese Textdatei hinein. Beispiel:
Befehl 1
Ausgabe 1
--------------
Befehl 2
Ausgabe 2
Nano Crash Kurs:
In der Anleitung habe ich den nano Editor verwendet, ihr könnt natürlich auch andere wie vi verwenden.
Die wichtigsten nano Befehle will ich hier kurz auflisten, sodass ich sie nicht immer wieder in der Beschreibung erwähnen muss.
STRG + X: Datei schließen (wenn nicht gespeichert, fragt er nach)
STRG + O: Datei speichern
STRG + W: Datei durchsuchen
STRG + K: aktuelle Zeile ausschneiden/löschen
STRG + A: Zum Zeilenanfang springen.
STRG + E: Zum Zeilenende springen.
So nun aber let's gooo....
Changelog...
Code:
21.01.2026 - vps_autounlock.sh Skript hinzugefügt
10.12.2025 - Upgrade auf Debian 13 (Trixie) hinzugefügt
08.08.2025 - firewall_control Skript hinzugefügt
22.03.2025 - Spoiler entfernt
05.03.2025 - Command fix in Thema 1 - Schritt 25.1
03.03.2025 - Hinweis auf Festplattenbezeichnung hinzugefügt
01.03.2025 - Nano Editor Tipps hinzugefügt
28.02.2025 - Erste Version der Anleitung
###########################
### Thema 1: Installation des VPS
1. Installiert auf dem VPS zunächst ein normales Debian 12 Bookworm zu finden unter Media -> Images...
Sie müssen registriert sein, um angehängte Bilder zu sehen
2. Ist die Installation abgeschlossen, könnt ihr euch entweder direkt per VNC über General -> klick auf das "Schwarze Fenster" in Debian einloggen oder ihr geht über SSH drauf...
Sie müssen registriert sein, um angehängte Bilder zu sehen
3. Ihr benötigt nun den Inhalt folgender Dateien, gibt dafür folgende Befehle nacheinander ein und sichert euch die Ausgabe in eure Textdatei...
Code:
cat /etc/resolv.conf
hostname
cat /etc/network/interfaces
ls -l /etc/network/interfaces.d
cat /etc/network/interfaces.d/*
4. Habt ihr alle notwendigen Information gesammelt und gesichert können wir in das Rescue-System booten.
Geht dafür auf Media -> Rescue System und drückt auf den Activate Button
Sie müssen registriert sein, um angehängte Bilder zu sehen
5.1. Euch wird ein temporäres "Root Passwort" angezeigt, sichert euch diesen weg, den benötigt ihr um euch nun per SSH einzuloggen...
Sie müssen registriert sein, um angehängte Bilder zu sehen
6.1. Seid ihr nun eingeloggt fangen wir mit der Partitionierung der Festplatte des VPS an... Hinweis: hier im Beispiel hat mein VPS die Festplattenbezeichnung vda und die partitionen dadurch vda1, vda2 und vda3.
Ändert in allen Befehlen überall das vda auf eure Festplattenbezeichnung um!
Code:
cfdisk -z
6.2. Wählt bei Select label type hier gpt aus.
6.3. Für die 1te Partition (/dev/vda1):
wählt am unteren Rand New aus
gibt 1G ein
6.4. Für die 2te Partition (/dev/vda2):
wählt zunächst den freien Speicher aus
dann am unteren Rand New aus
gibt 512MB ein
dann am unteren Rand Type aus
wählt Linux Swap aus
6.5. Für die 3te Partition (/dev/vda3):
wählt zunächst den freien Speicher aus
dann am unteren Rand New aus
drückt einfach Enter um den vollen Restspeicher zu belegen
6.6. Wählt nun am unteren Rand Write aus und bestätigt mit yes
6.7. verlasst den Partitionsmanager mit Quit
7.1. Nun formatieren wir zunächst die 1te Partition für das unverschlüsselte Boot - Dropbear / Minimalsystem... Hinweis: Festplattenbezeichnung kontrollieren!
Code:
mkfs.ext4 /dev/vda1
7.2. Bestätigt die Frage mit y
8. Erstellt euch ein Passwort, das mindestens 100 Zeichen enthält, z.B. über folgende Webseite:
Sie müssen registriert sein, um Links zu sehen
9.1. Nun formatieren wir als nächstes die 3te Partition und verschlüsseln diese dabei auch gleich... Hinweis: Festplattenbezeichnung kontrollieren!
Code:
cryptsetup luksFormat --type luks1 /dev/vda3
9.2. bestätigt die Frage mit YES
9.3. gibt nun euer generiertes100 Zeichen Passwort ein
10.1. Öffnet nun die verschlüsselte Partition... Hinweis: Festplattenbezeichnung kontrollieren!
Code:
cryptsetup luksOpen /dev/vda3 vda3_crypt
10.2. gibt zum entschlüsseln euer generiertes100 Zeichen Passwort ein
11. Formatiert im Anschluß die Parition... Hinweis: Festplattenbezeichnung kontrollieren!
Code:
mkfs.ext4 /dev/mapper/vda3_crypt
12. Als nächstes müssen die Verzeichnisse eingebunden werden... Hinweis: Festplattenbezeichnung kontrollieren!
Code:
mount /dev/mapper/vda3_crypt /mnt
mkdir /mnt/boot
mount /dev/vda1 /mnt/boot
mount -t tmpfs none /tmp
13. Die Installation von Debian 8 (Jessie) erfolgt über Debootstrap...
Code:
cd /tmp
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
wget http://archive.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.67_all.deb
14. entpackt nun die Pakete...
Code:
ar -xf debootstrap_1.0.67_all.deb
tar xzf data.tar.gz
tar xzf control.tar.gz
15. Nun prüft ihr ob die Pakete unverändert im System angekommen sind... Hinweis: keine Ausgabe ist ein gutes Zeichen
16.2. ändert folgende beiden Zeilen um...
Zeile 17:
Code:
DEBOOTSTRAP_DIR=/tmp/usr/share/debootstrap
Zeile 29:
Code:
DISABLE_KEYRING ="1"
17. Um sicherzugehen, dass nur offizielle Pakete ohne "Backdoors" auf dem neuen System installiert werden, müssen die Signaturen aller Pakete geprüft werden.
33.2. Bei der Installation von Grub werdet Ihr gefragt, wohin es installiert werden soll.
Da die meisten nur eine Festplatte nutzen, wählt Ihr bitte /dev/vda aus und bestätigt mit OK.
34.1. Öffnet nun folgende Datei um den Remote-Unlock zu konfigurieren...
Code:
nano /etc/initramfs-tools/initramfs.conf
34.2. sucht nach der Zeile mit DEVICE und ersetzt diese mit folgendem...
38.3. jetzt sollte euer VPS Server mit Debian 8 (Jessie) booten. Hinweis: dies könnt ihr auch parallel im VNC Fenster unter General -> klick auf das "Schwarzes Fenster" verfolgen.
39.1. loggt euch nun ohne RSA-Key mit dem Debian 8 per SSH mit eurem erstellten User ein...
Code:
ssh bernd@IPvomVPS
39.2. wechselt nun zum Superuser root...
Code:
su -
########################
## Optional: Autostart des VPS
Nutzt dieses Skript alls ihr wollt das euer lokaler Server den VPS automatisch entsperrt.
Als Grund wäre wenn dieser zum Beispiel vom Provider neugestartet wurde.
40. erstellt auf eurem lokalen Server ein vps_autounlock.sh Skript...
Code:
touch /var/emu/script/vps_autounlock.sh
41. setzt passende Berechtigung für das vps_autounlock.sh Skript...
Code:
chmod +x /var/emu/script/vps_autounlock.sh
42. öffnet nun das vps_autounlock.sh Skript...
Code:
nano /var/emu/script/vps_autounlock.sh
43. fügt folgenden Skriptinhalt ein... Hinweis: ihr müsst lediglich die Variablen VPS_IP, DEBIAN_PORT und LUKS_PASS mit euren Werten ändern.
Code:
#!/bin/bash
# --- KONFIGURATION ---
VPS_IP="EureVPS_IP"
DROPBEAR_PORT="22" # Port für Dropbear (Initramfs)
DEBIAN_PORT="EuerDebianPort" # Port für fertiges Debian
VPS_USER="root"
SSH_KEY="$HOME/.ssh/id_rsa_vps"
LUKS_PASS="Euer100UnlockKey"
SSH_OPTS_UNLOCK="-i $SSH_KEY -p $DROPBEAR_PORT -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 -o LogLevel=ERROR"
# --- LOGGING FUNKTION ---
# Gibt Text nur aus, wenn das Script manuell im Terminal gestartet wird.
# Im Cronjob bleibt es stumm.
log() {
if [ -t 1 ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1"
fi
}
# --- SCHRITT 1: Prüfen, ob Debian läuft (Bash only) ---
if timeout 2 bash -c "</dev/tcp/$VPS_IP/$DEBIAN_PORT" >/dev/null 2>&1; then
log "STATUS: RUNNING (Debian Port $DEBIAN_PORT offen). Nichts zu tun."
exit 0
fi
# --- SCHRITT 2: Prüfen, ob Dropbear läuft (Bash only) ---
if timeout 2 bash -c "</dev/tcp/$VPS_IP/$DROPBEAR_PORT" >/dev/null 2>&1; then
# Prüfen auf passfifo
IS_LOCKED=$(ssh $SSH_OPTS_UNLOCK "$VPS_USER@$VPS_IP" "test -p /lib/cryptsetup/passfifo && echo 'LOCKED'")
if [ "$IS_LOCKED" == "LOCKED" ]; then
log "STATUS: LOCKED (Dropbear auf Port $DROPBEAR_PORT). Sende Passwort..."
if ssh $SSH_OPTS_UNLOCK "$VPS_USER@$VPS_IP" "echo -n '$LUKS_PASS' > /lib/cryptsetup/passfifo"; then
log "AKTION: Passwort gesendet."
else
log "ERROR: Fehler beim Senden."
fi
else
log "WARNING: Dropbear Port ($DROPBEAR_PORT) offen, aber System wartet nicht auf Passwort."
fi
else
log "STATUS: OFFLINE (Kein Port erreichbar)."
exit 0
fi
###########################
## Upgrade auf Debian 9 (Stretch)
3.1 öffnet die Paketliste...
Code:
nano /etc/apt/sources.list
3.2. ersetzt den Inhalt komplett gegen folgenden...
Code:
# Debian 9 (Stretch)
deb http://archive.debian.org/debian stretch main contrib non-free
deb-src http://archive.debian.org/debian stretch main contrib non-free
deb http://archive.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://archive.debian.org/debian-security stretch/updates main contrib non-free
4.1. aktualisiert die Pakete und startet das Upgrade...
4.2. die Frage zu "restart services during package..." mit Yes beantworten
4.3. die Frage zu "sshd-config" mit "keep the local version currently installed" beantworten
5.1. prüft nun die installierte Debian Version...
Code:
cat /etc/debian_version
5.2. für Debian 9 sollte folgendes angezeigt werden...
Code:
9.13
6. lasst nun nicht mehr benötigte Pakete automatisch entfernen...
Code:
apt autoremove -y
7. startet das System nun neu...
Code:
reboot
###########################
## Upgrade auf Debian 10 (Buster)
8.1 öffnet die Paketliste...
Code:
nano /etc/apt/sources.list
8.2. ersetzt den Inhalt komplett gegen folgenden...
Code:
# Debian 10 (Buster)
deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
9.1. aktualisiert die Pakete und startet das Upgrade...
9.2. die Frage zu "Configuration file '/etc/initramfs-tools/initramfs.conf" mit N beantworten
9.3. die Frage zu "sshd-config" mit "keep the local version currently installed" beantworten
10.1. prüft nun die installierte Debian Version...
Code:
cat /etc/debian_version
10.2. für Debian 10 sollte folgendes angezeigt werden...
Code:
10.13
11. lasst nun nicht mehr benötigte Pakete automatisch entfernen...
Code:
apt autoremove -y
12. startet das System nun neu...
Code:
reboot
############################
## Upgrade auf Debian 11 (Bullseye)
13.1 öffnet die Paketliste...
Code:
nano /etc/apt/sources.list
13.2. ersetzt den Inhalt komplett gegen folgenden...
Code:
# Debian 11 (Bullseye)
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
14.1. aktualisiert die Pakete und startet das Upgrade...
14.2. die Frage zu "Configuration file '/etc/initramfs-tools/initramfs.conf" mit N beantworten
14.3. die Frage zu "sshd-config" mit "keep the local version currently installed" beantworten
15.1. prüft nun die installierte Debian Version...
Code:
cat /etc/debian_version
15.2. für Debian 11 sollte folgendes angezeigt werden...
Code:
11.11
16. lasst nun nicht mehr benötigte Pakete automatisch entfernen...
18.3. setzt die korrekte Berechtigung auf die Datei...
Code:
chmod 600 /etc/dropbear/initramfs/authorized_keys
18.4. öffnet die alte initramfs Config...
Code:
nano /etc/initramfs-tools/initramfs.conf
18.5. setzt vor die DROPBEAR=y Zeile ein #...
Code:
# DROPBEAR=y
18.6. öffnet die neue initramfs Config...
Code:
nano /etc/dropbear/initramfs/dropbear.conf
18.7. fügt in eine freie Zeile folgendes ein...
Code:
DROPBEAR=y
18.8. nun müssen die Änderungen noch übernommen werden...
Code:
update-initramfs -u
18.9. startet das System nun neu...
Code:
reboot
##############################
## Upgrade auf Debian 12 (Bookworm)
19.1 öffnet die Paketliste...
Code:
nano /etc/apt/sources.list
19.2. ersetzt den Inhalt komplett gegen folgenden...
Code:
# Debian 12 (Bookworm)
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free
20.1. aktualisiert die Pakete und startet das Upgrade...
20.2. die Frage zu "Configuration file '/etc/default/dropbear'" mit N beantworten
20.3. die Frage zu "Configuration file '/etc/initramfs-tools/initramfs.conf" mit N beantworten
20.4. die Frage zu "sshd-config" mit "keep the local version currently installed" beantworten
21.1. prüft nun die installierte Debian Version...
Code:
cat /etc/debian_version
21.2. für Debian 12 sollte folgendes angezeigt werden...
Code:
12.9 (oder höher)
22. lasst nun nicht mehr benötigte Pakete automatisch entfernen...
Code:
apt autoremove -y
23. startet das System nun neu...
Code:
reboot
##############################
## Upgrade auf Debian 13 (Trixie)
24.1 öffnet die Paketliste...
Code:
nano /etc/apt/sources.list
24.2. ersetzt den Inhalt komplett gegen folgenden...
Code:
# Debian 13 (Trixie)
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free
deb-src http://security.debian.org/debian-security trixie-security main contrib non-free
25.1. aktualisiert die Pakete und startet das Upgrade...
25.2. die Frage zu "Configuration file '/etc/crontab'" mit N beantworten
25.3. die Frage zu "sshd-config" mit "keep the local version currently installed" beantworten
26.1. prüft nun die installierte Debian Version...
Code:
cat /etc/debian_version
26.2. für Debian 13 sollte folgendes angezeigt werden...
Code:
13.2 (oder höher)
27. lasst nun nicht mehr benötigte Pakete automatisch entfernen...
Code:
apt autoremove -y
28. startet das System nun neu...
Code:
reboot
Glückwunsch...
ihr habt nun das Thema 2 abgeschlossen.
Ihr besitzt nun:
einen VPS mit Debian 13 (Trixie) das voll verschlüsselt ist
Warum ist das Thema Sicherheit wichtig?
Hier mal ein Beispiel von meinem VPS ohne die Änderung aus diesem Thema.
Führt bei euch folgenden Befehl aus...
Code:
tail -f /var/log/auth.log | grep sshd
Ich habe im Sekundentakt dann folgende Loginversuche sehen können...
Code:
Feb 21 04:07:05 debian sshd[23103]: Invalid user tania from 23.176.184.113 port 60694
Feb 21 04:07:05 debian sshd[23103]: pam_unix(sshd:auth): check pass; user unknown
Feb 21 04:07:05 debian sshd[23103]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost>
Feb 21 04:07:07 debian sshd[23103]: Failed password for invalid user tania from 23.176.184.113 port 60694 ssh2
Feb 21 04:07:09 debian sshd[23103]: Received disconnect from 23.176.184.113 port 60694:11: Bye Bye [preauth]
Feb 21 04:07:09 debian sshd[23103]: Disconnected from invalid user tania 23.176.184.113 port 60694 [preauth]
Feb 21 04:07:21 debian sshd[23105]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost>
Feb 21 04:07:24 debian sshd[23105]: Failed password for root from 74.225.140.185 port 38234 ssh2
Feb 21 04:07:24 debian sshd[23105]: Received disconnect from 74.225.140.185 port 38234:11: Bye Bye [preauth]
Feb 21 04:07:24 debian sshd[23105]: Disconnected from authenticating user root 74.225.140.185 port 38234 [preauth]
Kurz und knapp:
Sichert euren VPS unbedingt mit folgenden Punkten, denn dadurch ist bei mir Ruhe mit solchen ungebetenen "Gästen"
################
## SSH Port ändern
1. öffnet die SSH Config...
Code:
nano /etc/ssh/sshd_config
2. ändert die Zeile Port und die Zeile mit PermitRootLogin um... Hinweis: verwendet einen eigenen Port im Bereich von 1024 - 65535, im Beispiel habe ich einfach 3+Datum von Heute (28.02) verwendet
Durch PermitRootLogin no könnt ihr euch nun nicht mehr per SSH als root einloggen!
Code:
Port 32802
PermitRootLogin no
3. startet den SSH Server danach neu...
Code:
/etc/init.d/ssh restart
4. verbindet euch nun per SSH mit dem gesetzten Port...
Code:
ssh -p 32802 bernd@IPvomVPS
5. wechselt nun zum root User...
Code:
su -
################
## Firewall
6. erstellt ein firewall.sh Skript...
Code:
touch /etc/init.d/firewall.sh
7. setzt passende Berechtigung für das firewall.sh Skript...
Code:
chmod 755 /etc/init.d/firewall.sh
8. öffnet nun euer firewall.sh Skript...
Code:
nano /etc/init.d/firewall.sh
9. fügt folgenden Skriptinhalt ein... Hinweis: ändert die Ports für SSH, Oscam usw. bei EuerPort gegen eure verwendeten um!
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"
# function for logging
logit() {
if [ -n "$1" ]; then
( while read -r line; do
# output to terminal
if [ -t 1 ]; then
echo -e "${line}"
fi
done ) <<< "$1"
else
while read -r line; do
# output to terminal
if [ -t 1 ]; then
echo -e "${line}"
fi
done
fi
}
# wenn iptables nicht installiert, Fehlermeldung ausgeben und abbrechen
if [ -z "$iptables" ]; then
logit "[Error] iptables is not installed or not in the PATH."
exit 1
fi
# wenn iptablesv6 nicht installiert, Fehlermeldung ausgeben und abbrechen
if [ -z "$iptablesv6" ]; then
logit "[Error] iptablesv6 is not installed or not in the PATH."
exit 1
fi
case "$1" in
start)
logit "[+] Waiting 5 seconds..."
sleep 5
logit "[+] 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
#$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 EuerPort -j ACCEPT
#Xtream-Codes
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport EuerPort -j ACCEPT
#OScam Webif
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport EuerPort -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 EuerPort -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 EuerPort -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
logit "[OK] Firewall has been activated, the server is protected."
;;
stop)
logit "[+] 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
logit "[!] Firewall has been stopped, the server is unprotected."
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
logit "[Error] Invalid argument."
logit "Usage: $0 (start|stop|restart)"
exit 1
#;;
esac
exit 0
10. kontrolliert den aktuellen Firewall Zustand...
Code:
iptables -L
11. führt das Firewall Skript aus...
Code:
/etc/init.d/firewall.sh start
12. kontrolliert nun erneut den Firewall Zustand...
Code:
iptables -L
13. öffnet die rc.local Datei...
Code:
nano /etc/rc.local
14. fügt folgendes in eine leere Zeile hinzu, sodass das Skript automatisch beim reboot immer ausgeführt wird...
Code:
# Firewall starten
/etc/init.d/firewall.sh start > /dev/null 2>&1 &
15. erstellt nun noch ein firewall_control.sh Skript...
Code:
touch /var/emu/script/firewall_control.sh
16. setzt passende Berechtigung für das firewall_control.sh Skript...
Code:
chmod 755 /var/emu/script/firewall_control.sh
17. öffnet nun das firewall_control.sh Skript...
Code:
nano /var/emu/script/firewall_control.sh
18. fügt folgenden Skriptinhalt ein...
Code:
#!/bin/bash
case "$1" in
start)
bash /etc/init.d/firewall.sh start
;;
stop)
bash /etc/init.d/firewall.sh stop
;;
edit)
nano /etc/init.d/firewall.sh
;;
*)
echo "=================================================================================================="
echo ""
echo -n "Befehlsliste firewall.sh:"
echo ""
echo ""
echo " start Firewall wird gestartet"
echo " stop Firewall wird angehalt - SERVER IST UNGESCHÜTZT"
echo " edit Firewall-Regeln können angepasst werden"
echo ""
echo "=================================================================================================="
;; esac
exit
19. erstellt nur noch ein Symlink für dieses Skript...
24. ersetzt den sshd Bereich, sodass er mit folgendem Inhalt befüllt ist... Hinweis: bantime habe ich auf 7d = 7 Tage gesetzt, hier könnt ihr auch einen anderen Wert eintragen... Default ist glaube ich 48h = 2 Tage.
Code:
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 7d
findtime = 10m
25. startet nun fail2ban neu...
Code:
systemctl restart fail2ban
26. aktiviert fail2ban...
Code:
systemctl enable fail2ban
27. den Status könnt ihr mit folgenden Befehlen nun prüfen...
Code:
fail2ban-client status
fail2ban-client status sshd
tail -f /var/log/fail2ban.log
Glückwunsch...
ihr habt nun das Thema 3 abgeschlossen.
Ihr besitzt nun:
einen VPS mit Debian 13 (Trixie) das voll verschlüsselt ist
die Sicherheit wurde erhöht
Macht nun mit Thema 4: Installation OSCam weiter...
Hier werden zwei Varianten wie ihr OSCam bauen und in Betrieb nehmen könnt beschrieben.
Nutzt nur eine der beiden Varianten die euch am besten anspricht.
3. führt folgenden Befehl mit eurem eigenen User aus, nicht als root User...
Code:
wget ipc.pebkac.at/ipc/ipcsetup.sh
4.1. startet die IPC Installation...
Code:
sudo bash ipcsetup.sh
4.2. gibt I ein und bestätigt mit Enter...
4.3. dann Dont touch keymap auswählen
4.4. eure gewünschten Cams auswählen, dafür ein * mit der Leertaste setzen
4.5. IPC Erst Config nach euren Wünschen einstellen
5. öffnet die rc.local Datei...
Code:
sudo nano /etc/rc.local
6. fügt den jeweiligen start Zeilen eine Umleitung auf /dev/null ein...
Code:
vorher:
#OScam starten
/bin/oscam start &
nachher:
#OScam starten
/bin/oscam start > /dev/null 2>&1 &
Hinweis:
Eure Oscam Config Dateien kommen in das Verzeichnis...
#########################
## Thema 5: Snapshot des VPS
1.1. geht im Control Center auf Media -> Snapshots
1.2. füllt die Felder name und description aus
1.3. wählt Offline Snapshot aus
1.4. klickt danach auf create snapshot
Sie müssen registriert sein, um angehängte Bilder zu sehen
2. euer System wird nun heruntergefahren und das Snapshot danach erstellt...
Sie müssen registriert sein, um angehängte Bilder zu sehen
3. klickt nun oben auf Snapshots, in der Übersicht sollte euer Snapshot nun zu sehen sein...
Sie müssen registriert sein, um angehängte Bilder zu sehen
Glückwunsch...
ihr habt nun das Thema 4 abgeschlossen!
Ihr besitzt nun:
einen VPS mit Debian 13 (Trixie) das voll verschlüsselt ist
die Sicherheit wurde erhöht
OSCam wurde gebaut und läuft
ein Snapshot vom fertigen Zustand erstellt
Anhänge
Sie müssen registriert sein, um die Liste der Anhänge zu sehen
Frage 1: Ich habe den VPS bei netcup bestellt.
In der Email steht jetzt aber drin, dass Debian 12 Bookworm bereits installiert ist.
Muss ich jetzt trotzdem den 1. Punkt --> "1. Installiert auf dem VPS zunächst ein normales Debian 12 Bookworm zu finden unter Media -> Images..." Antwort: Nein, wenn Debian 12 auf dem VPS schon vorinstalliert ist, kannst du die Schritte 1-3 überspringen und bei Schritt 4 direkt die Werte auslesen.
@axel ich könnte die Befehle auch ohne Spoiler hinterlegen und nur Outputs und Screenshots in Spoiler belassen, von mir aus kein Problem!
Ist das von den Boardregeln so in Ordnung?
Diese Seite verwendet Cookies, um Inhalte zu personalisieren und dich nach einem Login angemeldet zu halten, wenn du registriert bist.
Durch die weitere Nutzung unserer Webseite erklärst du dich damit einverstanden.
Das Digital Eliteboard ist ein kostenloses Forum und ist auf Spenden angewiesen, um sich auch in Zukunft selbst zu finanzieren. Wenn auch du mit dem Digital Eliteboard zufrieden bist, würden wir uns über jede Unterstützung freuen.