[Howto] Debian Stretch from Scratch

Sachen die immer wieder gefragt werden.
Antworten
Manuel
Administrator
Beiträge: 6
Registriert: So 8. Okt 2017, 19:40

[Howto] Debian Stretch from Scratch

Beitrag von Manuel » Di 31. Okt 2017, 22:13

1. Grundsätzliches

Dieses Howto beschreibt die Installationen von Debian Stretch auf einem Hetzner Server im Rescue Modus.
Bevor ihr loslegt, beachtet bitte die folgenden Regeln:
  1. lest das Howto erstmal durch: 'lesen - verstehen - handeln'
  2. Abweichungen können individuell erfolgen, müssen in Folgeschritten beachtet werden
  3. Eigenverantwortlichkeit
  4. Bei dieser Installation wird ein 64bit OS installiert.
Der Server ist nach der Installation weder abgesichert noch dem 'Standard' von OVH entsprechend

Das bedeutet:
  • kein Support von Hetzner
  • SSH Zugang mit Möglichkeit Login für Root
DU alleine bist für die komplette Installation, Absicherung und Wartung des Servers verantwortlich!!!


2. Sicherung der Netzwerkdaten


Diese Daten sind zwingend erforderlich für die Fortführung der Installation. Am besten ist es, Du sicherst die Daten im Notepad


2.1 Grundsicherung der Daten


Die Ausgaben folgender Befehle sichern.

Code: Alles auswählen

lspci 
cat /etc/resolv.conf 
hostname 
cat /etc/network/interfaces 
3. Rescuesystem

Robot aufrufen und Rescue auswählen und auf Rescue-System aktivieren klicken. Anschließend in der Konsole 'reboot' eintippen..
Passwort wird beim aktivieren direkt angezeigt, bitte kopieren und speichern.
Je nach Größe der Festplatte kannst Du Dich entscheiden, wie Du partitionieren willst, ich habe in 3.1 a und b unterteilt.

3.1a Festplatte(n) partitionieren OLDSCHOOL geht bis 2 TB

Partionsmanager aufrufen

Code: Alles auswählen

cfdisk
Gelöscht wird das komplette Partitionsschema der vorherigen Installation - nicht zwingend erforderlich!

Als Beispiel für diese Installation wählen wir dieses Schema, wobei SDA4 zum Beispiel als LVM Device oder als encrypted Partition genutzt werden könnte. Wer dies nicht möchte, sollte den verfügbaren Festplattenspeicher auf alle Partitionen verteilen.

Device Mountpoints Filesystem
sda1 / ext4
sda2 swap swap
sda3 /tmp ext4
sda4 LVM/Crypt



3.1b Festplatte(n) partitionieren NEU geht immer


Das Partitionsschema wird gelöscht und neu angelegt. Bei der Abfrage Yes tippen

Code: Alles auswählen

parted /dev/sda mklabel gpt


Es werden nun 4 Partitionen erstellt.
Device Mountpoints Filesystem Größe
sda1 / ext4 20GB
sda2 swap swap 1GB
sda3 /tmp ext4 5GB
sda4 LVM/Crypt Rest

Die Größen lassen sich natürlich nach belieben verändern.

Code: Alles auswählen

parted /dev/sda unit gb mkpart 1 1 20     
parted -s /dev/sda set 1 boot on
parted /dev/sda unit gb mkpart 2 20 21
parted /dev/sda unit gb mkpart 3 21 26
parted /dev/sda unit gb mkpart 4 26 100%

Wer im Anschluss schauen möchte ob alles geklappt hat:

Code: Alles auswählen

parted
Anschließend print gefolgt von Enter tippen. Nun siehst Du Dein Partitionsschema.
Mit q verlässt man parted wieder.

3.2 Festplatte(n) Formatieren und Mounten

Wir formatieren die neuen Partitionen und mounten diese sofort.

Code: Alles auswählen

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3


mkswap /dev/sda2
swapon /dev/sda2

mount /dev/sda1 /mnt 
mkdir -p /mnt/tmp 
mount /dev/sda3 /mnt/tmp
Wir laden die aktuellste debootstrap Version runter und entpacken sie:

Code: Alles auswählen

cd /tmp 
currentVersion="`wget -O- http://ftp.de.debian.org/debian/pool/main/d/debootstrap/ 2> /dev/null | \
egrep -o 'debootstrap-udeb_[0-9\.]+_all.udeb' | sort -V | tail -1`";
wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/$currentVersion 2> /dev/null -O /tmp/$currentVersion
ar -xf $currentVersion
tar -xJf data.tar.xz   
tar -xJf control.tar.xz
Um jetzt per debootstrap installieren zu können, muss die Source von debootstrap etwas verändert werden

Code: Alles auswählen

sed -i 's!DEBOOTSTRAP_DIR=/usr/!DEBOOTSTRAP_DIR=/tmp/usr/!' /tmp/usr/sbin/debootstrap

