Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke

Folgende Befehlskette wende ich eigentlich bei JEDER Neuinstallation eines Raspberry Pis an um für fast alles gewappnet zu sein. Geschrieben wurde es für eine alte Version 1.3 von Raspberian, die bestimmt niemand mehr installiert. Mittlerweile habe ich festgestellt das sich bei Proftpd und bei Samba und Apache einiges geändert hat.

Grundlagen: Eine brauchbare Grundinstallation auf dem Raspberry Pi erstellen.Inkl. FTP, SMB, Email Versand.

Erstmal einloggen: Ihr öffnet auf eurem System das Terminal und loggt euch dann mit der bekannten IP des Raspberry Pis in dem System ein (ich nehme als als beispiel hier die 192.168.0.24 als IP des Raspberry Pis):

ssh 192.168.0.24 -l pi

Als Passwort gebt ihr "raspberry" ein. Zu aller erst die wichtigsten Befehle...

Das Passwort ändern !

passwd pi

Anmerkung: Das Passwort muss eine gewisse Sicherheit bieten, sonst nimmt das System es nicht an. Umgehen kann man es mittels "sudo raspi-config" und dort ändert man das Passwort von der Oberfläche aus, dann kann man auch "unsichere" auswählen.

 

Alle erdenklichen Updates/ Upgrades Installieren, so das man ein durchaus aktuelles System hat.

sudo apt-get update

sudo apt-get upgrade

Anschließend geht es mit den Erweitern des funktionsumfangs weiter...

 

Automatisiertes Reparieren des Filesystems aktivieren.

Über diese Zeile bin ich beim googlen gestoßen und fand Sie sinnvoll. Einige Distributionen haben das mittlerweile von Haus aus aktiviert. Falls im Dateisystem irgendwelche Fehler auftreten, versucht das System diese automatisch zu reparieren. Natürlich ist das nicht immer sinnvoll, gerade bei schwerwiegenden Fehlern, aber dafür hat man ja dann sein "Backup". 8-)

sudo nano /etc/default/rcS

Hier sucht ihr:

FSCKFIX=no

und ändert es zu

FSCKFIX=yes

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

 


Apache + PHP + GD Libary Installation

Damit ein Webserver auf dem Pi läuft und auch PHP verarbeitet werden braucht man Apache. Es gibt auch andere schlankere Webserver alternativen, aber ich bin bei diesem pedant hängen geblieben, der sehr zuverlässig läuft.

sudo apt-get install apache2 php5

GD Library für Bildverarbeitung installieren:

sudo apt-get install php5-gd

 

ProFTPd "FTP Server" Installieren (Standalone Installation)

ACHTUNG: Bei einigen distributionen funktioniert die konfiguration des ProFPTd Clienten nicht so wie es hier steht - es scheint schon neuere Versionen zu geben.

sudo apt-get install proftpd

Das ganze dann noch konfigurieren:

sudo nano /etc/proftpd/proftpd.conf

