28 April 2018 letzte Änderung am 2018-06-10

Autoren:

Installation und Konfiguration eines Mini-Server für Zuhause. In diesem Artikel werden ein paar Informationen zur Installation, Konfiguration und Nutzung von Debian 9.4 stretch als Mini-Server beschrieben.

Vorbereitung

Debian besorgen

Auf der Homepage von Debian kann man sich auf der Seite Debian besorgen ein Image von Debian runterladen. Zur Installation habe ich 64-Bit-PC Netinst-ISO als ISO-Datei heruntergeladen (Version 9.4.0).

Wer neu in diesem Thema ist, sollte sich auf jeden Fall mal Debian GNU/Linux – Installationsanleitung ansehen.

Die ISO-Datei habe ich via dd auf einen USB-Stick geschrieben. Es gibt wohl noch andere Möglichkeiten: https://www.debian.org/releases/stable/amd64/ch04s03.html.de

Jetzt hat man einen USB-Memory-Stick von dem man die Installation von Debian starten kann.

Ausprobieren

Vielleicht möchte jemand die Installation, Konfiguration oder auch später Änderungen an dem produktiven Home-Mini-Server vorher testen oder ausprobieren.

In diesem Fall kann man qemu nutzen um sich ein Test-System zu installieren.

Auf seiner Workstation kann man wie folgt vorgehen um ein Testsystem mit qemu zu erstellen:

qemu-img create -f raw HDD-01.iso 10G
qemu-system-x86_64 \
	--drive file=HDD-01.iso,index=0,media=disk,format=raw \
	-cdrom debian-9.4.0-amd64-netinst.iso \
	-m 2G \
	-enable-kvm

Hardware

Um einen Mini-Home-Server aufzubauen, braucht man auch Hardware. Dies ist ein Beispiel zur Hardware-Konfiguration für einen Mini-Server. Ob die Hardware in vollem Umfang unterstützt wird, kann ich aktuell noch nicht sagen.

  • Shuttle DS68U inkl. Intel® Celeron® 3855U

  • Crucial SO-DIMM 8 GB DDR3-1600

  • Samsung 960 EVO 250 GB, Solid State Drive

  • Western Digital WD10JFCX interne Festplatte 1TB (6,4 cm (2,5 Zoll), 5400rpm, SATA)

Installation Debian 9.4.0

Anschluss von Maus, Tastatur, Monitor und LAN-Kabel. Das System wird vom USB-Stick mit dem Debian-Netinstall gestartet und von dort auf die Festplatte des Computers installiert.

Nachdem das Grundsystem installiert wurde, kommt die Auswahl für tasksel. Hier deaktiviere ich immer alle Optionen.

Nach dem reboot sollte der Computer das Debian System starten.

Auf die Details der Installation werde ich im Moment nicht weiter eingehen, dies unterscheidet sich von Hardware, Netzwerk, etc.

Nachdem das System gestartet ist, werden direkt an der Hardware noch ein paar Befehle eingetippt, bevor es dann via SSH weitergeht:

Installation von aptitude uns ssh via apt-get:

apt-get install aptitude ssh

Wenn nötig, sollte man sich notieren welche IP-Adresse der Computer hat:

ip add

Wenn wir später via SSH auf den Computer springen, werden wir nach einem Fingerabdruck gefragt. Diesen kann man sich anzeigen lassen und notieren:

ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key

Ausgabe:

256 SHA256:ABC123ABC1239876543DAJDBndsbdsjdasdbasbdasd. root@server (ECDSA)

Ab jetzt kann es via SSH weitergehen.

Auf der Workstation kann man sich via

ssh user@ip

mit dem Rechner verbinden.

ssh linuxuser@192.168.1.3
The authenticity of host '192.168.1.3 (192.168.1.3)' can't be established.
ECDSA key fingerprint is SHA256:ABC123ABC1239876543DAJDBndsbdsjdasdbasbdasd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.3' (ECDSA) to the list of known hosts.
linuxuser@192.168.1.3's password:

Installation von Programmen

Für den Alltag braucht man dann noch ein paar Programme.

aptitude install getmail4 procmail mutt notmuch vim tmux \
gnupg git zsh irssi \
lbdb mc w3m asciidoc htop dnsutils progress mtr curl \
	apache2 python-moinmoin samba \
sudo ntpdate

Grundkonfiguration

