Kaavain

Kaavain
Рейтинг
178
Регистрация
28.07.2015
Vladimir #:

Мне больше делать нечего? Дал направление, дальше сам, Гугл в помощь

- У твоего хостинга ( VPS)  есть IP один ( лучше два ), больше для регистратора домена ничего не надо.
- Используй DNS регистратора/ у всех норм регистраторов доменов  он есть!!!
- Можно прописать один NS для всех доменов на хостинге/ Но лучше для каждого домена свои NS

Зачем тебе еще лишняя палка в колесе - сторонний СF?

Яж там написал вначале. NSы хостинга стало колбасить. Надо было срочно что-то делать. 

С регистраторами тоже так себе. У меня на этом сервере висит семь gtld и, так как цены разнятся почти вдвое, каждый у своего регистратора…

Докладаю о борьбе с этим видом хакерства: победил его и не только его попутно, но с благодарностью приму критику или похвалу вымученного за четыре дня решения (особенно тяжело далось понимание "почему ругается на regex" после 2л винища)...

Итак, в exim.conf насоздавал правил. В коде ниже (Х) это в коде не нужно (если кто копировать будет), это сноски для комментов!

#My anti-spam rules
acl_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 Outlook
drop(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 me
deny (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 поэтому глупо пытаться его писать в лог.

С одной стороны, я тоже Яндекс презираю. Но с другой стороны -я понимаю, что корень моих проблем именно в таком вот мусоре, который сейчас, к счастью, умирает. 
Я сменил яндекс на Гугл давно уже. Но, кажется мне, не все так просто, и Яндекс тоже - пострадавшая сторона. Просто по причине нехватки умных специалистов - свернувший не туда. 
Но все беды - от спамеров. 
Vladimir #:
На практике дойдет, что он банит и как и почему у тебя сайт перестал работать

Ленивый ты😂
Один раз пройтись, и забыть про ДНС сервера. Ну или дальше живи со свистопляской на FirstVDS

Во-первых, ты, все же, завязывай по утрам с дурью. Или объясни (желательно с примерами из прошлого) как и зачем и когда это было - забанен NS сервер CF. В теории это да - это может быть. Но на практике?

Во-вторых, не ленивый, а тупой и сомневающийся. С первым вроде разобрался - FastPanel позволяет в один клик поднять DNS сервер на VPS коих у меня три. Но тут сомнения: сервер надо поднимать на стороннем IP, а нужен сервер мне для нашего, российского, хостинга. А сторонние IP у меня на хостингах буржуйских - то есть DNS получатся крайне ненадежными и непредсказуемыми, что противоречит изначальной идее их создания. Вот. 

ALX Team #:

Да, многие IP в бане. Причем платный или бесплатный тариф не имеет никаокго значения. Есть иранский скрипт поиска чистых IP, но в перспективе это не надежно.

Вопрос. Какие есть альтернативы CF? Они же не монополист.

Речь не о том! Эти банные IP - это прокси! Я говорю ТОЛЬКО о простом хостинге DNS. 

Stranger82 #:
Зачем российский?

Наверное, потому что ему можно доверять и он не кинет. В начале же написано было. Вот я тоже подумываю с OVH и Contabo свалить, ибо непонятно - какую подлянку можно от них ожидать.

Vladimir #:
И если кто то другой подпадает под РКН, все "соседи", тоже недоступны в РФ.

Ты, случаем, не куришь чего запрещенного...? В смысле прям счас, утром? То есть, ты утверждаешь, что РКН банит NS-сервера? Ты уверен в своих словах? Не IP прокси, не IP конечный, а вот так вот хряком NS??? На котором еще 500 000 зон?

Vladimir #:
Какая разница какая зона.

Да никакой, но это если что менять - то лазить по 7 ЛК регистраторов...

Vladimir #:
А, вот РКН не отредактируешь, если он с чем то не будет согласен)

Причем тут РКН, если я юзаю только DNS хостинг? Объясни.

Vladimir #:
для FirstVDS, использую NS регистратора домена

Все бы хорошо, но у меня там куча - .net, .fi, .se, .de, .ru, .com да еще и .at - и всех по одному...

Валентина #:
Ну у меня оооочень много статей

Вы их автор? Тогда полностью согласен с определением "честно работал". Если у Вас "оооочень" много статей, значит они все сходной тематики, нельзя же быть экспертом во всем. Тогда, я думаю, Вам стоит подождать, все "вебмастера" способные рерайтить чуже уйдут в дворники, и Ваш единственный (он же один, верно?) сайт обязательно всплывет.

Валентина #:
почему именно те, кто работал честно годами, теперь

Простите, что влезаю... Но "честно работать" это значит "затапливать интернет никому не нужными ГС ради размещения на них рекламы"? Так именно из-за таких "честных работников" страдают сейчас нормальные интернет-магазины, авторские блоги и прочий по-настоящему ценный контент Интернета.

Всего: 1296