(ganz nach unten Scrollen.... (CTRL +V) und folgendes einfügen:

DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off
OPTIONAL:

Wenn man sowieso gerade beim konfigurieren ist kann man den FTP Port von Port 21 auf einen anderen Port anpassen (ziemlich weit oben in der Konfiguration), evtl noch die passiven Ports anpassen. FTP ist nicht gerade sehr sicher und wenn man den Raspberry Pi ins Netz stellen will gibt es bessere Alternativen, aber FTP ist einfach einzurichten und ideal um Daten auf den Pi zu bekommen.

Wenn man die Transferrate des FTP Servers reduzieren will und nur einen user (sich selbst) davon ausnehmen will, dann kann man das mit folgenden Zeilen in der gleichen konfiguration tun:

<IfUser !pi>
TransferRate APPE,RETR 50
</IfUser>

Das setzt die Downloadrate für alle User auf 50 Kb/Sek, es sei denn der User heisst "pi".

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Weiter geht es mit Anlegen des FTP Ordners:

cd /var/www

sudo mkdir ftp

User Anlegen (Beispiel: User: penelope ):

cd /etc/proftpd/

sudo ftpasswd --passwd --name penelope --uid 33 --gid 33 --home /var/www/ftp --shell /bin/false

anschließend ein schönes Passwort wählen. So kann man viele benötigte User anlegen, einfach immer nur den Namen in der Zeile ändern.

OPTIONAL:

Verwalten kann man die angelegten User hier:

sudo nano /etc/proftpd/ftpd.passwd

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Jetzt noch die Userrechte anpassen:

sudo chmod g+s /var/www/ftp
sudo chmod 775 /var/www/ftp
sudo chown -R www-data:www-data /var/www/ftp

und den FTP Server neu starten:

sudo /etc/init.d/proftpd restart

 

Konfigurations Tipps

Wer einen Fileserver betreiben will, sollte den Zugriff bei vielen Usern etwas beschränken, da viele auch gute Download Manager verwenden und das System so an die grenzen bringt.

So kann man mit

sudo nano /etc/proftpd/proftpd.conf

Hinten folgendes einfügen....

Sich selbst als admin "outen" und keinerlei beschränkung haben (beispiel User "pi"). Alle anderen sind auf 600Kbit Downloadrate beschränkt und können jeweils nur 2 Verbindungen aufbauen:

<IfUser !pi>
TransferRate APPE,RETR 600
MaxClientsPerHost 2
MaxHostsPerUser 2
MaxClientsPerUser 2
</IfUser>

Uploads sind ohne Beschränkung möglich:

MaxStoreFileSize "*"

Löschen darf nur der User "pi"

<Directory /var/www/ftp >
<Limit DELE>
AllowUser pi
DenyAll
</Limit>
</Directory>

Einzelne User "Downgraden" auf 200 Kbit. Beispiel User :"leecher"

<IfUser leecher>
TransferRate APPE,RETR 200
</IfUser>

Diese Werte haben sich in der Vergangenheit als "Ideal" heraus gestellt.

Natürlich ist kein komplettes Traffic Sharing, findige User nutzen gute Downloadmanager und ziehen bei maximaler Bandbreite weiterhin was geht. Entweder installiert man sich hier den proftpd Traffic Shaper (habe ich nicht hinbekommen) oder man reduziert die Bandbreite des gesamten Raspberry Pis auf ein Minimum.

 

 

Eine feste IP vergeben

Die mit wichtigste Einstellung beim Raspberry Pi ist meiner Meinung nach eine feste IP, damit man den Pi direkt ansprechen kann.

sudo nano /etc/network/interfaces

Diese Zeile suchen:

iface eth0 inet dhcp

und durch dieses ersetzen (setzt die IP auf 192.168.0.24), bei Gateway sollte eure Router IP, in diesem falle die 192.168.0.1 stehen):

iface eth0 inet static
address 192.168.0.24
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

OPTIONAL:

Wlan mit fester IP:

Wenn man jetzt einen USB Wlan Dongle (z.b. ThePiHut) hat und dann eine feste IP haben möchte, ist das auch "ziemlich einfach" zu bewerkstelligen:

Erstmal steckt man den Wlan USB Dongle rein, bootet mit dem Pi in die grafische Benutzeroberfläche und geht dort auf die Netzwerk Einstellungen und verbindet man sich mit seinem Wlan Netz, gibt den Netzwerkschlüssel ein und speichert so die Verbindung.

Die aktuelle IP bekommt man ja angezeigt.

Dann öffnet man ein Terminal Fenster, entweder direkt auf der Oberfläche des Pis oder per SSH , loggt sich ein und ruft die Netzwerk Konfiguration auf:

sudo nano /etc/network/interfaces

Diese Zeile suchen (sehr weit unten):

iface default inet dhcp

und durch dieses ersetzen (setzt die IP auf 192.168.0.55), bei Gateway sollte eure Router IP stehen, z.b. 192.168.0.1):

iface default inet static
address 192.168.0.55
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Nach einem Neustart ist euer Pi über den USB Wlan Adapter über eine feste IP erreichbar.

Weiterhin sollte man noch den DHCP Clienten deaktiveren, wenn man ihn nicht braucht:

Bei Raspbian Wheezy (V3.1)

sudo service dhcpcd stop
sudo update-rc.d -f dhcpcd remove

...und bei Jessie (V3.4) oder höher:

sudo service dhcpcd stop
sudo systemctl disable dhcpcd

Ein Reboot kann an dieser Stelle nicht schaden, man sollte aber dran denken das man jetzt mit der richten IP sich einloggen sollte.

 

Hostnamen ändern

sudo nano /etc/hostname

 

 

Samba Netzwerk Protokoll Installieren

Das finde ich mit das sinnvollste was man installieren kann. Das SMB Netzwerk Protokoll, damit man per Netzwerk Freigabe direkt auf den PI zugreifen kann und dort wie auf einer externen Festplatte drauf Arbeiten kann - bequemer als FTP.

