FAX Server
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
In der heutigen digitalen Zeit ist sicherlich E-Mail nebst dem Telefon das Kommunikationsmittel erster Wahl. In der Geschäftswelt ist aber die Kommunikation mit Fax eine weit verbreitete Art und Weise Dokumente und Nachrichten zu versenden.
Nebst feineren Auflösungen, farbigen Faxen und digitalen Übermittlungen ist +/- die Technologie Fax zu versenden immer noch gleich wie vor 20 Jahren.
Unter Gentoo Linux kann man für den Betrieb eines Fax Servers das frei verfügbare und sehr leistungsfähige Fax System HylaFAX™ einsetzen. HylaFAX™ wurde von Silicon Graphics Corporation entwickelt und ist ein eingetragenes Warenzeichen von SGI.
HylaFAX™ ermöglicht unteranderem:
- Versenden von Fax
- Empfang von Fax
- Fax-Polling
- Geimeinsame Nutzung von Fax Modems
- Versenden von Pager Nachrichten
HylaFAX™ ist ein Fax-System welches sowohl auf dem Einzelplatzrechner (standalone) betrieben werden kann, als auch im klassischen Client/Server Modus. Dieses How To wird Ihnen das Einrichten eines HylaFAX™ Server näher bringen und die zusätzliche Anbindung von diversen Clients an den Fax-Server erklären. Nach dem durcharbeiten der Anleitung werden Sie ein Fax-Server unter Gentoo Linux betreiben, welcher sich hinter keiner komerziellen Lösung zu verstecken braucht. Das Ganze wird noch durch die optionale Einrichtung eines Fax2Email Gateways abgerundet.
[Bearbeiten] HylaFAX™ auf dem Server installieren
[Bearbeiten] HylaFAX™ emergen
Um einen Faxserver unter Gentoo Linux zu betreiben gibt es viele Möglichkeiten. Hier in diesem How-To wird der Weg mit der Software HylaFAX™ beschrieben. Um HylaFAX™ auf dem System zu installieren muss natürlich zuerst mal das HylaFAX™ ebuild emergt werden:
emerge -av net-misc/hylafax
Je nachdem welche zusätzlichen USE Flags eingesetzt werden kann es vorkommen, dass noch weitere ebuilds installiert werden. Dieses How To beachtet mal vorläufig nur eine Installation mit einem Analog Modem. Natürlich kann auch ein Fax Sever mit einer ISDN Karte betrieben werden.
[Bearbeiten] HylaFAX™ Zusatzmodule
Einige Module werden durch das ebuild von HylaFAX™ nicht installiert, sind aber für den Betrieb eines Fax Server von grosser Bedeutung. Folgende Module sollten, wenn möglich noch zusätzlich installiert werden:
emerge -av sys-apps/gawk sys-libs/zlib net-mail/metamail
Will man die einkommenden Faximila in ein PDF umwandeln, wären noch folgende Module notwendig:
emerge -av app-text/ghostscript media-libs/tiff
Sollte man in der unglücklichen Lage sein, dass man ein Modem besitzt, welches nicht direkt von HylaFAX™ unterstützt wird oder zumindest keine geeignete Modem Konfiguration für das Modem bei HylaFAX™ vorliegt, kommt man um ein Kommunikations Programm für die Seriele Schnittstelle nicht herum.
Gentoo Linux hat eine grössere Anzahl von solchen Kommunkations Anwendungen in der Kategorie net-dialup zusammengefasst. Welches für Sie am Besten geignet ist, hängt von Ihren Anforderungen ab. Schauen Sie bitte unter Gentoo Packages nach dem geeigneten Programm und installieren Sie es auf Ihr System.
Weit verbreitete Varianten dieser Kategorie wären net-dialup/minicom oder net-dialup/xc
[Bearbeiten] HylaFAX™ Konfigurieren
Nachdem Sie HylaFAX™ erfolgreich auf dem Server installiert haben, müssen Sie Ihr Fax Modem für den Betrieb mit HylaFAX™ konfigurieren. Dazu verwenden wir das von HylaFAX™ mitgelieferte Programm faxsetup. Bitte rufen Sie dazu das Programm direkt auf dem Fax Server auf und faxsetup wird Ihnen mehrere Fragen zu Ihrer Installation stellen, die Sie beantworten müssen. Hier ein Beispiel mit der Fax Nummer +49 012 345 67 89:
Setup program for HylaFAX (tm) 4.2.1
Created for i686-pc-linux-gnu on Sun Jan 16 02:56:50 CET 2005.
Checking system for proper client configuration.
Checking system for proper server configuration.
Make /var/spool/fax/bin/ps2fax a link to /var/spool/fax/bin/ps2fax.gs.
Make /var/spool/fax/bin/pdf2fax a link to /var/spool/fax/bin/pdf2fax.gs.
You do not appear to have a "fax" user in the password file.
HylaFAX needs this to work properly, add it [yes]? yes
Added user "fax" to /etc/passwd.
There does not appear to be an entry for the FaxMaster either in
the YP/NIS database or in the /etc/mail/aliases file. The
FaxMaster is the primary point of contact for HylaFAX problems.
The HylaFAX client-server protocol server identifies this alias as
the place to register complaints and HylaFAX directs automatic mail
messages to this user when problems are identified on a server
machine or when the routine server maintainence scripts are run
(e.g. faxcron).
Should an entry be added for the FaxMaster to /etc/mail/aliases [yes]?
Users to receive fax-related mail [steveb]? fax
Rebuilt /etc/mail/aliases database.
Update /var/spool/fax/status/any.info.
HylaFAX configuration parameters are:
[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start old protocol: no
[4] Start paging protocol: no
Are these ok [yes]? yes
Modem support functions written to /var/spool/fax/etc/setup.modem.
Configuration parameters written to /var/spool/fax/etc/setup.cache.
No scheduler config file exists, creating one from scratch.
Country code [1]? 49
Area code []? 12
Long distance dialing prefix [1]? 0
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/fax) ["etc/dialrules"]? etc/dialrules.europe
Tracing during normal server operation [1]? 1
Default tracing during send and receive sessions [0xffffffff]? 0xffffffff
Continuation cover page (relative to /var/spool/fax) []? /var/spool/fax
Timeout when converting PostScript documents (secs) [180]? 180
Maximum number of concurrent jobs to a destination [1]? 1
Define a group of modems []?
Time of day restrictions for outbound jobs ["Any"]? Any
Pathname of destination controls file (relative to /var/spool/fax) []?
Timeout before purging a stale UUCP lock file (secs) [30]? 30
Max number of pages to permit in an outbound job [0xffffffff]? 0xffffffff
Syslog facility name for ServerTracing messages [daemon]? daemon
The non-default scheduler parameters are:
CountryCode: 49
AreaCode: 12
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules.europe
ContCoverPage: /var/spool/fax
DestControls: /var/spool/fax
TimeOfDay: Any
Are these ok [yes]? yes
Creating new configuration file /var/spool/fax/etc/config...
Restarting HylaFAX server processes.
Should I restart the HylaFAX server processes [yes]? yes
/usr/sbin/faxq
You do not appear to have any modems configured for use. Modems are
configured for use with HylaFAX with the faxaddmodem(8C) command.
Do you want to run faxaddmodem to configure a modem [yes]? no
Done verifying system setup.
Und schon hätten Sie mal die Grundkonfiguration von HylaFAX™ ohne die zusätzliche Modem Konfiguration fertig gestellt. Die Konfiguration können Sie jederzeit in der Datei /var/spool/fax/etc/config mit Ihrem Lieblingseditor ändern.
Jetzt fehlt nur noch die Modemkonfiguration. Um diese durchzuführen müssen Sie das von HylaFAX™ bereitgestellte Programm faxaddmodem verwenden. Rufen Sie dazu direkt auf dem Server das Programm faxaddmodem auf und beantworten Sie die gestellten Fragen. Z.B:
Setup program for HylaFAX (tm) 4.2.1.
Created for i686-pc-linux-gnu on Sun Jan 16 02:56:50 CET 2005.
Reading cached parameters from /var/spool/fax/etc/setup.cache.
Checking system for proper client configuration.
Checking system for proper server configuration.
Make /var/spool/fax/bin/ps2fax a link to /var/spool/fax/bin/ps2fax.gs.
Make /var/spool/fax/bin/pdf2fax a link to /var/spool/fax/bin/pdf2fax.gs.
Update /var/spool/fax/status/any.info.
HylaFAX configuration parameters are:
[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start old protocol: no
[4] Start paging protocol: no
Are these ok [yes]? yes
Modem support functions written to /var/spool/fax/etc/setup.modem.
Configuration parameters written to /var/spool/fax/etc/setup.cache.
Restarting HylaFAX server processes.
You have a HylaFAX scheduler process running. faxq will be
restarted shortly, as soon as some other work has been completed.
Can I terminate this faxq process (11995) [yes]? yes
Should I restart the HylaFAX server processes [yes]? yes
/usr/sbin/faxq
You do not appear to have any modems configured for use. Modems are
configured for use with HylaFAX with the faxaddmodem(8C) command.
Do you want to run faxaddmodem to configure a modem [yes]? yes
Serial port that modem is connected to []? ttyS0
Ok, time to setup a configuration file for the modem. The manual
page config(5F) may be useful during this process. Also be aware
that at any time you can safely interrupt this procedure.
Reading scheduler config file /var/spool/fax/etc/config.
No existing configuration, let's do this from scratch.
Country code [1]? 49
Area code [415]? 12
Phone number of fax modem [+1.999.555.1212]? +49.12.345.67.89
Local identification string (for TSI/CIG) ["NothingSetup"]? Mein Gentoo HylaFAX Server
Long distance dialing prefix [1]? 0
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/fax) [etc/dialrules]? etc/dialrules.europe
Tracing during normal server operation [1]? 1
Tracing during send and receive sessions [11]? 11
Protection mode for received facsimile [0600]? 0600
Protection mode for session logs [0600]? 0600
Protection mode for ttyS0 [0600]? 0600
Rings to wait before answering [1]? 1
Modem speaker volume [off]? on
Command line arguments to getty program ["-h %l dx_%s"]? -h %l dx_%s
Pathname of TSI access control list file (relative to /var/spool/fax) [""]?
Pathname of Caller-ID access control list file (relative to /var/spool/fax) [""]?
Tag line font file (relative to /var/spool/fax) [etc/lutRS18.pcf]? etc/lutRS18.pcf
Tag line format string ["From %%l|%c|Page %%P of %%T"]? Absender %%l|%c|Seite %%P von %%T
Time before purging a stale UUCP lock file (secs) [30]? 30
Hold UUCP lockfile during inbound data calls [Yes]? yes
Hold UUCP lockfile during inbound voice calls [Yes]? yes
Percent good lines to accept during copy quality checking [95]? 95
Max consecutive bad lines to accept during copy quality checking [5]? 5
Max number of pages to accept in a received facsimile [25]? 25
Syslog facility name for ServerTracing messages [daemon]? daemon
Set UID to 0 to manipulate CLOCAL [""]?
Use available priority job scheduling mechanism [""]?
The non-default server configuration parameters are:
CountryCode: 49
AreaCode: 12
FAXNumber: +49.12.345.67.89
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules.europe
SessionTracing: 11
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: -h %l dx_%s
LocalIdentifier: Mein Gentoo HylaFAX Server
TagLineFont: etc/lutRS18.pcf
TagLineFormat: Absender %%l|%c|Seite %%P von %%T
MaxRecvPages: 25
LockDataCalls: yes
LockVoiceCalls: yes
Are these ok [yes]? yes
Now we are going to probe the tty port to figure out the type
of modem that is attached. This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).
Probing for best speed to talk to modem: 38400 19200 9600 4800 2400 1200
Unable to deduce DTE-DCE speed; check that you are using the
correct device and/or that your modem is setup properly. If
all else fails, try the -s option to lock the speed.
Do you want to run faxaddmodem to configure another modem [yes]? no
Done verifying system setup.
Setup program for HylaFAX (tm) 4.2.1.
Created for i686-pc-linux-gnu on Sun Jan 16 02:56:50 CET 2005.
Reading cached parameters from /var/spool/fax/etc/setup.cache.
Checking system for proper client configuration.
Checking system for proper server configuration.
Make /var/spool/fax/bin/ps2fax a link to /var/spool/fax/bin/ps2fax.gs.
Make /var/spool/fax/bin/pdf2fax a link to /var/spool/fax/bin/pdf2fax.gs.
Update /var/spool/fax/status/any.info.
HylaFAX configuration parameters are:
[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start old protocol: no
[4] Start paging protocol: no
Are these ok [yes]? yes
Modem support functions written to /var/spool/fax/etc/setup.modem.
Configuration parameters written to /var/spool/fax/etc/setup.cache.
Restarting HylaFAX server processes.
You have a HylaFAX scheduler process running. faxq will be
restarted shortly, as soon as some other work has been completed.
Can I terminate this faxq process (11995) [yes]? yes
Should I restart the HylaFAX server processes [yes]? yes
/usr/sbin/faxq
You do not appear to have any modems configured for use. Modems are
configured for use with HylaFAX with the faxaddmodem(8C) command.
Do you want to run faxaddmodem to configure a modem [yes]? yes
Serial port that modem is connected to []? ttyS0
Ok, time to setup a configuration file for the modem. The manual
page config(5F) may be useful during this process. Also be aware
that at any time you can safely interrupt this procedure.
Reading scheduler config file /var/spool/fax/etc/config.
No existing configuration, let's do this from scratch.
Country code [1]? 49
Area code [415]? 12
Phone number of fax modem [+1.999.555.1212]? +49.12.345.67.89
Local identification string (for TSI/CIG) ["NothingSetup"]? Mein Gentoo HylaFAX Server
Long distance dialing prefix [1]? 0
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/fax) [etc/dialrules]? etc/dialrules.europe
Tracing during normal server operation [1]? 1
Tracing during send and receive sessions [11]? 11
Protection mode for received facsimile [0600]? 0600
Protection mode for session logs [0600]? 0600
Protection mode for ttyS0 [0600]? 0600
Rings to wait before answering [1]? 1
Modem speaker volume [off]? on
Command line arguments to getty program ["-h %l dx_%s"]? -h %l dx_%s
Pathname of TSI access control list file (relative to /var/spool/fax) [""]?
Pathname of Caller-ID access control list file (relative to /var/spool/fax) [""]?
Tag line font file (relative to /var/spool/fax) [etc/lutRS18.pcf]? etc/lutRS18.pcf
Tag line format string ["From %%l|%c|Page %%P of %%T"]? Absender %%l|%c|Seite %%P von %%T
Time before purging a stale UUCP lock file (secs) [30]? 30
Hold UUCP lockfile during inbound data calls [Yes]? yes
Hold UUCP lockfile during inbound voice calls [Yes]? yes
Percent good lines to accept during copy quality checking [95]? 95
Max consecutive bad lines to accept during copy quality checking [5]? 5
Max number of pages to accept in a received facsimile [25]? 25
Syslog facility name for ServerTracing messages [daemon]? daemon
Set UID to 0 to manipulate CLOCAL [""]?
Use available priority job scheduling mechanism [""]?
The non-default server configuration parameters are:
CountryCode: 49
AreaCode: 12
FAXNumber: +49.12.345.67.89
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules.europe
SessionTracing: 11
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: -h %l dx_%s
LocalIdentifier: Mein Gentoo HylaFAX Server
TagLineFont: etc/lutRS18.pcf
TagLineFormat: Absender %%l|%c|Seite %%P von %%T
MaxRecvPages: 25
LockDataCalls: yes
LockVoiceCalls: yes
Are these ok [yes]? yes
Now we are going to probe the tty port to figure out the type
of modem that is attached. This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).
Probing for best speed to talk to modem: 38400 19200 9600 4800 2400 1200
Unable to deduce DTE-DCE speed; check that you are using the
correct device and/or that your modem is setup properly. If
all else fails, try the -s option to lock the speed.
Do you want to run faxaddmodem to configure another modem [yes]? no
Done verifying system setup.
Nachdem Sie das Modem konfiguriert haben, müssen Sie noch dem Gentoo Linux mitteilen die faxgetty Anwendung beim Systemstart automatisch zu starten. Dazu müssen Sie mit Ihrem Lieblingseditor die Datei /etc/inittab ändern und um folgenden Eintrag erweitern:
# fax getty (HylaFax) fg:2345:respawn:/usr/sbin/faxgetty /dev/ttyS0
Das wäre es schon. Jetzt müssen Sie nur noch sicherstellen, dass Ihr neuer Fax Server beim Systemstart automatisch startet:
rc-update add hylafax default /etc/init.d/hylafax restart
Dieses How To verwendet das faxgetty Programm für den Empfang von Fax. Es ist auch möglich anstelle von dem faxgetty welches in HylaFAX™ integriert ist auf mgetty und sendfax ausweichen. Dazu müssen die Einstellungen in den folgenden Konfigurationsdateien vorgenommen werden:
/etc/mgetty+sendfax/dialin.config /etc/mgetty+sendfax/faxrunq.config /etc/mgetty+sendfax/login.config /etc/mgetty+sendfax/mgetty.config /etc/mgetty+sendfax/sendfax.config
Bevor Sie den Betrieb mit mehreren Benutzer aufnehmen können, sollten Sie noch die entsprechenden Benutzer beim HylaFAX™ Server definieren. Rufen Sie dazu das in HylaFAX™ enthaltene Programm faxadduser auf:
faxadduser [password] [uid] username
Durch faxadduser wird die Datei /var/spool/fax/etc/hosts.hfaxd, um den betreffenden Benutzer erweitert. HylaFAX™ kann natürlich weit aus mehr als nur Benutzer für den Fax Server freischalten. Sie können ganze Netzwerke und vieles mehr noch für den Faxversand freischalten. Eine entsprechende /var/spool/fax/etc/hosts.hfaxd könnte bei Ihenen etwa so aussehen:
# localhost is allowed to fax @127.0.0.1$ ^localhost$ # all machines from our net 192.168.0.* are allowed to fax # pay attention to quote the dot @192.168.0.[0-9]+$ # anyone in gentoo.local domain ^.*@.*.\.gentoo\.local$ ^.*@gentoo\.local$ # client:uid:passwd:adminwd faxadmin:10:0YsaizBYdCrcA:mjA2319tc3Ysk
Wenn alles gut gegangen ist, können Sie mit faxstat überprüfen ob der Fax Server korrekt läuft:
HylaFAX scheduler on fax.gentoo.local: Running Modem ttyS0 (+49.12.345.67.89): Running and idle
[Bearbeiten] HylaFAX™ auf dem Arbeitsrechner einrichten
Um von Arbeitsrechner aus einen Fax zu versenden ist es notwendig den HylaFAX™ Client zu installieren. Da wir mit unserem Arbeitsrechner keinen Faxempfang möchten (wir haben ja kein Modem am Arbeitsrechner), ist es sinnvoll HylaFAX™ mit dem USE Flag faxonly zu installieren. Um dies zu bewerkstellingen ändern Sie bitte in der Datei /etc/make.conf die Zeile für die USE Flags oder benützen Sie app-portage/ufed und aktivieren Sie faxonly. Danach installieren Sie HylaFAX™ auf Ihrem Arbeitsrechner:
emerge -av net-misc/hylafax
[Bearbeiten] Faxversand aus OpenOffice.org
Einen Fax aus OpenOffice.org zu versenden mit HylaFAX™ ist relativ einfach. Alles was Sie dazu benötigen ist einen entsprechenden Eintrag in der Druckerkonfiguration von OpenOffice.org, welcher direkt mit sendfax (Bestandteil der HylaFAX™ Installation) das Dokument an den HylaFAX™ Server weiterleitet und versendet. Bitte starten Sie dazu den OpenOffice.org Drucker Administrator aus dem Menü Ihrer Grafischen Oberfläche oder rufen Sie direkt das entsprechende Programm von der Kommandozeile aus:
/opt/OpenOffice.org/program/spadmin
In der Drucker Administration gelangen Sie dann durch drücken des Knopfes "Neuer Drucker..." in einen zusätzlichen Dialog. Dort wählen Sie "Verbinden mit einem Fax Gerät" und drücken dann auf "Weiter >". Danach drücken Sie nochmals auf "Weiter >" und geben dann in der Eingabemaske die Befehlszeile für das Versenden eines Faxes mit sendfax in etwa folgendes Kommando ein (bitte alles auf eine Zeile eingeben):
/usr/bin/sendfax -3 -A -D -f "Max Muster <max.muster@domain.de>" -G -n -R -s a4 -h faxserver.gentoo.local -d "(PHONE)" "(TMP)"
Bitte ändern Sie den Eintrag "Max Muster" und die entsprechende E-Mail Adresse so um, dass Ihr Name und Ihre E-Mail verwendet wird. Bei dem Parameter "-h" tragen Sie entweder den DNS Namen Ihres Faxservers ein oder die IP Adresse des Faxservers.
Nachdem Sie erneut auf "Weiter >" gedrückt haben, können Sie dem neu eingerichteten Drucker einen Namen vergeben und das Ganze durch drücken auf den Knopf "Fertig" abschliessen.
Schon ist die HylaFAX™ Integration in OpenOffice.org geschafft und Sie können aus jeder OpenOffice.org Anwendung heraus einen Fax versenden. Die im Drucker Administrator benützten Parameter können Sie in der Dokumentation von HylaFAX™ entnehmen (man sendfax).
[Bearbeiten] Faxversand aus KDE
Der Faxversand in KDE wird mit der Anwendung KdeprintFax eingerichtet. Rufen Sie dazu bitte den entsprechenden Eintrag aus dem KDE Menü auf oder starten Sie direkt die Anwendung kdeprintfax aus der Kommandozeile auf.
[Bearbeiten] Faxversand aus Windows®
Mit WHFC kann das bedient werden.
http://www.uli-eckhardt.de/whfc/
Eine andere, sehr gute Lösung ist JHylaFax in Kombination mit Redmon. Eine Anleitung dafür findet sich in der JHylaFax Doku
http://jhylafax.sourceforge.net/ , http://www.cs.wisc.edu/~ghost/redmon/
[Bearbeiten] Einen Fax2Email Gateway einrichten
HylaFAX™ ermöglicht das Versenden von Fax direkt über einen SMTP Server. Folgende SMTP Server werden von HylaFAX™ unterstützt:
- Sendmail
- SMail
- QMail
- Postfix
[Bearbeiten] Sendmail
[Bearbeiten] SMail
[Bearbeiten] QMail
[Bearbeiten] Postfix
Das für Postfix benötigte Shell Skript müssen Sie jeweils aus den Quellen von HylaFAX™ zuerst extrahieren. Dazu gehen Sie wie folgt vor:
cd /tmp tar xzvf /usr/portage/distfiles/hylafax-x.x.x.tar.gz
Nachdem die benötigten Dateien in Ihrem temorären Verzeichnis extrahiert worden sind, wechseln Sie in das neu erstellte Verzeichnis:
cd /tmp/hylafax-x.x.x/faxmail
HylaFAX™ kennt zwei verschiedene Arten eines Fax2Email Gateways. Beide Varianten sind ausführlich im README von HylaFAX™ beschrieben.
Für unseren Fax2Email Gateway wählen wir die klassische HylaFAX™ Variante. Dazu müssen wir zuerst mailfax.sh-postfix aus dem /tmp/hylafax-x.x.x/faxmail Verzeichnis nach /usr/bin/mailfax kopieren und ausführbar machen:
cp /tmp/hylafax-x.x.x/faxmail/mailfax.sh-postfix /usr/bin/mailfax chmod 755 /usr/bin/mailfax
Danach müssen wir noch die master.cf von Postfix anpassen und um einen zusätzlichen Service erweitern. Bitte öffnen Sie dazu /etc/postfix/master.cf mit Ihrem Lieblingseditor und fügen Sie folgende zeilen am Ende der Datei hinzu:
#
# classic HylaFAX email-to-fax setup
#
fax unix - n n - 1 pipe
flags=R user=fax argv=/usr/bin/mailfax ${user} ${recipient} ${sender}
Um die Auslieferung von E-Mails an den HylaFAX™ Server über Postfix zu bewerkstelligen, ist es noch notwendig den Transport für die E-Mail Endung .fax in Postfix zu definieren. Dazu muss eine weitere transport map für Postfix erstellt werden und in der main.cf von Postfix integriert werden. Erstellen Sie bitte dazu mit Ihrem Lieblingseditor eine neue Datei mit dem Namen /etc/postfix/fax-transport.cf und fügen Sie folgende Zeilen hinzu:
# /etc/postfix/fax-transport.cf # .fax fax:localhost
Sollten Sie ein Modem besitzen, welches nicht mehrere Verbindungen gleichzeitig zulässt, ist es sinnvoll den Transport zum neu erstellten Service auf maximal eine Verbindung zu limitieren. Dazu müssen Sie die main.cf Datei von Postfix editieren. Zusätzlich muss man Postfix mitteilen, dass es Mails mit der Endung .fax an den HylaFAX™ Server weiterleiten soll. Öffnen Sie bitte dazu /etc/postfix/main.cf mit Ihrem Lieblingseditor und ergänzen Sie die main.cf um folgenden Eintrag:
fax_destination_recipient_limit = 1 transport_maps = hash:/etc/postfix/fax-transport.cf
Bitte vergessen Sie nicht noch die neu erstellte transport map in das für Postfix verständliche DB Format umzuwandeln:
postmap /etc/postfix/fax-transport.cf
Jetzt können Sie Postfix neu starten und bereits einen Fax an HylaFAX™ über Postfix versenden. Senden Sie dazu einfach eine E-Mail an benutzer@faxnummer.fax (z.B: <bill.gates@0123456789.fax>)
Für einen nur im internen Netzwerk zugänglichen Fax Server ist diese Konfiguration durchaus ausreichend. Wenn Sie den neuen Fax Server aber vor Missbrauch schützen möchten, ist es sinnvoll den Fax Transport nur für ausgewählte Benutzergruppen freizuschalten. Dazu kann man in Postfix eine Policy erstellen. Eine Möglichkeit wäre z.B. das Versenden an den HylaFAX™ Server nur an zuvor mit SASL authentifizierte Benutzer zu erlauben. Um solche eine Policy in Postfix zu erstellen müssen Sie zunächst einige neue Dateien erstellen. Erstellen Sie bitte mit Ihrem Lieblingseditor die Datei /etc/postfix/check_special_recipient_access.pcre und fügen Sie folgenden Inhalt hinzu:
## /etc/postfix/check_special_recipient_access.pcre
#
# Description: Only allow SASL authentificated
# users to use certain services.
#
# main.cf:
# smtpd_restriction_classes =
# internal_check_service_access
#
# internal_check_service_access =
# permit_sasl_authenticated
# reject
#
# smtpd_recipient_restrictions =
# check_recipient_access pcre:/etc/postfix/check_special_recipient_access.pcre
# ...
##
# HylaFAX email to fax gateway
# -> limit the fax number to be 9 to 13 digits only and it needs
# to start with a zero.
#
/^[\w\-.%]+\@0[\d]{8,12}\.fax$/ internal_check_service_access
/^.*\.fax$/ REJECT You are not allowed to use the Fax Service!
Bitte stellen Sie sicher, dass Sie Postfix mit PCRE Unterstützung übersetzt haben. Um dies zu überprüfen können Sie "postconf -m" aufrufen und schauen, ob die Erweiterung "pcre" in der Liste der Erweiterungen erscheint. Sollte dies nicht der Fall sein, übersetzen/installieren Sie Postfix erneut und aktivieren Sie die PCRE Erweiterung.
Nachdem Sie die Datei /etc/postfix/check_special_recipient_access.pcre abgespeichert haben, müssen Sie noch Postfix mitteilen, dass es diese Datei benützen muss. Dazu öffnen Sie mit Ihrem Lieblingseditor die Datei /etc/postfix/main.cf und fügen folgedes hinzu:
smtpd_restriction_classes = internal_check_service_access internal_check_service_access = permit_sasl_authenticated reject smtpd_recipient_restrictions = check_recipient_access pcre:/etc/postfix/check_special_recipient_access.pcre [...hier stehen in der Regel weitere Zeilen....] smtpd_delay_reject = yes strict_rfc821_envelopes = yes
Das ist bereits alles was Sie machen müssen, um den Zugriff auf SASL authentifizierte Benutzer zu limitieren. Die einzelnen Postfix Parameter werden hier nicht weiter erläutert. Wenn Sie zu den einzelnen Parametern Fragen haben, bitten wir Sie in der Dokumentation von Postfix nachzuschlagen:
* smtpd_restriction_classes * smtpd_recipient_restrictions * smtpd_delay_reject * strict_rfc821_envelopes * transport_maps * Postfix PCRE
Natürlich können Sie auch auf dem Fax Server ein Postfix installieren und von Ihrem Hauptsystem direkt über SMTP jede .fax Mail an den HylaFAX™ Server weiterleiten. Dazu müssen Sie lediglich den Transport für .fax auf dem Hauptsystem anstelle von:
fax:localhost
auf
fax:[nnn.nnn.nnn.nnn]
ändern. Wobei nnn.nnn.nnn.nnn eine gültige IP Adresse oder auch eine FQDN sein kann. Z.B:
fax:[192.168.0.150]
