EnglishFrenchGermanItalianPortugueseRussianSpanish
Facebook

Archive
Suchen

Artikel-Schlagworte: „Der eigene Homeserver“

Befehle im Terminal

Heute mal ein kleiner Linktipp zum Thema “EIngaben/Befehle im Terminal” unter Ubuntu.

In diesem wird auch erklärt, was es mit den Rechten auf sich hat, wie diese sich zusammensetzen, was die Zahlen bedeuten.

Sollte man sich gleich als Lesezeichen setzen!

Der eigene Homeserver Teil 7 : FTP

Kommen wir nun zu dem Beitrag FTP.
FTP wird genutzt, um auf dem Server Dateien abzulegen bzw. abzufragen, ohne an diesem zu sitzen.

Das erledigt man meist mit einem Clienten, welcher rein optisch an den guten alten Commander erinnert.

ich beschreibe hier heute die Einrichtung anhand des Programmes VSFTPD.
Bei diesem Programm sollte man bedenken, dass dieses lediglich auf den Home-Ordner des eingeloggten Users zugreift.
Da wir aber auch den Inhalt unseres Webordners verwalten wollen, müssen wir dieses Verzeichnis in unseren Home-Ordner mounten.

Dazu legen wir einen Ordner namens “www” in unserem Home-Ordner an:
mkdir /www

Da wir diese Eingabe ohne sudo-Rechte eingeben, befinden wir uns bereits im Home-Ordner, sodass die Eingabe ohne die ganzen Eltern-Ordner davor ausreicht.

Nun sorgen wir dafür, dass die “Verlinkung” auch bei jedem Start des Servers funktioniert:
sudo nano /etc/fstab

Dort tragen wir folgendes ein:
/var/www /home/Firstuser/www ext3 defaults,rw 0 0

Nun könnt Ihr über Euer Home-Verzeichnis auf den Inhalt des Webordners zugreifen!

Jetzt kommt das Programm:
sudo apt-get install vsftpd

Nun müssen wir unsere Konfigurationsdatei editieren:
sudo nano /etc/vsftpd.conf

In dieser sollten folgende Einträge wie folgt hinzugefügt/editiert werden:
listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
#local_unmask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
#nopriv_user=ftpsecure
deny_email_enable=YES
chroot_local_user=YES
#ls_recurse_enable=YES
chmod_enable=YES
force_dot_files=YES
write_enable=YES
pasv_enable=YES
port_enable=YES

Nun starten wir den FTP-Server neu:
sudo /etc/init.d/vsftpd restart

Und schon ist Euer FTP-Server eingerichtet.
Ihr habt nun Zugriff auf Euren Home-Ordner, in welchem sich auch das Webverzeichnis “www” befindet.
Anonyme Logins werden geblockt, zulässig sind nur im System hinterlegte User.

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 6 : Mailserver

Sorgen wir mit dem heutigen Beitrag dafür, dass Euer zukünftiger Webserver auch E-Mails versenden kann.
Dieses ist u.U. notwendig, wenn Ihr Blogsoftware betreibt.
Aus diesem Grunde ist nötig, dass Ihr (trotz eigenem Webserver) eine funktionierende E-Mail-Adresse bei einem Anbieter wie z.B. GMX, Arcor oder einen festen Account eines Webhosters habt, denn:

ihr habt eine dynamische IP, und fast alle Mailserver dieser Welt lehnen Anfragen von dynamischen IP’s ab, sobald sie von einem Server stammen!

Das hat einen ganz einfachen Grund:
Die meisten privat eingerichteten Mailserver stehen offen wie Scheunentore, was Spammer unheimlich gerne ausnutzen, um ihren Müll zu verschicken.
Auch waren diese Mailserver sehr beliebt, um direkt massenhaft Spams zu verschicken.

D.h., dass wir zwar einen Mailserver einrichten, dieser aber nur als “Weiterleiter” zum Hoster dient, der dann die Mails verschickt.

Aber fangen wir nun an:
sudo apt-get install postfix libsasl2-modules

Damit installiert Ihr Postfix sowie die nötigen Zusatzmodule für die spätere Authentifizierung bei Eurem Hoster.

Die erste Abfrage ist mit “Internet mit Smarthost” zu beantworten.

Während der Installation werden Ihr nach dem Mailnamen gefragt – tragt hier den Hostnamen Eures Servers ein, z.B. homeserver.

Bei smtp-Relay-Host tragt Ihr den Host Eures Providers ein, z.B. smtp.gmx.net
Die Vorgabe bei Netze “127.0.0.0/8” bleibt unverändert.

Nach erfolgter Installation müssen wir die Datei /etc/postfix/main.cf im Editor bearbeiten, dazu also:
sudo nano /etc/postfix/main.cf

Hier lassen wir alles unverändert und scrollen bis zum Ende, wo wir dann folgendes hinzufügen:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sender_canonical_maps = hash:/etc/postfix/sender_canonical

Anschließend speichern und Ende.