4. Stretch installieren und einrichten

Wir installieren nun Stretch per debootstrap und gehen anschließend per chroot in das frisch installierte System

Code: Alles auswählen

usr/sbin/debootstrap --arch amd64 stretch /mnt/ http://ftp.de.debian.org/debian 
 
mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t tmpfs none /mnt/tmp
mount -o bind /sys /mnt/sys
 
chroot /mnt /bin/bash
Läuft alles ohne Fehlermeldung durch, befinden wir uns im frischen Debian Jessie.

4.1 Rootpasswort und User erstellen

Neben dem User erstellen wir noch das Verzeichnis GRUB

Code: Alles auswählen

mkdir -p /boot/grub &&
passwd
5. System und Netzwerk konfigurieren

Jetzt kommen die gesicherten Daten zum Zug, dafür öffnet ihr das Notepad, worin alle Daten gesichert wurden.
Diese werden jetzt sinngemäß eingetragen:

Code: Alles auswählen

cat > /etc/hostname << "EOF"
$servername
EOF

Code: Alles auswählen

cat > /etc/hosts << "EOF"
127.0.0.1        localhost  localhost.localdomain
123.123.123.123  $servername
EOF

Code: Alles auswählen

cat > /etc/resolv.conf << "EOF"
nameserver 213.186.33.99
EOF 
auch hier wieder 123.123.123.123 logisch anpassen

5.1 Netzwerk

Anhand dieses Beispiels kannst Du dein Netzwerk konfigurieren. Es sieht schwerer aus als es ist, aber im logischen Sinn selbsterklärend. Nicht vergessen, deine eigene IP einsetzen, nicht blind kopieren.
(Am einfachsten ist es natürlich einfach die Daten, welche ihr aus der interfaces gesichert habt hier reinzukopieren, so habt ihr oft auch schon vorkonfiguriertes IPV6 der Hoster mit dabei)

Code: Alles auswählen

cat > /etc/network/interfaces << "EOF"
iface lo inet loopback
auto lo

auto eth0
iface eth0 inet static
	address 123.123.123.123
	netmask 255.255.255.0
	broadcast 123.123.123.255
	network 123.123.123.0
	gateway 123.123.123.254
EOF

Code: Alles auswählen

echo 'BOOTLOGD_ENABLE=Yes' > /etc/default/bootlogd

5.2 Einrichtung fstab, sources.list, locales, Zeitzone und ssh

Code: Alles auswählen

cat > /etc/fstab << "EOF"
/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda2 swap swap defaults 0 0
/dev/sda3 /tmp ext4 noexec 1 2
proc /proc proc defaults 0 0
EOF

Code: Alles auswählen

cat > /etc/apt/sources.list << "EOF"
deb http://ftp.de.debian.org/debian/ stretch main non-free contrib
deb-src http://ftp.de.debian.org/debian/ stretch main non-free contrib
deb http://security.debian.org/ stretch/updates main non-free contrib
deb-src http://security.debian.org/ stretch/updates main non-free contrib
deb http://ftp.de.debian.org/debian/ stretch-updates main non-free contrib
deb-src http://ftp.de.debian.org/debian/ stretch-updates main non-free contrib
EOF

Code: Alles auswählen

apt-get update && apt-get upgrade

apt-get install -y ssh grub-pc ntpdate firmware-linux-free
Während der Installation kommt eine Anfrage von grub-pc. Dort /dev/sda wählen, nicht /dev/sda1.

Wir bringen Jessie die deutsche Sprache bei

Code: Alles auswählen

apt-get install locales && dpkg-reconfigure locales
mit de_DE@UTF-8… bist du auf der sicheren Seite

Zeitzone auf Europa, Berlin einstellen

Code: Alles auswählen

dpkg-reconfigure tzdata
Seit Debian 8 Stretch, wird der Rootlogin per default unterbunden.
Um diesen wieder zu Aktivieren:

Code: Alles auswählen

sed -i 's!PermitRootLogin without-password!PermitRootLogin yes!' /etc/ssh/sshd_config

6. GRUB + Kernel installieren


Wir sagen der mtab was alles gemounted ist:

Code: Alles auswählen

cat /proc/mounts > /etc/mtab
Wir installieren den Kernel

Code: Alles auswählen

apt-get install -y linux-image-amd64
Nun folgenden Code ausführen:

Code: Alles auswählen

update-grub
7. Reboot des Systems

Wir gehen wieder zurück zum Kundenmanager, stellen unter Netboot hd ein.
Zum Abschluss

Code: Alles auswählen

exit
reboot
Mit exit wurde das chroot verlassen und wir befinden uns wieder im Rescue des Hosters.
reboot führt dann den Neustart des Servers aus.
Jetzt wird der Server mit dem eigenen Kernel hochgefahren.

Antworten