postfix and dovecot 2.0.9 rejecting over quota user on smtp stage
Simple Email Blacklist Using Spamassassin Plugin And RBLDNSD
This is not new idea, actually. someone at spamassassin plugin developers have been made before. basically, the idea was put email addresses in RBLDNSD zone dnset format, ie:
Email user@example.com RBLDNSD user.example.com
So, we replace @ sign into dot (.) sign. that way, we can save the email addresses into the RBLDNSD dnset zone.
RBLDNSD part:
create emailbl zone, meta information
zone
:127.0.0.4:DNSBL. $ - Not receiving email right now. example.user.gmail.com example.user.rediffmail.com
meta
$NS 1w ns.example.com ns.example.com $SOA 1w ns.example.com admin.example.com 0 2h 2h 1w 1h $DATASET generic @ @ A 1.2.3.4 @ MX 10 mx.example.com @ TXT "example email blocklist"
in /etc/sysconfig/rbldnsd
RBLDNSD="dsbl -r/var/lib/rbldns/dsbl -t 300 -b 1.2.3.4 \ emailbl.example.com:combined:meta,emailbl "
ofcourse we should delegate the subdomain emailbl.example.com in example.com authoritative nameserver
; subdomain delegation emailbl.example.com. IN NS ns.example.com. ns.example.com. IN A 1.2.3.4
start rbldnsd service
service rbldnsd start
Postfix Changing Outgoing IP By Time Interval Using TCP_TABLE And Perl
Someone asked me if i can make a perl scripts that can change the ip address based on time interval, say he want ip address 1.2.3.4 used within one hour, if done next ip address will be used within next one hour..and so on. when it came to highest number of ip address in array, they will be reset back to the start. first i suggest him to look at the articles i wrote. But then i decide to write Perl script which was made for the purposes mention above.
here we are..
Postfix section:
master.cf 127.0.0.1:2527 inet n n n - 0 spawn user=nobody argv=/etc/postfix/ip_by_time.pl ip1 unix - - n - - smtp -o syslog_name=postfix-ip1 -o smtp_helo_name=smtp1.example.com -o smtp_bind_address=1.2.3.1 ip2 unix - - n - - smtp -o syslog_name=postfix-ip2 -o smtp_helo_name=smtp2.example.com -o smtp_bind_address=1.2.3.2 ip3 unix - - n - - smtp -o syslog_name=postfix-ip3 -o smtp_helo_name=smtp3.example.com -o smtp_bind_address=1.2.3.3 ip4 unix - - n - - smtp -o syslog_name=postfix-ip4 -o smtp_helo_name=smtp4.example.com -o smtp_bind_address=1.2.3.4 .... ....
main.cf
transport_maps = tcp:[127.0.0.1]:2527 127.0.0.1:2527_time_limit = 3600s
Measure Response Time Of SMTP Connections Using Perl
Normally, to check if my server smtp connection alive, I just do telnet to port 25 from my workstation. if the smtp banner displayed, it means that the connection to the smtp server is good. I have done this for years. 😆
$ telnet smtp.example.com 25 Trying xxx.xxx.xx.xxx... Connected to xxx.xxx.xx.x. Escape character is '^]'. 220 smtp.example.com ESMTP Postfix ehlo host.example.com 250-smtp.example.com 250-PIPELINING 250-SIZE 52428800 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
Although many tools that are deliberately created for this purpose, still, I prefer just using telnet to port 25. I have made a simple perl script, with the intention that the things I do for years manually can be done automatically.