Wir haben also hinzugefügt, dass wir uns am Host mit einem Passwort anmelden müssen, wo das Passwort hinterlegt ist, und wie die spätere E-Mail-Absenderadresse aussehen soll, also legen wir nun die beiden Dateien an:
sudo nano /etc/postfix/sasl_password

In dieser tragen wir folgendes ein:
smtp.gmx.net nutzername:nutzerpasswort

Speichern und Ende.
Nun noch die Datei für die Absenderkennung:
sudo nano /etc/postfix/sender_canonical

homeserver nutzeradresse@gmx.de
www-data nutzeradresse@gmx.de

Speichern und Ende.

BEVOR Ihr jetzt den Mailserver neu startet, müssen die beiden Dateien in Datenbanken umgewandelt werden, dass bewerkstelligen wir mit den beiden Eingaben:
sudo postmap /etc/postfix/sasl_password
sudo postmap /etc/postfix/sender_canonical

JETZT können wir den Mailserver neu starten:
sudo /etc/init.d/postfix restart

Ab sofort ist Euer Mailserver in der Lage, Mails zu versenden.

Ich werde im Rahmen dieses HowTo’s später nochmal die Einrichtung/Konfiguration eines vollständigen Mailservers online setzen (also mit E-Mails vom Server abholen, diese auf dem Homeserver dann verschiedenen Usern zuteilen und gleichzeitig auf Spam hin überprüfen lassen), aber wie schon erwähnt: später!

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 5 : Webserver Apache

Kommen wir mit dem fünften Teil meines HowTo’s zu dem wohl interessantesten Teil, nämlich der eigene Webserver.

Ich gehe davon aus, dass die anderen Änderungen am System (Netzwerk, IP, Hostname) etc aus den vorherigen Teilen getätigt wurden.
Nun sollte man sich überlegen, ob der Webserver (wie der Name schon sagt) aus dem Web ansprechbar sein soll, und wenn ja, wie!

Im Normalfall hat ein jeder von uns sogenannte dynamisch zugewiesene IP’s, d.h. bei jedem Einwählen ins Internet haben wir eine andere Adresse, sprich unser Server ist nie unter der gleichen Adresse ansprechbar.

Da ein Server im allgemeinen jedoch eine feste Adresse/IP benötigt, gibt es hierfür sogenannte DynDNS, also dynamische DomainNameServer, welche immer unter einer festen Adresse ansprechbar sind und zur dynamischen IP umleiten, aber später NACH Einrichtung des Servers mehr dazu!

Fangen wir mal mit dieser Konsoleneingabe an:
sudo apt-get install apache2

Nach der Installation ist der Server bereits aktiv und bietet unter http://localhost bzw. http://127.0.0.1 auf Port 80 seine Dienste an.
Das Standard-Webverzeichnis des Indianers liegt unter /var/www, welches man zugunsten von mehr Sicherheit auch dort belassen sollte.
Es existiert eine Anleitung im Netz, in welcher dieser Ordner expliziet in den Ordner für allgemeine Freigaben verschoben wird, aber davon rate ich dringendst ab (Ihr erinnert Euch, Rechteverwaltung!)!

Sollte man reine HTML-Seiten anbieten wollen, wäre an diesem Punkt bereits das Ende erreicht, will man jedoch das volle Programm wie PHP, Perl, CGI, MySQL etc pp. nutzen (wird für ein WordPress-Blog alles benötigt), geht es mit der Installation von PHP weiter:
sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-cgi php5-gd php5-mcrypt

Mit dieser Eingabe werden sämtliche nötigen Pakete und Abhängigkeiten geholt und installiert.

Da WordPress z.B. darauf ausgelegt ist, “schöne” Adressen (Permalinks) zu bilden, benötigen wir noch das Modul mod_rewrite, welches dafür sorgt, dass Adressen umgeschrieben werden können:
sudo a2enmod rewrite

Aber nochmals: nicht benötigte Pakete/Module sollten auch nicht installiert/aktiviert werden!

Wenn wir die Umschreibung benötigen, müssen wir dieses dem Apachen auch noch mitteilen, dafür öffnen wir die Datei /etc/apache2/sites-available/default

In dieser ändern wir Einträge dieser Art

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None

wie folgt ab

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All

Nun starten wir den Indianer neu:
sudo /etc/init.d/apache2 restart

Jetzt haben wir einen funktionierenden Webserver, jedoch fehlt noch etwas, nämlich MySQL und PhpMyAdmin:
sudo apt-get install mysql-server phpmyadmin

ACHTUNG: Während der Installation wird nach einem Passwort gefragt – hierbei ist NICHT Euer Passwort gemeint, sondern das zukünftige Passwort für den Root-Account. Hier bitte daran denken, dass es um die spätere Verwaltung von Datenbanken geht, welche auch aus dem Internet ansprechbar ist – wählt also ein sicheres Passwort in Kombination aus Klein-, Großbuchstaben und Zahlen!

