답변:
syslog-ng와 stunnel을 사용해 보셨습니까?
노트:
Stunnel ( http://www.stunnel.org )은 Unix와 Windows 모두에서 사용 가능한 SSL (Secure Sockets Layer) 내부의 임의의 TCP 연결을 암호화 할 수있는 프로그램입니다. Stunnel을 사용하면 Stunnel이 암호화를 제공하도록하여 SSL을 인식하지 않는 데몬 및 프로토콜 (POP, IMAP, LDAP 등)을 보호 할 수 있으므로 데몬 코드를 변경할 필요가 없습니다.
짧은 대답 : VPN
그것은 과잉으로 보일지 모르지만 정답이며 설정하기가 그렇게 복잡하지 않습니다.
Rsyslog가이를 수행 할 수 있습니다. TLS를 사용하여 Syslog 트래픽 암호화
무료 키위 보안 터널 http://www.solarwinds.com/products/kiwi_syslog_server/related_tools.aspx를 확인할 수도 있습니다 .
syslog-ng 또는 TCP를 지원하는 다른 syslog 데몬을 사용하십시오.
암호화 된 터널을 통해 데이터를 보냅니다. ssh 터널을 사용하지 마십시오. 너무 터무니 없습니다.
UDP syslog는 오래 전에 제거되어 왔던 역사적으로 손상된 프로토콜입니다. 공급 업체에서 기본적으로 제공하는 경우 공급 업체에 의지하십시오.
공급 업체가 각 메시지를 보내기 전에 서명하는 syslog 솔루션을 제공하지 않으면 그 메시지에 기대십시오.
소프트웨어는 쉽고 알고리즘은 쉽습니다. 기본적으로 설치되는 정치는 아닙니다.
인터넷을 통해 처음에는 로그 데이터를 보내지 않지만 필요한 경우 중앙 위치에 중앙 로그 호스트를 설치합니다.
요즘에는 syslog-ng보다 rsyslog를 선호합니다. 거의 교체 가 불가능하며 TLS / SSL 을 사용하여 암호화 된 데이터 를 보내는 방법 (v3.19.0 기준)을 포함하여 다양한 문서와 방법이 있으며 이전 버전은 여전히 stunnel을 사용할 수 있습니다 .
rsyslog와 syslog-ng에 대한 경험에서 rsyslog는 특히 기존 syslog.conf를 사용하여 추가 할 수 있기 때문에 구성 용이성이 뛰어납니다.
Rsyslog는 Debian Lenny (5.0), Ubuntu 및 Fedora 의 기본 syslog 데몬입니다 .
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/"))
);
};