Utilitare postfix

postfix…diverse lucruri și comenzi utile de reținut despre postfix

– pentru a vedea ce e în coadă:

mailq

pentru a se vedea un mesaj din coadă se reține id-ul afișat de mailq la mesajul dorit (ceva de genul; E566416C01FB), și se rulează:

postcat -vq MESAGE-ID

– pentru a rula tot ce e în coadă (flush):

postqueue -f

– pentru a șterge tot ce e în coadă:

postsuper -d ALL

– pentru a șterge tot ce este cu eroare (deffered) din coada:

postsuper -d ALL deferred

 

– pentru a șterge anumite mesaje din coada după un criteriu dorit (schimbați ce este cu roșu):

postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / byrdsnestquilt@bellsouth\.net/ { print $1 }' | tr -d '*!' | postsuper -d -

 

– sau se creează și  se rulează scriptul, creați un fișier pe server:

vi /postfix-delete.pl

– cu conținutul:

#!/usr/bin/perl
 my $REGEXP = shift(@ARGV) || die “no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!”;
 my %Q;
 my $queue_id;
 my @data = `/usr/sbin/postqueue -p`;
 foreach my $line (@data) {
 if ($line =~ /^(\w+)(\*|\!)?\s/) {
 $queue_id = $1;
 }
 if($queue_id) {
 if ($line =~ /$REGEXP/i) {
 $Q{$queue_id} = 1;
 $queue_id = “”;
 }
 }
 }
 open(POSTSUPER,”|postsuper -d -”) || die “couldn’t open postsuper” ;
 foreach my $key (keys %Q) {
 print POSTSUPER “$key\n”;
 }
 close(POSTSUPER);

– îi dăm drepturile de rigoare:

chmod 777 /postfix-delete.pl

– și dacă dorim să ștergem domeniul să zicem @gogu.com, rulăm:

/postfix-delete.pl gogu.com

– dacă dorim să ștergem orice mail care conține cuvântul gogu, rulăm:

/postfix-delete.pl gogu

– se întâmpla să se trimită mailuri multe de pe server (spam intenționat sau nu), dacă nu știm se vor trimite multe și va intra serverul în tot felul de liste de spam. Pentru a evita asta facem un script care să verifice și să trimită mail la o adresă când se atinge un număr stabilit de noi de mailuri în coadă.

– creăm  un fișier /home/verificamailq care va trimite mail când se va atinge un număr de mailuri în coadă ales de noi, ce e cu roșu, trebuie pus ce doriți:

touch /home/verificamailq
 chmod 777 /home/verificamailq
 vi /home/verificamailq

– și introducem în el:

/usr/bin/mailq |grep Requests |awk '{print $5}' > /home/mailqnr
 MAILS=`cat /home/mailqnr`
 if [ "$MAILS" -gt 30 ]; then
 mail -s "$MAILS mailuri pe serverulmeu, `date +%F`" adresameade@mail.com < /home/mailqnr
 else
 echo ""

– acum introducem și în crontab să verifice la 10 minute:

crontab -e

– și introducem:

*/10 * * * * /home/verificamailq

Cum sa blocam IP sau domeniu în Postfix pentru a evita spam-ul din destinații pe care le știm:

Trebuie sa definim 2 noi parametrii în postfix, mai exact:

check_client_access
Blochează după client IP, Client IP Range sau Hostname

check_sender_access
Blochează după sender e-mail address/domenii (se ia după ce e pus la FROM)

Mai intii adaugam in mail.cf din postfix pe langa ce este deja acolo:

vi /etc/postfix/main.cf

smtpd_recipient_restrictions =
check_client_access hash:/etc/postfix/client_checks,
check_sender_access hash:/etc/postfix/sender_checks,
etc….
etc….

Și acum facem fișierele definite anterior:

vi /etc/postfix/client_checks

# restrictii de unde o sa acceptam
example.com REJECT Hai sictir spamere
.example.com REJECT Hai sictir spamere
123.456.789.123 REJECT Folositi un IP de spam
123.456.789.0/24 REJECT Folositi un IP dintr-o clasa de spam
321.987.654.321 OK example1.com OK

vi /etc/postfix/sender_checks

# Restricts sender addresses this system accepts in MAIL FROM commands.
example.com REJECT mesaje de la any@example.com respinse
.example.com REJECT mesaje de la any@sub.example.com respinse
user@example.com REJECT Hai sictir spamere
example2.com OK

Acum restartăm tot și va funcționa:

postmap /etc/postfix/client_checks
postmap /etc/postfix/sender_checks
/etc/init.d/postfix reload

daca o ia razna amavis:

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
postfix flush

in ispcp sau imscp (schimbati doar calea) daca vrem sa anulam un domeniu sa poata trimita mail catre el care este pe alt server:

mcedit /etc/postfix/imscp/domains

– punem # in fata domeniului care vrem sa-l anulam de pe acest server

cp /etc/postfix/imscp/domains /etc/imscp/postfix/working

cd /etc/postfix/imscp/

postmap domains


Știri postfix:

 

 

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Zi cu cuvintele tale...