sudo apt-get install samba samba-common-bin

Samba konfigurieren:

sudo nano /etc/samba/smb.conf

Die Zeile "#security = user" finden und die Raute am anfang entfernen. So das dort "security = user" steht.

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

User anlegen, die per SMB zugreifen dürfen (Beispiel: Pi)

sudo smbpasswd -a pi

Anschließend das Passwort eingeben die der User für die SMB Freigabe benötigt.

Rechte anpassen:

sudo chown -R pi:pi /var/www/

Freigabe Ordner einfügen:

sudo nano /etc/samba/smb.conf

Ganz nach unten Scrollen (CTRTL+ V) und dort eine Freigabe eingeben (Nennen wir sie mal "server"). Hier sieht man das wenn man mal später den "server" mountet das man den Ordner "/var/www/" angezeigt bekommt.

[server]
path = /var/www/
writeable = yes
guest ok = no

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Samba Neustarten:

sudo /etc/init.d/samba restart

Ab sofort könnt ihr euren RPi auf eurem Rechner als Netzwerk Freigabe mounten und direkt darauf arbeiten.

 

Sollte das hier oben nicht funktionieren, hat sich wohl bei Samba so einiges geändert..., dann habe ich hier eine sehr gute Anleitung dazu gefunden: https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm

 

Email Versand für den Webserver aktiveren

Wenn der Raspberry Pi auch nach außen kommunizieren soll, (ideal für Tagesaktuelle Wetterberichte/Statusmeldungen), ist es sinnvoll ein protokoll für den email Versand zu installieren:

sudo apt-get install ssmtp
sudo apt-get install mailutils

Das ganze muss natürlich noch konfiguriert werden. Ich hatte es mit verschiedenen Email Diensten ausprobiert und habe letztendlich aufgegeben und mir einen Gmail Account eingerichtet der hervorragend zu zuverlässig funktioniert:

sudo nano /etc/ssmtp/ssmtp.conf

Ich lösche eigentlich immer den kompletten inhalt und ersetze ihn durch das vorbereitete:

# Config file for sSMTP sendmail
root=
Deine Gmail Adresse

mailhub=smp.gmail.com:587

hostname=server

UseSTARTTLS=YES

FromLineOverride=YES
AuthUser=
Deine Gmail Adresse
AuthPass=
Dein Gmail Passwort

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Jetzt müssen noch die aliasse angelegt werden, die legen fest welcher User mit welcher Email versendet:

sudo nano /etc/ssmtp/revaliases

Alles löschen und folgendes eingeben:

root:Deine Gmail Adresse:smtp.gmail.com:587
www-data:Deine Gmail Adresse:smtp.gmail.com:587
pi:Deine Gmail Adresse:smtp.gmail.com:587

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Rechte anpassen:

sudo chmod 774 /etc/ssmtp/ssmtp.conf

 

 

Passwort Schutz mittels .htaccess installieren

Wer einen kleinen Webdienst oder Webseite drauf laufen lassen möchte, aber nicht möchte das jeder einfach so drauf zugreifen darf, kann das ganze mit einem Passwort Schutz versehen:

sudo a2enmod rewrite
sudo nano /etc/apache2/sites-enabled/000-default

Folgendes finden:

<Directory /var/www/>
Options indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
</Directory>

und durch das hier ersetzen:

<Directory /var/www/>
Options indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Passwort Schutz für des Verzeichniss /var/www/ anlegen:

sudo nano /var/www/.htaccess

Folgendes einfügen:

AuthName "Bitte Verifizieren"
AuthType Basic
AuthUserFile /var/.htpasswd
require valid-user

Speichern mittels CTRL+X und dann mit "y" + "Enter" bestätigen.

Ersten User Anlegen (Beispiel Penelope):

sudo htpasswd -c /var/.htpasswd penelope

Weitere User anlegen (ohne das "-c", sonst wird die bisherige Passwort Liste überschrieben).

htpasswd /var/.htpasswd Username

 

 

Basic Calculator Installieren

Den braucht man manchmal für einige Kakulationen bei meinen Projekten - er nimmt nicht viel Speicher weg und ist ganz nützlich, er ist aber kein MUSS.

sudo apt-get install xinetd bc

 

Wiring Pi Installation

Damit man die GPIOs auch abfragen kann ist WiringPi mittlerweile unabdingbar. Viele Installationen haben WiringPi mittlerweile schon standardmässig installiert, wenn nicht, kann man es so schnell nach installieren:

sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

 

 

Bonjour / Zero Config Installieren

Damit der Pi im heimischen Netzwerk per Namen statt mit IP erreichbar ist kann man Bonjour installieren.

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install avahi-daemon
sudo update-rc.d avahi-daemon defaults

sudo raspi-config

Dort den Hostnamen nach Wunsch eingeben, nach einem Neustart ist der Pi unter dem "Hostnamen.local" im Lokalen Netz erreichbar. Aber Achtung, der Aufruf per Namen ist lansamer als d

 

WebDav Installieren und Einrichten

Webdav ist eine tolle Sache, man kann einen Ordner freigeben, jeder kann dort mit dem Browser drauf zugreifen und mit "Server Verbinden" kann man den Speicher auch für viele beschreibbar / Löschbar machen, und das über Port 80 - ohne irgendwelche Löcher in die Router Firewall zu bohren.! Voraussetzung ist eine Apache Installation (siehe oben!)

Webdav aktivieren:

sudo a2enmod dav_fs
sudo a2enmod dav

Server Neustarten :

sudo /etc/init.d/apache2 force-reload

Ordner anlegen der freigegeben werden soll, falls nicht schon geschehen:

sudo mkdir -p /var/www/ftp

Rechte für den User www-data einrichten:

sudo chown www-data /var/www/ftp

Die Konfiguration aufrufen:

sudo nano /etc/apache2/sites-available/default

Alles löschen und das eingeben:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/ftp
<Directory
/var/www/ftp/>
Options indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>

Server Neustarten :

sudo /etc/init.d/apache2 force-reload

User Anlegen:

sudo htpasswd -c /var/passwd.dav Username

Weitere User werden ohne "-c" angelegt:

sudo htpasswd /var/passwd.dav WeitererUsername

Rechte anpassen:

sudo chown root:www-data /var/passwd.dav
sudo chmod 640 /var/passwd.dav

Die Konfiguration wieder einmal aufrufen:

sudo nano /etc/apache2/sites-available/default

und entsprechend anpassen:

NameVirtualHost *
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory /var/www/>
Options indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Alias /webdav /var/www/ftp

<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/passwd.dav
Require valid-user
</Location>

</VirtualHost>

 

Server Neustarten :

sudo /etc/init.d/apache2 force-reload

Ab sofort kann man den Pi auch per Webdav einbinden. Unter Mac OS X geht das direkt vom Finder aus:

Mit Server Verbinden: http://IP des Raspberry Pis/webdav

Username und Passwort werden abgefragt und können im Schlüsselbund gespeichert werden. Man hat dann voll Schreib- und Leserechte auf den Ordner. Fast wie eine kleine Cloud 8-)

Unter Windows wird es immer alles etwas komplizierte gehandhabt damit die Admins in den Unternehmen ihren Job sichern können..., auch hier ist es von der Version abhängig ob und wie es läuft.

 

Kleinere Tipps:

Unbedingt die Uhrzeit und Locale (Punkt 4) eingeben, damit das System auch weiss wo es ist und wie spät es ist, das geht alles in der:

sudo raspi-config

Ausserdem sollte man dort das Expand Filesystem ausführen (Punkt 1)


Einen "fest"hängenden Trash entleeren

sudo rm -rf ~/.local/share/Trash/files/*

Was Tun bei der Meldung : "Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName"... ?

Das ist nichts schlimmes, eigentlich braucht man nichts unternehmen, es sei denn es stört einen , dann kann man das auch simpel abstellen.

Als erstes sollte man den eigenen Hostnamen überprüfen oder ändern, dann kann man mittels "sudo raspi-config" und einem der unteren Menupunkte...(8 oder so...). Dann wenn der Hostname sauber eingestellt ist ruft man seine eigene Hosts Datei auf und trägt ihn dort auch ein:

sudo nano /etc/hosts

Dort sollte man einen Eintrag wie diesen haben: "127.0.0.1 Servername". Wobei "Servername" durch euren Hostnamen ersetzt wird.

Weiter geht es mit der Apache config:

sudo nano /etc/apache2/apache2.conf

Dort GANZ unten schreibt ihr folgendes rein "Servername localhost", wobei dieses mal der "Servername" bleibt und nicht durch euren Hostnamen ersetzt wird.

Nach einem Neustart sollte die Meldung "Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName"" der Vergangenheit angehören.

Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke