Sie sind hier
Installation Ubuntu 14.04 LTS Trusty Thar Homeserver (NAS)
Diese Artikel baut auf folgendem Artikel auf:
http://linux.t-tietz.de/Ubuntu_Server_14_04_LTS_Trusty_Installation_webserver |
Mindestens der Webserver sollte wie beschrieben eingerichtet sein.
Wir sind als Admin-User per SSH auf dem Server angemeldet.
Wir richten einen Benutzer ein, unter dessen Namen wir die öffentlichen Daten teilen wollen.
sudo adduser media |
Wir legen eine grundlegende Dateistruktur an:
sudo mkdir -p /home/media/Musik /home/media/Bilder /home/media/Videos |
Wir setzen den Benutzer:
sudo chown -R media /home/media |
Bei Bedarf richten wir weitere Benutzer ein, die ihre Daten nicht öffentlich teilen:
sudo adduser benutzer |
mkdir -p /home/benutzer/Musik /home/benutzer/Bilder /home/benutzer/Videos /home/benutzer/Dokumente chown -R benutzer /home/benutzer |
Nun sorgen wir dafür , dass die öfftenlichen Medien per HTTP geteilt werden können.
Dafür legen wir eine weitere Konfigurationsdatei an:
sudo nano /etc/apache2/conf-available/media.conf |
Wir tragen ein:
<Directory /home/media > Alias /Musik /home/media/Musik |
Wir aktiviren die Konfiguration:
sudo a2enconf media |
Wir laden den Webserver neu:
sudo service apache2 reload |
Nun können unter IP/Musik IP/Videos IP/Bilder die Daten im Browser gelesen werden.
Bis jetzt können die Daten über HTTP nur gelesen werden.
Zum Schreiben gibt es die Erweiterung "Webdav".
Wir aktivieren das Dav-Modul:
sudo a2enmod dav_fs |
In der Datei /etc/apache2/conf-available/media.conf fügen wir die Zeile "Dav on" ein.
Normalerweise läuft der Webserver unter einen eigenen Benutzeraccount,der Daten des Benutzers "media" zwar lesen aber nicht schreiben kann.
Da unser Sever nicht aus dem Internet erreichbar ist und im Heimnetz hoffentlich nur vertrauliche Leute sind, machen wir den Server etwas unsicherer und lassen den httpd unter den Account "media" laufen.
Dazu editieren wir die Konfiguration:
sudo nano /etc/apache2/envvars |
Bei APACHE_RUN_USER und APACHE_RUN_GROUP machen wir aus "www-data" "media"
Danach laden wir den Webserver neu:
sudo service apache2 reload |
Nun optimieren wir die Openssh Konfiguration:
sudo nano /etc/ssh/sshd_config |
Wir ändern
Subsystem sftp /usr/libexec/openssh/sftp-server |
in
Subsystem sftp internal-sftp |
Am Ende tragen wir ein:
Match User media ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no X11Forwarding no |
Dies kann man für weitere Benutzer wiederholen, oder diese in einer Unix Group zusammenfassen und "Match Group" hier verwenden.
Wir starten den SSH-Server neu:
sudo servive ssh restart |
Damit ssh-chrooting auch funktioniert muss das Homeverzeichnis des Nutzers "root" gehören:
sudo chown root:root /home/media |
Viele Linuxclienten sowie Apple Systeme können SFTP-Freigaben mithilfe der Zeroconftechnik finden.
Dazu muss avahi konfiguriert werden.
Wir installieren ihn mit:
sudo apt install avahi-daemon |
Wir kopieren die Konfigurationsdateien ins Avahi Service Verzeichnis:
cp /usr/share/doc/avahi-daemon/examples/ssh-service /usr/share/doc/avahi-daemon/examples/sftp-ssh.service /etc/avahi/services/ |
Wir starten den Avahi-Server neu:
sudo service avahi-daemon restart |
Wir installieren den ftp-Server proftpd:
sudo apt install proftpd |
Bei folgender Frage wählen wir "Servermodus" aus.
Die Standardkonfiguration von proftpd ist für unsere Zwecke so richtig und muss nicht editiert werden.
Wir richten den ftp Dienst in avahi ein:
sudo nano /etc/avahi/services/ftp.service |
Wir tragen ein:
<service-group> <name replace-wildcards="yes">%h</name> <service> </service-group> |
Danach starten wir den Avahi-Server neu:
sudo service avahi-daemon restart |
Als nächstes installieren wir den Samba Server. Dessen Protokoll wurde für Windowsfreigaben geschaffen. Heute nutzen aber alle Betriebsysteme dises Art von Freigaben.
sudo apt install samba |
Wir editieren die Konfiguration:
sudo nano /etc/samba/smb.conf |
Bei mir im Netz verwenden alle Geräte (u.a. die Fritz.box) die Arbeitsgruppe "Workgroup").
Daher trage ich hier "Workgroup = WORKGROUP" ein.
Außerdem fügen wir ein:
guest account = media |
Dies ist nötig um unsere Medien ohne Passwort beschreibbar freigeben zu können.
Die Freigaben sehen folgendermaßen aus:
[Bilder] comment = öffentliche Bilder path = /home/media/Bilder public = yes writable = yes [Videos] [Musik] |
wir starten den Sambaserver neu:
sudo service smbd restart |
Wenn wir einen USB-Drucker (Drucker für den Parallelport gehen auch falls noch wer so einen besitzt) im Netzwerk teilen wollen, installieren wir den Druckerserver CUPS.
sudo apt install cups |
Wir editieren die Konfigurationsdatei:
sudo nano /etc/cups/cupsd.conf |
Hinter Listen muss *:631 stehen:
Listen *:631 Listen /var/run/cups/cups.sock |
Wir geben unseren IP-Bereich frei: (in meinem Netzwerk bekommen alle Geräte eine 192.168.178.xxx IP-Adresse vom Router, dies kann abweichen).
# Restrict access to the server... # Restrict access to the admin pages... |
Wir starten den Druckerserver neu:
sudo service cups restart |
Der Drucker kann jetzt unter IP:631 konfiguriert werden
Hier muss" Freigeben von Druckern, welche mit dem System verbunden sind" aktiviert werden.
Die SSL-Warnung beim Einloggen erscheint weil CUPS ein selbstsigniertes Zertifikat verwendet.
Hier kann man Ausnahmen hinzufügen.
Als nächstes installieren wir einen nfs-Server.
sudo apt install kernel-nfs-server |
Wir editieren die Freigaben:
sudo nano /etc/exports |
/home/media/Musik 192.168.178.0/24(ro,sync,no_subtree_check) /home/media/Videos 192.168.178.0/24(ro,sync,no_subtree_check) /home/media/Bilder 192.168.178.0/24(ro,sync,no_subtree_check) /home/ 192.168.178.0/24(rw,sync,no_root_squash,no_all_squash,no_subtree_check) |
Die Freigabe der Medien ist auf nur lesbar und nicht beschreibbar eingestellt, da nfs verlangt, dass die Benuternummern auf Client und Server indentisch sind was in unseren Fall nicht ist. Das allgemeine Benutzerverzeichnis ist dann unter den oben genannten Bedingungen beschreibbar.
Den Serverstarten wir neu mit:
sudo service nfs-kernel-server restart |
Mediendateien teilt man heutzutage nicht nur mit Computern sondern auch mit Internetfähigen Fernsehern, Internetradios, Smartphones , Tablets und sonstigen.
Hierfür ist das Protokoll UPNP-AV bzw DLNA geschaffen worden.
Der Minidlna Server implentiert das Protokoll:
Wir installieren ihn mit:
sudo apt install minidlna |
Wir editieren die Konfiguration:
sudo nano /etc/minidlna.conf |
Wir tragen ein:
media_dir=A,/home/media/Musik media_dir=V,/home/media/Videos media_dir=P,/home/media/Bilder |
mit "friendly_name" geben wir dem Server einen Namen.
Wir starten den Dienst neu:
sudo service minidlna restart |
Nicht alle Mediaplayer können mit dem DLNA etwas anfangen. Es gibt ein weiteres Protokoll namens DAAP. Die wird vor allen von Apple in Itunes, Iphone,Ipad und Ipod verwendet.
Aber auch freie Player wie Banshee, Rythmbox und Amarok unterstützen es.
Für Amarok muss der Quellcode gepatched und neu gebaut werden :
diff -upr forked-daapd-22.1/src/httpd_daap.c forked-daapd-22.1-pached/src/httpd_daap.c |
Ansonsten kann man dass offizille Ubuntu-Paket nehmen:
sudo apt install forked-daapd |
Wir editieren die Config:
nano /etc/forked-daapd.conf |
hier muss unter "directories" "/home/media/Musik" eingetragen werden.
Wir starten den Dienst neu:
sudo service forked-daapd restart |
Nun ist der Server einsatzbereit und kann mit Medien gefüttert werden.