Страница 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