Nach erfolgter Installation könnt Ihr unter http://localhost/phpmyadmin bzw. http://127.0.0.1/phpmyadmin die Verwaltung aufrufen.
Login ist Root, Passwort habt Ihr während der Installation festgelegt!

Nun könnt Ihr Euch dem Thema ständige Erreichbarkeit des Webservers ein paar Gedanken machen (wie bereits am Anfang angesprochen).

Aufgrund der einfachen Einrichtung empfehle ich hier den Dienst Selfhost-FREE oder Selfhost-DOMAIN von Selfhost.de

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 4.2 : NFS

In Kapitel 4.1 haben wir erfolgreich einen Samba-Server eingerichtet. Samba (SMB) ist für UNIX/Windows gedacht, um Freigaben einzurichten.

Jetzt gibt es aber auch noch andere Systeme wie Solaris, SunOS und andere MAC-Clients, die auf SMB leider nicht, oder nur sehr unzuverlässig zugreifen können – für solche gibt es das NFS (Network File System), welches aus meiner SIcht auch für reine Linux-Umgebungen wesentlich besser geeignet ist, als Samba!

Auch die Konfiguration (zumindest die Grundkonfiguration) geht wesentlich schneller und leichter von der Hand, auch das Thema Sicherheit ist wesentlich leichter zu handhaben, da Rechte grundsätzlich zuvor im Server festgelegt werden müssen.

Aber genug der (unnützen) Vorworte, nun richten wir NFS ein:

sudo apt-get install nfs-common nfs-kernel-server portmap

Nun öffnen wir die Datei /etc/exports und geben nach den Vorgaben von Kapitel 4.1 (Samba) folgendes ein:

/home 192.168.178.xx(rw)
/media/disk1 192.168.178.xx(rw,async)

Das Home-Verzeichnis wird durch die IP-Adresse vergeben, hier muß bei xx also die korrekte IP-des Clientrechners eingegeben werden.
Die zweite Festplatte (wenn nicht vorhanden einfach weglassen) muß hierfür wie in Kapitel 4.1 beschrieben gemountet sein.

Anstelle der IP kann auch der Hostname des Rechners eingegeben werden, jedoch muss dann die Datei /etc/hosts um die IP-Adresse und den Hostnamen des Clientrechners erweitert werden, z.B.:

192.168.178.111 laptop
192.168.178.123 drehorgel

Nun legen wir fest, welche IP-Adressen tatsächlich zugreifen dürfen. Aus diesem Grunde mußten wir in der /etc/hosts auch hinterlegen, welcher Hostname auf welcher IP hört, denn diese nun folgende Festlegung funktioniert nur mit IP’s.

sudo nano /etc/hosts.allow

portmap: 192.168.178.xx (oder wenn das gesamte Netzwerk Zugriff haben soll
portmap: 192.168.178.0/24)

Anschließend lassen wir den Server die Konfiguration neu einlesen:

sudo /etc/exportfs -ra

So, nun haben wir den Server im Grunde konfiguriert, nun muß unser Linux-Client auch noch für den Zugriff vorbereitet werden:
sudo apt-get install nfs-common portmap

sudo mkdir /media/NFS-Server

Nun öffnen wir die Datei /etc/fstab, und geben dort folgendes ein:
192.168.178.xxx:/media/disk1 /media/NFS-Server nfs rw 0 0

Nun wird bei jedem Start die neue Freigabe gemountet.

Hinweis:
Bei der Nutzung eines Laptops, welcher öfters in anderen Netzwerken betrieben wird, sollte man folgende Prozedur ausführen, da Portmap standardmäßig Ports für NFS öffnet:
sudo dpkg-reconfigure portmap

Bei der anschließenden Frage, ob Portmap nur an localhost gebunden werden soll, antworten wir mit einem JA. Somit ist der Port von anderen Rechnern nicht mehr ansprechbar!

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 4.1 : Samba

So, mit diesem Beitrag gehen wir ans Eingemachte.
Heute sorgen wir dafür, dass wir mit unserem Rechner aus dem gesamten Netzwerk auf unsere Dateien des Servers zugreifen können.
In diesem Kapitel gehe ich NICHT den Weg über Scripte, um Ordner freizugeben, sondern den des Mountens. Mounten nennt man das virtuelle Einhängen eines Pfades, was man vergleichen kann mit einer Verknüpfung von WIndows. Jedoch ist diese “Verknüpfung” vollwertiger als nur eine eben solche.

Vorweg möchte ich noch anmerken, dass es zwar bisher keine belegbaren Fälle gibt, dass aus dem Internet heraus auf die Dateien eines anderen Users zugegriffen wurde (Hacking) und dass es grundsätzlich ein Risiko darstellt, einen Webserver auch als Dateiserver zu verwenden.

Die Begründung, dass bereits einige Server von Hostprovidern gehackt wurden und dort mehrere Dateien verschiedenster User verändert wurden, ist zwar zutreffend, jedoch kann man diese nicht pauschalisieren, da Linux/Ubuntu/Xubuntu verschiedenste Prioritäten vergibt!
So ist ein User aus dem Internet grundsätzlich der Gruppe “www-data” untergeordnet, welcher standardmäßig auf den Ordner begrenzt ist, in welchem die Inhalte des Apache-Webservers liegen.

