![]()
Fileserver mit Arch Linux, Installation von Samba
Startseite Hardware Grundinstallation Grundeinstellung Installation von samba ntp webserver postfix
Eingabe von pacman -S samba installiert samba, den Fileserver für Windows, auf dem Linux-Rechner.
Eingabe von pacman -S xinetd installiert xinetd, irgendeinen Daemon der für swat, das Webinterface zum Einrichten von Samba, wichtig ist.
Nachdem diese beiden Pakete installiert sind, müssen in der /etc/rc.conf noch die Daemon-Einträge vorgenommen werden, hier ein Ausschnitt aus meiner /etc/rc.conf:
# DAEMONS
#
-----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
# - prefix a daemon with a ! to disable it
# - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng !hotplug network netfs samba
httpd sshd postfix xinetd ntpd crond)
# End of file
Für die beiden oben genannten Pakete müssen demnach die Einträge samba und xinetd hinzugefügt werden, so wie es in diesem Beispielausschnitt zu sehen ist. (NEIN man muß nicht nochmal samba zu dem vorhandenen samba dazuschreiben...)
Die Einstellung oder Konfiguration von Samba ist mir eine eigene Seite wert.
Um xinetd in Gang zu bekommen ist noch eine weitere Datei zu ändern, nano /etc/xinetd.d/swat öffnet diese Datei zum ändern, hier ist meine entsprechende Datei:
service swat
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/swat
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
}
Der Parameter disable = yes muß auf disable = no geändert werden.
SWAT geht nicht mit xinetd Version 2.3.14-2, warum auch immer, nach einen Systemupdate auf drei verschiedenen Servern ging der Zugang zu Samba über das Webinterface SWAT nicht mehr. Ich habe dann irgendwann versucht ein xinetd Version 2.3.14-1 von der Arch Linux 0.7.2 CD zu installieren, dann ging es wieder.
Nach langer Zeit habe ich endlich die Ursache des Problems gefunden, es muß nur noch etwas in die Datei /etc/hosts.allow eingetragen werden:
#
# /etc/hosts.allow
#
sshd:ALL
swat:ALL
# End of file
Immer wieder habe ich die Lösung bei xinetd gesucht, ich hätte bei swat suchen müssen...
Es ist nicht verboten, außer meiner Anleitung auch alle anderen Quellen zur Information zu benutzen, genau so habe auch ich mich viele Stunden durch die Materie gehangelt, ich schreibe hier mit Sicherheit keine Anleitung zum Editor nano vielleicht gebe ich noch einen Hinweis zum Editor Vi, weil der wirklich nervt, aber die sogenannte Crontab wird offenbar immer mit dem Vi editiert.
Es geht weiter mit dem Network Time Protocol
Eingabe von pacman -S ntp installiert ntp, das Network Time Protocol.
Es kann dabei eine Fehlermeldung geben, eine Datei ntp.conf sei vorhanden, darum geht die Installation nicht. Dann muß diese Datei eben umbenannt werden, nicht gelöscht, vielleicht wird sie noch gebraucht.
Umbenennen mit mv , mv ntp.conf ntp.conf.alt , das sollte reichen.
Danach die Installation nochmal versuchen, sollte klappen.
Ich habe es gerade nachgelesen, die Eingabe von pacman -Sf ntp würde die Installation auf jeden Fall durchführen und dabei vorhandene Dateien überschreiben. In diesem Fall wäre das wohl kein Problem.
Auch in Linux lassen sich Dateien suchen und finden, hier ein Beispiel, das Zauberprogramm find erledigt das.
Der Aufruf ist ganz einfach, find, dann die Stelle in der Verzeichnisstruktur wo mit der Suche begonnen werden soll, hier das Wurzelverzeichnis "/" dann die Option nach einem Namen zu suchen -name, dann das Muster für die oder den Namen, hier eben ntp.conf.
[root@bigserv ~]# find / -name ntp.conf
/etc/ntp.conf
ntp.conf befindet sich also in /etc
Hier noch ein weiteres Beispiel, diesmal mit Sternchen:
[root@bigserv ~]# find / -name ntp.*
/var/log/ntp.log
/etc/ntp.drift
/etc/ntp.conf
/etc/ntp.conf.alt
[root@bigserv ~]#
Als Daemon wird ntp gestartet durch den Eintrag ntpd in der /etc/rc.conf, so wie im obigen Beispiel.
Das Stellen der Computerzeit ist unter Linux ein Thema für sich. Damit die Uhr nicht etwa zwei Stunden falsch geht, das war bei meinen Installationen bisher der Fall, muß die Uhr einmal richtig eingestellt werden, der ntp-Daemon macht das nicht so einfach.
Bevor der ntp-Daemon erstmalig gestartet wird, sollte diese Zeile an der Konsole eingegeben werden:
ntpdate ptbtime1.ptb.de , das sollte die Zeit kraftvoll richtig stellen, dadurch wird eine genaue Zeit von einem Zeitserver geholt, in diesem Fall von der physikalisch technischen Bundesanstalt in Braunschweig.
ntpdate time.windows.com geht übrigens auch...
Die Konsole ist das, wo alles eingegeben wird, wie etwa das ls oder das cd.
Auch ntp hat eine Konfigurationsdatei, die /etc/ntp.conf, meine Datei sieht so aus:
# NTP-Server
server ptbtime1.ptb.de
server ptbtime2.ptb.de
# Zugriff durch NTP-Server gestatten
restrict ptbtime1.ptb.de
restrict ptbtime2.ptb.de
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.255.0
fudge 127.127.1.0 stratum 3
server 127.127.1.0
driftfile /etc/ntp.drift
logfile /var/log/ntp.log
# allen anderen Rechnern Zugriff verwehren
restrict default notrust nomodify nopeer
#End of File
Ich verstehe die Verwendung des Wortes "restrict" nicht so ganz, es scheint, als wäre restrict das Wort zum Erlauben, was eigentlich nicht sein kann, egal, eine ntp.conf wie diese funktioniert jedenfalls.
Wenn die IP-Adresse durch DHCP geliefert wird, dann wird bei jedem shutdown die /etc/ntp.conf überschrieben. Um das zu verhindern muß die Datei /etc/conf.d/dhcpcd geändert werden, das sieht dann so aus:
# /etc/conf.d/dhcpcd
#
# Arguments to be passed to the DHCP client daemon
#
DHCPCD_ARGS="-t 30 -h $HOSTNAME -N"
# -N verhindert das überschreiben der ntp.conf...
Auch so ein Problem kostet nur wenige Stunden bis man die Lösung im Internet findet...
Es geht weiter mit dem Webserver Apache
Eingabe von pacman -S apache installiert apache, den bekannten und bewährten Webserver.
Da ist nicht viel einzustellen, nano /etc/httpd/conf/httpd.conf macht das.
Ein Ausschnitt meiner httpd.conf:
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
LoadModule status_module modules/mod_status.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule version_module modules/mod_version.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module modules/libphp5.so
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
#
# If you wish httpd to run as a different user or group, you must
run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run
httpd as.
#LoadModule ssl_module modules/mod_ssl.so mußte ich auskommentieren, ssl könnte SecureSocketLayer heißen, das brauche ich bestimmt nicht für einen Webserver der nur in meinem lokalen Netzwerk ein paar Seiten bereitstellt, ohne Kommentarzeichen ging der Apache-Webserver aber nicht, daher...
LoadModule php5_module modules/libphp5.so habe ich vom Kommentarzeichen befreit, PHP könnte ich vielleicht mal brauchen. Hier ein Beispiel wie man es Installieren könnte:
[root@bigserv conf]# pacman -Sy php
:: Synchronizing package databases...
current [################] 100% 69K 30.3K/s 00:00:02
extra [################] 100% 255K 4.9K/s 00:00:52
community [################] 100% 134K 50.5K/s 00:00:02
Targets: php-5.1.6-2
Total Package Size: 6.6 MB
Proceed with upgrade? [Y/n]
Return drücken und es geht los...
:: Retrieving packages from current...
php-5.1.6-2 [################] 100% 6755K 272.1K/s 00:00:24
checking package integrity... done.
loading package data... done.
checking for file conflicts... done.
upgrading php... done.
==>
==> PHP has been built with some optional modules.
==> To enable these modules, uncomment the modules from php.ini
==>
==> The optional modules included in php require extra
packages
==> to be installed.
==>
==> - mysql : libmysqlclient
==> - pgsql : postgresql-libs
==> - ldap : libldap
==> - sqlite: sqlite3
==> - odbc : unixodbc
==> - snmp : net-snmp
==>
[root@bigserv conf]#
Auf mysql und so weiter habe ich jetzt keine Lust, vielleicht später...
Weiter mit der httpd.conf, hier noch ein Ausschnitt:
# ServerAdmin: Your address, where problems with the server
should be
# e-mailed. This address appears on some server-generated pages,
such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin webmaster@michael-puls.de
#
# ServerName gives the name and port that the server uses to
identify itself.
# This can often be determined automatically, but we recommend
you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP
address here.
#
ServerName bigserv:80
Einmal die Kontakt-Maildresse bei Serverproblemen, einmal den
Namen des Webservers eintragen. Hier wäre es webmaster@michael-puls.de
und bigserv.
Sonst ist nur noch die Datei /etc/hosts zu ändern, hier ein Ausschnitt aus meiner Datei:
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
192.168.0.60 bigserv.hainholzweg.de bigserv
# End of file
Es gibt eigentlich keine offizielle Domain bigserv.hainholzweg.de aber es funktioniert so.
Die dargestellte Webseite ist dort: /home/httpd/html/index.html
Es sollte kein großes Problem darstellen, in diesem Verzeichnis die gewünschten Webseiten abzulegen. Es wäre auch möglich, mit Samba dieses Verzeichnis im Windows-Netzwerk zugänglich zu machen, um es zu bearbeiten.
Der Webserver gibt in der Grundeinstellung keine index.htm aus, nur index.html, die index.htm wäre nachzutragen.
Hier ein Ausschnitt aus der httpd.conf:
#
# DirectoryIndex: sets the file that Apache will serve if a
directory
# is requested.
#
<IfModule dir_module>
<IfModule mod_php5.c>
#DirectoryIndex index.php index.html
DirectoryIndex index.php index.html index.htm
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
DirectoryIndex index.html index.htm
</IfModule>
Zum Ende das Mailprogramm Postfix
Die Einrichtung von Postfix ist nicht so ganz einfach, das hat viel Zeit gekostet.
Die Installation ist wie immer:
pacman -S postfix
Postfix muß als Daemon in die /etc/rc.conf eingetragen werden, so wie hier:
# DAEMONS
#
-----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
# - prefix a daemon with a ! to disable it
# - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng !hotplug network netfs samba httpd sshd
postfix xinetd ntpd crond)
# End of file
Die Konfiguration befindet sich in der Datei /etc/postfix/main.cf hier sind die wichtigen Einträge in diese Datei:
mail_owner = postfix
myhostname = bigserv.hainholzweg.de
mydomain = hainholzweg.de
myorigin = $myhostname
#Anmerkung: Die erste Zeit hat das sehr gut funktioniert, inzwischen habe ich diesen Parameter geändert auf eine Mailadresse die es tatsächlich gibt. In früheren Zeiten gab es kaum Spam-Mail, da war diese Mailadresse egal, in der heutigen Zeit ist alles voller Paranoia, jetzt wird überall alles zurückgewiesen.
myorigin = root@michael-puls.de # das funktioniert...
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks =127.0.0.0/8, 192.168.0.0/24
relayhost = post.strato.de
Der letzte Parameter sollte nicht überstrapaziert werden, es wäre nett, wenn da jeder seinen eigenen Mailserver eintragen würde, wer immer für die eMail zuständig ist, ob T-Online oder Freenet.
Postfix ist nur so ein Spielzeug damit der Fileserver sich per eMail bemerkbar machen kann.
Ich habe einen Eintrag in die /etc/rc.local gemacht wodurch beim Starten des Servers eine eMail versendet wird.
#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
echo -e "`date +%e`.`date +%m`.`date +%y` \n`date +%X`\n
bigserv gestartet" | mail -s"bigserv" webmaster@michael-puls.de
# Das vorherige muß in eine Zeile geschrieben werden.
ethtool -s eth0 wol g
#End of file
Die Zeile mit ethtool richtet die Netzwerkkarte bei jedem Start wieder so ein, daß der Computer per WakeUpOnLan aus der Ferne über das Netzwerk gestartet werden kann. Das ist aber ein anderes Thema.
Installation von ethtool:
pacman -S ethtool
Wenn ethtool installiert ist, ist es sehr praktisch, die Netzwerkkarte läßt sich damit sehr gut kontrollieren, ein Beispiel:
[root@bigserv etc]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: g # das Bedeutet, WakeUpOnLan geht mit einem MagicPacket
Current message level: 0x000000c5 (197)
Link detected: yes
[root@bigserv etc]#
Dazu gibt es auch das entsprechende Gegenstück, es heißt ether-wake.
ether-wake ist ein Programm mit dem unter Linux andere Computer über das Netzwerk eingeschaltet werden können. Für Windows oder notfalls DOS betriebene Computer gibt es z.B. WAKE.EXE.
ether-wake gibt es hier: http://www2.cddc.vt.edu/linux/distributions/archlinux/tur/staging/ man muß da etwas suchen, aber es gibt ja eine Suchfunktion im Browser...
Den Download mit Windows und von da auf den Linux-Fileserver, einfach per Maus verschieben. Dann auf dem Linux-Fileserver einloggen und in das entsprechende Verzeichnis navigieren, mit cd Verzeichnisname oder auch mal mit cd ..
Jeweils ein ls zeigt die vorhandenen Dateien an. Wenn ether-wake zu sehen ist, dann kann es installiert werden, das geht so:
[root@bigserv server]# pacman -A ether-wake-1.09-1.pkg.tar.tar
loading package data... done.
checking for file conflicts... done.
installing ether-wake... done.
[root@bigserv server]# ether-wake
Specify the Ethernet address as 00:11:22:33:44:55.
[root@bigserv server]#
Ich wollte dieses Paket mal wieder installieren und bekam Fehlermeldungen, angeblich Paket beschädigt. Das Umbenennen von ether-wake-1.09-1.pkg.tar.tar in ether-wake-1.09-1.pkg.tar.gz hat das Problem gelöst, warum weiß ich derzeit nicht. Beim Herunterladen mit Windows änderte sich auch der Name von ether-wake-1.09-1.pkg.tar.gz in ether-wake-1.09-1.pkg.tar.tar warum auch immer.
Jedenfall habe ich dieses Paket dereinst genau so installiert wie oben dargestellt.
Zum Aufwecken eines beliebigen Computers im Netzwerk muß dessen Hardware-Netzwerkadresse bekannt sein und dem Programm ether-wake als Parameter �bergeben werden. Die Netzwerkadresse eines Windows-Computers ist unter Start und dann Ausführen durch die Eingabe von cmd und dann ipconfig /all feststellbar.
Der Aufruf von ether-wake wäre demnach zum Beispiel so:
ether-wake 00:11:22:33:44:55
Die Hardware-Adresse unter Linux läßt sich mit ifconfig herausfinden:
[root@bigserv ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
inet addr:192.168.0.60 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20a:e6ff:fe6b:f945/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:998 errors:0 dropped:0 overruns:0 frame:0
TX packets:867 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:105538 (103.0 Kb) TX bytes:121923 (119.0 Kb)
Interrupt:11 Base address:0xdc00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200 (200.0 b) TX bytes:200 (200.0 b)
[root@bigserv ~]#
Ich habe keine Netzwerkkarten-Hardwareadresse mit diesem Wert: 00:11:22:33:44:55
Das ist nur ein Beispiel, aber genau nach diesem Muster funktioniert das mit dem Wake Up on LAN.
Startseite Hardware Grundinstallation Grundeinstellung Seitenanfang
03.08.2007