Есть очень мало мяса на ваш вопрос. Вам нужно разместить журналы. Какие журналы выглядеть, когда вы получаете почту, вы думаете, должен быть заблокирован? Что происходит, когда вы установите его на другой IP под вашим контролем, и как запустить его с -BH и на самом деле получать почту с этого IP. Изменить -ЧД пример использовать -D, чтобы получить отладочный вывод. В контролируемом примеру, установить Эксим слушать порт 26 и запустить его в режиме отладки, чтобы увидеть именно то, что все это время. Спасибо! Которые прекрасно работали. Это отличная отправная точка для меня. Я собираюсь посмотреть, если я могу выяснить, как написать скрипт, чтобы извлечь каждый архив в папку Temp скопируйте столбцом file_id.Диз со столбцом file_id.диз, удалить столбцом file_id.Диз , запаковать файл, а затем очистите временную директорию.

Как подойти к этому

Сервис, который будет запускаться под Диспетчер служб не следует пытаться самостоятельно демонизировать, не следует использовать шаткий и опасный механизм PID-файл, и не должны (в подавляющем большинстве случаев общий случай) падение привилегии себе. Все это будет сделано в системе управления службами, правильно.

Поэтому, когда вы побежали stunnel по командную строку, как, что, он должен был бы сделать оболочку ждать, пока вы не расторгнут/остановить процесс.

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

Это то, что systemd в людей, наивно называть "новым стилем" способ запуска деймонов. На самом деле, это просто так, что многими пользователями давно говорю, чтобы запустить деймонов в течение последних двух десятилетий, и что IBM уже сказала За последние четверть века.

Что непривилегированной учетной записи пользователя не должно быть никого, который может быть указан в качестве владельца файлов. Служба в вопрос не нуждается в собственности, разрешение на какие-либо файлы или каталоги на всех, поэтому непривилегированной учетной записи пользователя должен быть создан специально для этой цели, что-то вроде:

команды useradd --Шелл /usr/Бен/верно для MySQL stunnel-д

С помощью chroot() среда для этого-это на самом деле нетривиальная настройка прямо в systemd, потому что /ОГРН/stunnel и все файлы, которые он читает (который по своим укор в дополнение к файл сертификата и файл конфигурации также включает в себя довольно много вещей; с /dev/нуль, НСС настройки системы, и часовой пояс базы данных) должны быть настроены с BindReadOnlyPaths. Более простой подход состоит в защите... механизм.

Файлы конфигурации

Сокет описывается устройство гнезда. stunnel не понимает LISTEN_FDS протокола, но это ЮКГПИ-совместимый протокол TCP. Поэтому блок сокет описать принимающего сокета:

; в /etc/systemd в/Услуги/для MySQL stunnel.гнездо
[Блок]
Описание=SSL оболочку для MySQL
Документация=

[Розетка]
ListenStream=127.0.0.1:в MySQL
ListenStream=[::1]:в MySQL
Принимаем=да
NoDelay=да

[Установите]
WantedBy=Multi-потребителя.цель

Обратите внимание, что это гнездо , которое получает включен/отключен/запущен/остановлен здесь, с systemctl. На обслуживание, описывается сервисный модуль, автоматически запускается по требованию сокетом. Потому что это принятие гнездо, Это устройство обслуживание шаблон. Он описывает все привилегии удаления и установки, управления службой:

; /etc/systemd/service/[email protected]
[Блок]
Описание=SSL оболочку для MySQL
Документация=

[Услуги]
Тип=простой
Пользователь=MySQL-это stunnel-д
ProtectHome=да
ProtectSystem=строгий
PrivateTmp=да
StandardInput=гнездо
StandardOutput=гнездо
StandardError=журнал
ExecStart=/ОГРН/stunnel в /etc/stunnel/MySQL и stunnel.конф

В stunnel файл конфигурации не потом разобраться в любой вещи, что служба управления делает для этого:

# файл /etc/stunnel/MySQL и stunnel.конф
верняк = /и т. д./ИПК/ТЛС/сертификаты/stunnel.УГР
клиент = да
на переднем плане = да
подключения = 10.0.0.3:3307

Бонусный контент

Да, это многими способ. Передать эти два блока файлов путем конвертирования-добавлена единиц от самой нош набор инструментов и один получает запуск и обслуживание программы (среди нескольких других), которые иллюстрируют, как это делается многими, с любой набор загрузкой по цепочке ЮКГПИ и другие инструменты:

% система-контроль конвертировать-добавлена единиц ./в MySQL-stunnel.гнездо
преобразования-systemd в части: предупреждения: ./[email protected]: принуждение установка: [услуги] StandardError = лог
преобразования-systemd в части: предупреждения: ./в MySQL-stunnel.гнездо: неиспользуемый параметр: [блок] документация = 
преобразования-systemd в части: предупреждения: ./[email protected]: неиспользуемый параметр: [услуги] standarderror = журнал
преобразования-systemd в части: предупреждения: ./[email protected]: неиспользованный задание: [группа] документация = 
% система-контроль кат ./в MySQL-stunnel
старт:#!/бин/нош 
старт:#запустить созданный файл с ./в MySQL-stunnel.гнездо
старт:правда
остановка:#!/бин/нош
остановка:#стоп-файл, сгенерированный ./в MySQL-stunnel.гнездо
остановка:правда
запуска:#!/бин/нош
выполните:#запустить созданный файл с ./в MySQL-stunnel.гнездо
выполните:#SSL оболочку для MySQL
запуск:TCP-сокет-слушать 127.0.0.1 в MySQL
выполнить:TCP-сокет-слушать "::1" в MySQL
бег:шаг-в-управление-группы ../MySQL и stunnel.услуги
запуск:envuidgid --дополнительный -- по MySQL-stunnel-д
запуск:в userenv-fromenv
выполнить:отключение --крепление
запуск:установить-гора-объект --рекурсивные раб /
выполнить:сделать-частная-ПС --темп --дома
выполнить:сделать-только для чтения-ПС --ОС --и т. д
запуск:установка-крепление-объект --рекурсивные общая /
запуск:setuidgid --дополнительный -- по MySQL-stunnel-д
запуск:TCP-сокет-принимать-нет задержки
запускаем:./услуги
сервис:#!/бин/нош
созданная служба: Service файл#от ./[email protected]
сервис:#SSL оболочку для MySQL
служба:/бин/stunnel в /etc/stunnel/MySQL и stunnel.конф
перезагрузка:#!/Бен/ш
перезагрузка: файл#перезапустить создается из ./[email protected]
перезагрузка:старпома ложь # игнорировать аргументы скрипта 
% 

Дальнейшее чтение