[sendmail-conf] Прблема с хаками .

Victor Ustugov victor на corvax.kiev.ua
Вт Дек 14 15:42:53 EET 2004


acesspost wrote:

>>заглянуть в /var/log/mailog
>>там может быть что-то типа такого:
>>Dec 14 14:06:20 corvax sendmail[17060]: iBEC6KiD017058: Warning: 
>>prog_open: program /usr/local/scripts/check_mail_address.pl unsafe: No 
>>such file or directory
> 
>>Как он скрипты на перле подсасывает?
> 
>>sendmail ничего не подсасывает, у него подсос отсутствует в конструкции
> 
>>Sendmail его сам запускает?
> 
>>для интерпретации любого скрипта будет запущен интерпретатор, указанный 
>>в первой строке скрипта, в данном случае /usr/bin/perl
> 
> Извините за тупость, понял свою ошибку у меня
> /usr/local/scripts/check_mail_address.pl не был исполняемым файлом, каюсь.

да уж... у только что тред назад отмотал и увидел, что вместо совета 
проверить

./check_mail_address.pl -v адрес

был проверен запуск

perl /etc/mail/check_mail_address-0.09.pl -v fdgdfv на yandex.ru

> Скрипт запускается и работает через Sendmail, но теперь почему-то возникла
> ошибка syslog?
> 
> echo 'verify_sender fdgdfv<@yandex.ru.>' | sendmail -bt -d21.12
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
> Enter <ruleset> <address>
> 
>>verify_sender      input: fdgdfv < @ yandex . ru . >
> 
> -----trying rule: $*
> -----rule matches: $: $1 $| $> verify_sender_check_host $&{client_name} $|
> $&{client_addr}
> rewrite: RHS $&{client_name} => "(NULL)"
> rewrite: RHS $&{client_addr} => "(NULL)"
> -----skip subr verify_sender_check_host (151)
> rewritten as: fdgdfv < @ yandex . ru . > $| $|
> -----trying rule: $* $| SKIP
> ----- rule fails
> -----trying rule: $* $| $# $*
> ----- rule fails
> -----trying rule: $* $| $*
> -----rule matches: $: $1
> rewritten as: fdgdfv < @ yandex . ru . >
> -----trying rule: $+ < @ $+ > $*
> -----rule matches: $: $1 @ $2
> rewritten as: fdgdfv @ yandex . ru .
> -----trying rule: $+ .
> -----rule matches: $: $1
> rewritten as: fdgdfv @ yandex . ru
> -----trying rule: $+ @ $+
> -----rule matches: $: < $( mail_from_check $1 @ $2 $) >
> Cannot get host name of local machine at
> /usr/libdata/perl/5.00503/Sys/Syslog.pm line 248    

не понял. а если руками запускать check_mail_address.pl, то такой ошибки 
нет?

> rewritten as: < fdgdfv @ yandex . ru >
> verify_sender    returns: < fdgdfv @ yandex . ru > 
> 
> в этой строке в Syslog.pm: my($host_uniq) = Sys::Hostname::hostname();
> целиком:
> sub connect {
>     unless ($host) {
>         require Sys::Hostname;
>         my($host_uniq) = Sys::Hostname::hostname();
>         ($host) = $host_uniq =~ /([A-Za-z0-9_.-]+)/; # allow FQDN (inc _)
> 
> Странно, имя моей машины определяется правильно!

замаялся я уже с этим тредом. самое простое - это забить на определение 
FQDN и прописать его руками, т. е. заменить

my($hostname) = hostfqdn();

на

my($hostname) = "имя.этого.хоста";

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694      CRV2-RIPE, CRV-UANIC




Подробная информация о списке рассылки sendmail-conf