D.h., dass es zwar grundsätzlich möglich ist u.U. eine “Tür” zum Webserver (Apache) zu öffnen, und bei falscher Berechtigungszuordnung der hinterlegten Dateien und niedriger Passwortsicherheit des Accounts damit eine Grundlage schafft, den Apache mit seinen Inhalten anzugreifen, jedoch sind Dateien, welche nicht im Webordner hinterlegt sind, gänzlich anderen Freigaben untergeordnet!
So kann ein www-data-User von Hause aus NICHT auf andere Ordner zugreifen, weder die des Users, welcher die Website betreibt, noch die Ordner anderer User!

Aus diesem Grunde bin ICH zumindest der Meinung, dass für Dateifreigaben unter Samba/NFS ein weiterer User im System bereits mehr positive Sicherheitsaspekte aufweist, als manch ein lausig eingerichteter Webserver eines x-beliebigen Hosters, der sehr großzügig im Rechte-Verteilen (Werbehoster z.B.) ist!
Das Machtwort lautet also RECHTE!
Dazu dann aber später etwas mehr, jetzt widmen wir uns nach einem ellenlangen Vortrag endlich mal dem Thema Samba-Freigaben! ;-)

Wie bereits erwähnt, sind Rechte das A und O.
Man kann einen Dateiserver zum einen so einrichten, dass man ohne Passwortlegitimation auf Freigaben zugreifen kann, oder aber den Zugang zu freigegeben Ordner auf User beschränken!
Auch kann eine solche Freigabe auf Computer aus dem Netzwerk begrenzt werden bzw. mittels IP und/oder MAC-Adresse festelegen, welcher Computer zugreifen darf!

Beides sind Extreme, welche ich NICHT ansprechen werde, da entweder zu unsicher, oder aber zu ausführlich.
Ich beschreibe hier heute die einfache, Passwortgesicherte Freigabe innerhalb des Netzwerkes, welche für alle User identisch ist. Auch wird der einfachste Weg gezeigt, wie weitere/externe Festplatten (welche Samba standardmäßig nicht einbinden kann) ebenfalls per Freigabe erreichbar sind.

Eine Anmerkung noch vorweg:
Linux ist in der Lage, trotz laufendem Rechner (1. eingerichteter User ist angemeldet) in der laufenden Session Abfragen weiterer User zu regeln, also sollte abgewägt werden, ob je nach Servertyp (nur Sambaserver oder Samba- UND Webserver) die Inhalte nicht verschiedenen Usern zugeteilt werden, also Sambaserver unter dem ersten eingerichteten User (der hat meist nach dem Root die meisten Rechte), und ein späterer Webserver unter einem weiteren User, dem expliziet mittels Gruppenverwaltung sämtliche unnötigen Rechte entzogen werden! Für den zweiten Weg habe ich mich mit meinem Server entschieden, jedoch hier nicht berücksichtigt!

Um spätere Verwechslungen zu vermeiden, rede ich fortan also von Root, Firstuser und Seconduser.

Wir haben also gesagt, dass der Sambaserver in diesem Beispiel nur vom Firstuser bzw. von der Gruppe Users ansprechbar ist, welcher sich im gleichen Netzwerk wie der Server befindet.

Terminaleingabe:
sudo apt-get install samba

Jetzt legen wir fest, welcher User Zugriff hat:
sudo smbpasswd -a Firstuser
Anschließend werden wir gefragt, welches Passwort für Firstuser hinterlegt werden soll.
Da Sicherheit nicht groß genug geschrieben werden kann, würde ich hier ein anderes wählen, als für das System hinterlegt wurde (andere Tut’s empfehlen jedoch das gleiche Passwort)!
Nun fügen wir den User Firstuser in der Gruppe Users zu:
sudo nano /etc/group
Wir suchen nun die Zeile, in welcher “users” aufgeführt ist.
Diese ändern wir wie folgt ab:
users:x:100:Firstuser
Danach speichern und Ende.

Nun konfigurieren wir den Samba-Server und verschieben die originale Konfigurationsdatei, damit diese nicht verändert wird und später zu Experimentierzwecken noch verwendet werden kann:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Nun legen wir eine neue Konfigurationsdatei an:
sudo nano /etc/samba/smb.conf

In dieser tragen wir erstmal folgendes ein:

[global]
workgroup = MSHEIMNETZ
netbios name = homeserver
wins support = yes
os level = 34
local master = yes
invalid users = root, anonymous,nobody
security = user

socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
encrypt passwords = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u

[homes]
comment = Heimverzeichnis

valid users = %S
browseable = no
read only = no
create mask = 700
directory mask= 700

[freigabe]
comment = BackupFestplatte
path = /media/disk1
writeable = yes
valid users = @users
force directory mode = 775
force create mode = 664
dos charset = 850
unix charset = ISO-8859-15
display charset = ISO-8859-15

