Назад | Перейти на главную страницу

Пересылать зашифрованные сообщения

У меня есть сервер rsyslog, и мне нужно переслать определенные объекты на удаленный сервер. Я создал шаблон для транспорта как тело HTTP:

template(name="syslogforward" type="list") {
    constant(value="POST / HTTP/1.0\n")
    constant(value="Content-type: text/plain; charset=UTF-8\n")
    constant(value="\n")
    property(name="timereported")
    constant(value=" ")
    property(name="hostname")
    constant(value=" ")
    property(name="app-name")
    constant(value=": ")
    property(name="pri-text")
    property(name="msg")
}

local1.* action(
    Name="Forward_to_remote"
    type="omfwd"
    Template="syslogforward"
    Target="xxx.xxx.xxx.xxx"
    Port="8080"
    Protocol="tcp"
)

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

Я решил свою проблему, написав скрипт Perl, открывающий PIPE на входном конце, перекачивая сообщения с завершением новой строки на удаленный сайт, используя LWP :: UserAgent давая мне свободу в отношении вопросов TLS (использовать сертификат CA или нет, проверять хост или нет). И вместо omfwd я использую ompipe.

Моя конфигурация rsyslog изменилась следующим образом:

template(name="syslogforward" type="list") {
    property(name="timereported")
    constant(value=" ")
    property(name="hostname")
    constant(value=" ")
    property(name="app-name")
    constant(value=": ")
    property(name="pri-text")
    property(name="msg")
    # avoid buffering
    # maybe I should re-think this
    constant(value="\n")
}

local1.* action(
    Name="Forward_to_remote"
    Type="ompipe"
    # just a demo pipe
    Pipe="/tmp/mypipe"
    Template="syslogforward"
)

Затем я пойду и поменяю свой марионеточный модуль ...