Настройка stunnel для 1с
Обеспечить доступ из «везде где есть интернет» к некоему ПО. Шифровать траффик между клиентской и серверной частью приложения, которое не умеет работать через SSL. Так же нужно иметь возможность ограничивать доступ некоторым пользователям при необходимости. По различным причинам основные реализации VPN отпали. В процессе поиска решения наткнулся на Stunnel, который идеально подошел. В данной статье постараюсь детально описать процесс настройки.
Статья по большей части составлена из рабочих заметок в довесок с претензиями на туториал, поэтому прошу спокойно относится к капитанству вида — «Первое, что мы сделаем — обновим систему».
Общее представление схемы работы:
Система: свежеустановленная ubuntu server 14.04 x64.
Приложение трафик которого нужно шифровать я называть не буду. Вместо него буду указывать ssh. Для теста подходит идеально, на мой взгляд.
Приступим
Первое, что мы сделаем — обновим систему:
Настроим и включим ufw:
- /var/lib/stunnel4 здесь будет chroot окружение
- /etc/stunnel любой файл в этом каталоге оканчивающийся на .conf будет считаться конфигом
- /usr/share/doc/stunnel4/examples с примером конфига внутри
Проведем некоторые подготовительные мероприятия.
Разрешим автозапуск. В файле /etc/default/stunnel4 заменим ENABLED=0 на ENABLED=1:
Создадим папки для клиентских сертификатов. certs — разрешенные, crls — запрещенные (отозванные). О самих сертификатах чуть позже.
Создадим лог-файл и сменим владельца.
Я не считаю размещение логов в месте отличном от /var/log хорошей идеей, но заставить stunnel писать логи за пределы окружения мне не удалось.
Я буду использовать свой конфиг, но если он вам не подходит можно взять пример в /usr/share/doc/stunnel4/examples
Создадим конфигурационный файл:
Со следующим содержимым:
Ключи и сертификаты
Не большое отступление. В нашем случае stunnel проверяет только корректность пары сертификат/ключ и наличие сертификата в разрешенных или запрещенных. Самоподписанного сертификата более чем достаточно, и с технической стороны (stunnel) и со стороны поставленной задачи. Нет никакого смысла заморачиваться с собственным CA или с присутствием корневого сертификата в списке доверенных на клиенте или сервере.
Нам нужны пары сертификат/ключ для сервера и каждого клиента.
C помощью openssl создадим пару для сервера:
Отвечаем на вопросы:
И переместим их по назначению:
Как и где хранить клиентские сертификаты с ключами (за исключением каталогов certs и crls созданных ранее) решать вам. Я просто создам каталог clients в домашней директории своего пользователя и буду хранить их там на первых порах.
Создадим каталог и перейдем в него:
Создадим пару для клиента:
Как и при создании сертификата для сервера отвечаем на вопросы. Common Name будет другим например client.
Создадим еще одну пару:
Предположим, что clientcert.pem сертификат клиента которому доступ разрешен, а dnclientcert.pem сертификат клиента которому доступ запрещен. Скопируем сертификаты по нужным директориям.
Для каждого сертификата нужно создать хэш-ссылки (Возможно «хэш-ссылка» не корректное название, но оно очень точно передает суть). Это можно сделать с помощью утилиты c_rehash из пакета openssl. Мы же создадим небольшой скрипт для этих целей.
Со следующим содержимым:
Возможно будет более целесообразным разместить certlink.sh где нибудь в /usr/bin. Я пока не стал этого делать. Но выбор за вами.
Дадим права:
В результате в каталогах у нас должны появится ссылки вида 7469493f.0.
Stunnel на клиенте
На клиенте будем использовать версию stunnel аналогичную серверной. На сервере у нас 4.53. Забираем с одного из зеркал.
Если прямая ссылка перестанет работать, найти нужную версию можно так:
Редактируем файл stunnel.conf. У меня он имеет следующий вид:
Здесь debug = 7 только на момент отладки, потом можно понизить до 3 или 4. Также есть опции для «тихого режима» и сокрытия значка в трее все есть в man'e.
Запускаем stunnel.exe, и пробуем с помощью putty подключится к 127.0.0.1. Тестируем. Можно попробовать подключится с запрещенным сертификатом.
Полезные материалы
Приведенные здесь инструкции полностью работоспособны. Проверено 26.12.2014 ubuntu 14.04.01, stunnel 4.53.
В данный момент работаю над парсингом логов stunnel с выводом отчетов и автоматизацией создания/управления сертификатами. Так как в последнее время мне интересен golang, реализовано будет с помощью него. Если материал на эту тему интересен — дайте знать.
После того как тройка основных провайдеров электронной почты (Яндекс, MailRu, Google) перешли на защищенный тип соединения SSL отправки почты, многие пользователи платформы 1С Предприятия 8.2 стали испытывать трудности в отправки писем.
Вся проблема в том, что платформа не поддерживает в коробке отправку почты, а именно не умеет отсылать используя SSL соединение. 1С для решения выкатило версию 8.3, однако даже на текущий день есть достаточное количество людей которые не хотят переезжать на новую версию, т.к. есть ряд подводных каменей.
Сегодня рассмотрим один из таких случаев, когда нужно обратно подружить 1С 8.2 с Яндекс почтой.
Для выхода из этой ситуации есть пара проверенных решений одно из которых это редактирование конфигурации, его мы рассматривать не будем, т.к. это отступление от типовой нормы.
Решение: В качестве решения мы будем эмулировать отправку с SSL через программу посредник Stunnel.
Дистрибутив можно загрузить тут. Установка не вызывает особой сложности, однако при установке следует учесть один момент, обязательно следует установить все компоненты Tools. Во время установки будет сформирован персональный сертификат.
После установки в командной строке с правами администратора системы необходимо выполнить команды:
«C:\Program Files (x86)\stunnel\bin\stunnel.exe » -install
«C:\Program Files (x86)\stunnel\bin\stunnel.exe » -start
Для установки в качестве службы и старта приложения.
Далее через интерфейс приложения или любой текстовый редактор заменяем часть конфигурационного файла вставляя настройку для 3х наиболее распространенных почтовых провайдеров.
Далее можно приступать к проверке через командую строку, набрав команду:
Если Вы получили какие-то иные результаты ответа (Подключение к localhost…Не удалось открыть подключение к этому узлу, на порт 20025: Сбой подключения) , то проверьте действия произведенные вами. Убедитесь в правильности своих действий. На текущий момент 16.11.2016 г. актуальная версия 5.37. мною гарантировано тестировалась приведенная выше конфигурация.
Далее можно приступать к настройке 1С. Заходим в «Справочники»→»Учетные записи электронной почты»- Выбираем учетную запись для настройки или создаем новую.
Вносим наши данные email, представление, логин и пароль, указывая в качестве сервера адрес 127.0.0.1 и порты smtp,pop3,imap.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Настроено получение почты через SSL в стандартном почтовом клиенте без дополнительных библиотек и изменения кода через стороннюю бесплатную программу stunnel.
Если вы используете платформу 8.3, то там уже поддерживает SSL.
Только включается она в коде.
Я включал так:
//
Профиль.ИспользоватьSSLSMTP = истина;
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьSSLPOP3 = истина;
Профиль.ПортPOP3 = 995;
//
Drew_7; Krimskiy_xan; Serge_ASB; 1v7; z86; VladimirSpirin; simuljakr; foxsis; Vilenskiy; rozer; cargobird; + 11 – Ответить
(2) BonAb, спасибо за информацию, в будущем пригодится.
Но задача ставилась именно без изменения кода.
К тому же данный вариант подходит для удаленной настройки на терминале, так как не требует перезагрузки сервера, достаточно администраторских прав.
(39) Serge_ASB, можете для начала выложить конфигурационный файл stunnel.conf?
(74) Deroswent, место зависит от того, какая у вас конфигурация.
Это настройки почтового профиля интернета (ИнтернетПочтовыйПрофиль)
Можно запустить глобальный поиск по конфигурации ИнтернетПочтовыйПрофиль, там будет примерно такой код (это я взял из глобального поиска по Бухгалтерии 3.0):
(75) здесь Вы указывает что нужно вставить вот в такой код.
Я хотел уточнить, нужно было стереть то что указано тут (75) и вставить на его место те две строки или просто дополнительно к этим строкам добавить строки :
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ИспользоватьSSLPOP3 = Истина;
(97) nab1985, во-первых, я писал про пост (76), во вторых - да, добавить, так что, видимо, все правильно.
это малость преувеличено. или тунель не является дополнительной? и что тогда ты понимаешь под термином "библиотека"?
а вот указал бы в заголовке "тунель" мобыть я и не зашел бы сюда
(6) Fox-trot, так если вы в теме то давно известно, что 8.2 не поддерживает SSL. А в статье и написано что используется сторонняя прога.
(11) alexstav, 1С-ки то это касается только в изменении адресов pop3 и smtp в коде или почтовом клиенте на локальный 127.0.0.1. Остальное - установка и настройка stunnel, как написано.
А для 1С Предприятия 7.7 для получение почты с Яндекса работать будет? а то с 16 сентября "ROM-Mail" не работает
(10) alexstav, по идее stunnel должен работать вне зависимости от почтовой программы и платформы.
Вчера настроил подобным же образом 1С Предприятие 8: CRM Стандарт на управляемых формах на почту yandex - сработало.
Значит и для 7.7 тоже должно помочь.
у меня при запуске stunnel.exe вываливатся ошибка
Server is down(invalid configuration file)
conf файл прилагаю
помогите разобраться. в чем дело
Да, пардон, ошибся, не тот выслал
сейчас исправленный прикрепил .
также прилагаю скрин ошибки, в трее он появляется, но красный
(16) alexstav, не вижу ошибок.
С оригинальным (не измененным) файлом stunnel.conf программа запускается?
со стандартным файлом stunnel.conf тоже не запускается
WIN XP sp2 права Администратора
(18) alexstav, запускал на Windows 7 Максимальная и на Windows Server не помню какой версии без проблем.
Дома есть машина под Windows XP SP3, если найду время вечером - попробую установить.
Единственное, что пока могу сказать - мне показалось важным в самом начале при установке stunnel заполнять произвольными данными ответы на вопросы, а в последнем вопросе (про сервер) указать localhost.
"мне показалось важным в самом начале при установке stunnel заполнять произвольными данными ответы на вопросы, а в последнем вопросе (про сервер) указать localhost. "
в точку! Спасибо! теперь запустился!
второй вопрос:
7. В почтовом клиенте меняем адреса smpt и pop3 серверов на 127.0.0.1.
где это делать? Вот кусок кода из 1С:
ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll");
Почта=СоздатьОбъект("AddIn.Mail");
//Почта = СоздатьОбъект("AddIn.AddInMail");
Почта.СерверПриема=СокрЛП(Константа.СерверПриема);
Почта.ПортПриема="110";
Почта.Логин=СокрЛП(Константа.ПочтаЛогин);
Почта.Пароль=СокрЛП(Константа.ПочтаПароль);
Почта.ОставлятьНаСервере=Константа.ОставлятьПочтуНаСервере;
Почта.ПоказыватьПредупреждения=0;
Почта.Отключиться();
Если Почта.Подключиться("Прием")=0 Тогда
Сообщить("Не удалось подключиться к серверу!"); //а=10/0;
Почта.Отключиться();
Возврат;
ЗаписьЖурналарегистрации("Не удалось подключиться к POP3 серверу!");
ЗавершитьРаботуСистемы(0);
Иначе
Сообщить("Подключение к POP3 серверу прошло успешно");
КонецЕсли;
или поменять в режиме предприятия значение константы "Сервер приема" на 127.0.0.1
Сервера отправки в вашем коде не вижу, если найдете - то по тому же принципу поменять и его.
Почта-то подключается, и даже отправляет, но почему то виснет на
Затем возвращает массив с незаполненными элементами,
всё пусто, только есть дата получения (дата отправки тоже пустая)
а лог вот такой
2014.09.19 11:19:33 LOG5[5328]: Service [mail-smtp] accepted connection from 127.0.0.1:52065
2014.09.19 11:19:33 LOG5[5328]: s_connect: connected 94.100.180.160:465
2014.09.19 11:19:33 LOG5[5328]: Service [mail-smtp] connected remote server from 192.168.1.38:52066
2014.09.19 11:19:33 LOG5[5728]: Service [mail-pop3] accepted connection from 127.0.0.1:52067
2014.09.19 11:19:33 LOG5[5728]: s_connect: connected 217.69.139.74:995
2014.09.19 11:19:33 LOG5[5728]: Service [mail-pop3] connected remote server from 192.168.1.38:52068
2014.09.19 11:25:33 LOG3[5328]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2014.09.19 11:25:33 LOG5[5328]: Connection closed: 58 byte(s) sent to SSL, 260 byte(s) sent to socket
всё . что не так?
А может такое быть что пока регламентное задание получает эти самые заголовки (делает она это прилично долго - 25мин), другому пользователю не доступно получение писем от "занятого" сервера?
(22) NU_User, сомневаюсь, что это проблема, связанная именно с stunnel.
(24) ну оно вроде заработало, правда очень долго на этом месте сидит . честно говоря, не знаю как было раньше
Есть + и - у почтового клиента.
Плюсы:
Как для бухгалтера отличный вариант, сразу все в 1с, удобно и комфортно, это при не большом объеме писем и их размере.
Все же больше всего отдаю предпочтение следующим почтовым клиентам: Outlook, TheBat, Thunder, а лучше через вебку ходить, надежно и практично!
(26) yspex, так оно, но у пользователей CRM-конфигураций, как правило, выхода нет.
То же касается различных обработок рассылок писем из 1С (7.7 - без вариантов, на платформах ниже 8.3 - до перехода на 8.3 с поддержкой SSL).
Если есть выбор - соглашусь, предпочтительнее внешний почтовый клиент.
Ошибка при вызове метода контекста (Подключиться): Аутентификация не прошла (SMTP error code 535, Authentication credentials invalid)
(28) lexuslam, Authentication credentials invalid - судя по гуглу это ошибка авторизации SMTP сервера. Возможно неверно указаны имя пользователя и пароль - как правило они те же самые, что и у POP3 сервера. Есть вероятность, что ошибка на стороне провайдера почты - в этом случае лучше обратиться к ним в техподдержку.
(34) Sergafan10, пока за 10 дней внедрений stunnel не было ни одного отказа ни в локалке, ни в терминале.
Если опишете возникшую проблему или поделитесь ситуацией, в которой это сто процентов не работает, буду признателен.
Крайне полезный пост. Без понтов, что очень радует! Благодарствую от души! Автор большой молодец, что написал доступно, для не опытных пользователей!
(32) pawonex, есть одно НО. один туннель - это именно что "один". Т.е. не получиться одновременно отправлять в "две руки". В таких случаях надо в конфиге прописывать несколько портов (разных) под определенные "почты", ну и естественно несколько учетных записей ЭП в 1С. Тогда можно параллельно отправлять в два-три (и более) потока.
(33) rhtr, действительно.
Да и не одна (гугл "stunnel infostart").
Еще раз приношу извинения за ненамеренный повтор.
Полезная статья, но есть один вопрос, который хотелось бы уточнить: протоколы POP3 и SMTP работают по 110 и 25 портам соответственно. При использовании SSL стандартные порты для этих протоколов это 995 и 465 (993 для IMAP по моему). Таким образом в случае использования firewall наверное надо будет для stunnel открывать эти порты?
Подскажите,
платформа 8.2, server win2008, почта Яндекс,
все установилось, но письмо отсылается только при проверке учётной записи, во всех остальных случаях теряется.
Что я могу делать не так?
(43) Acid Megatron, если еще актуально: смоделировал ситуацию с вашим stunnel.conf на встроенном почтовом клиенте в УТ 10.3, но в Windows 7 Professional - письма отправляются и принимаются, возможно проблема не в stunnel. Возможно еще что-то блокирует по портам SSL.
Здравствуйте, все!
Подскажите пожалуйста
Сделал всё как описано выше, но выходит ошибка
Ошибка при вызове метода контекста (Подключиться): Can not authenticate to SMTP server: 535 Incorrect authentication data: authentication failed for
спасибо за прогу.
странно что 1С такой "простой" заплатки не сделали. для платформы 8.2
хотят наверное чтобы все скорее на 8.3 и управляемые формы переходили.
хотя многие до сих пор на 7.7 сидят. и никак отказаться от нее не могут
(и сама фирма 1С все равно их продолжает сопровождать кстати)
а 8.2 вообще "свежая". и только все к ней все привыкли (бухгалтера, менеджеры и т.д.)
и на тебе. не работает ничего. ни рассылки (спам конечно..) ни обмен письмами с клиентами
Сделал все как в инструкции.
Тестировал на платформе 8.3, конфигарация УТ 10.3
В чем может быть причина ?
Исправлено: видимо делаете через код, напишите тогда, пожалуйста, кусок этого кода.
(61) Xershi, возможно вы не в курсе, о чем речь идет.
В файле stunnel.conf содержится информация о перенаправлении по портам, указанным в настройках учетной записи:
То есть порты в настройке из присланного скриншота указаны верно.
(63) неа, я перевел платформу на 8.3. А в конфе дописал код который отправляет 2 из 6 методов отправки почты по CDO.Messange и эпликейшн аутлук.
(64) Xershi, человек, судя по скриншоту, пытается настроить подключение из базы на платформе 8.2.
Поэтому и пытаемся сделать через "прокладку" stunnel.
(68) serga2007, если выход в интернет через аппаратный или программный шлюз - то все возможно.
Тогда надо знать порты, по которым разрешен SSL или прописывать свои, и их уже указывать в stunnel.conf вместо стандартных SSL-портов.
Ошибка та же, номер 501?
(60) serga2007, порты в настройках учетной записи указаны правильные (именно по ним происходит перенаправление на порты SSL в файле stunnel.conf)
Во-первых, традиционно сервера требуют SMPT-аутентификацию - поставьте флаг "Требуется SMPT аутентификация".
Во-вторых прочтите, пожалуйста, следующее, возможно надо изменить имя компьютера:
— При отправке почты выдается ошибка сервера: ’501 Syntactically invalid EHLO argument(s)’(код ошибки 0x800CCC63). Такая ошибка выдается, если имя компьютера (работающего под управлением Windows) содержит недопустимые символы:
(``’’, русские буквы или пробелы). Его следует изменить через Панель Управления > Сеть > Идентификация.
Также необходимо проверить имя, указанное через Панель управления > Сеть > TCP/IP > DNS (при использовании коммутируемого соединения через модем DNS должен быть отключен)
(70) Duduka80, добрый день!
Видимо где-то слетела аутентификация по SMTP.
Если настраиваете почту в форме, то должна быть галочка "Требуется аутентификация SMPT".
Если через код, то надо выставлять способ аутентификации СпособSMTPАутентификации.Login
Спасибо огромное . Действительно галочки на требуется аутентификация SMPT не было , поставила все заработало))))))
Не знаю что и делать, после первой установки stunnel, все сразу заработало, не следующий день начал выдавать ошибку :
"cannot authenticate to smtp server 535 incorrect authentication data".
У меня 1С Предприятие 8.3, конфигурация 1С Консолидация ПРОФ, и платформа и конфигурация последние версии.
Настройки учетной записи в 1С Консолидация прикрепил.
Файл stunnel тоже.
И если можно подскажите, куда нужно зайти в 1С, чтобы включить SSL?
Может получится обойтись без stunnel .
(78) nab1985, судя по скриншотам у вас поддержка SSL еще не прописана на уровне интерфейса.
А на уровне кода - в комментариях несколько раз упомянуты места, которые надо изменять - но по-видимому у вас конфигурация типовая.
Попробуйте еще в гугле включить доступ к аккаунту непроверенных приложений: Google
Если не получится - пишите, подумаем где еще может быть затык.
(79) Забыл написать, что доступ непроверенных приложений в гугле включил.
Но, результата нет.
Я правильно Вас понял, что разрешение использовать SSL можно включать в некоторых конфигурациях прямо с пользовательского режима, даже не заходя в конфигуратор?
Может у меня только в конфигурации это как-то включается? Если нужно, быть может какой-то код из конфигуратора прислать?
(80) nab1985, у вас, видимо, это только в конфигураторе.
Поищите, пожалуйста, код, связанный с ИнтернетПочтовыйПрофиль, подобно тому, что описано в посте (76) .
Если сами не разберетесь - пишите сюда, посмотрим.
(81) Вот этого нашел, насколько это полезно будет, не могу сказать, не силен в этих кодах всех :
(82) nab1985, по видимому перед
Возврат Профиль;
в функции Функция СформироватьИнтернетПрофиль надо вставить две строки, обведенные на картинке в посте (76)
После внесения изменений в конфигурацию параметры подключения измените уже на нормальные для SSL, то есть обычные для SSL адреса и порты, которые вы вставляли в stunnel.conf.
И попробуйте подключиться, вроде должно заработать.
(83) После того как я вставлю эти две строки, мне нужно просто закрыть конфигуратор, в ответ на предложение сохранить изменения ответить положительно, и больше ничего в нем не надо делать?
На 25 попробовал поменять, при проверке учетной записи, сразу ошибку выдает
(89) nab1985, такой момент.
Не знаю вашего уровня, поэтому распишу подробно.
Вы можете зайти в Конфигуратор и посмотреть, слева вверху дерева метаданных конфигуратора справа от надписи "Конфигурация" горит такой значок или нет?
Если горит, закройте Предприятие оставив Конфигуратор открытым, и нажмите F7.
Тогда изменения по тем двум строкам будут внесены в информационную базу.
И снова попробуйте проверить и послать почту с портами 995 и 465.
Вот код, в самом низу вставка, может действительно что-то не так вставил :
(95) Извините еще вопросик.
Ошибка при вызове метода контекста (Послать): Сервер требует аутентификации (SMTP error code 530)
что это может быть.
(98) nab1985, smtp-аутентификация в настройках учетной записи стоит (в Предприятии, не в Конфигураторе)?
POP3 - 127.0.0.1
SMTP - 127.0.0.1
POP3 - 110
SMTP - 25
SMTP серверу требуется проверка подлинности - галочка стоит
Аналогично серверу входящей почты - выбрано
Прошу прощения у уважаемых коллег, если информация не нова.
Исходные данные: почтовый клиент в УТ 10.3 сравнительно недавнего релиза на платформе 8.2 и тоже относительно свежей.
Последовательность действий проста.
2. Устанавливаем. Перезагрузка не требуется.
3. Заходим в stunnel.conf.
6. Запускаем stunnel (повисает в трее).
7. В почтовом клиенте меняем адреса smpt и pop3 серверов на 127.0.0.1.
8. Проверяем подключение - работает.
Вот пожалуй и всё, спасибо за внимание.
Специальные предложения
Если вы используете платформу 8.3, то там уже поддерживает SSL.
Только включается она в коде.
Я включал так:
//
Профиль.ИспользоватьSSLSMTP = истина;
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьSSLPOP3 = истина;
Профиль.ПортPOP3 = 995;
//
Drew_7; Krimskiy_xan; Serge_ASB; 1v7; z86; VladimirSpirin; simuljakr; foxsis; Vilenskiy; rozer; cargobird; + 11 – Ответить
(2) BonAb, спасибо за информацию, в будущем пригодится.
Но задача ставилась именно без изменения кода.
К тому же данный вариант подходит для удаленной настройки на терминале, так как не требует перезагрузки сервера, достаточно администраторских прав.
(39) Serge_ASB, можете для начала выложить конфигурационный файл stunnel.conf?
(74) Deroswent, место зависит от того, какая у вас конфигурация.
Это настройки почтового профиля интернета (ИнтернетПочтовыйПрофиль)
Можно запустить глобальный поиск по конфигурации ИнтернетПочтовыйПрофиль, там будет примерно такой код (это я взял из глобального поиска по Бухгалтерии 3.0):
(75) здесь Вы указывает что нужно вставить вот в такой код.
Я хотел уточнить, нужно было стереть то что указано тут (75) и вставить на его место те две строки или просто дополнительно к этим строкам добавить строки :
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ИспользоватьSSLPOP3 = Истина;
(97) nab1985, во-первых, я писал про пост (76), во вторых - да, добавить, так что, видимо, все правильно.
это малость преувеличено. или тунель не является дополнительной? и что тогда ты понимаешь под термином "библиотека"?
а вот указал бы в заголовке "тунель" мобыть я и не зашел бы сюда
(6) Fox-trot, так если вы в теме то давно известно, что 8.2 не поддерживает SSL. А в статье и написано что используется сторонняя прога.
(11) alexstav, 1С-ки то это касается только в изменении адресов pop3 и smtp в коде или почтовом клиенте на локальный 127.0.0.1. Остальное - установка и настройка stunnel, как написано.
А для 1С Предприятия 7.7 для получение почты с Яндекса работать будет? а то с 16 сентября "ROM-Mail" не работает
(10) alexstav, по идее stunnel должен работать вне зависимости от почтовой программы и платформы.
Вчера настроил подобным же образом 1С Предприятие 8: CRM Стандарт на управляемых формах на почту yandex - сработало.
Значит и для 7.7 тоже должно помочь.
у меня при запуске stunnel.exe вываливатся ошибка
Server is down(invalid configuration file)
conf файл прилагаю
помогите разобраться. в чем дело
Да, пардон, ошибся, не тот выслал
сейчас исправленный прикрепил .
также прилагаю скрин ошибки, в трее он появляется, но красный
(16) alexstav, не вижу ошибок.
С оригинальным (не измененным) файлом stunnel.conf программа запускается?
со стандартным файлом stunnel.conf тоже не запускается
WIN XP sp2 права Администратора
(18) alexstav, запускал на Windows 7 Максимальная и на Windows Server не помню какой версии без проблем.
Дома есть машина под Windows XP SP3, если найду время вечером - попробую установить.
Единственное, что пока могу сказать - мне показалось важным в самом начале при установке stunnel заполнять произвольными данными ответы на вопросы, а в последнем вопросе (про сервер) указать localhost.
"мне показалось важным в самом начале при установке stunnel заполнять произвольными данными ответы на вопросы, а в последнем вопросе (про сервер) указать localhost. "
в точку! Спасибо! теперь запустился!
второй вопрос:
7. В почтовом клиенте меняем адреса smpt и pop3 серверов на 127.0.0.1.
где это делать? Вот кусок кода из 1С:
ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll");
Почта=СоздатьОбъект("AddIn.Mail");
//Почта = СоздатьОбъект("AddIn.AddInMail");
Почта.СерверПриема=СокрЛП(Константа.СерверПриема);
Почта.ПортПриема="110";
Почта.Логин=СокрЛП(Константа.ПочтаЛогин);
Почта.Пароль=СокрЛП(Константа.ПочтаПароль);
Почта.ОставлятьНаСервере=Константа.ОставлятьПочтуНаСервере;
Почта.ПоказыватьПредупреждения=0;
Почта.Отключиться();
Если Почта.Подключиться("Прием")=0 Тогда
Сообщить("Не удалось подключиться к серверу!"); //а=10/0;
Почта.Отключиться();
Возврат;
ЗаписьЖурналарегистрации("Не удалось подключиться к POP3 серверу!");
ЗавершитьРаботуСистемы(0);
Иначе
Сообщить("Подключение к POP3 серверу прошло успешно");
КонецЕсли;
или поменять в режиме предприятия значение константы "Сервер приема" на 127.0.0.1
Сервера отправки в вашем коде не вижу, если найдете - то по тому же принципу поменять и его.
Почта-то подключается, и даже отправляет, но почему то виснет на
Затем возвращает массив с незаполненными элементами,
всё пусто, только есть дата получения (дата отправки тоже пустая)
а лог вот такой
2014.09.19 11:19:33 LOG5[5328]: Service [mail-smtp] accepted connection from 127.0.0.1:52065
2014.09.19 11:19:33 LOG5[5328]: s_connect: connected 94.100.180.160:465
2014.09.19 11:19:33 LOG5[5328]: Service [mail-smtp] connected remote server from 192.168.1.38:52066
2014.09.19 11:19:33 LOG5[5728]: Service [mail-pop3] accepted connection from 127.0.0.1:52067
2014.09.19 11:19:33 LOG5[5728]: s_connect: connected 217.69.139.74:995
2014.09.19 11:19:33 LOG5[5728]: Service [mail-pop3] connected remote server from 192.168.1.38:52068
2014.09.19 11:25:33 LOG3[5328]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2014.09.19 11:25:33 LOG5[5328]: Connection closed: 58 byte(s) sent to SSL, 260 byte(s) sent to socket
всё . что не так?
А может такое быть что пока регламентное задание получает эти самые заголовки (делает она это прилично долго - 25мин), другому пользователю не доступно получение писем от "занятого" сервера?
(22) NU_User, сомневаюсь, что это проблема, связанная именно с stunnel.
(24) ну оно вроде заработало, правда очень долго на этом месте сидит . честно говоря, не знаю как было раньше
Есть + и - у почтового клиента.
Плюсы:
Как для бухгалтера отличный вариант, сразу все в 1с, удобно и комфортно, это при не большом объеме писем и их размере.
Все же больше всего отдаю предпочтение следующим почтовым клиентам: Outlook, TheBat, Thunder, а лучше через вебку ходить, надежно и практично!
(26) yspex, так оно, но у пользователей CRM-конфигураций, как правило, выхода нет.
То же касается различных обработок рассылок писем из 1С (7.7 - без вариантов, на платформах ниже 8.3 - до перехода на 8.3 с поддержкой SSL).
Если есть выбор - соглашусь, предпочтительнее внешний почтовый клиент.
Ошибка при вызове метода контекста (Подключиться): Аутентификация не прошла (SMTP error code 535, Authentication credentials invalid)
(28) lexuslam, Authentication credentials invalid - судя по гуглу это ошибка авторизации SMTP сервера. Возможно неверно указаны имя пользователя и пароль - как правило они те же самые, что и у POP3 сервера. Есть вероятность, что ошибка на стороне провайдера почты - в этом случае лучше обратиться к ним в техподдержку.
(34) Sergafan10, пока за 10 дней внедрений stunnel не было ни одного отказа ни в локалке, ни в терминале.
Если опишете возникшую проблему или поделитесь ситуацией, в которой это сто процентов не работает, буду признателен.
Крайне полезный пост. Без понтов, что очень радует! Благодарствую от души! Автор большой молодец, что написал доступно, для не опытных пользователей!
(32) pawonex, есть одно НО. один туннель - это именно что "один". Т.е. не получиться одновременно отправлять в "две руки". В таких случаях надо в конфиге прописывать несколько портов (разных) под определенные "почты", ну и естественно несколько учетных записей ЭП в 1С. Тогда можно параллельно отправлять в два-три (и более) потока.
(33) rhtr, действительно.
Да и не одна (гугл "stunnel infostart").
Еще раз приношу извинения за ненамеренный повтор.
Полезная статья, но есть один вопрос, который хотелось бы уточнить: протоколы POP3 и SMTP работают по 110 и 25 портам соответственно. При использовании SSL стандартные порты для этих протоколов это 995 и 465 (993 для IMAP по моему). Таким образом в случае использования firewall наверное надо будет для stunnel открывать эти порты?
Подскажите,
платформа 8.2, server win2008, почта Яндекс,
все установилось, но письмо отсылается только при проверке учётной записи, во всех остальных случаях теряется.
Что я могу делать не так?
(43) Acid Megatron, если еще актуально: смоделировал ситуацию с вашим stunnel.conf на встроенном почтовом клиенте в УТ 10.3, но в Windows 7 Professional - письма отправляются и принимаются, возможно проблема не в stunnel. Возможно еще что-то блокирует по портам SSL.
Здравствуйте, все!
Подскажите пожалуйста
Сделал всё как описано выше, но выходит ошибка
Ошибка при вызове метода контекста (Подключиться): Can not authenticate to SMTP server: 535 Incorrect authentication data: authentication failed for
спасибо за прогу.
странно что 1С такой "простой" заплатки не сделали. для платформы 8.2
хотят наверное чтобы все скорее на 8.3 и управляемые формы переходили.
хотя многие до сих пор на 7.7 сидят. и никак отказаться от нее не могут
(и сама фирма 1С все равно их продолжает сопровождать кстати)
а 8.2 вообще "свежая". и только все к ней все привыкли (бухгалтера, менеджеры и т.д.)
и на тебе. не работает ничего. ни рассылки (спам конечно..) ни обмен письмами с клиентами
Сделал все как в инструкции.
Тестировал на платформе 8.3, конфигарация УТ 10.3
В чем может быть причина ?
Исправлено: видимо делаете через код, напишите тогда, пожалуйста, кусок этого кода.
(61) Xershi, возможно вы не в курсе, о чем речь идет.
В файле stunnel.conf содержится информация о перенаправлении по портам, указанным в настройках учетной записи:
То есть порты в настройке из присланного скриншота указаны верно.
(63) неа, я перевел платформу на 8.3. А в конфе дописал код который отправляет 2 из 6 методов отправки почты по CDO.Messange и эпликейшн аутлук.
(64) Xershi, человек, судя по скриншоту, пытается настроить подключение из базы на платформе 8.2.
Поэтому и пытаемся сделать через "прокладку" stunnel.
(68) serga2007, если выход в интернет через аппаратный или программный шлюз - то все возможно.
Тогда надо знать порты, по которым разрешен SSL или прописывать свои, и их уже указывать в stunnel.conf вместо стандартных SSL-портов.
Ошибка та же, номер 501?
(60) serga2007, порты в настройках учетной записи указаны правильные (именно по ним происходит перенаправление на порты SSL в файле stunnel.conf)
Во-первых, традиционно сервера требуют SMPT-аутентификацию - поставьте флаг "Требуется SMPT аутентификация".
Во-вторых прочтите, пожалуйста, следующее, возможно надо изменить имя компьютера:
— При отправке почты выдается ошибка сервера: ’501 Syntactically invalid EHLO argument(s)’(код ошибки 0x800CCC63). Такая ошибка выдается, если имя компьютера (работающего под управлением Windows) содержит недопустимые символы:
(``’’, русские буквы или пробелы). Его следует изменить через Панель Управления > Сеть > Идентификация.
Также необходимо проверить имя, указанное через Панель управления > Сеть > TCP/IP > DNS (при использовании коммутируемого соединения через модем DNS должен быть отключен)
(70) Duduka80, добрый день!
Видимо где-то слетела аутентификация по SMTP.
Если настраиваете почту в форме, то должна быть галочка "Требуется аутентификация SMPT".
Если через код, то надо выставлять способ аутентификации СпособSMTPАутентификации.Login
Спасибо огромное . Действительно галочки на требуется аутентификация SMPT не было , поставила все заработало))))))
Не знаю что и делать, после первой установки stunnel, все сразу заработало, не следующий день начал выдавать ошибку :
"cannot authenticate to smtp server 535 incorrect authentication data".
У меня 1С Предприятие 8.3, конфигурация 1С Консолидация ПРОФ, и платформа и конфигурация последние версии.
Настройки учетной записи в 1С Консолидация прикрепил.
Файл stunnel тоже.
И если можно подскажите, куда нужно зайти в 1С, чтобы включить SSL?
Может получится обойтись без stunnel .
(78) nab1985, судя по скриншотам у вас поддержка SSL еще не прописана на уровне интерфейса.
А на уровне кода - в комментариях несколько раз упомянуты места, которые надо изменять - но по-видимому у вас конфигурация типовая.
Попробуйте еще в гугле включить доступ к аккаунту непроверенных приложений: Google
Если не получится - пишите, подумаем где еще может быть затык.
(79) Забыл написать, что доступ непроверенных приложений в гугле включил.
Но, результата нет.
Я правильно Вас понял, что разрешение использовать SSL можно включать в некоторых конфигурациях прямо с пользовательского режима, даже не заходя в конфигуратор?
Может у меня только в конфигурации это как-то включается? Если нужно, быть может какой-то код из конфигуратора прислать?
(80) nab1985, у вас, видимо, это только в конфигураторе.
Поищите, пожалуйста, код, связанный с ИнтернетПочтовыйПрофиль, подобно тому, что описано в посте (76) .
Если сами не разберетесь - пишите сюда, посмотрим.
(81) Вот этого нашел, насколько это полезно будет, не могу сказать, не силен в этих кодах всех :
(82) nab1985, по видимому перед
Возврат Профиль;
в функции Функция СформироватьИнтернетПрофиль надо вставить две строки, обведенные на картинке в посте (76)
После внесения изменений в конфигурацию параметры подключения измените уже на нормальные для SSL, то есть обычные для SSL адреса и порты, которые вы вставляли в stunnel.conf.
И попробуйте подключиться, вроде должно заработать.
(83) После того как я вставлю эти две строки, мне нужно просто закрыть конфигуратор, в ответ на предложение сохранить изменения ответить положительно, и больше ничего в нем не надо делать?
На 25 попробовал поменять, при проверке учетной записи, сразу ошибку выдает
(89) nab1985, такой момент.
Не знаю вашего уровня, поэтому распишу подробно.
Вы можете зайти в Конфигуратор и посмотреть, слева вверху дерева метаданных конфигуратора справа от надписи "Конфигурация" горит такой значок или нет?
Если горит, закройте Предприятие оставив Конфигуратор открытым, и нажмите F7.
Тогда изменения по тем двум строкам будут внесены в информационную базу.
И снова попробуйте проверить и послать почту с портами 995 и 465.
Вот код, в самом низу вставка, может действительно что-то не так вставил :
(95) Извините еще вопросик.
Ошибка при вызове метода контекста (Послать): Сервер требует аутентификации (SMTP error code 530)
что это может быть.
(98) nab1985, smtp-аутентификация в настройках учетной записи стоит (в Предприятии, не в Конфигураторе)?
POP3 - 127.0.0.1
SMTP - 127.0.0.1
POP3 - 110
SMTP - 25
SMTP серверу требуется проверка подлинности - галочка стоит
Аналогично серверу входящей почты - выбрано
В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0.
Вам нужно просто настроить клиент таким образом, чтобы весь свой трафик он передавал на клиентский Stunnel, в свою очередь, он устанавливает безопасное соединение с сервером, отправляя данные на серверный Stunnel. Stunnel на сервере расшифровывает пришедший трафик и перенаправляет данные на вход серверу. Вышесказанное проще осознать глядя на эту диаграмму
Стоит заметить, что на сервере не обязательно должен стоять именно Stunnel, для работы с криптографическими алгоритмами. Здорово, что есть готовые демонстрационные стенды, которые поддерживают российскую криптографию, список которых есть в презентации с РусКрипто'2019.
Нам нужны стабильно работающие серверы, осуществляющие двухстороннюю аутентификацию.
Мы выбрали серверы КриптоПро как наиболее надёжные с полной реализацией стандарта ГОСТ TLS. Спасибо им за это :)
Звучит достаточно просто, давайте попробуем организовать этот процесс.
Подготовительный шаг
- OpenSSL
- Stunnel
- rtengine
- Доступ к тестовым серверам КриптоПро, для проверки соединения по TLS
OpenSSL для Windows можно взять отсюда, а для пользователей линукса — из репозиториев или собрать самому, скачав свежую версию отсюда. Также его можно взять из Rutoken SDK, из директории openssl\openssl-tool-1.1, этот архив нам будет полезен и дальше, т.к. в нём находится интересующий нас rtengine. Stunnel можно найти здесь. Для работы необходима версия >= 5.56.
Но просто переместить движок в нужную папку — мало, нужно ещё сконфигурировать сам openssl для работы с ним. Узнаём где лежит файл с конфигурацией openssl.cnf с помощью той же команды, что указана выше (под виндой stunnel идёт с собственной версией openssl, поэтому файл с конфигурацией лежит в path\to\stunnel\config\openssl.cnf
Давайте проверим, что rtengine подключился, для этого подключим токен и выведем список всех алгоритмов шифрования:
Напомню, что в Windows нужно проверять на openssl, который лежит рядом с stunnel
Если среди них будут присутствовать наши ГОСТы, значит всё настроено верно.
Теперь, когда мы знаем, какой ключ нам нужен, давайте получим корневой сертификат от тестового сервера, выработаем ключи для работы и подпишем запрос на наш сертификат.
Простой способ (работает под Windows и Linux)
Через командную строку
Для того, чтобы получить корневой сертификат, зайдём на сайт тестового УЦ ООО "КРИПТО-ПРО". И нажмём на кнопку для получения сертификата. Отобразится новая вкладка, в которой нужно будет выбрать метод шифрования Base64 и нажать на кнопку "Загрузка сертификата ЦС". Полученный файл certnew.cer сохраняем.
Теперь генерируем ключи.
Стоит заметить, что сгенерированные на токене ключи не могут быть скопированы с токена. В этом состоит одно из основных преимуществ их использования.
Создадим запрос на сертификат:
Остался последний вопрос: Для чего всё это. Зачем мы получали все эти сертификаты, ключи и запросы?
Дело в том, что они нужны протоколу TLS для двусторонней аутентификации. Работает это очень просто.
У нас есть сертификат сервера, и мы считаем его доверенным.
Наш клиент проверяет, что сервер, с которым мы работаем имеет аналогичный сертификат.
Сервер же хочет убедиться, что работает с пользователем, который ему известен. Для этого мы и создавали запрос на сертификат для работы через наши ключи.
Мы отправили этот запрос и сервер подписал её своей ЭЦП. Теперь мы можем каждый раз предъявлять этот сертификат, подписанный корневым УЦ, тем самым подтверждая, что мы — это мы.
Конфигурирование Stunnel
Осталось только правильно настроить наш туннель. Для этого создадим файл stunnel.conf с настройками Stunnel по умолчанию и напишем туда следующее:
Теперь, если всё сделано правильно, можно запустить Stunnel с нашей конфигурацией и подключиться к серверу:
Откроем браузер и зайдём по адресу localhost:8080. Если всё верно, то отобразится следующее:
Если же нет, то смотрим логи и используем отладчик, чтобы понять в чём же всё-таки проблема.
Читайте также: