Komentarze i odpowiedzi, posortowane dla odmiany chronologicznie do strony:
Limitowanie ruchu wychodzącego - ilości emaili/odbiorców w jednostce czasu.ciekawski
2013-06-02 23:34:21
Skrypt
Dzień dobry.
Poszukiwałem sposobu na limitowanie ruchu wychodzącego i trafiłem tutaj.
Skrypt fajny tylko w obecnej konfiguracji nie bardzo mogę doszukać się różnicy między nim a czymś takim:
smtpd_client_message_rate_limit = 20
anvil_rate_time_unit = 3600
Dla tego pozwoliłem sobie delikatnie przerobić skrypt:
# select user limit
if ($HARD_LIMIT eq 1){
my $sth = $dbh->prepare("SELECT mail_count_hard_limit, mail_count_soft_limit FROM mailbox WHERE username=?");
if (!$sth->execute($user)) {
syslog(err => "Couldn't execute statement: " . $sth->errstr);
return $ERROR_RESPONSE;
}
if ( my $result = $sth->fetchrow_hashref() ) {
$HARD_LIMIT = $result->{mail_count_hard_limit};
$SOFT_LIMIT = $result->{mail_count_soft_limit};
}
else {
return $DEFAULT_RESPONSE;
}
}
Poszukiwałem sposobu na limitowanie ruchu wychodzącego i trafiłem tutaj.
Skrypt fajny tylko w obecnej konfiguracji nie bardzo mogę doszukać się różnicy między nim a czymś takim:
smtpd_client_message_rate_limit = 20
anvil_rate_time_unit = 3600
Dla tego pozwoliłem sobie delikatnie przerobić skrypt:
# select user limit
if ($HARD_LIMIT eq 1){
my $sth = $dbh->prepare("SELECT mail_count_hard_limit, mail_count_soft_limit FROM mailbox WHERE username=?");
if (!$sth->execute($user)) {
syslog(err => "Couldn't execute statement: " . $sth->errstr);
return $ERROR_RESPONSE;
}
if ( my $result = $sth->fetchrow_hashref() ) {
$HARD_LIMIT = $result->{mail_count_hard_limit};
$SOFT_LIMIT = $result->{mail_count_soft_limit};
}
else {
return $DEFAULT_RESPONSE;
}
}
Odpowiedź Lemata:
smtpd_client_message_rate_limit oznacza limit na adres IP.
Skrypt limituje adres nadawcy/login.
To są 2 różne limity.
A teraz wyobraź sobie, że masz stu użytkowników za NATem (pojedynczym IP)...
Skrypt limituje adres nadawcy/login.
To są 2 różne limity.
A teraz wyobraź sobie, że masz stu użytkowników za NATem (pojedynczym IP)...
michas
2013-09-03 14:06:10
Problem z uruchomieniem skryptu
Mam problem z uruchomieniem skryptu dostaję w logach coś takiego:
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/spawn[20590]: warning: command /usr/local/bin/policyd-lemat2 exit status 255
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/smtpd[20582]: warning: premature end-of-input on private/policyd-lemat2 while reading input attribute name
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/smtpd[20582]: warning: problem talking to server private/policyd-lemat2: Connection reset by peer
nazwa bazy, login i hasło są poprawne, dopisałem co trzeba w main.cf i master.cf
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/spawn[20590]: warning: command /usr/local/bin/policyd-lemat2 exit status 255
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/smtpd[20582]: warning: premature end-of-input on private/policyd-lemat2 while reading input attribute name
Sep 3 13:59:07 ip-xx-yy-zz-xx postfix/smtpd[20582]: warning: problem talking to server private/policyd-lemat2: Connection reset by peer
nazwa bazy, login i hasło są poprawne, dopisałem co trzeba w main.cf i master.cf
Odpowiedź Lemata:
brakuje ci bibliotek perla, odpal skrypt z linii poleceń i zobacz komunikaty błędów.
misiek
2014-05-15 16:04:26
Problem z uruchomieniem skryptu
Cześć na wstępie dzięki za stronę (bezcenne porady).
Jednak mam problem ze skryptem.
Po podmianie danych do łączenia z MySQL i odpaleniu go z konsoli ona milczy. Proces wisi i nic się nie dzieje.
Zmiana zmiennej VERBOSE niewiele pomaga :( (rozumie że tu chodzi o poziom "gadatliwości").
Jednak mam problem ze skryptem.
Po podmianie danych do łączenia z MySQL i odpaleniu go z konsoli ona milczy. Proces wisi i nic się nie dzieje.
Zmiana zmiennej VERBOSE niewiele pomaga :( (rozumie że tu chodzi o poziom "gadatliwości").
Odpowiedź Lemata:
bo czeka na dane
misiek
2014-05-15 23:17:25
OK odpaliłem skrypt i wszystko działa
ale mam jeszcze pytanie, zerkam sobie w niego i widzę że zarówno przy soft jak i hard zwracany jest 550 (w opisie jest że dla soft powinien być 450). Czy to pomyłka czy ja coś źle czytam?
Odpowiedź Lemata:
w kolejnej wersji skryptu zmieniło mi się widzimisię lecz nie uaktualniłem strony - już poprawiłem
misiek
2014-05-20 10:27:19
Warning skryptu
Dziś zauważyłem w logach 3 warningi:
postfix/spawn[7082]: warning: /usr/local/bin/policyd-lemat2: process id 7500: command time limit exceeded
W otoczeniu tego warninga (rozpiętość czasowa 15s przed i po) nie było nic poza logowaniem klientów do skrzynek.
Czy może też masz czasami takie warningi?
postfix/spawn[7082]: warning: /usr/local/bin/policyd-lemat2: process id 7500: command time limit exceeded
W otoczeniu tego warninga (rozpiętość czasowa 15s przed i po) nie było nic poza logowaniem klientów do skrzynek.
Czy może też masz czasami takie warningi?
Odpowiedź Lemata:
tak, to oznacza, że połączenie się zakończyło bez przejścia pełnej sesji smtp. Normalna rzecz w przypadku spamu i wirusów.
misiek_4
2015-03-05 15:25:02
policyd
Ciekawym rozwiazaniem jest też PolicyD v2 (cluebringer http://wiki.policyd.org/), który umożliwia ograniczenie wysyłanych emajli per user/domena oraz pozwala na łatwą kontrolę (poprzez www) nad greylistingiem, quotą, sprawdzaniem SPF, HELO/EHLO.