Auf dem HomeServer werden wir ein paar Grundkonfigurationen vornehmen.

Die motd-Datei ist die message of the day Datei. Wenn man möchte kann man hier ein paar Informationen zum Computer einstellen. Dann sieht die nächste Anmeldung via SSH auch ganz nett aus.

aptitude install linuxlogo
linuxlogo > /etc/motd

Editor

Den Editor seiner Wahl setzen.

update-alternatives --config editor

SSH-Key

Wenn man möchte, dann kann man sich seinen pub-Key auf der Workstation auf dem HomeServer speichern. Man kopiert den Key in folgende Datei:

~/.ssh/authorized_keys

sudo

Dein User in die Gruppe sudo aufnehmen.

adduser USER sudo

Per Default gibt es bei Debian einen Eintrag in der /etc/sudoers. So kann jeder Benutzer in der Gruppe sudo, alle Befehle mit sudo aufrufen.

Warning
Also nur Benutzer die als Admin-User verwendet werden sollen, in die Gruppe aufnehmen.

Danach kann man mit seinem User alle Befehle mit root-Berechtigungen ausführen. Man muss nur sein eigenen Passwort zur Sicherheit eingeben.

Beispielsweise kann man eine Datei bearbeitet, für die man root-Rechte benötigt:

sudo vim /etc/hosts

Benutzer anlegen

Sollen mehrere Personen auf dem System angelegt werden, so können die Benutzer über folgenden Befehl angelegt werden:

adduser USER

Die Benutzer habe ich dann in die Gruppe users hinzugefügt:

adduser USER users

So können Daten, die von allen Benutzern gelesen oder geschrieben werden sollen, der Gruppe users zugewiesen werden.

Git-Server

Ein Git-Server kann man immer gebrauchen. Ich habe auf dem Server ein git-server und gitweb installiert:

aptitude install git-daemon-sysvinit gitweb

Die Konfigurationsdatei liegt hier: /etc/default/git-daemon. In der Konfigurationsdatei muss der Server aktiviert werden:

GIT_DAEMON_ENABLE=true

Der Git-Daemon läuft mit dem User gitdaemon. Deswegen braucht der User dann auch die Berechtigungen für die Repositories. Die Repositories liegen im Verzeichnis /var/lib/git/.

Um ein neues Repository anzulegen, wechselt man in das Verzeichnis /var/lib/git. Hier kann man sich eine Verzeichnisstruktur anlegen. Im gewünschtem Verzeichnis erzeugt man dann ein Repository.

git init --bare MeinProjekt.git			(1)
git config daemin.receivepack = true	(2)
editor description						(3)
chown -R gitdaemon .					(4)
touch git-daemon-export-ok				(5)
  1. Erzeugt ein neues leeres Repository

  2. So kann der Client Änderungen via push auf den Server schieben

  3. In der Datei description kann man eine Beschreibung für das Projekt erfassen

  4. Die Rechte anpassen

  5. Datei für den export erstellen

Auf dem Client kann man jetzt das Repository verwenden:

git clone git://server/git/projekt1/komponente1/MeinProjekt.git

Samba

Samba ist eine Dienst für die Datei- und Druckerfreigabe. Die Konfiguration erfolgt in der Datei /etc/samba/smb.conf.

Um eine Freigabe zu erstellen, wir zunächst das Verzeichnis angelegt. In diesem Beispiel ist die Freigabe auf einer separaten Festplatte, welche in /mnt/DATAHDD/ gemountet wurde. Die Berechtigen für das Verzeichnis sehen wie folgt aus:

drwxr-xr-x 6 root  users    4096 Apr 28 19:34 Daten

In der Konfigurationsdatei smb.conf wird diese Verzeichnis als Freigabe Daten definiert.

[Daten]
comment = Daten auf Server
browseable = yes
path = /mnt/DATAHDD/Daten
printable = no
guest ok = no
read only = no
directory mask = 0777
create mask = 0777
vfs object = recycle
write list = "user1","user2"
valid users = "user1","user2"
force group = users

Samba veraltet in unserem Beispiel seine eigene Benutzer. Aus diesem Grund wird pro Linux-User ein Samba-User angelegt. Hier kann man auch ein anderen Passwort verwenden als es auf dem Betriebssystem ist.

sudo smbpasswd -a USER

dnsmasq

sudo aptitude install dnsmasq dnsmasq-utils