meister85
Boardveteran
- Registriert
- 21. September 2009
- Beiträge
- 7.781
- Reaktionspunkte
- 4.998
- Punkte
- 373
Hallo liebe DEB´ler.
Heute möchte ich euch zeigen, wie ihr euren gemieteten Root-Server per Remote komplett per AES 256 Bit verschlüsselt.
Vorteile:
Als aller erstes müsst ihr folgende Datein sichern:
Dann muss der Server in das Rescue-System gebootet werden. Dies erfolgt über das Webinterface vom jeweiligen Provider.
Nachdem wir uns im Rescue-System angemeldet haben, müssen wir die Partionierung erstellen. Dies erledigen wir mit cfdisk.
sda1
sda2
sda3
Nun müssen diese formatiert werden.
Zunächst die Boot-Partition:
Als nächstes die Systempartition. Zugleich wird diese auch verschlüsselt. Bitte erstellt hierfür ein Passwort mit mindestens einer Länge von 100 Zeichen. Ich nutze z.B. die Webseite
Nachdem das Passwort generiert ist geben wir folgenden Befehl ein:
Hier müssen wir mit YES (Achtung in Großbuchstaben!) bestätigen.
Dann das zuvor generierte Passwort eingeben.
Dann mit folgenden Befehl die Partion öffnen:
Und anschlißend formatieren:
Nun müssen die Verzeichnisse eingebunden werden:
Die Installtion von Debian (Wheezy) erfolgt über Debootstrap.
Anschließend die Dateien entpacken:
Nun prüfen wir, ob der Inhalt des Pakets unverändert im Rettungssystem angekommen ist.
Um mit der Installation fortzufahren müssen wir den Quelltext ein wenig modifizieren:
Bitte folgende Zeilen abändern:
Um sicherzugehen, dass nur offizielle Pakete ohne Backdoors auf dem neuen System installiert werden, müssen die Signaturen aller Pakete geprüft werden.
Nun wird die Installation gestartet:
Anschließend ins chroot wechseln:
Kommt nun keine Fehlermeldung, befindet ihr euch auf ein frisch installiertes Debian-System 64bit.
Password für Root ändern:
Jetzt kommen wir zu der Konfiguration des Basissystems. Hierzu benötigen wir nun die zuvor gesicherten Daten.
Nun müssen wir die crypttab bzw. fstab abändern:
Dort bitte folgendes einpflegen:
Selbe gilt für die fstab:
Jetzt noch die Paket-Liste anpassen:
Und aktualisieren:
Sprache und Zone anpassen:
Sprache = de_DE.UTF-8
Zone = Europa --> Berlin
Jetzt installieren wir den Kernel.
Hierfür erstmal folgenden Befehl:
Und anschlißend:
Installation von wichtigen Paketen:
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/sda aus und bestätigt mit OK.
Jetzt muss der Remote-Unlock eingerichtet werden:
nano /etc/initramfs-tools/initramfs.conf
Nach DEVICE suchen und folgend ergänzen:
Änderungen in das initrd übernehmen:
Jetzt müssen wir den RSA-Key kopieren und am besten in notepad ++ einfügen. Anschließend unter id_rsa abspeichern.
Jetzt müsst ihr Puttygen öffnen und auf Conversations --> Importkey klicken. Anschlißend auf save privatekey. Dieser ist für die Anmeldung notwendig. Ohne diesen Schritt kommt ihr nicht auf dem Server!
Nun noch Grub updaten:
Nun wieder in das Webinterface vom Provider gehen und als Netboot die HDD wieder auswählen!
Anschlißend wie gewohnt rebooten:
Nach einigen Minuten sollte der Server wieder hochgefahren sein.
Es steht euch der Dropbear als SSH im unverschlüsselten Bereich zur Verfügung. Der Dropbear wird über die initrd mit geladen.
Um die Anmeldung erfolgreich abzuschließen benötigt ihr den zuvor gespeicherten private key!
Nachdem ihr euch angemeldet habt, seid ihr im unverschlüsselten minimal SSH des Servers. Nun müsst ihr folgenden Befehl eingeben:
Mit Enter bestätigen. Jetzt bootet der Server erst komplett durch.
Nun Putty schließen und erneut ein loggen. Allerdings nicht mehr mit dem private key sondern mit eurem festgelegten Passwort (siehe Punkt passwd).
Man kann auch hier ein zweites authorized_key nutzen. Bitte hierfür folgendes How-To nutzen.
Heute möchte ich euch zeigen, wie ihr euren gemieteten Root-Server per Remote komplett per AES 256 Bit verschlüsselt.
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
Als aller erstes müsst ihr folgende Datein sichern:
Code:
cat /etc/resolv.conf
hostname
cat /etc/network/interfaces
Dann muss der Server in das Rescue-System gebootet werden. Dies erfolgt über das Webinterface vom jeweiligen Provider.
Nachdem wir uns im Rescue-System angemeldet haben, müssen wir die Partionierung erstellen. Dies erledigen wir mit cfdisk.
Code:
cfdisk -z
sda1
Code:
Größe 1GB
Typ 83 (Wird unverschlüsselte /boot Partition)
Bootfähig
sda2
Code:
Größe 512MB
Typ 83 (wird später verschlüsselter Linux Swap)
sda3
Code:
Größe Rest (wird von cfdisk automatisch vorgeschlagen)
Typ 83 (wird später verschlüsselter Linux Datenbereich)
Nun müssen diese formatiert werden.
Zunächst die Boot-Partition:
Code:
mkfs.ext4 /dev/sda1
Als nächstes die Systempartition. Zugleich wird diese auch verschlüsselt. Bitte erstellt hierfür ein Passwort mit mindestens einer Länge von 100 Zeichen. Ich nutze z.B. die Webseite
Sie müssen registriert sein, um Links zu sehen.
Nachdem das Passwort generiert ist geben wir folgenden Befehl ein:
Code:
cryptsetup luksFormat /dev/sda3
Hier müssen wir mit YES (Achtung in Großbuchstaben!) bestätigen.
Dann das zuvor generierte Passwort eingeben.
Dann mit folgenden Befehl die Partion öffnen:
Code:
cryptsetup luksOpen /dev/sda3 sda3_crypt
Und anschlißend formatieren:
Code:
mkfs.ext4 /dev/mapper/sda3_crypt
Nun müssen die Verzeichnisse eingebunden werden:
Code:
mount /dev/mapper/sda3_crypt /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
Die Installtion von Debian (Wheezy) erfolgt über Debootstrap.
Code:
mount -t tmpfs none /tmp
cd /tmp
wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.67_all.deb
Anschließend die Dateien entpacken:
Code:
ar -xf debootstrap_1.0.67_all.deb
tar xzf data.tar.gz
tar xzf control.tar.gz
Nun prüfen wir, ob der Inhalt des Pakets unverändert im Rettungssystem angekommen ist.
Code:
cat md5sums | cut -d " " -f 3 | xargs md5sum $1 > md5sums.local; diff md5sums md5sums.local
Um mit der Installation fortzufahren müssen wir den Quelltext ein wenig modifizieren:
Code:
nano usr/sbin/debootstrap
Bitte folgende Zeilen abändern:
Code:
DEBOOTSTRAP_DIR=/tmp/usr/share/debootstrap
DISABLE_KEYRING ="1"
Um sicherzugehen, dass nur offizielle Pakete ohne Backdoors auf dem neuen System installiert werden, müssen die Signaturen aller Pakete geprüft werden.
Code:
wget --no-check-certificate https://ftp-master.debian.org/keys/archive-key-6.0.asc
gpg --import archive-key-6.0.asc
Nun wird die Installation gestartet:
Code:
usr/sbin/debootstrap --keyring=/root/.gnupg/pubring.gpg --arch amd64 wheezy /mnt/ http://ftp2.de.debian.org/debian
Anschließend ins chroot wechseln:
Code:
mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t tmpfs none /mnt/tmp
mount -o bind /sys /mnt/sys
LANG=C chroot /mnt /bin/bash
Kommt nun keine Fehlermeldung, befindet ihr euch auf ein frisch installiertes Debian-System 64bit.
Password für Root ändern:
Code:
passwd
Jetzt kommen wir zu der Konfiguration des Basissystems. Hierzu benötigen wir nun die zuvor gesicherten Daten.
Code:
echo [COLOR=#ff0000][I]euerhostname[/I][/COLOR] > /etc/hostname
Code:
echo [COLOR=#ff0000][I]eureipadressevomserver[/I][/COLOR] [COLOR=#ff0000][I]euerhostname[/I][/COLOR] >> /etc/hosts
Code:
cat > /etc/resolv.conf /etc/network/interfaces /etc/default/bootlogd
Nun müssen wir die crypttab bzw. fstab abändern:
Code:
nano /etc/crypttab
Dort bitte folgendes einpflegen:
Code:
sda2_crypt /dev/sda2 /dev/urandom cipher=aes-cbc-essiv:sha256,size=256,swap
sda3_crypt /dev/sda3 none luks
Selbe gilt für die fstab:
Code:
nano /etc/fstab
Code:
/dev/sda1 /boot ext4 noatime 0 2
/dev/mapper/sda2_crypt none swap sw 0 0
/dev/mapper/sda3_crypt / ext4 noatime,defaults,errors=remount-ro 0 1
proc /proc proc defaults
Jetzt noch die Paket-Liste anpassen:
Code:
nano /etc/apt/sources.list
Code:
deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib
deb http://ftp.de.debian.org/debian/ wheezy-updates main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy-updates main non-free contrib
Und aktualisieren:
Code:
aptitude update && aptitude -y upgrade
Sprache und Zone anpassen:
Code:
aptitude -y install locales && dpkg-reconfigure locales
Code:
dpkg-reconfigure tzdata
Sprache = de_DE.UTF-8
Zone = Europa --> Berlin
Jetzt installieren wir den Kernel.
Hierfür erstmal folgenden Befehl:
Code:
cat /proc/mounts > /etc/mtab
Und anschlißend:
Code:
aptitude install -y linux-image-amd64
Installation von wichtigen Paketen:
Code:
aptitude install -y ssh grub-pc pciutils psmisc cryptsetup dropbear busybox
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/sda aus und bestätigt mit OK.
Jetzt muss der Remote-Unlock eingerichtet werden:
nano /etc/initramfs-tools/initramfs.conf
Nach DEVICE suchen und folgend ergänzen:
Code:
DEVICE=eth0
IP=[COLOR=#ff0000][I]ipvomserver[/I][/COLOR]::[COLOR=#ff0000][I]gatewayvomserver[/I][/COLOR]:[COLOR=#ff0000][I]subnetvomserver[/I][/COLOR]:[I][COLOR=#ff0000]hostnamevomserver[/COLOR][/I]:eth0:off
DROPBEAR=y
Änderungen in das initrd übernehmen:
Code:
update-initramfs -u -k all
Jetzt müssen wir den RSA-Key kopieren und am besten in notepad ++ einfügen. Anschließend unter id_rsa abspeichern.
Code:
cat /etc/initramfs-tools/root/.ssh/id_rsa
Jetzt müsst ihr Puttygen öffnen und auf Conversations --> Importkey klicken. Anschlißend auf save privatekey. Dieser ist für die Anmeldung notwendig. Ohne diesen Schritt kommt ihr nicht auf dem Server!
Nun noch Grub updaten:
Code:
update-grub
exit
Nun wieder in das Webinterface vom Provider gehen und als Netboot die HDD wieder auswählen!
Anschlißend wie gewohnt rebooten:
Code:
reboot
Nach einigen Minuten sollte der Server wieder hochgefahren sein.
Es steht euch der Dropbear als SSH im unverschlüsselten Bereich zur Verfügung. Der Dropbear wird über die initrd mit geladen.
Um die Anmeldung erfolgreich abzuschließen benötigt ihr den zuvor gespeicherten private key!
Nachdem ihr euch angemeldet habt, seid ihr im unverschlüsselten minimal SSH des Servers. Nun müsst ihr folgenden Befehl eingeben:
Code:
echo -n „[COLOR=#ff0000][I]das100stelligegeneriertepasswort[/I][/COLOR]" > /lib/cryptsetup/passfifo
Mit Enter bestätigen. Jetzt bootet der Server erst komplett durch.
Nun Putty schließen und erneut ein loggen. Allerdings nicht mehr mit dem private key sondern mit eurem festgelegten Passwort (siehe Punkt passwd).
Man kann auch hier ein zweites authorized_key nutzen. Bitte hierfür folgendes How-To nutzen.
Zuletzt bearbeitet von einem Moderator: