2009-06-17

Настройка Domain Keys для cpanel

Количество нежелательной корреспонденции - спама в сети растет год от года. Можно называть тысячи причин  почему так происходит однако, как мне кажется, корни проблемы кроются, прежде всего в недостатках самого протокола SMTP не позволяющего надежно идентифицировать отправителя письма. Кто угодно может отправлять письма с любым обратным адресом, поэтому однозначно идентифицировать пользователя в сети бывает довольно трудно а порой и невозможно.

Поэтому для борьбы с нежелательной корреспонденцией постоянно создаются новые методы, хотя на сегодняшний день не один не может полностью блокировать спам.

Одним из путей решения данной проблемы является идентификация пользователя по имени домена которому принадлежит адрес электронной почты. При этом в DNS запись домена добавляется некая информация позволяющая идентифицировать почтовое сообщение. В настоящее время получили широкое распространение две технологии работающие по такому принципу Yahoo Domain Keys (DK) и Sender Policy Framework (SPF). Принцип действия DK основывается на алгоритме RSA  — на сервере отсылающем почту хранится пара ключей открытый и закрытый. При этом открытый ключ публикуется в TXT DNS записи, а закрытый используется для подписывания email сообщения. При этом при приеме сообщения клиентское приложение или MTA способны проверить правильность электронной подписи и сделать вывод о подлинности отправителя.
Если вы являетесь владельцем выделенного или виртуального выделенного сервера с установленной WHM/CPanel то то для того чтобы  добавить DK к вашей исходящей почте достаточно выполнить одну простую команду в консоле.

/usr/local/cpanel/bin/domain_keys_installer [username]

Где [username] - имя пользователя - владельца домена.


При этом cpanel выполнит за вас все необходимые процедуры - создаст пару RSA ключей и настроит MTA для работы с DK.
Чтобы убедиться в том что система настроена правильно можно послать самому себе тестовое сообщение. При этом в заголовках полученного письма будет добавлен примерно такой заголовок

DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=yoursite.com;
    h=Received:To:Subject:From:Content-Type:Content-Transfer-Encoding:Message-Id:Date; b=txGKMRa7OGMPvnwb97AR...



При этом может оказаться что при посылке сообщения через PHP заголовка в письме может не оказаться.

Дело все в том, что для корректной работы в письме оба обратных адреса должны принадлежать одному и тому же домену. Как правило это не так. PHP по умолчанию ставит обратный адрес прописанный в сисетме. Для того чтобы задать другой адрес можно воспользоваться пятым аргументом команды mail.

mail($email, $subject, $content, $headers,'-f bounce@yoursite.com');


Подписав таким образом свои сообщения можно значительно повысить шансы, что ваше письмо не попадет в спам. Однако при этом нужно быть осторожным - при неправильном использовании вы можете не только не улучшить но и ухудшить проходимость вашей почты.

Например если для отправки вы захотите использовать не свой SMTP сeрвер а SMTP своего интернет провайдера то ваши письма будут уходить не подписанными и некоторые получатели могут посчитать это попыткой их фальсификации. Этот метод также мало поможет если вы попадете в черные списки — DK в этом случае лишь дополнительно подтвердит, что вы  — это вы. Поэтому при принятии решения об использовании DK нужно принимать во внимание кто будет является потенциальным получателем вашей корреспонденции.

 

Оставить комментарий

 
  2009-06-16

Губозакаточная машина

Прислали чудесную ссылку:

Не правда ли чудесно?

 

Оставить комментарий

 
  2009-06-10

Знак параграфа аськи код

Странная фраза находится в top10 поисковых запросов google analytics - "знак параграфа аськи код". Что за аська такая? И тут до меня дошло! ASCII код! Дык понятно теперь, вот здесь я собираю полезные HTML коды. И знак параграфа там тоже есть...

 

Коментариев: 1

 
  2009-06-08

День рожденья Далай Ламы

Улыбнуло...

 

Оставить комментарий

 
  2009-06-08

Автозаполнение в формах

При заполнении многочисленных форм на различных страничках иногда приходится по много раз вводить одни и те же значения - емайл адреса, пароли. Для облегчения заполнения форм разработчики браузеров придумали автозаполнение. Автозаполение позволяет значительно облегчить и ускорить набор часто повторяющихся значений.

Однако бывают случаи когда автозаполнение не нужно и даже вредно, например при заполнении формы с номерами кредитных карт, или же ести вы хотите сделать свою версию подсказок при наборе текста в форме - в этом случае стандартное автозаполнение должно быть отключено.

Отключить автозаполение можно добавив атрибут autocomplete="off" причем поставить его можно как к тегу FORM так и к тегу INPUT.

Все замечательно, однако атрибут autocomplete нестандартный и если вы любите создавать валидный код то такой вариант вам не подойдет.

Нельзя ли отключить автозаполнение посредством JavaScript? Замечено, что простым присваиванием значения autocomplete="off" к объекту DOM автозаполнение не убирается поэтому многие разработчики продолжают пользоваться введением атрибута в разметку — лучше поломать валидность чем секьюрность.

Однако на днях нашел элегантнейшее решение позволяющее оставить код валидным и отключить автозаполнение:

[domelement].setAttribute('autocomplete','off');

Свойства элементам DOM можно присваивать не только напрямую но и посредством метода setAttribute и это более рекомендумемый способ. Указанный метод работает в FF и IE в других пока не тестировал.

 

Коментариев: 4

 
  2009-06-05

Как получить список координат из Google Maps

Здесь можно найти исходники и примеры на эту тему.

 

Оставить комментарий

 
  2009-06-02

Тема сисек раскрыта!

Вот они нагло вырезанные кадры из обитаемого острова, спасибо Экслеру

 

Оставить комментарий

 
  2009-06-02

Квантовая История

Обнаружил совершенно крышесносящий текст, но ведь что то в этом есть...

Переход от вероятностной истории к квантовой значительно более глубок и серьезен, нежели от классической истории к вероятностной. Поскольку историк так или иначе осознает возможность выбора, "альтернативные" построения для него естественны. Все копья ломаются только по одному вопросу: существуют ли миры-Отражения (во всяком случае, в том смысле, чтобы оказывать наблюдаемое воздействие на текущую Реальность), либо они носят воображаемый характер.

В квантовой же истории исчезает само понятие текущей Реальности.

Или, выражаясь точнее, она оказывается относительной и личной, прямо и непосредственно зависящей от исследователя.

Представим себе вероятностный континуум, в котором каждое событие рассыпается на бесконечный ряд взаимосвязанных проекций, и мы поймем, что нет никакой выделенной Нашей (Абсолютной) Реальности. Есть лишь "текущая реальность", которую конструирует психика, дабы упорядочить процесс рождения/уничтожения исторических состояний - миров, людей и их судеб. "Текущая реальность" ничем не лучше (и не хуже) любой другой вероятностной реализации. Она вполне субъективна; калибрует исторический континуум и выделяет текущую реальность каждый человек. Сам, актом своей воли, которую Господь сотворил свободной.

Своими решениями и поступками он либо утверждает сделанный выбор, либо ставит его под сомнение. Конечно, текущая реальность, которая сама по себе является структурной системой, обладает некоторой устойчивостью. Но эта устойчивость не безгранична. Если сомнения перейдут некоторое пороговое значение, калибровка сменится скачком. Насколько можно судить (а мы, наверное, единственная страна, которая может об этом судить на опыте!), в этот момент Обществом будет потеряна одна История и обретена совершенно другая.

 

Коментариев: 2

 
  2009-06-02

Мастер Фу и десять тысяч строк кода

Однажды Мастер Фу сказал заезжему программисту: "В одной строке кода shell-сценария больше духа UNIX, чем в десяти тысячах строк на языке С!"

Программист, гордый своими познаниями в С, ответил: "Может ли быть такое? Ведь С - язык, в котором реализовано само ядро UNIX!"

На это Мастер Фу ответил: "Это так. Тем не менее, в одной строке shell-сценария больше духа UNIX, чем в десяти тысячах строк С!"

Программист выглядел удручённым. "Но ведь через язык С мы познаём просвещённость патриарха Ритчи! Мы уподобляемся человеку с операционной системой и компьютером, который получает непревзойдённую производительность!"

Мастер Фу сказал: "То, что ты говоришь, правда. Однако в одной строке shell-сценария больше духа UNIX, чем в десяти тысячах строк С".

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

Просматривая то, что написал Ньюби, программист что-то бормотал в бороду. В конце концов он согласился, что это так.

"И сколько часов потребовалось бы вам для реализации и отладки этой программы на языке С?"

"Много", - признал заезжий программист. "Но только безумец стал бы тратить столько времени, когда его ждёт множество более достойных задач".

"Так кто лучше понимает дух UNIX?" - спросил Мастер Фу. "Тот, кто пишет десять тысяч строк, или тот, кто, сознавая тщетность этих усилий, извлекает пользу, не программируя?"

Услышав это, программист достиг просветления.

Э.Реймонд. Искусство программирования для UNIX.
 

Оставить комментарий

 
  2009-06-02

Новый hMailServer

Сегодня по какой то странной причине завис hMailServer, причем завис движек базы данных - намертво, пришлось убивать вручную. Зато появился шанс перейти на новую версию. В новой версии в интерфейсе практически ничего не изменилось, правда теперь баг с русскими символами не вылезает - программа по умолчанию говорит по английски. Появилась поддержка DKIM - занятная штука, напишу у ней чуть позже.

 

Оставить комментарий