Мне больше делать нечего? Дал направление, дальше сам, Гугл в помощь- У твоего хостинга ( VPS) есть IP один ( лучше два ), больше для регистратора домена ничего не надо.- Используй DNS регистратора/ у всех норм регистраторов доменов он есть!!!- Можно прописать один NS для всех доменов на хостинге/ Но лучше для каждого домена свои NS
Зачем тебе еще лишняя палка в колесе - сторонний СF?
Яж там написал вначале. NSы хостинга стало колбасить. Надо было срочно что-то делать.
С регистраторами тоже так себе. У меня на этом сервере висит семь gtld и, так как цены разнятся почти вдвое, каждый у своего регистратора…
Докладаю о борьбе с этим видом хакерства: победил его и не только его попутно, но с благодарностью приму критику или похвалу вымученного за четыре дня решения (особенно тяжело далось понимание "почему ругается на regex" после 2л винища)...
Итак, в exim.conf насоздавал правил. В коде ниже (Х) это в коде не нужно (если кто копировать будет), это сноски для комментов!
#My anti-spam rulesacl_check_helo:accept (1) condition = ${if !def:acl_c_helo_passed {true}{false}} (1а) condition = ${if match{$sender_host_name}{$sender_helo_name}{yes}{no}} logwrite = -= Accepted as NAME match HELO: $sender_helo_name =- set acl_c_helo_passed = PASSED as NAME match HELO (1а)accept (2) condition = ${if !def:acl_c_helo_passed {true}{false}} condition = ${if match{$sender_host_name}{^.*outlook.com\$}{yes}{no}} logwrite = -= Accepted as sender host seems to be Outlook: $sender_host_name =- set acl_c_helo_passed = PASSED as Outlookdrop(3) condition = ${if !def:acl_c_helo_passed {true}{false}} condition = ${if isip{$sender_helo_name}{true}{false}} logwrite = -XXX Wrong helo found: $sender_helo_name XXX-drop (4) condition = ${if !def:acl_c_helo_passed {true}{false}} condition = ${if match{$sender_helo_name}{\N((?>\w+[\.|\-]){6,})\N}{yes}{no}} logwrite = -XXX Wrong helo found / too many dots: $sender_helo_name XXX-drop (5) condition = ${if !def:acl_c_helo_passed {true}{false}} condition = ${if match{$sender_helo_name}{^(\\[|\\().*(\\)|\\])\$}{yes}{no}} logwrite = -XXX Wrong helo found / brackets found: $sender_helo_name XXX-accept (6) logwrite = -= Considered helo $sender_helo_name as fair [$acl_c_helo_passed]. =- (6а) set acl_c_helo_passed = PASSED as NOT DENIED#end of My ASR # Check on RCPT step acl_check_rcpt:####SPAM settings by medeny (7) !authenticated = * !verify = reverse_host_lookup logwrite = -XXX rDNS of $sender_host_name (helo: $sender_helo_name) IP: $sender_host_address is missing. XXX-deny hosts = /etc/exim/blacklisted.domains (8) logwrite = -XXX domain $host_data blacklisted XXX-####END my SPAM settings
Для начала - почему основное вставил в acl_smtp_helo - решил, что правильно по-максимуму зарубать сразу, не дожидаясь попыток подключения. Не уверен, правильно ли это, но вот так сделал. Куча лограйтов - уберу, пока мне нужны чтобы наблюдать как работает вся эта конструкция.
(1) пропускать всех, у кого совпадает HELO и хост. Бывает не так часто, но я решил что раз уж чел заморочился - то вряд ли он спамер.
(1а) здесь я делаю проверку, не обработали ли это helo уже. Как я понял, helo запрашивается дважды - при первом подключении и при установлении защищенного соединения, вот чтобы не гонять проверки дважды - они идут только если уже не были произведены.
(2) ну это специально для Билла нашего Гейтса. Обнаружил что всякие аутлуки онлайн и прочая мелкомягкая фигня шлет в helo многоэтажные домены, кторые не совпадают с обратным ДНСом, и либо ослаблять (4) - но тогда пролезут гады многие - либо вот так. Возможно, костыль можно будет убрать из-за (1), пока срабатываний (2) я не увидел.
(3) в интернетах часто встречается проверка helo на чистый IP, пусть будет, но я пока видел только (5).
(4) Предполагается, что многоэтажный helo - признак гнилья. Хотя есть у меня сомнения, что какой-нибудь диалап на самом деле честный парень. Но думаю в данном случае он должен быть принят на (1).
(5) вот ради этого все и затевалось. Паразиты в хело пихают IP, но, чтобы не попасть на (3) они его оборачивают в скобки. Вот тут я долго пыхтел над регуляркой!!! Уже все даже снес нафиг спья... сгоряча, но потом допер - что экранировать надо дважды, ибо первый экран снимают {} и обработка регулярки ужа колдует со вторыми. И все сразу заработало. Можно вроде как оборачивать все в /N.../N но я не стал разбираться с этим.
(6) пропустить всех, кого не зарубили, заодно для контроля в лог писать кого и почему пустили.
И последние два правила - на стадии приема уже. Потому что...
(7) не мучить авторизованных, хотя, мне думается, можно было бы и без проверки авторизации обойтись. Отбить всех, у кого нет rDNS. Ибо вижу в логах кучу прошедших проверку helo тупо подставляющих мое имя сервера, имена типа USER, ADMIN и т.п. Можно было бы (1) инвертировать, но я как-то раньше сделал подобное - у кучи отправителей с хело проблемы жуткие, особенно у госников, а это отличные клиенты, нельзя им мешать. Тут важно иметь резолверы надежные, поэтому в /etc/resolv.conf на всякий случай третьей строчкой дописал nameserver 8.8.8.8
(8) ну и это особенно упоротые спамеры, например уродский Alexander с его настойчивыми просьбами "передать руководителю". Прям диву даешься, неужели кто на это дерьмо сейчас ведется? Но он спамит с реального хоста, проходящего все проверки. Учитывая кучу выливаемых им помоев - не зазорно ручками его в список внести. Почему пихнул это сюда, честно не могу припомнить.
Вот, типа все.
ЗЫ: правка в (7)
logwrite = -XXX rDNS of IP: $sender_host_address (helo: $sender_helo_name) is missing. XXX-
Как я понял,
$sender_host_name
и есть тот самый rDNS поэтому глупо пытаться его писать в лог.
Во-первых, ты, все же, завязывай по утрам с дурью. Или объясни (желательно с примерами из прошлого) как и зачем и когда это было - забанен NS сервер CF. В теории это да - это может быть. Но на практике?
Во-вторых, не ленивый, а тупой и сомневающийся. С первым вроде разобрался - FastPanel позволяет в один клик поднять DNS сервер на VPS коих у меня три. Но тут сомнения: сервер надо поднимать на стороннем IP, а нужен сервер мне для нашего, российского, хостинга. А сторонние IP у меня на хостингах буржуйских - то есть DNS получатся крайне ненадежными и непредсказуемыми, что противоречит изначальной идее их создания. Вот.
Да, многие IP в бане. Причем платный или бесплатный тариф не имеет никаокго значения. Есть иранский скрипт поиска чистых IP, но в перспективе это не надежно.
Вопрос. Какие есть альтернативы CF? Они же не монополист.
Речь не о том! Эти банные IP - это прокси! Я говорю ТОЛЬКО о простом хостинге DNS.
Наверное, потому что ему можно доверять и он не кинет. В начале же написано было. Вот я тоже подумываю с OVH и Contabo свалить, ибо непонятно - какую подлянку можно от них ожидать.
Ты, случаем, не куришь чего запрещенного...? В смысле прям счас, утром? То есть, ты утверждаешь, что РКН банит NS-сервера? Ты уверен в своих словах? Не IP прокси, не IP конечный, а вот так вот хряком NS??? На котором еще 500 000 зон?
Да никакой, но это если что менять - то лазить по 7 ЛК регистраторов...
Причем тут РКН, если я юзаю только DNS хостинг? Объясни.
Все бы хорошо, но у меня там куча - .net, .fi, .se, .de, .ru, .com да еще и .at - и всех по одному...
Вы их автор? Тогда полностью согласен с определением "честно работал". Если у Вас "оооочень" много статей, значит они все сходной тематики, нельзя же быть экспертом во всем. Тогда, я думаю, Вам стоит подождать, все "вебмастера" способные рерайтить чуже уйдут в дворники, и Ваш единственный (он же один, верно?) сайт обязательно всплывет.
Простите, что влезаю... Но "честно работать" это значит "затапливать интернет никому не нужными ГС ради размещения на них рекламы"? Так именно из-за таких "честных работников" страдают сейчас нормальные интернет-магазины, авторские блоги и прочий по-настоящему ценный контент Интернета.