Sie sind hier
Installation CentOS 7 Homeserver (NAS)
Diese Anleitung beschreibt die Einrichtung von CentOS als lokalen Datenserver für den privaten Haushalt.
Sie baut teilweise auf die Webserveranleitung auf, so dass diese zuerst durchgegangen werden wollte:
http://linux.t-tietz.de/CentOS_7_Installation_Webserver |
Wir sind als User "root" per SSH auf dem Server angemeldet.
Wir richten einen Benutzer ein, unter dessen Namen wir die öffentlichen Daten teilen wollen.
adduser media |
Dem User teilen wir ein Passwort zu:
passwd media |
Wir legen eine grundlegende Dateistruktur an:
mkdir -p /home/media/Musik /home/media/Bilder /home/media/Videos |
Wir setzen den Benutzer:
chown -R media /home/media |
Bei Bedarf richten wir weitere Benutzer ein, die ihre Daten nicht öffentlich teilen:
adduser benutzer passwd benutzer |
Und richten die Struktur ein:
mkdir -p /home/benutzer/Musik /home/benutzer/Bilder /home/benutzer/Videos /home/benutzer/Dokumente |
Wir setzen die Rechte :
chown -R benutzer /home/benutzer |
Die Sicherheitstechnik Selinux und der Firewall machen für den Heimgebrauch eher Probleme als dass sie nutzen, daher schalten wir sie ab.
nano /etc/selinux/config |
Wir machen aus "SELINUX=enforcing " "SELINUX=disabled"
Für den Firewall geben wir ein:
systemctl disable firewalld |
Danach starten wir mit
reboot |
neu.
Nun sorgen wir dafür , dass die öfftenlichen Medien per HTTP geteilt werden können.
Dafür legen wir eine weitere Konfigurationsdatei an:
nano /etc/httpd/conf.d/media.conf |
<Directory /home/media > Alias /Musik /home/media/Musik
|
Danach starten wir den httpd neu:
systemctl restart httpd |
Unter IP/Musik IP/Videos und IP/Bilder können wir im Browser nun auf die Daten zugreifen.
Bis jetzt können die Daten über HTTP nur gelesen werden.
Zum Schreiben gibt es die Erweiterung "Webdav".
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:
nano /etc/httpd/conf/httpd.conf |
Wir suchen die Stelle wo "User" Und "Group" stehen und tragen dahinter "media" ein.
In der Datei "/etc/httpd/conf.d/media.conf
Tragen wir im "Directory" Bereich
Dav on |
ein.
Dann editieren wir die Dav-Konfiguration:
nano /etc/httpd/conf.modules.d/00-dav.conf |
Hier fügen wir folgende Zeile ein:
DavLockDB /var/lock/httpd/dav_lock |
Diese Verzeichnis erstellen wir und ordnen es dem Nutzer "media" zu, damit der Server da reinschreiben kann.
mkdir /var/lock/httpd chown media /var/lock/httpd |
Danach starten wir den httpd neu:
systemctl restart httpd |
Nun optimieren wir die Openssh Konfiguration:
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 |
Dies kann man für weitere Benutzer wiederholen, oder diese in einer Unix Group zusammenfassen und "Match Group" hier verwenden.
Damit ssh-chrooting auch funktioniert muss das Homeverzeichnis des Nutzers "root" gehören:
chown root:root /home/media |
Danach starten wir den ssh-Server neu.
systemctl restart sshd |
Viele Linuxclienten sowie Apple Systeme können SFTP-Freigaben mithilfe der Zeroconftechnik finden.
Dazu muss avahi konfiguriert werden. Nomalerweise ist er schon installiert. (Der Paketname lautet avahi).
Wir starten ihn und sorgen dafür dass er beim Booten startet.
systemctl enable avahi-daemon systemctl start avahi-daemon |
Wir kopieren die Configurationsdateien ins Avahi Service Verzeichnis:
cp /usr/share/doc/avahi-0.6.31/sftp-ssh.service /usr/share/doc/avahi-0.6.31/ssh.service /etc/avahi/services/
|
Und starten avahi neu:
systemctl restart avahi-daemon |
Wir installieren den FTP-Server vsftpd.
yum install vsftpd |
Wir aktivieren und starten ihn:
systemctl enable vsftpd systemctl start vsftpd |
Wir editieren die Konfigurationsdatei.
nano /etc/vsftpd/vsftpd.conf |
hier muss es heißen:
chroot_local_user=YES |
Wichtig: Diw Home Verzeichnise der User müssen "root" gehören (siehe ssh).
Und
anonymous_enable=NO |
Wir starten den FTP-Dienst neu:
systemctl restart vsftpd |
Wir konfigurieren den FTP-Dienst für Zeroconf (siehe ssh).
nano /etc/avahi/services/ftp.service |
Wir tragen ein:
<service-group> <name replace-wildcards="yes">%h</name> <service> </service-group>
|
Dananach starten wir avahi neu:
systemctl restart avahi-daemon |
Als nächstes installieren wir den Samba Server. Dessen Protokoll wurde für Windowsfreigaben geschaffen. Heute nutzen aber alle Betriebsysteme dises Art von Freigaben.
yum install samba |
Auch hier sorgen wir dafür, dass die Dienste beim booten und jetzt starten:
systemctl enable smd systemctl enable nmd systemctl start smd systemctl start nmd |
Wir editieren die Konfiguration:
nano /etc/samba/smb.conf |
Mei 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] |
Danach starten wir den Sambaserver neu:
systemctl restart smb |
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.
yum install cups |
Wie bei allen Servern:
systemctl enable cups systemctl start cups |
Wir editieren die Konfigurationsdatei:
nano /etc/cups/cupsd.conf |
Hinter Listen muss *:631 stehen:
Listen *:631
|
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 Druckserver neu:
systemctl restart cups |
Der Drucker kann jetzt unter IP:631 konfiguriert werden
p
Hier muss "share printers connected to this system" aktiviert sein.
Die SSL-Warnung mein Einloggen erscheint weil CUPS ein selbstsigniertes Zertifikat verwendet.
Hier kann man Ausnahmen hinzufügen.
Als nächstes installieren wir einen nfs-Server.
yum install nfs-utils |
Wir aktivieren und starten die nötigen Dienste:
systemctl enable rpcbind systemctl enable nfs-server systemctl enable nfs-lock systemctl enable nfs-idmap systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap |
Wir editieren die Freigabekonfiguration
/home/media/Musik 192.168.178.0/24 (ro,sync) /home/media/Videos 192.168.178.0/24 (ro,sync) /home/media/Bilder 192.168.178.0/24 (ro,sync) /home/ 192.168.178.0/24 (rw,sync,no_root_squash,no_all_squash) |
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.
Die Änderungen übernehmen wir mit:
systemctl restart nfs-server |
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 bzw DLNA geschaffen worden.
Hierzu benötigen wir das das nux dextop repo .
Wir laden hierzu das neueste nux Dextop release herunter:
http://li.nux.ro/download/nux/dextop/el7/x86_64/ |
und installieren es:
yum install nux-dextop-release-0-x.el7.nux.noarch.rpm |
nun können wir minidlna installieren:
yum install minidlna |
Wir editieren die Konfiguration:
nano /etc/minidlna.conf |
Hier Tragen wir 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 sorgen dafür dass der Server beim Systemstart started und starten ihn jetzt:
systemctl enable minidlna systemctl start minidlna |
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 CentOS konnte ich keine Serverpakete finden, so habe ich selbst welche erstellt:
Benötigt werden: folked-daapd, libavl, libevent-alpha, mxml antr3-C
Ich habe folked-daapd gepached, damit er mit amarok zusammen arbeited.
Wer die Sourcen selbst kompilieren will. braucht diese zugehörigen devel-pakete und antr3-tool (welches stringtemplate und stringtemplate4 benötigt).
Die Pakte benötigen das EPEL-Repo und das nux dextop repo.
nachdem wir folked-daapd mit allen Abhängigkeiten installiert haben , editieren wir die Konfiguration:
nano /etc/forked-daapd.conf |
hier muss unter "directories" "/home/media/Musik" eingetragen werden.
Forked-Daap schlägt für bestimmte Audiodateien (Podcasts, Hörbücher, Zusammenstellungen) extra Verzeichnisse vor die wir nun einrichten:
mkdir /home/media/Musik/Podcasts /home/media/Musik/Audiobooks /home/media/Musik/Compilations |
Wir setzen die Rechte:
chown media /home/media/Musik/Podcasts /home/media/Musik/Audiobooks /home/media/Musik/Compilations |
Nun sorgen wir dafür, dass forked-daapd beim Booten startet und starten ihn.
systemctl enable folked-daapd systemctl start folked-daapd |
Nun ist der Server einsatzbereit und kann mit Medien gefüttert werden.