web-dev-qa-db-ja.com

公衆インターネット経由でどのようにsyslogを「安全に」送信しますか?

したがって、集中的にログを記録したいサーバーがいくつかありますが、インターネット上で安全にデータを渡したくないのは明らかです。

Syslog-ngを試しましたが、安全な方法で機能させることができません。ログがローカルマシンとVPNから送信されているように見えるため、通常のssh -L PORT:localhost:PORT user@Host SSHトンネルは機能しません。少しやり過ぎのようです。

21
JamesHannah

Syslog-ngとstunnelを試しましたか?

  1. Stunnelをインストールする
  2. Stunnelを介してsyslog-ngの証明書ファイルを作成する
  3. Syslog-ngで使用するためのstunnelの構成
  4. Syslog-ngをインストールする
  5. Syslog-ngを構成する
  6. やった!

注意:

Stunnel( http://www.stunnel.org )は、両方のUnixで利用可能なSSL(Secure Sockets Layer)内の任意のTCP接続を暗号化できるようにするプログラムです。 Stunnelを使用すると、デーモンのコードを変更せずに暗号化を提供できるため、SSLに対応していないデーモンやプロトコル(POP、IMAP、LDAPなど)を保護できます。

19
KPWINC

短い答え:VPN

やり過ぎに思えるかもしれませんが、これは正しい答えであり、セットアップがそれほど複雑ではありません。

12
Kevin Kuphal

Rsyslogはこれを行うことができます。 TLSによるSyslogトラフィックの暗号化

9
Brian De Smet

また、無料のKiwi Secure Tunnel http://www.solarwinds.com/products/kiwi_syslog_server/related_tools.aspx もご覧ください。

2
Ken Davis

そもそもインターネット経由でログデータを送信することはないでしょうが、必要な場所に集中ログホストをインストールします。

最近では、syslog-ngよりもrsyslogの方を好みます。これはほとんど置き換えられておらず、TLS/SSLを使用した 暗号化されたデータ の送信に関するものを含め、さまざまなペーパーとハウツーがあります(v3.19.0以降)、古いバージョンでも可能です stunnelを使用

Rsyslogとsyslog-ngの両方を使用した私の経験では、特に既存のsyslog.confを使用してそれに追加できるため、rsyslogは設定の容易さで勝っています。

Rsyslogは Debian Lenny (5.0)、 bunt および Fedora のデフォルトのsyslogデーモンです。

1
jtimberman

Syslog-ngまたはTCPをサポートする別のsyslogデーモンを使用します。

暗号化されたトンネルを介してデータを送信します。 sshトンネルを使用しないでください。面倒すぎます。

UDP Syslogは、脳損傷を受けた歴史的なプロトコルであり、ずっと前に排除されるべきでした。ベンダーがデフォルトで提供している場合は、それらに頼ってください。

ベンダーが、送信前に各メッセージに署名するsyslogソリューションを提供していない場合は、それらに頼ってください。

ソフトウェアは簡単で、アルゴリズムも簡単です。デフォルトでインストールするというポリシーは違います。

1
carlito

私はtlsでrsyslogを使用しています。範囲外の準備作業がいくつかあります。ローカルCAを展開し、各ホストに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/"))
    );
};
0
jorfus