coolwolf / 01/12/2010

Centos Linux ile Faks sunucusu kurmak

DİKKAT !!! Centos 5 kullanınız. Centos 6’da bazı hatalara bir türlü çözüm bulamadık.
os üzerine hylafax kurulumu :
Önce varsa mgetty-senfax paketini kaldıralım:

rpm -e mgetty-sendfax

Varsa GNOME ve X Windows sistemini de kaldıralım :

yum groupremove "GNOME Desktop Environment" -y
yum groupremove "X Window System" -y

Sistem dili olarak Türkçe seçtiyseniz groupremove hata (sqlite3.IntegrityError: trans_with_pkgs.tid may not be NULL) ile sonuçlanabilir. Bu durumda, sistem dilini ingilizce olarak değiştirip groupremove komutunu tekrar çalıştırınız:

yum install system-config-language
system-config-language

Ardından hylafaxı kurmaya başlamadan önce ghostscript ve sharutils’i kuralım :

yum install ghostscript sharutils

Şimdi gerekli kullanıcı ve grubu ekleyelim :

groupadd fax
useradd -g fax fax

Hylafax+ centos 5 rpm dosyasını indirelim:

wget http://sourceforge.net/projects/hylafax/files/hylafax%20CentOS%205%20RPM/hylafax-5.5.2-1.el5.i386.rpm/download

Ardından aşağıdaki komutla kurulumu yapalım :

rpm -ivh hylafax-5.5.2-1.el5.i386.rpm

Şimdi faxsetup komutunu kullanarak fax sunucumuzu yapılandırıp, modem ile irtibatını sağlayalım :

/usr/sbin/faxsetup

komutuyla faks programını yapılandırıyoruz.

Users to receive fax-related mail [root]

sorusuna fax yazıyoruz.

Country code [1] 90

yazıyoruz

Area code [000] ?

karşısına 216 yazıyoruz.

Long distance dialing prefix [1] ?

karşısına 0 yazıyoruz

International dialing prefix [011] ?

karşısına 00 yazıyoruz

Do you want to run faxaddmodem to configure a modem [yes] ? yes

diyoruz. Bizim örneğimizde com1 portunu kullandık.

Serial port that modem is connected to [] ? ttyS0

yazıyoruz. ttyS0 COM1 portunun linux karşılığı, COM2 için ttyS1 yazabilirsiniz.

Country code [90] ?

bu şekilde bırakıyoruz. Çünkü faxsetup ile bunları ayarlamıştık.

Area code [216] ?
Phone number of fax modem [+1.999.555.1212] ?

buraya faks hattımızın numarasını yazıyoruz. Örneğin +90.216.4440444

Local identification string (for TSI/CIG) [“NothingSetup”] ?

Buraya kendimizi tanıtacak bir metin yazıyoruz. Örneğin CodeLama.Com

Long distance dialing prefix [1] ? 0

yazıyoruz

International dialing prefix [011]? 00

yazıyoruz

Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]?

direk enter’a basıyoruz

Tracing during normal server operation [1]?
Tracing during send and receive sessions [0xFFF]?
Protection mode for received facsimile [0600]?
Protection mode for session logs [0600]?
Protection mode for ttyS0 [0600]?
Rings to wait before answering [1]?

Doğrudan enter’a basıyoruz. Böylece 1 çalmada faksı almasını söylüyoruz. Eğer faksa cevap vermeden önce 2 yada 3 defa çalmasını istiyorsanız buraya ona göre rakkam girmelisiniz.

Modem speaker volume [off]?
Command line arguments to getty program ["-h %l dx_%s"]?
Pathname of TSI access control list file (relative to /var/spool/hylafax) [""]?
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]?
Tag line format string ["From %%l|%c|Page %%P of %%T"]?
Time before purging a stale UUCP lock file (secs) [30]?
Hold UUCP lockfile during inbound data calls [Yes]?
Hold UUCP lockfile during inbound voice calls [Yes]?
Percent good lines to accept during copy quality checking [95]?
Max consecutive bad lines to accept during copy quality checking [5]?
Max number of pages to accept in a received facsimile [25]?
Syslog facility name for ServerTracing messages [daemon]?
Set UID to 0 to manipulate CLOCAL [""]?
Use available priority job scheduling mechanism [""]?
The non-default server configuration parameters are:
CountryCode:            90
AreaCode:               216
FAXNumber:              +90.216.4444444
LongDistancePrefix:     0
InternationalPrefix:    00
DialStringRules:        etc/dialrules
RingsBeforeAnswer:      1
SpeakerVolume:          off
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        CodeLama
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l|%c|Page %%P of %%T"
MaxRecvPages:           25
Are these ok [yes]?

