Etwa einmal im Jahr setze ich einen neuen Raspberry Pi auf. Einerseits überraschend oft, andererseits doch so selten, dass ich einige wichtige Installationsschritte (Mist...wieso interpretiert Apache die .htaccess-Datei nicht?) immer wieder nachgoogeln muss.
Anbei mein Raspberry-Standard-Use-Case, der hoffentlich auch noch in einem Jahr seine Gültigkeit hat.
Ich setze hierbei auf das Standard-Raspbian von raspberry.org, benötige nur Zugriff via SSH (kein Bildschirm angeschlossen/Headless) auf den Raspberry und so Standard-Kram wie mySQL...
System herunterladen und auf SD-Karte installieren
Ich lade immer das neuste Standard-Raspbian-Image von https://www.raspberrypi.org/software/operating-systems/ herunter und verzichte auf Noobs.Die heruntergeladene .zip-Datei entpacken.
Mit Hilfsprogramm/AppleScript installieren
Am einfachsten bekommt man die Image-Datei mit dem AppleScript-Droplet PiFiller auf die SD-Karte.Allerdings wollte das Droplet bei mir nicht so recht funktionieren. Ich musste erst folgende Zeilen im eigentlichen Skript
Contents > Resources > Scripts > main.scptmit vorangestellten -- auskommentieren.
Natürlich muss man nach dem Auskommentieren der Zeilen selbst sicher gehen, dass man eine .img-Datei auf das Droplet zieht und keine .zip-Datei, da die Prüfung auf passende Dateien de-aktiviert ist.
-- if (osStr ends with ".zip") or (osStr ends with ".tgz") or (osStr ends with ".gz") or (osStr ends with ".z") or (osStr ends with ".bz") or (osStr ends with ".bz2") or (osStr ends with ".tar") then
-- display dialog "The operating system image file \"" & osStr & "\" is compressed. Please uncompress it by double-clicking it in the Finder, then run Pi Filler again using the resulting .img file." buttons "Quit" default button "Quit" with icon stop
-- error number -128
-- end if
Danach heruntergeladene .img-Datei auf das Droplet ziehen und den Anweisungen folgen.
Via Kommandozeile
df -h
# Karte identifizieren und auswerfen
umount /dev/disk1s2
# Als root die Image-Datei auf die Karte übertragen
dd bs=4M if=/pfad/zum/image.img of=/dev/disk1s2
Grundlegende Einrichtung
SSH
Früher hatte das Raspbian-System, welches man auf der oben genannten Seite herunterlädt und installiert, einen aktiven SSH-Zugriff.
Seit einiger Zeit ist der SSH-Zugriff im Raspbian-System allerdings werksseitig de-aktiviert.
Wie sinnvoll diese Sicherheitsmaßnahme ist, darüber lässt sich streiten. Will man einen Raspberry Pi ohne angeschlossenen Bildschirm und Tastatur einrichten, hat man jedenfalls ein Problem, sofern man folgenden kleinen Kniff nicht kennt:
So lange die SD-Karte noch im Computer (und noch nicht im Raspberry Pi) steckt, eine Datei mit dem Namen ssh (ohne Datei-Endung; Datei-Inhalt nicht notwendig) auf der Boot-Partition (so lange die SD-Karte am Computer aktiviert ist, sollte ein Laufwerk bootfs im Finder auftauchen) anlegen.
Diese sorgt beim ersten Booten dafür, dass SSH aktiviert wird und wird danach automatisch gelöscht.
Der im Folgenden beschriebene Benutzer muss hierfür ebenfalls noch im Vorneherein angelegt werden:
Benutzer
Und auch relativ neu gibt es keinen Standard-Benutzer pi mehr, sondern man muss Benutzername und Passwort vor dem ersten Booten in eine Config-Datei eintragen (sofern man den Raspberry headless einrichten möchte).Dazu <benutzername>:<verschlüsseltes Passwort> in eine Datei userconf.txt (zuvor war es auch mal userconf ohne Dateiendung) eintragen, die wie die Datei ssh direkt auf der Boot-Partition liegt.
Das verschlüsselte Passwort kann man per Kommandozeile mit dem Befehl
generieren. Oder den Befehl openssl passwd -6 ausführen und zweimal das gewünschte Passwort eingeben.
Das nun generierte verschlüsselte (gehashte?) Passwort schreiben wir zusammen mit dem Benutzernamen in die Textdatei userconfig.txt auf bootfs:
Achtung: ' statt " verwenden, da in dem Passwort sicherlich $-Zeichen vorkommen, die dann als Variable interpretiert werden und letztendlich steht dann in der Datei was anderes drinnen, als man vor hatte und man kann sich nicht einloggen.
Dann fängt man wieder komplett von vorne an und muss das Image wieder neu auf die SD-Karte schreiben, da einfach eine neue userconfig.txt auf die SD-Karte schreiben nur beim ersten Booten funktioniert.
WLAN
Info: Dieser praktische Schritt ist leider veraltet und wird auf neueren Raspberry-Systemen nicht mehr unterstützt.Man kommt wohl nicht drumherum, ihn erstmal an ein LAN-Kabel zu wurschteln, um sich per ssh einloggen und das WLAN per sudo raspi-config einrichten zu können.
Hat man einen neueren Raspberry Pi mit On-Board-WLAN, macht es natürlich Sinn, auch diesen vor der ersten Inbetriebnahme einzurichten. Dafür die Datei wpa_supplicant.conf analog zur ssh-Datei auf der Boot-Partition der SD-Karte anlegen. Dieses Mal allerdings mit Inhalt:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wlan-bezeichnung"
psk="passwort"
key_mgmt=WPA-PSK
}
Neuster Stand
Nun kann's losgehen. SD-Karte in den Raspberry Pi stecken und eben jenen mit Netzwerk und Stromnetz verbinden, dann via SSH verbinden (Benutzername pi, Passwort raspberry) und erst einmal das System auf den neusten Stand bringen.
sudo apt-get dist-upgrade
Pi einrichten
Das Öffnen des rasp-config-Programmes ist Pflicht, da man hier nicht nur Zeitzone und Landeseinstellungen vornehmen, sondern auch das Standard-Kennwort "raspberry" ändern kann...äh...sollte...äh...muss:sudo raspi-config
Installation Standards
PHP
Apache ist standardmäßig in Raspbian enthalten, PHP leider nicht.
sudo apt-get install libapache2-mod-php7.0
sudo a2enmod rewrite # ModRewrite aktivieren
Damit .htaccess-Dateien interpretiert werden, folgende Zeilen zum VirtualHost *:80 hinzufügen:
AllowOverride All
Order allow,deny
allow from all
</Directory>
sudo service apache2 restart
mySQL
sudo mysqladmin -u root password "neues_admin_passwort" # Passwort setzen
sudo mysql --user=root --password=neues_admin_passwort # mysql-User einrichten
Nachdem sich die mySQL-Shell geöffnet hat, zwei Standard-Benutzer für den phpMyAdmin-pma-User und PHP/Apache-Zugriff einrichte:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON pma.* TO 'pma'@'localhost' IDENTIFIED BY 'pma_passwort' WITH GRANT OPTION;
exit
Samba / SMB
sudo smbpasswd -a pi # SMB-Passwort für User "pi" setzen, da hier
# nicht automatisch das Account-Passwort verwendet wird
Meine Standard-Vorgaben und die zwei Samba-Freigaben für den Home- und Apache-Web-Ordner:
workgroup = NONE
server string = %h Mein neuer Pi
dns proxy = no
security = user
guest account = nobody
map to guest = bad user
encrypt passwords = true
invalid users = root
username map = /etc/samba/smbusers
obey pam restrictions = yes
unix password sync = yes
unix extensions = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
[homes]
comment = Home Directories
browseable = no
read only = no
valid users = %S
[www]
comment = Web-root
path = /var/www/html/
public = no
guest ok = no
browsable = yes
writeable = yes
available = yes
veto files = /.DS_Store/._.DS_Store/.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
delete veto files = yes
sudo service smbd restart
Sollen neben dem pi-User noch weitere Benutzer Samba-Zugriff haben, die aber ansonsten nichts mit dem Pi zu tun haben (also keinen SSH-Zugriff etc benötigen), lassen sich auf die folgende Weise noch weitere Accounts mit beschnittenen Rechten anlegen, die zum Zwecke des Samba-Zugriff genutzt werden können:
sudo smbpasswd -a <benutzername>
phpMyAdmin
Für die Verwaltung der Datenbanken mein persönliches Muss.Die neuste Version des phpMyAdmin lade ich immer in der .tar.gz-Version von meinem Computer aus herunter und schiebe sie per scp auf den Pi. Manche Dinge sind mit einem GUI einfach schneller erledigt, als per Kommandozeile.
Danach muss das Archiv auf dem Pi nur noch an die richtige Stelle entpackt und einige Abhängigkeiten installiert werden, bevor man das phpMyAdmin-Setup startet.
# und für Setup erforderliches Config-Verzeichnis erstellen
sudo tar -xzf phpMyAdmin-x.x.x-all-languages.tar.gz -C /var/www/html/
rm phpMyAdmin-x.x.x-all-languages.tar.gz
cd /var/www/html/
sudo mv phpMyAdmin-x.x.x-all-languages phpMyAdmin
sudo mkdir phpMyAdmin/config
sudo chown www-data:root phpMyAdmin/config
# Ohne diese PHP-Erweiterungen läuft phpMyAdmin nicht...
sudo apt-get install php7.0-mbstring php7.0-mysqli php7.0-bz2 php7.0-zip
sudo service apache2 restart
Nun das Setup http://raspberry-ip/phpMyAdmin/setup im Browser aufrufen und nach Abschluss die generierte Konfiguration in das phpMyAdmin-Hauptverzeichnis schieben.
sudo rm -r /var/www/html/phpMyAdmin/config
FTP-Server
sudo apt-get install proftpd-basic
ServerName "Mein neuer Server"
<Global>
RequireValidShell off
</Global>
# Default directory is ftpusers home
DefaultRoot ~ ftpuser
# Limit login to the ftpuser group
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
Separaten User erstellen, der für FTP-Zugriffe verwendet werden kann
sudo adduser ftpuser --shell /bin/false --home /var/www/upload
Und neu starten:
sudo service proftpd restart
Neuen Benutzer erstellen
Ggf. möchte man sich nicht oder nicht nur mit dem pi-User am Raspberry anmelden:sudo passwd apfelzuser # Passwort für Benutzer vergeben
sudo usermod -aG sudo apfelzuser # Mit su-Rechten ausstatten
# ...und noch anderen interessanten Gruppen hinzufügen...
sudo usermod -aG adm,dialout,cdrom,sudo,audio,video,games,users,input,netdev,spi,i2c,gpio apfelzuser
# ( mit dem Befehl `groups pi` könnte man ansonsten in Erfahrung )
# ( bringen, welchen Gruppen der Standard-Pi-User angehört )
sudo chsh -s /bin/bash apfelzuser # Login-Shell von sh auf bash umstellen
# Aus Sicherheitsgründen wäre es empfehlenswert, nach dem Anlegen
# des neuen Users sich als dieser anzumelden und dann den
# Standard-Pi-User zu löschen, da der Benutzername pi und das
# Passwort raspberry nicht sonderlich schwer zu erraten sind
sudo userdel -r pi
![]() ![]() ![]() ![]() |
|
Erstellt am: 07.01.2015 unter den Kategorien Grundlagen . | Kommentieren |