Страница 1 из 1
Exim проверка 25-ого порта
Добавлено: 2008-06-20 14:45:08
fr33man
Всем привет.
Подскажите, как в экзиме проверять удаленный порт на предмет открытости 25-ого порта...
То смысл такой: если на удаленной машине 25 порт открыт, то переходим к следующим acl'ам.
Если зыкрыт, то шлем лесом.
Заранее спасибо.
Re: Exim проверка 25-ого порта
Добавлено: 2008-06-20 14:48:49
Alex Keda
неверный принцип.
у крупных сервисов есть сервера которые только отправляют.
принимают другие.
Re: Exim проверка 25-ого порта
Добавлено: 2008-06-20 14:53:27
fr33man
понял. спс.
Re: Exim проверка 25-ого порта
Добавлено: 2008-06-20 14:54:43
dikens3
lissyara писал(а):неверный принцип.
у крупных сервисов есть сервера которые только отправляют.
принимают другие.
:-) Именно так у меня и было. Кстати, это было моё первое решение для защиты от спама. Я спросил как оно для общества на sysadmins. Обсрали как могли вобщем... С тех пор его и ненавижу. Ушёл к Лиссяре.
Через 2 недели половина IP-Адресов mail.ru, yandex и т.п. была в блоке.
Вот раскопал у себя, когда ещё postfix был делал.
Код: Выделить всё
mail# cat create_black_list.sh
#!/usr/local/bin/bash
logfile="/var/log/postfix.log"
#logfile="/mnt/inbound/postfix/postfix.log"
tmpfile="/root/scripts/postfix/ip-spammers-detect/1"
tmpfile2="/root/scripts/postfix/ip-spammers-detect/2"
spammersfile="/root/scripts/postfix/ip-spammers-detect/spammers"
spammersbase="/root/scripts/postfix/ip-spammers-detect/spammersbase"
spammersbasepostfix="/usr/local/etc/postfix/scripts/"
rm -f $tmpfile2
cat /dev/null > $tmpfile
# Формируем список IP-Адресов без повторений
cat $logfile | grep " connect from " | awk '{print $8}' | grep -v "127.0.0.1" | grep -v "birzhaplus" | cut -d[ -f2 | cut -d] -f1 | sort -nu > $tmpfile
clientip=$(cat $tmpfile)
# Проверяем на наличие в спам базе, если уже есть, тогда удаляем и проверять nmap'ом не будем
for ip in ${clientip}
do
kol=$(cat $logfile | grep "$ip" | grep "NOQUEUE" | wc -l | awk '{print $1}')
if [ $kol == 1 ]; then
cat $tmpfile | sed /"$ip"/D > $tmpfile2
mv -f $tmpfile2 $tmpfile
fi
done
# Проверяем существование этих серверов с помощью fping, для последующего сканирования 25 порта
clientip=$(cat $tmpfile)
for ip in ${clientip}
do
kol=$(/usr/local/sbin/fping -A $ip | grep "alive" | wc -l | awk '{print $1}')
if [ $kol == 1 ]; then
nal=$(/usr/local/bin/nmap -P0 -p25 $ip | grep "closed" | wc -l)
# Если компьютер в сети и 25 порт закрыт, тогда считаем его спамером
if [ $nal == 1 ]; then
echo $ip >> $spammersfile
fi
cat $spammersfile | sort -nu > $tmpfile2
mv -f $tmpfile2 $spammersfile
fi
done
rm -f $tmpfile
# Создаём спам лист IP-Адресов для Postfix'а
spammersip=$(cat $spammersfile)
cat /dev/null > $spammersbase
for ip in ${spammersip}
do
echo "$ip 550 Your into my black list !!!" >> $spammersbase
done
# Копируем в Postfix
mv -f $spammersbase $spammersbasepostfix
/usr/local/sbin/postmap /usr/local/etc/postfix/scripts/spammersbase
#nmap -P0 -sV -p25 -iL $tmpfile > /nmap.log