Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.user > #210246
| From | Andrew McGlashan <andrew.mcglashan@affinityvision.com.au> |
|---|---|
| Newsgroups | linux.debian.user |
| Subject | Re: blocking 465 connections to mail server for specific IP address without using fail2ban |
| Date | 2019-06-22 16:20 +0200 |
| Message-ID | <ybP22-2Hp-3@gated-at.bofh.it> (permalink) |
| References | <ybIDf-7eg-3@gated-at.bofh.it> <ybJIZ-7Qn-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hi,
On 22/6/19 6:24 pm, john doe wrote:
>> I've blacklisted quite a number of IP addresses and CIDR blocks
>> from delivering email to my server with entries in the
>> /etc/exim4/local_host_blacklist file.
>>
>> Is there any config file that I can easily use to block 465
>> login attempts from bad IP addresses and CIDR blocks?
>>
>> If there is no simple config file, what can I do without
>> resorting to use of fail2ban so that I can use a curated list of
>> blocked IP addresses. I'm not sure I want to use iptables for
>> this either.
>>
>> I /may/ end up blocking the IPs at the firewall (OPN Sense) level
>> yet.
>
> Instead of files, I probably would use 'ipset', that way, you can
> use the ipset in exim iptables ...
Thanks!
Okay this might help someone else, here are the details of my
solution, it requires the iprange package and a logwatch email to do
the job.
Cheers
A.
References:
http://ipset.netfilter.org/
https://wiki.archlinux.org/index.php/Ipset
https://unix.stackexchange.com/questions/67738/ip-set-to-block-access-to
- -exim-and-dovecot
other possible useful references:
https://firewalld.org/documentation/
#!/bin/bash
declare -a tcp25_set tcp465_set
banned_ports_list=25,465,993,995
logwatch_file=/var/log/exim4/logwatch-email-20190622a.eml
# NB iprange will cleanup and uniquely sort the ip addresses list
# - this /may/ also conflate plain ip entries to CIDR entries
tcp25_set=(
$(
grep 'login_saslauthd authenticator failed for.*:25:' \
"${logwatch_file}" | sed \
-e 's/^.*login_saslauthd authenticator failed for //' \
-e 's/^(.*) //' -e 's/:.*$//'|tr -d '\[\]'|iprange
)
)
tcp465_set=(
$(
grep 'login_saslauthd authenticator failed for.*:465:' \
"${logwatch_file}" | sed \
-e 's/^.*login_saslauthd authenticator failed for //' \
-e 's/^(.*) //' -e 's/:.*$//'|tr -d '\[\]'|iprange
)
)
# delete iptables rules if they exist
iptables -D INPUT -p tcp -m multiport --dports "${banned_ports_list}" \
-m set --match-set bad-exim4-exploiters-net src -j DROP
iptables -D INPUT -p tcp -m multiport --dports "${banned_ports_list}" \
-m set --match-set bad-exim4-exploiters-ip src -j DROP
# destroy ipset bad-exim4-exploiters lists (if they exist)
ipset destroy bad-exim4-exploiters-net
ipset destroy bad-exim4-exploiters-ip
# create new ipset lists
ipset create bad-exim4-exploiters-net hash:net
ipset create bad-exim4-exploiters-ip hash:ip
# add entries for ipset bad-exim4-exploiters lists
for badip in "${tcp25_set[@]}" "${tcp465_set[@]}"
do
# only add entries if they are not already existing
if [[ -z "${badip##*\/*}" ]]
then
ipset add bad-exim4-exploiters-net "${badip}" -exist
else
ipset add bad-exim4-exploiters-ip "${badip}" -exist
fi
done
# add iptables rules to use ipsets
iptables -I INPUT -p tcp -m multiport --dports "${banned_ports_list}" \
-m set --match-set bad-exim4-exploiters-net src -j DROP
iptables -I INPUT -p tcp -m multiport --dports "${banned_ports_list}" \
-m set --match-set bad-exim4-exploiters-ip src -j DROP
-----BEGIN PGP SIGNATURE-----
iHUEAREIAB0WIQTJAoMHtC6YydLfjUOoFmvLt+/i+wUCXQ44bQAKCRCoFmvLt+/i
+091AP0RiZcP/+O2R8tzXZ0OwpSiRjmUDYGbJXo47nkJDD2WUQD/W8AZR/DRQuon
OY7rgvU6fPEz3M7mdWUppSxSqaiLHUc=
=8AnG
-----END PGP SIGNATURE-----
Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
blocking 465 connections to mail server for specific IP address without using fail2ban Andrew McGlashan <andrew.mcglashan@affinityvision.com.au> - 2019-06-22 09:30 +0200
Re: blocking 465 connections to mail server for specific IP address without using fail2ban john doe <johndoe65534@mail.com> - 2019-06-22 10:40 +0200
Re: blocking 465 connections to mail server for specific IP address without using fail2ban Andrew McGlashan <andrew.mcglashan@affinityvision.com.au> - 2019-06-22 16:20 +0200
Re: blocking 465 connections to mail server for specific IP address without using fail2ban Andrew McGlashan <andrew.mcglashan@affinityvision.com.au> - 2019-06-22 16:40 +0200
Re: blocking 465 connections to mail server for specific IP address without using fail2ban Andrew McGlashan <andrew.mcglashan@affinityvision.com.au> - 2019-06-23 00:10 +0200
csiph-web