Minibian – Raspberry PI – Installieren

Ziel: ein minimales Linux für einen kompletten (Web)server auf Basis eines Raspberry Pi

Quelle: https://minibianpi.wordpress.com/features/

Software: Win32DiskImagerPuTTY

Hardware: Raspberry Pi 2B (oder 3), SD Mikro Karte 32 GB (oder größer)

Netzwerk: (W)LAN-Router mit LAN-Anschluss

Image auf SD-Karte installieren

  • Download https://sourceforge.net/projects/minibian/
  • Das Image (Endung: img) entzippen und mit Win32DiskImager auf SD-Karte schreiben. Vorsicht, nicht aus Versehen einen falschen Laufwerksbuchstaben wählen.
  • SD-Karte auswerfen, in Raspberry Pi packen
  • Pi per LAN mit Router verbinden
  • Pi mit Strom versorgen und einige Minuten warten, bis der Name im Netzwerk bekannt ist

Mit Maschine verbinden

  • PuTTY starten und mit “minibian” verbinden.
    • Login: root
    • Passwort: raspberry
passwd # Passwort ändern

Festplatte voll ausreizen

fdisk /dev/mmcblk0 # dann folgende Kommandos
  • p – Partitionen zeigen (i. d. R. zwei) – Startwert der zweiten, der Hauptpartition notieren (hier 125056)
  • d – zweite Partition löschen
  • n – neue Partition anlegen, Partition type: Primary, Partition number: 2, Startwert: 125056 (der notierte, NICHT der default Wert), Endwert: Default für volle Größe
  • p – überprüfen der Eingaben
  • w – schreiben der Partitionen (Fehlermeldung ignorieren)
reboot
resize2fs /dev/mmcblk0p2
df -h # sollte jetzt (nahezu) die volle Größe unter /dev/root/ belegt haben

Vorbereitungen

apt-get install sudo
adduser BENUTZER # besser nicht mit root arbeiten
usermod -aG sudo BENUTZER # packen wir ihn zur sudo-Gruppe
su - BENUTZER # das Minus-Zeichen, damit auch wirklich ein kompletter Wechsel stattfindet
sudo apt-get install nano # bloß kein vi

Bash-Tuning

sudo nano ~/.bashrc # folgendes ans Ende eintragen:

alias +=’pushd .’
alias ..=’cd ..’
alias …=’cd ../..’
alias beep=’echo -en “\007″‘
alias dir=’ls -l’
alias gzcat=’gunzip -c’
alias l=’ls -alF’
alias la=’ls -la’
alias ll=’ls -la’
alias ls=’/bin/ls $LS_OPTIONS’
alias ls-l=’ls -l’
alias md=’mkdir -p’
alias o=’less’
alias rd=’rmdir’
alias rehash=’hash -r’
alias rm=’rm -i’
alias unzip=’tar xfvz’
alias which=’type -p’
alias zip=’tar cfvz’

logout # wieder ausloggen und einloggen, damit das Bash-Tuning anschlägt
su - BENUTZER

Betriebssystem und Komponenten auf den neuesten Stand bringen

sudo apt-get -y update
sudo apt-get -y dist-upgrade # kann dauern
sudo apt-get -y autoremove
sudo apt-get -y autoclean
sudo apt-get install cpufrequtils
cpufreq-info # zeigt Informationen zur CPU an

Firmware updaten

sudo apt-get install rpi-update # nur für Raspberry
sudo rpi-update # nur für Raspberry, neue Firmware
sudo reboot #  neustart, kann etwas länger dauern, bis Rechner wieder gefunden wird

Benchmarks

Diese Befehle benötigt man natürlich nur, wenn man die aktuelle Rechenleistung mit anderen Systemen vergleichen möchte.

sudo apt-get install sysbench
sysbench --test=cpu --num-threads=4 run # CPU Test
sysbench --test=memory --memory-block-size=500MB --memory-total-size=10GB run # Speichertest
sysbench --test=fileio --file-total-size=20G prepare # Lese/Schreibtest benötigt ein File
sysbench --test=fileio --file-total-size=4G prepare #  viermal soviel wie RAM, kann dauern
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run # Kb/sec-Wert wichtig
sysbench --test=fileio --file-total-size=4G cleanup # und wieder entfernen

Sicherheitsupdates automatisieren

sudo apt-get -y update && sudo apt-get -y install cron-apt # kann dauern
sudo nano /etc/cron-apt/action.d/5-secupdates # neue Datei mit Inhalt:

upgrade -y -o APT::Get::Show-Upgraded=true

dann

sudo mkdir /etc/apt/sources.d
sudo nano /etc/apt/sources.d/security.sources.list # neue Datei mit Inhalt:

deb https://security.debian.org/ wheezy/updates main contrib non-free
deb-src https://security.debian.org/ wheezy/updates main contrib non-free

und

sudo nano /etc/cron-apt/config.d/5-secupdates # neue datei mit Inhalt:

OPTIONS=”-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.d/security.sources.list -o Dir::Etc::SourceParts=\”/dev/null\””

abschließend

sudo nano /etc/cron.d/cron-apt # zeiten anpassen, wenn gewünscht
sudo cron-apt -s # test, kann dauern
sudo cat /var/log/cron-apt/log # prüfen

LAMP

sudo groupadd www-data # eventuell schon vorhanden
sudo usermod -a -G www-data www-data
sudo apt-get install apache2 -y
sudo apt-get install php5 -y
sudo apt-get install mysql-server -y # passwörter für MySQL müssen erstellt werden
sudo a2enmod rewrite # mod_rewrite fuer URL-Manipulation
sudo service apache2 restart
sudo apt-get install php5-mysql phpmyadmin -y # dauert, verlangt MySQL-Passwort (s.o.), für apache2 und lighttpd einrichten

Webmin

sudo apt-get update
cd ~
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.831_all.deb
sudo apt-get -y install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
sudo dpkg --install webmin_1.831_all.deb # dauert lang
rm webmin*l.deb -f
sudo reboot

Test im Browser:

http://minibian/

http://minibian/phpmyadmin (Benutzer: root, Passwort: siehe oben)

https://minibian:10000/