Як би ви надійно надсилали syslog * через загальнодоступний Інтернет?


20

Тож у мене є кілька серверів, на які я хотів би ввійти централізовано, але очевидно, я не хочу безпечно передавати дані через Інтернет.

Я спробував syslog-ng, але не можу змусити його працювати безпечним способом, нормальний ssh -L PORT:localhost:PORT user@hostтунель SSH не працюватиме, тому що я вважаю, що журнали, здається, надходять з локальної машини, а VPN здається трохи схожим на overkill .

Відповіді:


19

Ви пробували syslog-ng та stunnel?

  1. Встановити Stunnel
  2. Створіть файли сертифікатів для syslog-ng через Stunnel
  3. Налаштування оглушення для використання за допомогою syslog-ng
  4. Встановити syslog-ng
  5. Налаштування syslog-ng
  6. Зроблено!

ПРИМІТКА:

Stunnel ( http://www.stunnel.org ) - програма, яка дозволяє зашифрувати довільні TCP-з'єднання всередині SSL (Secure Sockets Layer), доступні як для Unix, так і для Windows. Stunnel може дозволити вам захистити демони та протоколи, що не знають SSL (наприклад, POP, IMAP, LDAP тощо), за допомогою Stunnel забезпечити шифрування, не вимагаючи змін у коді демона.


Це те, що ми використовуємо для надсилання syslog з нашого DMZ у нашу внутрішню мережу. Добре працює.
Каміль Кісієль

3
Для чого це варто, syslog-ng 3.x підтримує TLS на власному рівні, тому більше не потрібно використовувати stunnel.
синтезатор

12

Коротка відповідь: VPN

Це може здатися непосильним, але це правильна відповідь і не так вже й складно налаштувати.


правильно !; openvpn.net дуже просто налаштувати і просто працює.
pQd

Мало того, але це також дає вам набагато більше гнучкості для безпечного управління та моніторингу віддалених машин. OpenVPN (або навіть IPSec) буде набагато краще в довгостроковій перспективі.
Крістофер Кашелл

9

Ви все ще не відкриваєте порт до Інтернету за допомогою цього рішення? Я все одно не люблю робити це за щось подібне.
Кевін Куфал

3
Кевін: Передбачається, що ваш сервер syslog очікує трафіку від певних заздалегідь визначених IP-адрес, що легко здійснити за допомогою iptables
Метт Сіммонс

Більшість постачальників хмарних технологій також дозволяють гнучким групам безпеки, що дозволяє переглядати конкретні порти з певних IP-адрес.
jorfus


1

Використовуйте syslog-ng або інший демон-syslog, який підтримує TCP.

Надіслати дані через зашифрований тунель. Не використовуйте ssh тунель, це занадто химерно.

Система UDP - це історичний пошкоджений протокол, який мав би бути давно усунутий. Якщо ваш постачальник надає це за замовчуванням, будь ласка, спирайтеся на них.

Якщо ваш постачальник не пропонує рішення системи syslog, яке підписує кожне повідомлення, перш ніж надсилати його, спирайтеся на них.

Програмне забезпечення просте, алгоритми - прості. Політика його встановлення за замовчуванням не є.


Систем UDP має певні переваги, коли він не спричиняє відключень, якщо місце призначення зменшується протягом більш тривалих періодів. Не надто велика справа з syslog-ng, але може бути кошмаром у rsyslog. Цінність шифрування - це ніщо, що я хочу сумніватися, кажучи це.
Флоріан Хейгл

1

Я, мабуть, не хотів би надсилати дані журналу в Інтернеті в першу чергу, але встановити централізований лог-хост в ті місця, де це потрібно.

У наші дні я віддаю перевагу rsyslog перед syslog-ng. Це майже скорочення заміни і має безліч паперів та практичних запитів, включаючи інформацію про надсилання зашифрованих даних за допомогою TLS / SSL (станом на v3.19.0), старіші версії все ще можуть використовувати оглушення .

З мого досвіду як з rsyslog, так і з syslog-ng, rsyslog виграє у простоті конфігурації, тим більше, що ви можете використовувати свій існуючий syslog.conf і додати до цього.

Що для цього варто, Rsyslog - це демон за системою Delog Lenny (5.0), Ubuntu та Fedora за замовчуванням .


Це дуже погано, що rsyslog ще не додав новий (запланований) синтаксис файлу конфігурації. Зараз налаштування rsyslog для чогось нетривіального є болісним порівняно з syslog-ng.
Крістофер Кашелл

0

Я використовую rsyslog з tls. Існує деяка підготовча робота поза сферою: Розгортайте локальний ЦС, додайте сертифікат CA до кожного хоста, генеруйте індивідуальні серти для кожного хоста. (тепер усі ваші господарі можуть спілкуватись між собою ssl)

Також мені потрібно було встановити rsyslog-gnutls:

sudo apt-get install rsyslog-gnutls

Я також обмежив вихідне з'єднання syslog (tcp 514), тому мої хости можуть підключатися лише до мого сервера rsyslog, і створив вхідний список списку на стороні сервера rsyslog, щоб тільки мої хости могли підключатися.

в /etc/rsyslog.conf

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /etc/my_keys/internal_CA.crt
$DefaultNetstreamDriverCertFile /etc/my_keys/my_hostname.crt
$DefaultNetstreamDriverKeyFile /etc/my_keys/my_hostname.key

$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer my_syslog_server.com
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode
*.* @@my_syslog_server.com:514 # forward everything to remote server

Схоже, що налаштування для syslog-ng ще простіше. (хоча я цього не пробував) syslog-ng /etc/syslog-ng/conf.d/99-graylog2.conf

destination remote-server {  
    tcp ("my_syslog_server.com" port(514)
        tls(ca_dir("/etc/my_keys/"))
    );
};
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.