Wenn Ihr keine 2. Festplatte einbinden wollt, lasst den Abschnitt [freigabe] einfach weg.
Speichern und Ende.
In der ersten Sektion [global] werden grundsätzliche Parameter für den Server festgelegt. In der zweiten Sektion [homes] wird festgelegt, dass jeder User in seinem Homeverzeichniss des Servers landet, welches andere evtl. User nicht sehen können. In der dritten Sektion [freigabe] könnt Ihr eine zweite Festplatte/Partition einbinden.

Solltet Ihr eine 2. Festplatte einbinden wollen, legt Ihr am besten bereits in der “Startdatei” des Systems den Ort der Platte fest! Dazu solltet Ihr wissen, als was das System die 2. Platte erkennt! In der Regel ist die erste Festplatte, auf welchem das System läuft, unter /dev/sda1 zu finden, die Auslagerungsdatei ist meistens unter /dev/sda2 eingebunden.
Dazu zur Kontrolle im Terminal folgendes eingeben:
sudo fdisk -l

Nun sollten Euch alle Partitionen/Festplatten angezeigt werden.

Sollte die 2. Festplatte z.B. unter /dev/sda3 gefunden werden, muss diese in der Datei /etc/fstab wie folgt einhängt werden (wie gehabt, sudo nano /etc/fstab):
/dev/sda3 /media/disk1 ext3 defaults,rw 0 0

Ist die gefundene Platte im Format NTFS formatiert, wird anstelle von “ext3″ einfach “ntfs” eingegeben.

Jetzt haben wir Samba im Prinzip fertig eingerichtet!
Ist als Freigabe eine 2. Festplatte angegeben, so muß noch sichergestellt werden, dass wir auch aus dem Unix-System heraus die passenden Rechte haben:
sudo chmod 775 /dev/sda3
sudo chmod 775 /media/disk1
sudo chgrp users /media/disk1

Mit der ersten Eingabe ändern wir die Rechte der Festplatte selbst!
Mit der zweiten die Rechte für das gemountete Verzeichnis.
Mit der dritten übertragen wir die Rechte an die Gruppe users.

Abschließend starten wir den Samba-Server neu, damit die neuen Einstellungen geladen werden:
sudo /etc/init.d/samba restart

Jetzt solltet Ihr im Netzwerk den Server finden und Euch als Firstuser einloggen können, und auf den Freigaben Lesen und Schreiben können!

Die einzelnen Erklärungen zu den Konfigurationen lasse ich bewusst aus, da es hier sinnvoller ist, direkt auf Werke von Samba zurückzugreifen, da man hier mehr falsch als richtig machen!

Auch kann es notwendig sein, dass ein WIndowsrechner, welcher auf die Freigaben zugreifen möchte, mit diesem Sicherheitspatch gepatched werden muss, bevor Passwörter akzeptiert werden!

Diese Konfiguration (nur mit anderen Pfaden und Namen) funktioniert auf meinem System einwandfrei, um selbst experimentieren zu wollen, empfehle ich diese “kleine” Lektüre! ;-)

Und da dieses Kapitel so extrem lang geworden ist, hat es einen Untertitel verpasst bekommen – NFS ist dann das zweite Unterkapitel.

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 3 : SSH (Fernwartung)

So, das heutige Kapitel wird ein relativ kurzes, denn SSH ist schnell eingerichtet und bedarf im Normalfall keiner weiteren Konfiguration!

Um den Server fortan z.B. auf den Dachboden zu verstauen und diesem Monitor und Tastatur zu nehmen, müssen wir vorher noch dafür sorgen, dass dieser über das Netzwerk konfigurierbar ist.

Dazu muß das Paket “openssh-server” installiert werden.
Dazu öffnen man das Terminal.

In diesem geben wir folgende Zeile ein:

sudo apt-get install openssh-server

Das erste Wort sudo teilt dem Terminal mit, dass der folgende Befehl nicht als User, sondern als Root ausgeführt werden soll.
Der Root ist auf jedem Linux-System der unmittelbare Besitzer sämtlicher Rechte.
Der Begriff apt-get sagt aus, dass ein Paket geholt werden soll.
Der Begriff install sagt aus, dass das geholte Paket installiert werden soll.
Der Begriff openssh-server ist das Paket, welches zuerst geholt und anschließend installiert werden soll, und zwar als Root.

Nach der erfolgten Installation ist der Server bereits bereit, über das Netzwerk administriert zu werden.

Nun kommt es darauf an, ob Ihr als Clienten ein Windows oder ein Linux-System verwendet, um den Server verwalten zu können!
Ich persönlich schwöre auf das Tool PuTTY SSH Client, um Server administrieren zu können.

Unter Linux gehen wir erneut in das Terminal des Clientrechners (also nicht der Server) und geben dort folgendes ein:

sudo apt-get install putty putty-tools

Mit dieser Eingabe werden die Pakete putty und putty-tools geholt und installiert.

