Правило, о котором Вы спросили, является наиболее часто используемым avahi демоном на Linux для прислушиваний к запросам mDNS.
Это правило iptables позволяет поступать udp пакеты на порте 5353, которые предназначены для группового адреса 224.0.0.251. IANA определяет использование группового адреса здесь, и mDNS RFC здесь.
iptables -L -n
произведите показанный, не полное изображение, поскольку исходное соответствие в Вашей ВХОДНОЙ цепочке могло бы показать более подробное пакетное соответствие на основе источника, интерфейс (интерфейсы), на этих пакетах позволяют, и множество других атрибутов. Начальное соответствие во ВХОДНОЙ цепочке может также перейти к другим цепочкам прежде, чем поразить это более позднее правило в цепочке "IN_ZONE_work_allow". Для получения лучшего понимания всех пакетных атрибутов, которые должны присутствовать для этого правила, которое будет инициировано необходимо работать назад от этой цепочки до первого раза IN_ZONE_work_allow
замечен в target
столбец, затем продолжите тем способом, пока Вы не находите, что первые спрыгивают с ВХОДА (предполагающий, что это не на самом деле передача ruleset). В Вашем случае, скорее всего, эта цепочка переходится к непосредственно от ВХОДА, как свидетельствуется примечанием после цепочечного имени: "1 ссылка". Я нахожу, что это намного больше прямо только к смотрит на вывод iptables-save
если такой доступно на поле.
Я вижу два очевидных решения.
Если вы используете procmail в качестве MDA на вашем сервере, или хотите преобразовать его в использование, то вы можете запустить любой произвольный скрипт на любом произвольном почтовом ящике с помощью действия рецепта procmail |
(pipe). Надеюсь, он не будет запущен от имени root, но это должно быть легко сделать скрипт, который выполняет необходимую магию и который может быть вызван соответствующим пользователем без права passwordless от имени root. Вывод скрипта может быть даже передан обратно в ту же электронную почту и электронную почту позже доставлены, сделав рецепт действия фильтра.
Альтернативой (которая должна требовать меньшего практического обслуживания) является создание одного почтового ящика и настройка Postfix's $recipient_delimiter
на то, что обычно не используется для этой цели; например, .
или -
. Обратите внимание, что параметр receive_delimeter является настройкой для всего сервера. Допустим, вы устанавливаете почтовый ящик dummy@example.com
и устанавливаете $recipient_delimeter = .
. Это позволит dummy.<все>@example.com
, который будет доставлять на локальный почтовый ящик, соответствующий dummy@example.com
. Чтобы отключить один из них, добавьте dummy.
в соответствующую таблицу получателей с действием отклонения. Недостатком является то, что это будет ловушка для префикса, так что вы захотите сделать префикс трудно наткнуться случайно или атаки по словарю. Недостатком является то, что в обычном случае (отправитель уважает ваши пожелания и не перепродает ваш почтовый адрес) такой подход требует нулевой поддержки, и вы всегда можете изменить префикс позже и явно перечислить те комбинации, для которых вы хотите продолжать получать почту.
Я бы рекомендовал использовать 7z.
7Z - формат архивирования 7-Zip, обеспечивающий высокую степень сжатия с помощью мощных алгоритмов сжатия, которые могут использовать преимущества параллельные вычисления на современных многоядерных процессорах.
Для создания 7z архива необходим p7zip-полный пакет. Чтобы сделать архивный запуск 7z a < you_archive_name>.7z < имя _ файла >
Использование sudo вместо su для предоставления привилегий позволяет иметь подробные записи журнала в безопасном журнале (/var/log/secure в rhel-подобных distros). Например, тип userabc 'sudo vi/etc/group', запись журнала:
Jan 15 13:41:12 vm02 sudo: userabc : TTY=pts/1 ; PWD=/home/userabc ; USER=root ; COMMAND=/bin/vi /etc/group
-121--230089- Правильная процедура выполнения сценария (я использую сценарий оболочки) при получении почтового сообщения: Он включает в себя изменение файла конфигурации postfix , master.cf (который в моем Debian расположен в /etc/postfix ) путем добавления следующей строки:
my_shell_script unix - n n - - pipe flags=F user=MY_USERNAME argv=/path/to/my/shell/script ${sender} ${size} ${recipient}
, которая предписывает postfix запускать сценарий (нужно сделать его исполняемым), когда происходит какое-либо событие.
Чтобы указать время выполнения сценария, выполните следующие действия: предположим, что он должен быть выполнен при получении сообщения username@domain.com . Поместите следующую строку
username@domain.com FILTER my_shell_script:dummy
в файл /etc/postfix/address.txt ; необходимо создать соответствующую базу данных для postfix , чтобы использовать этот файл, что выполняется с помощью
postmap /etc/postfix/address.txt
, который создает в качестве выходного файла файл с именем /etc/postfix/address.db . Теперь вернитесь к файлу /etc/postfix/main.cf и добавьте следующую строку:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, permit_mynetworks, reject_unauth_destination
Теперь перезапустите postfix ,
postfix reload
, и вы должны быть готовы перейти.
В случае, если ссылается , вот резюме.
Во-первых, перейдите в Master.cf
и зарегистрируйте свой скрипт «MyHook», добавив следующую строку:
MyHook Unix - NN - - Флаги трубы = f user = www-data argv = / Path / to / script.sh $ {sender} $ {size} $ {Recrement}
Кроме того, редактировать SMTP Line, чтобы сообщить PostFix для запуска фильтра для любой почты, прибывающей через доставку SMTP:
SMTP INET N - - - - SMTPD -O Content_Filter = MyHook: Dummy
Обратите внимание, что если вы отправляете почту, используя команду «SendMail», фильтр не будет запускать. В этом случае добавьте опцию после метода доставки «Пикап»:
Pickup FIFO N - - 60 1 Pickup -O Content_Filter = MyHook: Dummy
Перезапуск Postfix: Postfix Reload
Сделайте свой скрипт
Читаемое и исполняемое исполнение любым: Chmod + RX Script.SH
Обратите внимание, что скрипт всегда срабатывает для любой почты. Чтобы указать точный адрес, см. @Mariusmatutiae Ответ.
Я нашел настройку Dovecot более элегантным решением (по сравнению с настройкой Postfix ). Шаги следующие:
создайте свой скрипт (т.е.mail_processor.py
)в каталоге /usr/lib/dovecot/sieve-execute/
:
#!/usr/bin/python3
from sys import stdin
with open('/var/log/mail_processor.log', 'a') as logfile:
for line in stdin:
print(line.rstrip(), file=logfile)
убедитесь, что ваш сценарий и целевые файлы имеют правильные разрешения:
$ chmod +rx /usr/lib/dovecot/sieve-execute/mail_processor.py
$ chmod 0777 /var/log/mail_processor.log
включить плагин sieve_extprograms
:
изменить раздел плагина \etc\dovecot\conf.d\90-sieve.conf
следующим образом:
sieve_extensions = +vnd.dovecot.execute
sieve_plugins = sieve_extprograms
sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute
перезагрузить голубятню:
$ service dovecot restart
создать сетчатый фильтр (т.е. в Roundcube перейдите кsettings
->filters
->actions
->edit filter set
):
require ["vnd.dovecot.execute"];
# rule:[mail processing]
if true
{
execute :pipe "mail_processor.py";
}
Теперь вся почта, доставленная в этот почтовый ящик фильтром sieve, будет проходить через mail_processor.py
для принятия мер.
Pigeonhole Sieve :Плагин Extprograms документация для справки