qmail Kurulum Scripti v0.2 – CentOS 5.4
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYhP6yxK' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
UPDATE: Scriptin CentOS 6.x sürümünü yayınladım. Bkz: http://www.syslogs.org/qmail-kurulum-scripti-centos6x/
Bundan iki sene önce, temel bileşenleri ile hızlıca qmail kurulumu yapabilmek için küçük bir shell scripti hazırlamış ve burada yayınlamıştım. Şimdi de o scriptin eli yüzü biraz daha düzgün ikinci versiyonunu hazırladım.
Eğer, CentOS5 üzerinde gateway, smarthost ya da mailer olarak çalışacak LWQ önergelerine göre yapılandırılmış bir qmail'e ihtiyacınız bulunuyorsa scripti aşağıdaki linkten indirip kurulumu kolayca yapabilirsiniz.
Download
CentOS 5.4 :
http://www.syslogs.org/qmail/scripts/qinstaller.cnt55.v2.1.0.tar.gz
Kullanım Şekli
Paketin içinde qinstaller.sh ve quninstaller.sh olmak üzere iki adet shell script ve bir README dosyası bulunuyor. Başlamadan önce mutlaka README dosyasını okuyun.
Kurulumu normal olarak ./qinstaller.sh şeklinde başlatabilirsiniz. Yönergeleri takip ederek 3 dakika içerisinde qmail kurulumunuzu tamamlayabilirsiniz. Herhangi bir terstlik olması durumda, uninstall.sh scriptini çalıştırarak kurulumu geri alabilirsiniz. uninstall scripti sadece install.sh vasıtası ile yapılan qmail kurulumlarını kaldırmak için hazırlanmıştır. Aksi durumlar için bu scripti kullanmayınız.
Bu yazılar da ilginizi çekebilir:
- qmail Kurulum Scripti
- qmail Kurulum Scripti – CentOS 6.x
- Mtrack Shell Scripti ile Anlamlı qmail Logları
- qmail – Giden Maillerin DKIM ve DomainKeys ile İmzalanması
- Qmail Log Dosyalarının Ebatını Arttırmak
Merhaba, kurulumu sorunsuz şekilde tamamladım ancak test yapmak için telnet atmak istediğimde aşağıdaki gibi bir hata veriyor.
[root@postaci ~]# telnet localhost 25
Trying 127.0.0.1…
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host: Connection refused
[root@postaci ~]# rpm -qa | grep telnet
telnet-0.17-39.el5
telnet-server-0.17-39.el5
[root@postaci ~]# chkconfig –list telnet
telnet on
[root@postaci ~]# qmailctl stat
/service/qmail-send: up (pid 3554) 483 seconds
/service/qmail-send/log: up (pid 3555) 483 seconds
/service/qmail-smtpd: up (pid 6248) 1 seconds
/service/qmail-smtpd/log: up (pid 3553) 483 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0
[Cevapla]
Selamlar,
smtp portu dinlenmiyor gorunmekte. Asagidaki iki komutun ciktisini gonderirseniz yardimci olmaya calisirim.
tail -n 50 /var/log/qmail/smtpd/current
ve
netstat -ant
[Cevapla]
Merhaba Çağrı Bey,
İlk başta tail -f /var/log/qmail/smtpd/current komutuyla sürekli aşağıdaki hatayı aldığımı farkettim.
[root@postaci ~]# tail -f /var/log/qmail/smtpd/current
@400000004d88fbe6085dda74 tcpserver: fatal: unable to figure out port number for smtp
@400000004d88fbe70ab51c9c tcpserver: fatal: unable to figure out port number for smtp
Biraz araştırdım bazı kişilerde bu hata olduğunda /var/qmail/supervise/qmail-smtpd/run dosyasındaki aşağıdaki “0 smtp” arasına 25 ekleyince düzelmiş.
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z “$QMAILDUID” -o -z “$NOFILESGID” -o -z “$MAXSMTPD” -o -z “$LOCAL” ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo “No /var/qmail/control/rcpthosts!”
echo “Refusing to start SMTP listener because it’ll create an open relay”
exit 1
fi
exec /usr/local/bin/softlimit -m 4000000 \
/usr/local/bin/tcpserver -v -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” \
-u “$QMAILDUID” -g “$NOFILESGID” 0 25 smtp /var/qmail/bin/qmail-smtpd 2>&1
Bende düzelmedi ama tail -f /var/log/qmail/smtpd/current komutuyla tekrar baktığımda hata iletisi değişti.Ancak yine telnet atamadım.
@400000004d88fcd63aaff2dc tcpserver: status: 1/20
@400000004d88fcd63aaffaac tcpserver: pid 14495 from 127.0.0.1
@400000004d88fcd63ab4c53c tcpserver: ok 14495 xxx.com:127.0.0.1:25 localhost:127.0.0.1::57971
@400000004d88fcd63ab8c0c4 tcpserver: warning: dropping connection, unable to run smtp: file does not exist
@400000004d88fcd63ad393f4 tcpserver: end 14495 status 28416
@400000004d88fcd63ad397dc tcpserver: status: 0/20
netstat -ant çıktısı;
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:638 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 127.0.0.1:57971 TIME_WAIT
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::ffff:10.30.30.20:22 ::ffff:10.20.0.101:24838 ESTABLISHED
tcp 0 660 ::ffff:10.30.30.20:22 ::ffff:10.20.0.101:30693 ESTABLISHED
tcp 0 0 ::ffff:10.30.30.20:22 ::ffff:10.20.0.101:30679 ESTABLISHED
[Cevapla]
Selamlar,
Evet sorununuz /var/qmail/supervise/qmail-smtpd/run dosyasının ilgili kisminda smtp yerine 25 yazmaniz yeterli, siz hem 25 hem smtp yazdiginiz icin su anki hatayi aliyorsunuz:
İlgili alan su sekilde olsun:
“$NOFILESGID” 0 25 /var/qmail/bin/qmail-smtpd 2>&1
Sonra qmail’inizi yeniden baslatin, sorun duzelecektir.
Oradaki smtp ibaresi, port bilgisinin /etc/services dosyasından ogrenilmesini soyluyor.
Simdi yaptiginiz degisiklikle direk olarak 25. portu kullan demis oluyorsunuz.
[Cevapla]
Şimdi de dışarı mail atarken aşağıdaki hatayı alıyorum, neden kaynaklanıyor olabilir?
deferral: Sorry,_I_wasn’t_able_to_establish_an_SMTP_connection._(#4.4.1)
[Cevapla]
Selamlar,
Disaridaki sunucuya erisemedini soyluyor.
Baglanti problemi olabilir. Mail gondermeye calistiginiz domainin mx recordunda yer alan ip adresine 25. porttan telnet cekmeyi deneyebilirsiniz…
[Cevapla]
Sistemi defalarca restore edip tekrar denememe rağmen aşağıdaki gibi bir hata alıyorum.
qmail-smtpd/run dosyasi check ediliyor…
Dosya yerinde mi ?
/var/qmail/supervise/qmail-smtpd/run ? [ Tamam ]
Ebati dogru mu ?
Ooopss…
qmail-smtpd/run dosyasinin size’i dogrulanamadi! Download sirasinda
bir sorun olusmus olabilir. Bu durumda kuruluma devam edemiyoruz.
Lutfen asagidaki adimlari izledikten sonra install-qmail.sh
scriptini yeniden calistirin.
1 – http://www.syslogs.org/qmail/qmail-smtpd/run adresine erisiminiz
oldugundan emin olun.
2- /qmail-install-scripts dizinindeki uninstall.sh scriptini
calistirarak su ana kadar yapilan islemleri geri alin.
3 – Son olarak, install-qmail.sh scriptini yeniden calistirarak
qmail kurulumunu yeniden baslatin.
Kurulum sonlandiriliyor!
[Cevapla]
Selamlar,
Evet sorunun nedeni, gecen gun yaptiginiz hata bildiriminden sonra ilgili dosyayı yeniden duzenlemis olmam. Dosya degistigi icin dogrulama yapilamamis. Simdi yeniden duzenledim.
Sorun olmamali.
[Cevapla]
Çağrı Bey, test ettim sorunsuz olarak çalışıyor, teşekkürler.
[Cevapla]
Çağrı Bey daha önce qmail+ad authentication yaptınızmı? Araştırmalarıma göre burada ( http://fo2k.com/qmail-activedir/ ) bir döküman var fakat lber.h ve ldap.h adlı dosyaları bulamıyor ve kurulum tamamlanmıyor.Yapmak istediğim backup için kullandığımız yazılımının kimlik doğrulayarak mail atmasını sağlamak.Yukarıdaki kuruluma ek olarak kullanıcı doğrulatmayı nasıl yapabilirim?
[Cevapla]
Selamlar,
LDAP kutuphanelerine ihtiyaciniz var sanırım. Nitekim gereksinimler basliginda bundan bahsediliyor:
REQUIREMENTS:
the LDAP libraries and header files must be present to
compile, as well as most of the standard C header files and libs.
You can get LDAP here:
http://www.openldap.org
Sanırım sorununuz bununla alakalı.
[Cevapla]
Merhaba,
Aslında ilk başta openldap yüklü değildi, sonradan yüklediğim halde aynı hatayı veriyor.Bu arada varolan windows ad ortamından kimlik doğrulatabilirmiyim?Sanırım bu sunucu üzerine kurarak kimlik doğrulama işlemi yaptırmak istiyor..
[root@server qmail-activedir-0.17]# rpm -qa | grep ldap
openldap-2.3.43-12.el5_5.3
python-ldap-2.2.0-2.1
nss_ldap-253-25.el5
nss_ldap-253-25.el5
openldap-2.3.43-12.el5_5.3
[root@server qmail-activedir-0.17]# ll
total 72
-rw-r–r– 1 alias nofiles 11642 Aug 5 2010 ad_func.c
-rw-r–r– 1 alias nofiles 3334 Aug 5 2010 ad_func.h
-rw-r–r– 1 alias nofiles 1571 Aug 5 2010 checkadpassword.c
-rw-r–r– 1 alias nofiles 19127 Aug 5 2010 create_alias_files.c
-rw-r–r– 1 alias nofiles 1603 Aug 5 2010 create_alias_files.h
-rw-r–r– 1 alias nofiles 4779 Aug 5 2010 INSTALL
-rw-r–r– 1 alias nofiles 377 Aug 5 2010 Makefile
-rw-r–r– 1 alias nofiles 757 Aug 5 2010 qmail-adgetpw.c
-rw-r–r– 1 alias nofiles 4417 Aug 5 2010 README
-rw-r–r– 1 alias nofiles 528 Aug 5 2010 VERSION
[root@server qmail-activedir-0.17]# make
gcc -Wall -O2 -lldap checkadpassword.c ad_func.c -o checkadpassword
In file included from checkadpassword.c:15:
ad_func.h:64:18: error: lber.h: No such file or directory
ad_func.h:65:18: error: ldap.h: No such file or directory
In file included from checkadpassword.c:15:
ad_func.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
ad_func.h:105: error: expected ‘)’ before ‘*’ token
ad_func.h:106: error: expected ‘)’ before ‘*’ token
ad_func.c:18:18: error: ldap.h: No such file or directory
In file included from ad_func.c:23:
ad_func.h:64:18: error: lber.h: No such file or directory
In file included from ad_func.c:23:
ad_func.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
ad_func.h:105: error: expected ‘)’ before ‘*’ token
ad_func.h:106: error: expected ‘)’ before ‘*’ token
ad_func.c:199: error: expected ‘)’ before ‘*’ token
ad_func.c:213: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
ad_func.c:240: error: expected ‘)’ before ‘*’ token
ad_func.c:246: error: expected ‘)’ before ‘*’ token
ad_func.c:269: error: expected ‘)’ before ‘*’ token
ad_func.c: In function ‘ad_verify_user’:
ad_func.c:326: error: ‘LDAP’ undeclared (first use in this function)
ad_func.c:326: error: (Each undeclared identifier is reported only once
ad_func.c:326: error: for each function it appears in.)
ad_func.c:326: error: ‘ld’ undeclared (first use in this function)
ad_func.c:330: warning: implicit declaration of function ‘ad_init’
ad_func.c:331: warning: implicit declaration of function ‘ad_bind’
ad_func.c:333: warning: implicit declaration of function ‘ad_getsam_fulldn’
ad_func.c:335: warning: implicit declaration of function ‘ad_close’
ad_func.c: In function ‘ad_getpw’:
ad_func.c:354: error: ‘LDAP’ undeclared (first use in this function)
ad_func.c:354: error: ‘ld’ undeclared (first use in this function)
make: *** [all] Error 1
[root@server qmail-activedir-0.17]#
[Cevapla]
Sanırım openldap-devel paketini de kurmaniz lazim. Gerekli olan headerlar o paket ile geliyor sanırım.
[Cevapla]
Çağrı Bey, evet openldap-devel paketini yükleyince oldu.Yalnız diğer işlemleri linux üzerindeki ldap mantığını bilmediğim için beceremedim.Mesela başta oluşturmamı istediği ad_uig,ad_gid gibi dosyalarda compile sonrasında herhangibir değişiklik vs olmadı.Yapmamı istediği testlerde ne istediği gibi bir sonuç ne de hata mesajı verdi.Neleri eksik yapıyorum acaba?Benim kullanıcı database’im nerede? vs vs.. gibi sorularım var :) yardımlarınızı rica ediyorum.
[root@server bin]# ./qmail-popup blah checkadpassword id
+OK
[root@server bin]# ./qmail-popup mustafa checkadpassword 500
+OK
[Cevapla]
Valla konu ile ilgili direk bilgim olmadigi icin sizi yanlis yonlendirmek istemem.
Ama sanirim kendi active directory ortamınız ile ilgili dogru container, organization unit vs. degerlerini girmeniz gerekiyor. Biraz google’larsanız sonuca ulasabileceginizi dusunuyorum
[Cevapla]
Teşekkür ederim yardımlarınız için, eğer doğru bilgiye ulaşırsam burada da paylaşacağım.
[Cevapla]
Merhaba,
bu kurulum ile boş bir sunucuda mail server kurabılırmıyız?
[Cevapla]
Temel bileşenleri ile bir mail sunucu kurmak mümkün. Temel bileşimden kastım, sadece smtp servisi çalıştırabilirsiniz. Kurulum scripti pop3 servisini kurmuyor.
[Cevapla]
merhaba. linux konusunda fazla bir bilgim yok. fakat qmail kurulumunu tamamladım. smtp server olarak kullanmak istiyorum. nasıl kullanabilirim. sadece mail gönderme amaçlı olacak. php sayfam üzerinden phpmailler kullanarak sunucya bağlanacak ve kullanıcı adı şifreyle gönderecek. nasıl yapabilirim acaba. teşekkürler.
[Cevapla]
Merhaba,
Script’i kullanarak yaptığınız kurulumlarda, mail göndermek için kullanıcı adı şifre girmenize gerek yok. phpmailer, qmail ile aynı sunucuda calisiyorsa localhost’un relay izni olduğu için php üzerinden smtp sunucunuzdan gönderim yapabilirsiniz.
Php uygulamaniz herhangi baska bir sunucu uzerinde ise, qmail’e ilgili php uygulamasinin calistigi sunucu icin relay tanimlamasi yapmaniz gerekir ki bu ayar /etc/tcp.smtp dosyasında yapılmaktadır. Örnek olarak ilgili dosyaya,
gibi bir satır ekler ve komut satırında
komutunu calistirisaniz, 1.2.3.4 ip adresi icin gönderim izni vermis olursunuz.
[Cevapla]
Betikte herhangi bir hata almadan kurulumu yaptım fakat
qmailctl stat komutuyla kontrol ettiğimde aşağıdaki hatayı alıyorum.
[root@sidelya syslog]# qmailctl stat
/service/qmail-send: unable to open supervise/ok: file does not exist
/service/qmail-send/log: unable to open supervise/ok: file does not exist
/service/qmail-smtpd: unable to open supervise/ok: file does not exist
/service/qmail-smtpd/log: unable to open supervise/ok: file does not exist
messages in queue: 0
messages in queue but not yet preprocessed: 0
[Cevapla]
Kurulumu hangi Linux dağıtımı üzerinde yaptınız ve uname – a çıktınızı gönderebilir misiniz ?
Scripti yeniden kontrol edebilirim bu şekilde.
[Cevapla]
Linux localhost 2.6.32-220.4.2.el6.x86_64 #1 SMP Tue Feb 14 04:00:16 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux
CENTOS 6
[Cevapla]
CentOS 6 üzerinde hic denemedim.
Bir kontrol edip geri donecegim.
[Cevapla]
Evet script CentOS 6 üzerinde calismiyor, cunku inittab kullanimi bu versiyonda biraz degismis. Bu düzeltmeyi iceren yeni bir versiyonu yayinlayacagim.
[Cevapla]
Merhaba, bu scriptin içerisine mak ve patch paketlerinin kurulumlarının yum ile yapılmasınıde eklemeniz güzel olur.Bende o paketler yoktu, kapatıp tekrar açmak vs durumunda kaldım.Eklenirse güzel olur.
[Cevapla]
Selamlar,
Script gcc kontrolü yapıyor ve yoksa yum kullanarak kuruyor. Aynı şeyi make ve patch için de yapabiliriz.
Bu arada make ve patch minimal kurulumlarda dahi default olarak geliyor; sizin sisteminizde olmayışının özel bir nedeni var mıydı ?
[Cevapla]
Cağrı Bey, diğer distro’larda çalışmamasının nedeni ne? Paketin içerisini kontrol ediyorum, centos ile alakalı bir durum göremedim..Yani download ediyor make yapıyor vs.Centos ya da diğer distroları etkileyen nedir anlamadım açıkcası.
[Cevapla]