Unter Windows kommt man hier an das Tool.

Um den Server nun über SSH anzusprechen, öffnen wir das Programm PuTTY SSH Client, geben im Zielfenster die IP des Servers ein und gehen dann auf Verbinden.

Ihr werdet nun aufgefordert, den übersandten Schlüssel zu akzeptieren. Wir akzeptieren.
Nun öffnet sich das Terminal von PuTTY, die Eingabe des Users wird erwartet. Hier nun den User des Servers eingeben! Anschließend noch das Passwort – fertig. Nun können wir den Server einrichten, ohne direkt davor zu sitzen ;-)

Sollte es hier Probleme geben, prüft die LAN-Verbindungen des Servers sowie Eures Rechners.
Schaut in der Konfiguration des Routers nach, ob der Port 22 evtl. geblockt wird. Richtet nötigenfalls eine Portfreigabe/NAT-Regel ein, dass der eingehende Port TCP 22 an IP 192.168.178.xxx TCP Port 22 weitergeleitet wird.

Jetzt müßte SSH funktionieren!

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 2 : Grundinstallation

So, jetzt geht’s los.
Ihr habt ein System zusammengebaut, die Festplatte ist i.O. und leer, der Standort des zukünftigen Servers wurde gewählt (denkt an das Thema Kühlung), und dieser ist mittels LAN-Kabel mit dem Router verbunden.

Als erstes zieht Ihr Euch die Xubuntu 8.04.1 LTS i386 Alternate-CD, und brennt das Image anschließend auf eine CD. Da ich nicht weiss, wie sich Xubuntu mit einem 64-bit-System verhält, beziehen sich sämtliche weitere Artikel auf die i386-Struktur, welche für ein solches Projekt wohl auch die wahrscheinlichste sein dürfte.

Nun die CD in das Laufwerk des Servers und diesen Starten.
Sollte er nicht von CD starten, müßt Ihr im BIOS die Boot-Parameter dahingehend ändern, dass als erste Priorität das CD-Laufwerk erscheint.

Im nun folgenden Bootmenü ändert Ihr zum einen die Sprache in DEUTSCH (Taste F2), und wählt dann Xubuntu installieren.
Das nun folgende Installationprozedere ist eigentlich selbstklärend.

Netzwerk:

Wenn Euer Router automatisch die IP-Adressen im Netzwerk vergibt (meistens standardmäßig aktiviert), solltet Ihr keine Abfrage nach der Netzwerkeinstellung bekommen.

Fällt dieses jedoch unter den Punkt “Versuch und Irrtum”, müßt Ihr Euch notgedrungen dieser Einstellung annehmen:

  • IP-Adresse: bei Fritz!Boxen meist 192.168.178.xxx, bei T-Online-Geräten meist 192.168.2.xxx
    Das xxx ersetzt Ihr durch eine freie Zahl, welche im Netzwerk noch nicht verwendet wird.
  • Netmask: 255.255.255.0, falls obiger IP-Bereich zutreffend ist.
  • Gateway: Hier wird meistens die Numerik der IP-Adresse verwendet, jedoch mit 1 am Ende, also z.B. 192.168.178.
  • DNS-Server: s. Gateway.
  • Rechnername: hier einen eindeutigen Namen wie z.B. “homeserver” eingeben.
  • Domainname: hier z.B. “homeserver.lan” eingeben.

Partitionen:

Hier solltet Ihr Euch, falls die Platte nicht komplett formatiert werden sollte, vorher dieses Werk zu Gemüte führen.
Grundsätzlich immer bedenken:

  • an erster Stelle der Festplatte gehört die Bootsektion (/), formatiert in ext3.
  • an zweiter Stelle bzw. am Ende der Festplatte die Swap-Sektion (SWAP), welche der Auslagerung dient.

Die erste Partition trägt meist die Bezeichnung hda1, die zweite hda5.
Diese beiden Partitionen sind zwingend notwendig, also keine Experimente mit diesen!

Benutzereinrichtung:

Nun werdet Ihr nach Eurem vollen Namen gefragt. Da der Server irgendwann im Netz hängt bzw. innerhalb des eigenen Netzwerkes bleibt, würde ich hier auf einen vollständigen Namen verzichten und nur eine Kombination von Buchstaben etc angeben.

Als nächstes kommt die Abfrage nach dem Hauptuser – hier könnt Ihr Euren zurkünftigen Usernamen eingeben.
Aber Vorsicht: Namen wie Admin, Root, Master etc sollte man sich verkneifen, da später der Server auch vom Internet aus gewartet werden kann und solche Namen auf fast jedem System höhere Rechte haben!
Wählt hier lieber eine Kombination aus Buchstaben und Zahlen!

Nun wird das zukünftige Passwort abgefragt, welches Ihr 2x eingeben müßt.
Auch hierbei steht Sicherheit im Vordergrund, also Kombi aus Buchstaben UND Zahlen verwenden!

