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


20

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

syslog-ngを試しましたが、安全な方法で動作させることはできません。ssh -L PORT:localhost:PORT user@hostログがローカルマシンから来ているように見えるため、通常のSSHトンネルは動作しません。 。

回答:


19

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とWindowsの両方で利用可能なSSL(Secure Sockets Layer)内の任意のTCP接続を暗号化できるプログラムです。Stunnelは、Stunnelに暗号化を提供させ、デーモンのコードを変更することなく、非SSL対応のデーモンとプロトコル(POP、IMAP、LDAPなど)を保護することができます。


これは、syslogをDMZから内部ネットワークに送信するために使用するものです。うまくいく。
カミルキジエル2009年

3
価値のあるものとして、syslog-ng 3.xはTLSをネイティブでサポートするため、stunnelを使用する必要はありません。
シンセサイザー

12

短い答え:VPN

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


右!; openvpn.netセットアップがとても簡単で、機能します。
pQd 2009年

それだけでなく、リモートマシンを安全に管理および監視するための柔軟性も大幅に向上します。長期的にはOpenVPN(またはIPSec)の方がはるかに優れています。
クリストファーキャシェル09年

9

Rsyslogはこれを行うことができます。TLSを使用したSyslogトラフィックの暗号化


このソリューションでまだインターネットへのポートを開いていませんか?私はまだこのようなことをするのが嫌いです。
ケビンクファー

3
ケビン:あなたのsyslogサーバがiptablesを経由して達成することは容易である、特定の所定のIPアドレスからのトラフィックを期待されることを想定しています
マット・シモンズ

ほとんどのクラウドプロバイダーは、特定のIPから特定のポートをホワイトリストに登録できる柔軟なセキュリティグループも許可しています。
ヨルフス


1

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

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

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

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

ソフトウェアは簡単で、アルゴリズムは簡単です。デフォルトでインストールするという方針はそうではありません。


UDP syslogには、宛先が長期間ダウンしても停止を引き起こさないという利点があります。syslog-ngで大したことではありませんが、rsyslogで悪夢になります。暗号化の価値は、私がそれを言って疑問に思うものではありません。
フロリアンハイグル

1

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

最近では、syslog-ngよりもrsyslogの方が好きです。差し替えに近いものであり、TLS / SSL(v3.19.0時点)で暗号化されたデータを送信することに関するものを含む、さまざまなペーパーとハウツーがありますが、古いバージョンでも引き続きstunnelを使用できます

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

Rsyslogは、価値のあるものとして、Debian Lenny(5.0)、UbuntuFedoraのデフォルトのsyslogデーモンです。


rsyslogがまだ新しい(予定されている)構成ファイルの構文を追加していないのは残念です。現時点では、syslog-ngと比較して、取るに足らないものにrsyslogを設定するのは苦痛です。
クリストファーキャシェル09年

0

tlsでrsyslogを使用しています。範囲外の準備作業がいくつかあります。ローカルCAを展開し、CAの証明書を各ホストに追加し、各ホストの個別の証明書を生成します。(すべてのホストが相互にsslを通信できるようになりました)

rsyslog-gnutlsもインストールする必要がありました。

sudo apt-get install rsyslog-gnutls

また、ホストがrsyslogサーバーにのみ接続できるように発信syslog接続(tcp 514)を制限し、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/"))
    );
};
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.