Apache/PHP, Sendmail și SELinux împreună

SELinux este un modul de securitate a nucleului linux. Implicit, SELinux nu permite ca WEB-Serverul Apache să poată expedia mesaje prin intermediul componentei Sendmail, afișînd în mail.log următoarea eroare:
NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

Această eroare poate induce în eroare, pentru că e un banal mesaj ce indică permisiuni greșite asupra dosarului. Variabila SELinux care gestionează permisiunea de expediere este httpd_can_sendmail

Pentru a verifica ce valoare are, se folosește instrucțiunea:

getsebool -a | grep httpd_can_sendmail

Rezultat:

httpd_can_sendmail --> off sau httpd_can_sendmail --> on

Dacă rezultatul este off, atunci trebuie setat în on pentru a permite expedierea mesajelor. Se folosește instrucțiunea:

setsebool -P httpd_can_sendmail 1

Rapoarte zilnice despre activitatea postfix

Dacă aveți un server pe linux, care are configurat un server poștal postfix, puteți vedea zilnic statistica mesajelor. Unul din instrumentele care vă permit acest lucru este scriptul PFLogSumm: https://calomel.org/pflogsumm.html.

1. Înainte de a începe, asigurați-vă că aveți instalate componentele necesare.

Debian: aptitude install libdate-calc-perl mailutils

CentOS: yum install perl-Date-Calc mailx

2. Să purcedem!

Descărcăm: wget http://jimsun.linxnet.com/downloads/pflogsumm-1.1.3.tar.gz

Dezarhivăm: tar -zxvf pflogsumm-1.1.3.tar.gz

3. Copiem scriptul: cp pflogsumm-1.1.3/pflogsumm.pl /usr/local/bin/pflogsumm.pl

3′. Dacă rulați pe Debian, atunci trebuie să corectați numele fișierelor de logare a activităților postfix:

sed -i ‘s/maillog.0/mail.log.1/g’  /usr/local/bin/pflogsumm.pl

sed -i ‘s/maillog/mail.log/g’ /usr/local/bin/pflogsumm.pl

4. Redactăm crontab-ul: crontab -e

Adăugăm rularea scriptului pflogsumm.pl la urmă: /usr/local/bin/pflogsumm.pl -u 5 -h 5 –problems_first -d today /var/log/mail.log | mail -s „pflogsumm report `date`” root

După care obligatoriu lăsăm un rînd liber. Salvăm modificările.

5. Testăm dacă scriptul se execută fără erori – din consolă: /usr/local/bin/pflogsumm.pl -u 5 -h 5 –problems_first -d today /var/log/mail.log | mail -s „pflogsumm report `date`” root

Dacă nu apare niciun text – înseamnă că scriptul s-a executat cu succes.

6. Dacă nu aveți configurată readresarea scrisorilor de la utilizatorul root către un cont de e-mail valid, atunci puteți vedea e-mailurile direct din consolă, cu una din opțiunile: mail, mailx sau cone (pe asta v-o recomand, dacă nu este în sistem – se instalează cu: aptitude install cone) sau direct cu:  cat /var/spool/mail/root

În fiecare zi, la ora 23:59 veți primi un e-mail cu statistica detaliată pentru această zi.

Avantajul acestui script este că el doar prelucrează logurile mail.log(sau maillog), fără a se implica în funcționalitatea sistemului.