Ziel: ein minimales Linux für einen kompletten (Web)server auf Basis eines Raspberry Pi
Quelle: https://minibianpi.wordpress.com/features/
Software: Win32DiskImager, PuTTY
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/