Anschließend folgt die Nachfrage eines Proxys – hier könnt Ihr getrost die Eingabe verweigern und auf weiter gehen.

Es folgen dann noch ein paar Fragen nach der Zeit (mit yes bestätigen) und der Nachfrage, ob erweiterte Sprachoption geladen werden sollen (ebenfalls bestätigen).

Das war dann auch schon die Grundinstallation.

Weiteres:

Jetzt sorgen wir nach dem erfolgten Neustart OHNE CD für eine Aktualisierung des Systems.
Nach erfolgtem Login mit Euren in der Installation festgelegten Daten öffnen wir das Terminal, zu finden über den Button oben links mit der Aufschrift “Aplications”.

Im Terminal geben wir folgendes ein:

sudo apt-get update

Der Begriff sudo steht für “Ausführung des nachfolgenden Befehls als Root, dem aboluten Besitzer des Systems, apt-get ist eine Anweisung um Pakete/-listen zu holen, und update dürfte selbstklärend sein.
Mit dieser Eingabe wird schlicht die lokale Paketliste mit der aktuell erhältlichen verglichen und nötigenfalls aktualisiert.
Ihr werdet nun zur Eingabe eines Passwortes aufgefordert. Dieses ist Euer User-Passwort! Es ist vollkommen korrekt, dass Ihr während der Eingabe keine Veränderung seht! Anschließend ENTER.

Nach erfolgter Ausführung geben wir folgendes im System ein:

sudo apt-get upgrade

Den ersten und zweiten Begriff kennt Ihr ja nun schon, upgrade steht für ein Update der aktuellen Distribution mit der zuvor aktualisierten Paketliste.

Danach sollten wir den (Noch-Nicht-)Server neu starten, und zwar mit der Eingabe:

sudo reboot

Auch wenn es hier jetzt nicht zum Thema gehört: Den Rechner mittels Terminal ausschalten könnt Ihr mit:

sudo halt

So, das Gerät ist nun neu gestartet (Ihr habt Euch eingeloggt), jetzt müssen wir ein paar (wichtige) grundsätzliche Änderungen durchführen, die das Netzwerk betreffen.
Da sämtliche Distributionen von Ubuntu standardmäßig ohne eine feste IP eingerichtet werden, müssen wir dieses ändern, denn ein Server mit wechselnden IPs ist ungefähr genauso zielsicher zu finden, wie ein fahrender Omnibus ;-)
Dazu öffnen wir wieder das Terminal und geben folgendes ein:

sudo nano /etc/network/interfaces

Der Begriff nano steht für einen reinen Texteditor, welcher im Terminal ausgeführt wird.
Ist Euer Gerät mit nur einem Netzwerkadapter (Netzwerkkarte) ausgestattet, ist dieser in aller Regel “eth0″.
In diesem Fall gebt Ihr folgendes ein (xxx entspricht Eurer gewählten IP des Servers):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.178.xxx
netmask 255.255.255.0
gateway 192.168.178.1

Anschließend drückt Ihr STRG+X, bestätigt mit J wie JA und fertig.
Habt Ihr zwei Netzwerkkarten, könnt Ihr den Eintrag zu eth1 beruhigt stehen lassen.

Nun gebt Ihr im Terminal folgendes ein:

sudo nano /etc/hosts

In dieser Datei fügt Ihr nach dem Eintrag 127.0.1.1 homeserver noch folgendes hinzu:

192.168.178.xxx homeserver

Nun wieder Speichern mit STRG+X, bestätigen und fertig.
Nun ist Eurer zukünftiger Server in Netzwerk unter einer festen IP sowie einer eindeutigen UUID ansprechbar.

Noch was: Sämtliche Änderungen am System werde ich anhand des Terminals beschreiben, da ich der festen Überzeugung bin, dass man so den Umgang am schnellsten lernt! Bei der späteren Fernwartung über SSH habt Ihr auch nur das Terminal zur Verfügung – aus diesem Grunde verwende ich auch nicht Editoren wie GEdit, welche zweifelsfrei komfortabler zu bedienen sind, jedoch nicht über SSH funktionieren.

In meinem nächsten Beitrag geht es dann um die grundsätzliche Vorbereitung des Systems sowie der Möglichkeit, den Server nun von einem anderen Rechner im Netzwerk weiter konfigurieren zu können (SSH).
Es gibt dann ein paar Grundlagen zum Terminal (auch Shell genannt), zu den Benutzerrechten, zum allgemeinen Aufbau und zur Bedienung von Xubuntu etc pp.
Auch widmen wir uns dann dem Thema “Freigaben im Netzwerk”, welches aus 2 Punkten besteht, denn hier unterscheidet Ubuntu und sämtliche Varianten davon zwischen Windows und UNIX-Netzwerken.
Gerade im Bezug auf einzurichtende Freigaben ist das nicht unwichtig, da Windows allgemein mit weniger auskommt als ein UNIX-System (zu welchen z.B. Mac und auch Linux zählen).
Aber keine Sorge, es ist mit der richtigen Anleitung garnicht so schwer.

