Comment enverriez-vous syslog * en toute sécurité * sur Internet public?

20

J'ai donc quelques serveurs que j'aimerais enregistrer de manière centralisée, mais je ne veux évidemment pas transmettre les données de manière non sécurisée sur Internet.

J'ai essayé syslog-ng mais je ne peux pas le faire fonctionner de manière sécurisée, un ssh -L PORT:localhost:PORT user@hosttunnel SSH normal ne fonctionnera pas parce que je pense que les journaux semblent provenir de la machine locale, et un VPN semble un peu exagéré .

JamesHannah
la source

Réponses:

19

Avez-vous essayé syslog-ng et stunnel?

  1. Installer Stunnel
  2. Créer des fichiers de certificat pour syslog-ng sur Stunnel
  3. Configurer Stunnel pour une utilisation avec syslog-ng
  4. Installer syslog-ng
  5. Configurer syslog-ng
  6. TERMINÉ!

REMARQUE:

Stunnel ( http://www.stunnel.org ) est un programme qui vous permet de crypter des connexions TCP arbitraires à l'intérieur de SSL (Secure Sockets Layer) disponible sur Unix et Windows. Stunnel peut vous permettre de sécuriser des démons et des protocoles non compatibles SSL (comme POP, IMAP, LDAP, etc.) en demandant à Stunnel de fournir le chiffrement, sans aucune modification du code du démon.

KPWINC
la source
C'est ce que nous utilisons pour envoyer Syslog de notre DMZ vers notre réseau interne. Fonctionne bien.
Kamil Kisiel
3
Pour ce que ça vaut, syslog-ng 3.x prend en charge TLS nativement, donc plus besoin d'utiliser stunnel.
synthétiseur
12

Réponse courte: VPN

Cela peut sembler exagéré, mais c'est la bonne réponse et pas si compliquée à mettre en place.

Kevin Kuphal
la source
droite!; openvpn.net est vraiment simple à configurer et fonctionne simplement.
pQd
Non seulement cela, mais cela vous donne également beaucoup plus de flexibilité pour gérer et surveiller les machines distantes en toute sécurité. OpenVPN (ou même IPSec) sera bien meilleur à long terme.
Christopher Cashell
9

Rsyslog peut le faire. Cryptage du trafic Syslog avec TLS

Brian De Smet
la source
N'êtes-vous pas encore en train d'ouvrir un port à Internet avec cette solution? Je serais toujours détestable de faire ça pour quelque chose comme ça.
Kevin Kuphal
3
Kevin: On suppose que votre serveur syslog attendrait du trafic de certaines adresses IP prédéterminées, ce qui est facile à réaliser via iptables
Matt Simmons
La plupart des fournisseurs de cloud permettent également des groupes de sécurité flexibles qui vous permettent de mettre en liste blanche des ports spécifiques à partir d'adresses IP spécifiques.
jorfus
1

Utilisez syslog-ng ou un autre démon syslog qui prend en charge TCP.

Envoyez les données sur un tunnel crypté. N'utilisez pas de tunnel ssh, c'est trop compliqué.

UDP syslog est un protocole historique braindamaged qui aurait dû être éliminé depuis longtemps. Si votre fournisseur le fournit par défaut, veuillez vous y appuyer.

Si votre fournisseur ne fournit pas de solution syslog qui signe chaque message avant de l'envoyer, appuyez-vous dessus.

Le logiciel est simple, les algorithmes sont simples. Les politiques de son installation par défaut ne le sont pas.

carlito
la source
Le syslog UDP présente certains avantages lorsqu'il ne provoque pas de pannes si la destination tombe en panne pendant des périodes plus longues. Pas trop grave avec syslog-ng, mais peut être un cauchemar dans rsyslog. La valeur du cryptage n'est rien que je veux remettre en question en disant cela.
Florian Heigl
1

Je n'enverrais probablement pas de données de journal sur Internet en premier lieu, mais installez un hébergeur centralisé à l'endroit ou aux emplacements où cela est nécessaire.

Ces jours-ci, je préfère rsyslog à syslog-ng. Il s'agit d'un remplacement presque en baisse et propose une variété de documents et de procédures, dont un sur l'envoi de données chiffrées avec TLS / SSL (à partir de la v3.19.0), les anciennes versions peuvent toujours utiliser Stunnel .

D'après mon expérience avec rsyslog et syslog-ng, rsyslog gagne en facilité de configurabilité, d'autant plus que vous pouvez utiliser votre syslog.conf existant et l'ajouter.

Pour ce que ça vaut, Rsyslog est le démon syslog par défaut sur Debian Lenny (5.0), Ubuntu et Fedora .

jtimberman
la source
Il est dommage que rsyslog n'ait pas encore ajouté la nouvelle syntaxe du fichier de configuration (prévu). À l'heure actuelle, la configuration de rsyslog pour tout ce qui n'est pas trivial est pénible par rapport à syslog-ng.
Christopher Cashell
0

J'utilise rsyslog avec tls. Il existe certains travaux de préparation hors de portée: déployez une autorité de certification locale, ajoutez le certificat de l'autorité de certification à chaque hôte, générez des certificats individuels pour chaque hôte. (maintenant tous vos hôtes peuvent se parler ssl)

J'ai également eu besoin d'installer rsyslog-gnutls:

sudo apt-get install rsyslog-gnutls

J'ai également restreint la connexion Syslog sortante (TCP 514) afin que mes hôtes ne puissent se connecter qu'à mon serveur rsyslog et créé une liste blanche entrante côté serveur rsyslog afin que seuls mes hôtes puissent se connecter.

dans /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

Il semble que la configuration de syslog-ng soit encore plus simple. (bien que je n'aie pas essayé) 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/"))
    );
};
jorfus
la source