-
Blokowanie wysyłki email per vhost w Apache
Jakiś czas temu miałem nieprzyjemność zetknięcia się z niezbyt aktualnym i dobrze zabezpieczonym sklepem opartym na Prestashop-ie. Klient miał konto na współdzielonej maszynie i w pewnym momencie jego sklep zaczął wysyłać duże ilość spamu do Yahoo, Aol-a i innych. Na serwerze był zainstalowany Apache, ale bez php-fpm. Blokowanie funkcji PHP mail nie wchodziło w grę. Niestety wyłączenie formularza kontaktowego też na nie wiele się zdało, bowiem spamer łączył się bezpośrednio z jego pominięciem. Cóż począć, jak żyć, żeby nie wpaść na spamlisty? Jest sposób na zablokowanie wysyłki wiadomości tylko dla danego vhosta w Apache. Trzeba dodać następujący wpis do sekcji „Directory” konkrentego vhosta:
php_admin_value sendmail_path "tee send.out > /dev/null"
Przykładowy wygląd vhosta z włączoną blokadą:
<VirtualHost *:80>
ServerName centos.com.pl
ServerAlias www.centos.com.pl
ServerAdmin kontakt@centos.com.pl
ErrorLog /var/log/httpd/centos.com.pl_error_log
TransferLog /var/log/httpd/centos.com.pl_access_log
DocumentRoot /www/centos.com.pl/html/
AddHandler php5-script .html
<Directory /www/centos.com.pl/html/>
AllowOverride All
php_admin_value sendmail_path "tee send.out > /dev/null"
</Directory>
</VirtualHost>Restart Apache i powinno działać
systemctl restart httpd
Czyli co w tym wypadku virtualhost nie może używać daemona poczty do wysyłania chociażby powiadomień o zamówieniach? Średnie to rozwiązanie. Nie lepiej przejść na autoryzację po smtp?