Да, вы можете безопасно передавать логи от rsyslog к syslog-ng через интернет, используя шифрование TLS. Для этого вам не обязательно использовать дополнительные сложные шаги; вы можете настроить rsyslog для шифрования данных с помощью TLS, а затем передать их на syslog-ng. Давайте рассмотрим, как это осуществить.
### Конфигурация rsyslog
1. **Установка необходимых пакетов**: Убедитесь, что у вас установлен rsyslog с поддержкой TLS. Проверить это можно с помощью команды:
```bash
rsyslogd -N1
```
Если поддержка TLS включена, вы увидите соответствующие сообщения.
2. **Создание сертификатов**: Вам нужно создать или получить SSL-сертификаты и ключи для вашего rsyslog-сервера и клиента. Вы можете использовать такие инструменты, как OpenSSL, для создания самоподписанных сертификатов.
Пример команды для создания сертификата:
```bash
openssl req -x509 -newkey rsa:2048 -keyout private.key -out cert.pem -days 365 -nodes
```
3. **Настройка rsyslog для использования TLS**: В конфигурационном файле `rsyslog.conf` или в отдельном файле `/etc/rsyslog.d/10-ssl.conf` добавьте следующие параметры:
```conf
# Установите путь к сертификату и ключу
global(
DefaultNetstreamDriver="gtls" # Используйте gtls для Secure TCP
DefaultNetstreamDriverMode="1" # 1 - требуется шифрование
DefaultNetstreamDriverAuthMode="x509/name"
)
# Настройка для отправки логов
*.* @@<адрес_сервера_syslog-ng>:514 # Используйте @@ для TCP
```
### Конфигурация syslog-ng
4. **Настройка syslog-ng для получения log через SSL**: На сервере с syslog-ng выполните следующие действия:
1. Убедитесь, что вы установили необходимые модули для поддержки TLS.
2. Настройте `syslog-ng.conf` для приема подключений по TLS:
```conf
@version: 3.29
source s_net {
tcp(port(514)
tls(
key-file("/path/to/private.key")
cert-file("/path/to/cert.pem")
ca-dir("/path/to/ca/dir")
)
);
};
destination d_log {
file("/var/log/remote/$HOST/$YEAR$MONTH$DAY.log");
};
log {
source(s_net);
destination(d_log);
};
```
5. **Перезапустите обе службы** для применения настроек.
### Проверка соединения
6. **Тестирование**: Проверьте, что логи действительно передаются через зашифрованное соединение. Вы можете использовать инструменты мониторинга сети или журналы на обеих сторонах, чтобы убедиться, что логи отправляются и принимаются.
### Примечание
Если вы не хотите использовать дополнительные сложности или хотите избежать настройки TLS, альтернативой будет использование VPN для безопасной передачи логов. Но это требует дополнительных шагов, связанных с установкой и настройкой VPN-сервера и клиента.
Используя TLS, вы тем не менее обеспечиваете надежное шифрование, не добавляя ненужной сложности в процесс передачи логов.