Und damit Ihr nicht quer durch’s Internet schiessen müßt, gibt es zu den Konfigurationsmöglichkeiten dann auch mehrere Beispiele.

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Der eigene Homeserver Teil 1 : Vorwort

Wie Ihr ja alle mitbekommen habt, habe ich nun so einige Male einen Homeserver eingerichtet.

Da ich jedoch nicht so egoistisch bin und selbst auch auf andere Webseiten zugreifen mußte, welche ihre Geheimnisse preisgaben, erfolgt hier nun eine kleine Serie, was für einen einfachen Homeserver alles nötig ist.

Da das Projekt Homeserver nun doch etwas umfangreicher ist, widme ich jedem einzelnen Punkt/Funktion einen einzelnen Artikel.
Diese Artikel erscheinen dann in der Kategorie “Homeserver”.

Mein Homeserver besticht durch folgende Funktionen:

  • Fernwartung auch von ausserhalb des Netzwerkes per SSH und VPN;
  • Netzinterner Datenspeicher, jeder User hat einen eigenen Ordner;
  • Sambaserver;
  • Apache-Webserver mit allem drum und dran;
  • Mailserver;
  • FTP-Server mit Zugriff auf die eigenen sowie allgemeinen Ordner, ebenso auf das Webverzeichnis;
  • Immer unter der gleichen Internetadresse erreichbar.

Mein erster Beitrag richtet sich auf die Grundkonfiguration, also das Betriebssystem sowie die Grundlage, dass der Server innerhalb des Netzwerkes sowie auch vom Internet aus immer unter der gleichen Adresse erreichbar ist.

Eines gleich vorweg: ich nutze KEIN Windowssystem, da dieses zwar für innerhalb des Netzwerkes einiges zu bieten hat, jedoch wesentlich leichter aus dem Internet heraus angreifbar ist.

Auch verwende ich keine Software wie Confixx oder Plexx o.ä., da der Homeserver in aller Regel aus einem Desktop-PC besteht (also kein RAID-System) und somit die Vorteile der Spiegelung z.B. nicht gegeben sind.
Ich warne (aus eigener Erfahrung) davor Festplatten zu benutzen, welche schon die besten Zeiten hinter sich haben.
Auch Komponenten wie Netzteil und Lüfter sollten relativ neu sein. Nicht zu unterschätzen ist auch die Belastung der Festplatte – auf jeden Fall für ausreichend Kühlung sorgen.
Moderne Server sind in der Regel nicht ohne Grund wesentlich lauter als ein Desktop-PC!

So, genug geschwafelt, ich habe da noch ein paar Beiträge zu schreiben…..;-)

————————————————————-

Das HowTo zum Webserver unter Xubuntu 8.04.1 LTS:

  1. Teil 1 : Vorwort
  2. Teil 2 : Grundinstallation
  3. Teil 3 : Fernwartung mittels SSH
  4. Teil 4 : Samba (4.1) und NFS (4.2) (Netzwerkfreigaben)
  5. Teil 5 : Webserver Apache2 (mit PHP5, CGI, MySql, PhpMyAdmin)
  6. Teil 6 : Mailserver (SMTP-Relay mittels Postfix)
  7. Teil 7 : FTP-Server

Webserver 2.0

So, es ist geschafft (ich bin es auch)!
Mein Webserver läuft mit (fast) allen Komponenten, welche ich haben wollte.

Der Apache wurde erfolgreich zum Laufen gebracht, auch mod_rewrite ist aktiv.
PHP und SQL funzen ebenso, auch der FTP-Server ist ansprechbar.

Samba organisiert nun den Netzwerkinternen Dateiserver, und Fernwartung übers Netzwerk geht dank SSH und Putty auch!

Jetzt muß ich nur noch die zahlreichen Startzeilen (leider alle nur mittels sudo ausführbar) in einzelnen Startpanels unterbringen, falls der Server mal neu gestartet werden muß, sowie eine SSH-Freigabe für das Internet einrichten, um den Server auch von unterwegs adminseitig konfigurieren zu können.

Ansonsten läuft er nun im Probebetrieb (noch ohne Mailserver), dementsprechend ist auch ein Kommentieren derzeit unterbunden.
Erste Feststellung bisher:

Der Server läuft äußerst stabil und zuverlässig – seit dem letzten Start (die Grundinstallation von Ubuntu 7.10) habe ich mehrfach tief im System herumgespielt, den Apache installiert, mehrmals umkonfiguriert, mit Samba tierisch viel herumexperimentiert, viele zusätzliche Scripte geschrieben und installiert, den FTP-Server mehrfach umkonfiguriert und installiert, sämtliche Systeme mehrfach neu gestartet, und er läuft noch immer ohne Neustart – unter XP wäre da garnicht dran zu denken gewesen!

UPDATE: Mit dieser Anleitung in Verbindung mit Ubuntu 7.10 (Gutsy) sowie dem Wiki von Ubuntuusers habe ich es dann doch hinbekommen!