У меня была спам-атака на мой сайт. кто-то использует мою электронную почту для рассылки спама всем.
Так что теперь я планирую найти способ остановить это.
Я вижу, как люди отклоняют почту с помощью регулярных выражений. Но у меня есть тонны и тонны разных электронных писем (50 000 пользователей).
Я хочу посмотреть, есть ли электронная почта в базе данных, тогда я разрешаю ей идти. Иначе карантин. Не хочу, чтобы они застряли в почтовой очереди.
У меня есть этот greylist.pl:
#main.cf
smtpd_recipient_restrictions = Permit_MyNetworks, Allow_Sasl_аутентифицированный, reject_unauth_destination, Check_policy_service unix:/private/greylist
#master.cf
greylist unix - n n - - spawn user=nobody argv=/usr/bin/perl /tmp/mailrejct.
Но когда я его использую, я получаю эти ошибки в почтовом журнале:
25 декабря 09:24:58 интеллигентая(ый) mahavira postfix/spawn[107258]: предупреждение: команда /usr/bin/perl статус выхода 2
25 декабря, 09:24:58 интеллигентая(ый) mahavira postfix/smtpd[107253]: предупреждение: преждевременный конец ввода в /private/greylist при чтении имени входного атрибута
25 декабря 09:24:59 интеллигентая(ый) mahavira postfix/spawn[107258]: предупреждение: команда /usr/bin/perl статус выхода 2
25 декабря, 09:24:59 интеллигентая(ый) mahavira postfix/smtpd[107253]: предупреждение: преждевременный конец ввода в /private/greylist при чтении имени входного атрибута
25 декабря, 09:24:59 интеллигентая(ый) mahavira postfix/smtpd[107253]: предупреждение: проблема при общении с сервером /private/greylist: соединение сброшено узлом
я заменил smtpd_access_policy
с моим. Это одно отличие. Любой специалист в этом.
Кто отправляет значения атрибутов? Постфикс? как это прошло?
НЕ РЕШЕНО. Это только для получения электронной почты. Только для входящего спама.
Для исходящей электронной почты предусмотрена только проверка шаблонов.
1 #!/bin/sh
2
3 # Простой фильтр на основе оболочки. Он предназначен для вызова следующим образом:
4 # /path/to/script -f отправитель получатели...
5
6 # Локализуйте их. Опция -G ничего не делает до Postfix 2.3.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i" # НИКОГДА НИКОГДА НИКОГДА не используйте здесь "-t".
9
10 # Коды выхода из <sysexits.h>
11 EX_TEMPFAIL=75
12 EX_UNAVAILABLE=69
13
14 # Очистить после завершения или при прерывании.
15 ловушка "rm -f in.$$" 0 1 2 3 15
16
17 # Начать обработку.
18 компакт-диск $INSPECT_DIR || {
19 эхо $INSPECT_DIR не существует; выход $EX_TEMPFAIL; }
20
21 кот >в.$$ || {
22 echo Не удается сохранить почту в файл; выход $EX_TEMPFAIL; }
23
24 # Укажите здесь фильтр содержимого.
25 # фильтр <in.$$ || {
26 # echo Содержание сообщения отклонено; выход $EX_UNAVAILABLE; }
27
28 $SENDMAIL "$@" <in.$$
29
30 выходных $?
Можно ли преобразовать приведенное выше в php-код? Мне интересно, если я отправлю почту из php, она вернется в то же место?
exec("/usr/sbin/sendmail $email < /etc/postfix/myfilter/email.txt");
мне нужно поместить материал электронной почты в email.txt. КОГДА я ставлю весь тест, он искажает электронные письма с деталями и прочим, которые показывают все содержимое и заголовки.
мне нужно убраться
От [email protected] Вс, 26 декабря, 12:31:47 2021
Получено: от webmail.test.com (localhost.localdomain [IPv6:::1])
от Intelligent-mahavira.51-163-215-224.plesk.page (Postfix) с идентификатором ESMTPSA B9CFD82DA1
для <[email protected]>; Вс, 26 декабря 2021 г., 12:31:47 +0000 (UTC)
Результаты аутентификации: Intelligent-mahavira.51-163-215-224.plesk.page;
spf=pass (IP-адрес отправителя ::1) [email protected] smtp.helo=webmail.test.com
Received-SPF: pass (intelligent-mahavira.51-163-215-224.plesk.page: соединение аутентифицировано)
MIME-версия: 1.0
Дата: Вс, 26 декабря 2021 г., 04:31:47 -08:00
От: [email protected]
Кому: alex3 <[email protected]>
Тема: тестирование filter2
Пользовательский агент: Roundcube Webmail/1.4.11
Идентификатор сообщения: <[email protected]>
X-Sender: [email protected]
Content-Type: текстовый/обычный; набор символов = US-ASCII;
формат = течет
Контент-передача-кодирование: 7 бит
X-PPP-Message-ID: <164052190789.24073.12166249882816501264@intelligent-mahavira.51-163-215-224.plesk.page>
X-PPP-Vhost: test.com
ссс
Я видел это где-то в Google, попробую завтра, используя регулярное выражение, чтобы отфильтровать тему из типа контента и тела.
Кому: [email protected]
Тема: Это HTML-сообщение.
От: [email protected]
Тип содержимого: текст/html; кодировка = "utf8"
<html>
<тело>
<стиль div="
фоновый цвет:
#abcdef; ширина: 300 пикселей;
высота: 300 пикселей;
">
</div>
Здесь вы можете добавить любой действительный HTML-код электронной почты.
</тело>
</html>
- Greylisting — мы можем дать отзыв о доступе в форме «не знаю», «отклонить необязательный текст».
- Простой фильтр без обратной связи. Фильтр должен обрабатывать отправку электронной почты. Не понятно как это делается. Я в основном собираю все STDIN и отправляю их по электронной почте, но у них есть все заголовки. Не знаю, как вложение обрабатывается. Нужно посмотреть, что он показывает, когда я отправляю вложение.
- Расширенная фильтрация выглядит запутанной. Я вижу, что система безопасности электронной почты plex реализует это. когда я добавил его, он добавил это в main.cf и master.cf
smtp инет n - n - - smtpd
-o content_filter = smtp-amavis:[127.0.0.1]:10024
локальный: 10025 инет n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_delay_reject=нет
-o smtpd_authorized_xforward_hosts=127.0.0.0/8,[::1]/128
-o smtpd_authorized_xclient_hosts=127.0.0.0/8,[::1]/128
-o smtpd_client_restrictions=разрешить_мои сети, отклонить
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=разрешить_мои сети, отклонить
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o мои сети=127.0.0.0/8,[::1]/128
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_header_rewrite_clients=
отправка inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=шифровать
-o smtpd_sasl_auth_enable=да
-o smtpd_client_restrictions=permit_sasl_authenticated,отклонить
-o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
-o content_filter=smtp-amavis:[127.0.0.1]:10026
пикап unix n - n 60 1 пикап
-o content_filter=smtp-amavis:[127.0.0.1]:10026
Это электронное письмо, сохраненное в data.txt, и отправьте его вручную, если оно совпадает с адресом электронной почты получателя в системе.
Получено: от webmail.test.com (localhost.localdomain [IPv6:::1])
от Intelligent-mahavira.serverip.plesk.page (Postfix) с идентификатором ESMTPSA C7E7282E1B;
Вт, 28 декабря 2021 г., 00:36:31 +0000 (UTC)
Результаты аутентификации: Intelligent-mahavira.serverip.plesk.page;
spf=pass (IP-адрес отправителя ::1) [email protected] smtp.helo=webmail.test.com
Received-SPF: pass (intelligent-mahavira.serverip.plesk.page: соединение аутентифицировано)
MIME-версия: 1.0
Дата: Пн, 27 декабря 2021 г., 16:36:31 -08:00
От: [email protected]
Кому: alex2 <[email protected]>, alex3 <[email protected]>,
[email protected]
Тема: Тест на привязанность
Пользовательский агент: Roundcube Webmail/1.4.11
Идентификатор сообщения: <[email protected]>
X-Sender: [email protected]
Content-Type: составной/смешанный;
граница = "=_ 5745fc7d762d12dda4165a3e0be576fc"
X-PPP-Message-ID: <164065179196.8458.1248882909976426707@intelligent-mahavira.serverip.plesk.page>
X-PPP-Vhost: test.com
--=_5745fc7d762d12dda4165a3e0be576fc
Контент-передача-кодирование: 7 бит
Content-Type: текстовый/обычный; набор символов = US-ASCII;
формат = течет
Прикрепление прошло успешно?
--=_5745fc7d762d12dda4165a3e0be576fc
Контент-передача-кодирование: base64
Тип контента: изображение/jpeg;
имя=536_PIA23645_PaleBlueDotRevisited_1600.jpg
Content-Disposition: вложение;
имя_файла=536_PIA23645_PaleBlueDotRevisited_1600.jpg;
размер=74009
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMcaHR0cDov
Проблема в том, что в письме нет темы. его скрытые внутри заголовков. Уродливый.
результат
Входящее с электронной почты, скажем, gmail .. у меня чистый тест отказов
Ответ с удаленного сервера был таким:
554 5.7.1 [email protected]: адрес получателя отклонен: электронная почта разрешена только между ПОЛЬЗОВАТЕЛЯМИ. Получатель электронной почты = [email protected]
Использует метод политики
Исходящая электронная почта Я отправляю электронную почту для действительных пользователей и отклоняю/изолирую другую.. я не получаю возврат изображения. мне нужно иметь такой же текст для исходящей электронной почты
Использует простой фильтр контента