Как правильно написать параметры tcpdump, что бы отловить мерзавца

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

В общем кому интересно то
Пролог
Я думаю многим уже известно что яндекс для корп клиентов с 17 апреля становится платным. Плата символическая, но зачем платить, когда можно развернуть своё? Выбрав время (новогодние праздники), мной был настроен postfix+dovecot, настроены все DNS записи (rDNS, SPF, DKIM, DMARC) и успешно запущен в прод свой почтовичок в компании ~ на 70 персон. Результаты проверки mail-tester'a показывают 10/10. Helocheck - valid syntax. Обрадовавшись я начал заключительные мероприятия по настройке (fail2ban, джейлы и т.п.). Смутило только что письма на gmail попадают в спам. Гугл сказал что есть ещё одна политика - MTA-STS, которую необходимо настроить. Этот вопрос решу чуть позже. А вот и главное! Есть параноидальный spamhaus, который заблочил мой IP, приложив логи, что мой почтовый сервер шлёт левые HELO.
Единственную ошибку допустил - это почтовый сервер и выход юзеров в инет идёт через один и тот же IP... :(
Переписка с сапортом предлагает 2 выхода из ситуации:
Это:
1. Заблочить исходящие с 25 порта.
2. Найти у кого на компе злодей.
Вывод:
1. Передовая практика требует STARTTLS для соединения через порт 25 и при закрытии исходящего трафика на 25 порту, письма не уходят, а собираются в mailq. Ну и как вариант это всё равно не выход. Паразит останется в сети.
2. Найти засранца и казнить его без суда и следствия.
Собственно сам вопрос:
tcpdump'om практически никогда не пользовался, поэтому прошу помощи. Как правильно указать параметры, чтобы поймать рабочее место, где генерятся HELO, с которого вероятно пытается уйти спам?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
19.01.2023 08:57
tcpdump'om практически никогда не пользовался
И не надо. Древняя дырявая хрень.
tshark -f 'src net <Ваша сеть> and not src host <Ваш почтовый сервер> and tcp and dst port 25' -i <внутренний интерфейс> -Y 'smtp.req.command == "HELO"'
Добавлено (13:26):
Да, Вы уверены, что правильно настроили свой сервер, и он не работает как open relay?
Последний раз редактировалось Bizdelnick 19.01.2023 17:22, всего редактировалось 1 раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

SwapON писал:
19.01.2023 08:57
1. Заблочить исходящие с 25 порта.
1. Заблочить только форвард, исходящий на 25й tpc-порт, нет?
2. Логировать сессии с форвардом, которые пытаются уйти на 25й порт во вне?
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2346
ОС: gentoo fluxbox

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение yoricI »

Почему-то в gentoo у wireshark нет манов, только /usr/share/doc/*. Это везде так или есть новый способ изучения?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

yoricI писал:
19.01.2023 18:21
Почему-то в gentoo у wireshark нет манов, только /usr/share/doc/*. Это везде так или есть новый способ изучения?
man wireshark
man tshark
Ну и см. https://www.wireshark.org/docs/
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2346
ОС: gentoo fluxbox

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение yoricI »

Ага, надо было флаги doc qt5 включить, и доки и GUI появились.
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

Bizdelnick писал:
19.01.2023 13:25
Да, Вы уверены, что правильно настроили свой сервер, и он не работает как open relay?
Снимок экрана_2023-01-20_11-35-54.png
Снимок экрана_2023-01-20_11-35-54.png (45.15 КБ) 1948 просмотров
У меня пробелы по сетям. Гуглением я пришёл к выводу, что моя ошибка в том, что сервер находится в одной локальной сети с пользователями. На марше настроен маппинг с белого IP на серый почтовика. Снял дамп, открыл wireshark'om, а там в заголовки HELO/ELHO попадает серый адрес, вместо белого.
Снимок экрана_2023-01-20_10-21-05.png
Снимок экрана_2023-01-20_10-21-05.png (118.39 КБ) 1948 просмотров
В src он представляется как 192.168.253.250 - mail.мой.домен, но...
...но почему показатели тестов DNS записей везде отличные, за исключением spamhaus'a...? :(
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
20.01.2023 04:46
почему показатели тестов DNS записей везде отличные, за исключением spamhaus'a
Потому что адрес не успел попасть больше никуда. Может быть, ещё попадёт.
А может быть, в других DNSBL требуются более серьёзные основания для включения, чем левый HELO.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

В общем проблема крылась совершенно в другом и в данный момент решена назначив отдельный белый IP адрес почтовому серверу (/etc/network/interfaces/)
Для тех, кто возможно столкнётся с подобным объясню.
НИКОГДА...!!! Не размещайте почтовый сервер в локальной сети, так как клиенты подключаются к почтовику по классу серых IP адресов (А, B и С) и в заголовках сообщения, при нате, передаётся именно серый IP, вместо белого. Соответственно правильно настроенные спам-фильтры это сообщение REJECT-нут.
Возможно сетевые гуру найдут другое решение, но в данном случае я не вижу другого решения проблемы
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
21.01.2023 02:43
Не размещайте почтовый сервер в локальной сети, так как клиенты подключаются к почтовику по классу серых IP адресов (А, B и С) и в заголовках сообщения, при нате, передаётся именно серый IP, вместо белого.
Могу ошибаться, но если клиент отправляет почту через 587 порт сервера, а не 25, то в заголовках адрес не сохранится. У меня была похожая проблема — спамхаус (или кто-то ещё?) блеклистил адреса динамического диапазона моего провайдера, после смены порта с 25 на 587 проблема с попаданием писем в спам ушла.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

А можно, например, применить Exim и настроить перезапись адреса в транспорте, если у нас аутентифицированный клиент шлёт.
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

Bizdelnick писал:
21.01.2023 13:20
Могу ошибаться, но если клиент отправляет почту через 587 порт сервера, а не 25, то в заголовках адрес не сохранится.
В связи со своим дилетантством (за что Вы, уважаемый меня практически во всех моих постах тыкаете носом и указываете в сторону швабры), тоже могу ошибаться, но рискну предположить что, именно на 25-ом порту почтовые сервера "приветствуют" друг друга, где передают HELO/EHLO и если они поддерживают шифрование, то после уже заворачивают сообщение и отправляют на 587 порт.
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

Aliech писал:
21.01.2023 17:02
А можно, например, применить Exim и настроить перезапись адреса в транспорте, если у нас аутентифицированный клиент шлёт.
Каждый раз, когда слышу про Exim, говорю себе, что на досуге почитаю за него и "пощупаю", но так как на практике карайне редко приходилось разворачивать почтовые сервера, то как всегда руки до вышеупомянутого ПО не доходили :)
А вообще мне кажется что postfix vs exim - это равносильно apache vs nginx. Кому что нравится.
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

SwapON писал:
22.01.2023 00:44
В связи со своим дилетантством (за что Вы, уважаемый меня практически во всех моих постах тыкаете носом и указываете в сторону швабры), тоже могу ошибаться, но рискну предположить что, именно на 25-ом порту почтовые сервера "приветствуют" друг друга, где передают HELO/EHLO и если они поддерживают шифрование, то после уже заворачивают сообщение и отправляют на 587 порт.
1. Сервер к серверу "стучится" на 25й порт.
2. В ответе на HELO/EHLO есть строка "возможностей".
3. Если в строке той есть STARTTLS, то "гость" может попробовать поднять сессию с шифрацией. Но это не точно. Они могут не сойтись по версиям TLS/разрешённым шифрам.
SwapON писал:
22.01.2023 00:52
А вообще мне кажется что postfix vs exim - это равносильно apache vs nginx. Кому что нравится.
Нет. Не равносильно. Хотя бы потому, что они сильно разные. Так уж получилось, что я уверенно эксплуатировал и Exim и Postfix. Но сейчас вообще почтари подымаю на OpenSMTPD и только под OpenBSD.

А ваша задача, кстати, решается и в Postfix. Я потратил минуту на общение с Гуглом. Пожалуйста: https://serverfault.com/questions/413533/remove-hide-client-sender-ip-from-postfix Т.е. в Postfix тоже есть возможность влиять на хидеры письма. Но, это какое-то удаление гланд... через... удаление гланд... не тем путём, короче. И в это вся суть Postfix: свою работу он делает хорошо, только если ты вписываешься в те пределы логики использования, которые заложили разработчики. Собственную логику туда привнести либо очень трудно, либо и вовсе нельзя.

А вот в Exim всё проще с этим. Он и с "голым" конфигом хорошо работает... Но, ведь, в нём есть возможность создать несколько отдельных входных транспортов, роутеров, и выходных транспортов. Посмотрите, например, на базовый конфиг Exim в Debian. И да, в Exim есть прямо специальные действия с заголовками. И их можно привязать к источникам/роутерам/исходящим транспортам. Ну вот, например, можно Exim сконфигурить, чтобы он, в случае если письмо к нему попало от аутентифицированного пользователя, гнал его через определённый транспорт, на выходе с которого ему (письму) модифицировался бы заголовок с заменой ip/скрытием данных пользователя. Но есть и обратная сторона: в Exim чаще находят критические уязвимости и ошибки. Ну и да, долгое время Exim был очень популярен из-за механизма запросов, который позволяет подтягивать ему любые данные, какие нужны для обработки письма, откуда угодно. Хоть plain text с unix-сокета. Отсюда и возможность интегрировать его с какой угодно базой пользователей, что долгое время и было решающим доводом в его пользу. Гибкость машрутизации почты не все замечают, а возможность прикрутить почтарь к базе учёток AD, - вот это было востребовано.

А я сейчас, например, вообще перешёл на OpenSMTPD. Потому что только он позволяет иметь разные настройки сертификатов и шифров для разных интерфейсов. Очень полезно, надо заметить. Все пользователи, которые ходят на 465, чтобы аутентифицироваться, идут под самоподписным сертификатом, максимально "жирными" шифрами и TLS 1.3. А вся входящая почта на 25й порт - она с достаточно прослабленным шифрованием идёт (не все в рунете, особенно в "корпоративном сегменте", осилили TLS 1.2 даже) и с заверенным признанным CA сертификатом. И никакой аутентификации на 25ом порту нет. Это киллер фича, прям. Ну и да, OpenSMTP позволяет ещё и отдельные цепочки фильтров и роутов для разных источников прописывать. Не так гибко, как в Exim, сильно проще, но на фоне Postfix'а - просто гибчайшая гибкость, должен вам доложить!
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
22.01.2023 00:44
рискну предположить что, именно на 25-ом порту почтовые сервера "приветствуют" друг друга, где передают HELO/EHLO и если они поддерживают шифрование, то после уже заворачивают сообщение и отправляют на 587 порт
Нет. На другой порт никто никого не заворачивает. Просто 587 предназначен именно для отправки писем авторизованными клиентами (MUA), а 25, хоть по старой памяти и может использоваться для любых целей, сейчас прежде всего нужен для общения MTA друг с другом.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

Aliech писал:
22.01.2023 05:25
...но на фоне Postfix'а - просто гибчайшая гибкость, должен вам доложить!
Очень признателен за такой максимально развёрнутый ответ. На досуге обязательно ознакомлюсь с документацией по Exim и OpenSMTPD.

Прочитав ответ, сделал вывод. Раз Exim так гибок в настройках, позволяя делать специальные действия с заголовками, то его актуально использовать у спамеров?
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

SwapON писал:
23.01.2023 03:17
Прочитав ответ, сделал вывод. Раз Exim так гибок в настройках, позволяя делать специальные действия с заголовками, то его актуально использовать у спамеров?
У спамеров? Я глянул в заголовке того, что лежит у меня в Junk на данный момент, и есть все основания полагать, что спам шлют напрямую. И это логично: задача софта, который шлёт спам, разослать как можно больше за минимальный промежуток времени, а не в реализации очереди, повторов и полного протокола.
SwapON писал:
23.01.2023 03:17
OpenSMTPD
Забыл упомянуть. OpenSMTPD только в составе OpenBSD. Его портированная версия сильно отстаёт от основной кодовой базы =(
Но, блин, мне оказалось проще на OpenBSD переехать, чем, после знакомства с OpenSMTPD, вернутся к Exim/Postfix.
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
23.01.2023 03:17
На досуге обязательно ознакомлюсь с документацией по Exim
Советую также ознакомиться со списком регулярно обнаруживаемых в нём уязвимостей. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2346
ОС: gentoo fluxbox

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение yoricI »

Aliech писал:
23.01.2023 10:33
OpenSMTPD только в составе OpenBSD. Его портированная версия сильно отстаёт от основной кодовой базы
В gentoo 6.8.0. Это сильно отстаёт?
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

yoricI писал:
23.01.2023 13:49
В gentoo 6.8.0. Это сильно отстаёт?
А дело не в Генте)

Дело в том, что OpenSMTPD, как и OpenSSH, кстати, - часть OpenBSD. И основной код их разработан под OpenBSD, т.е. завязан на гениальные и неповторимые (с) велосипеды имени Великого Тео. И без них это не работает. Но есть так же и люди, которые формируют "переносимые" редакции исходников, отвязаные от велосипедов из OpenBSD, что позволяет, например, собирать тот же OpenSSH с glibc/musl/ещё чем-нибудь, а не только с libc из OpenBSD. Но то OpenSSH.

А вот OpenSMTPD не повезло, - у команды переноса затух интерес, и сейчас они только бэкпортируют изменения, связанные с безопасностью. И не удивительно: между OpenBSD 6.8 и OpenBSD 7.0 много чего наворочили, и, в итоге, команда переноса только-только работает над кодом 7.0. А, тем временем, в оригинальном OpenBSD smtpd уже версии 7.2. И разница в функциональности очень ощутима. За ней мне пришлось даже мигрировать на другую ОСь.

Отставание в 2+ года для молодых проектов, это бывает очень много. Именно столько между 6.8 и 7.2.
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
SwapON
Сообщения: 151
ОС: Arch linux => Gentoo

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение SwapON »

Bizdelnick писал:
23.01.2023 12:23
SwapON писал:
23.01.2023 03:17
На досуге обязательно ознакомлюсь с документацией по Exim
Советую также ознакомиться со списком регулярно обнаруживаемых в нём уязвимостей. ☺
Уязвимости регулярно обнаруживаются во всём ПО, так чтож теперь не использовать ничего...? На это выходят обновления, исправления, хот-фиксы, патчи и т.п.

P.S. Почему Вы такой желчный во всех ответах...? Такое ощущение, что у Вас тут должность критика... :dry:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Bizdelnick »

SwapON писал:
24.01.2023 00:41
Уязвимости регулярно обнаруживаются во всём ПО, так чтож теперь не использовать ничего...? На это выходят обновления, исправления, хот-фиксы, патчи и т.п.
Да, но где-то реже, где-то чаще.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: Как правильно написать параметры tcpdump, что бы отловить мерзавца

Сообщение Aliech »

SwapON, ну Exim и правда очень часто стал "радовать" новостями об уязвимостях. Притом, большинство из них напрямую связаны с плохим кодом и отсутствием ответственного за поддержание того кода. Впрочем, имею мнение, что если бы Postfix так же охотно вносил новый функционал для обеспечения большей гибкости, то в нём тоже бы развелись дыры, и в не меньшем количестве. Но да, в текущей обстановке, если хочется настроить и, после этого, не мониторить сообщения об уязвимостях найденных, чтобы вовремя обновляться, то, конечно, не стоит смотреть на Exim.
С уважением,
Павел Алиев
Спасибо сказали:
Ответить