Böylece modemi eklemiş olduk.
Şimdi /etc/inittab dosyasının en altına aşağıdaki kodu ekliyoruz:

#Hylafax
mo:2345:respawn:/usr/sbin/faxgetty ttyS0

ardınan

/usr/sbin/ntsysv

komutunu çalıştırıp hylafax servisinin işaretli olduğundan emin olun. eğer işaretli değilse işaretleyip ok butonuna basarak onaylayınız. Kurulum esnasında hylafax programı /etc/aliases içinde FaxMaster adında bir alias oluşturuyor. Gelen faksların kime iletilmesini istiyorsak bu aliası o şekilde değiştiriyoruz.
FaxMaster: faxuser@mydomain.com  şeklinde olan girdiyi faxuser@mydomain.com  un yerine faksları almasını sitediğiniz kişinin adı ile değiştirin.
ardından

/usr/bin/newaliases

komutunu çalıştırın ki değişikliklerimiz etkili olsun.
reboot yada /sbin/init q komutuyla servisleri yeniden başlatıyoruz.
Eğer gelen faksları bir eposta adresine yönlendirmek istiyorsak :

/var/spool/hylafax/etc/FaxDispatch

adında bir dosya oluşturup içine :

FILETYPE=tif;
SENDTO=FaxMaster;

Postfix’imizin faxlarımızı hangi mail sunucusuna göndereceğini de ayarlayalım :

vi /etc/postfix/main.cf

Dosyanın en altına aşağıdakileri ekleyelim :

relayhost = 192.168.0.2
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination
smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_password_map

Eğer 192.168.0.2 adresindeki mail sunucusu kullanıcı adı doğrulaması gerektiriyorsa

/etc/postfix/smtp_sasl_password_map

adında bir dosya oluşturuarak içine de şunları yazalım :

192.168.10.2    faxuser@mymailserver.com:faxsuser

Şimdi :

/usr/sbin/postmap /etc/postfix/smtp_sasl_password_map

komutuyla map dosyamızı derleyelim, ve :

service postfix restart

komutuyla posta sunucumuzu yeniden  başlatalım.
Artık bir arkadaşımızdan bize faz göndermesini isteyip sistemi test etme zamanı.
Gelen fakslar daha önce tanımladığımız FaxMaster eposta adresine gidecektir.
Dikkat etmeniz gereken bu yazdığınız eposta adresinin centos tarafından çözümlenebiliyor olması.
//////////////////////////////////////////////////////////////
//////////Server’a email atarak fax göndermek istiyorum // 🙂 //////
//////////////////////////////////////////////////////////////
Postfix main.cf dosyasının en altına şunları ekleyin :

virtual_alias_maps = hash:/etc/postfix/valias

Sonra da /etc/postfix/valias adında bir dosya oluşturup içine size gelen fax maillerinin nasıl ve nereye yönlendirileceğini yazalım:

@faxalanadi.com mail2fax

Tabi bu alan adının gerçek olmamasına, hiç değilse herkesin mail atmasına müsait olmamasına dikkat ediniz. Ardından bu yazdığımızı etkin hale getirelim :

postmap /etc/postfix/valias
service postfix restart

Son olarak gelen epostaları uygun fax dokümanına dönüştürmesi için /etc/aliases dosyasının en altına bunları yazalım :

mail2fax: |/usr/local/bin/mail2fax.sh

Hemen peşinden:

newaliases

komutuyla değişiklikleri uygulayalım. Bu dosyayı /usr/local/bin altına indirip,

chmod a+x mail2fax.sh

komutuyla da çalıştırılabilir hale getirdikten sonra işlemimiz tamamdır. Email ile fax göndermek için yukarıda tanımladığınız alan adına telefonnumarasi@yukarıdakialanadi.com şeklinde mail attığınıza telefonnumarai ile belirtilen numaraya fax gönderecektir.