Rsyslog через TLS

Ваша проблема наиболее вероятна не на уровне файловой системы.

Если Вы думаете, что хакер взломал ее путь сервер и затем отредактировал некоторые файлы, необходимо заблокировать хакеров путь в к машине, не просто препятствуя тому, чтобы она редактировала определенные файлы.

Преступник находится, вероятно, в Вашем веб-приложении. Существует много интересных вещей читать по BadwareBusters.org.

0
задан 4 March 2014 в 15:46
3 ответа

Мне не удалось найти рабочую конфигурацию для rsyslog 5.8 (из репозиториев CentOS).

Вместо этого я установил официальные репозитории rsyslog и запустил rsyslog 7.6.0 за считанные минуты с эта конфигурация.

1
ответ дан 4 December 2019 в 11:17

В CentOS / RedHat вы также должны включить порт SSL rsyslog в SElinux. Что-то типа semanage port -a -t syslogd_port_t -p tcp 10514 должен помочь.

Вы можете проверить текущий порт системного журнала с помощью sudo semanage port -l | grep syslog

Также вы можете попробовать запустить rsyslog в режиме отладки, чтобы увидеть, что происходит: Остановите демон rsyslog, затем

экспортируйте RSYSLOG_DEBUGLOG = "/ path / to / debuglog"

export RSYSLOG_DEBUG = "Debug"

теперь запустите rsyslog с:

rsyslogd -dn

Чтобы проверить, используется ли синтаксис допустимое использование:

rsyslogd -N 1

2
ответ дан 4 December 2019 в 11:17

Rsyslog 5.8 с Centos 6.9 у меня работает

https://www.youtube.com/watch?v=pgcdHmsfmJM&t=3s

Создание сертификатов в ЦС (центр сертификации )

sudo mkidr /etc/ssl/rsyslog/   
cd /etc/ssl/rsyslog/

Установите gnutls-utils

sudo yum install -y gnutls-utils

Сгенерируйте закрытый ключ CA (ЗАЩИТИТЕ ЭТО КЛЮЧ!)

sudo certtool --generate-privkey --outfile CA-key.pem
sudo chmod 400 CA-key.pem

Сгенерируйте открытый ключ CA

sudo certtool --generate-self-signed --load-privkey CA-key.pem --outfile CA.pem

Common name: CA.EXAMPLE.COM
The certificate will expire in (days): 3650
Does the certificate belong to an authority? (Y/N): y
Will the certificate be used to sign other certificates? (Y/N): y
Will the certificate be used to sign CRLs? (y/N): y

Создайте закрытый ключ СЕРВЕРА на CA (центр сертификации)

sudo certtool --generate-privkey --outfile SERVER-key.pem --bits 2048

Создайте запрос сертификата для СЕРВЕР

sudo certtool --generate-request --load-privkey SERVER-key.pem --outfile SERVER-request.pem 

Common name: SERVER.EXAMPLE.COM

Подпишите ключ СЕРВЕРА и разрешите паре ключей доверять другим серверам.

sudo certtool --generate-certificate --load-request SERVER-request.pem --outfile SERVER-cert.pem --load-ca-certificate CA.pem --load-ca-privkey CA-key.pem

The certificate will expire in (days): 1000
Is this a TLS web client certificate? (Y/N): y
Is this also a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: SERVER.EXAMPLE.COM

Создайте закрытый ключ КЛИЕНТА в ЦС (центр сертификации)

sudo certtool --generate-privkey --outfile CLIENT-key.pem --bits 2048

Создайте запрос сертификата для КЛИЕНТА

sudo certtool --generate-request --load-privkey CLIENT-key.pem --outfile CLIENT-request.pem 

Common name: CLIENT.EXAMPLE.ORG

Подпишите ключ КЛИЕНТА и разрешите пара ключей, которой доверяют другие серверы

sudo certtool --generate-certificate --load-request CLIENT-request.pem --outfile CLIENT-cert.pem --load-ca-certificate CA.pem --load-ca-privkey CA-key.pem

The certificate will expire in (days): 1000
Is this a TLS web client certificate? (Y/N): y
Is this also a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: CLIENT.EXAMPLE.ORG

Удалить ключи запроса

sudo rm *-request.pem

Закрытый / ключ Scp SERVER и CA.pem для SERVER.EXAMPLE.COM Скопируйте сертификаты с помощью scp или зашифрованного USB

sudo -u root scp -i ~/.ssh/id_rsa CA.pem SERVER-* root@172.16.9.30:/etc/ssl/rsyslog/

закрытого ключа / ключа SCP CLIENT и CA.pem в CLIENT.EXAMPLE.COM

sudo -u root scp -i ~/.ssh/id_rsa CA.pem CLIENT-* root@172.16.9.40:/etc/ssl/rsyslog/

Установите драйвер gtls на СЕРВЕР и КЛИЕНТ

sudo yum install rsyslog-gnutls -y

Настроить СЕРВЕР

sudo vi /etc/rsyslog.d/rsyslog-tls.conf

# Add
# Listen for TCP
$ModLoad imtcp
# Set gtls driver
$DefaultNetstreamDriver gtls
# Certs
$DefaultNetstreamDriverCAFile /etc/ssl/rsyslog/CA.pem
$DefaultNetstreamDriverCertFile /etc/ssl/rsyslog/SERVER-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/rsyslog/SERVER-key.pem
# Auth mode
$InputTCPServerStreamDriverAuthMode x509/name
# Only allow EXAMPLE.COM domain
$InputTCPServerStreamDriverPermittedPeer *.EXAMPLE.COM
# Only use TLS
$InputTCPServerStreamDriverMode 1 
# Listen on port 6514
# If you want to use other port configure selinux
$InputTCPServerRun 6514

Открыть порт 6514 на вашем брандмауэре

sudo vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6514 -j ACCEPT

sudo /etc/init.d/iptables reload

Перезапустите демон rsyslog

sudo /etc/init.d/rsyslog restart

Настройте КЛИЕНТА

sudo vi /etc/rsyslog.d/rsyslog-tls.conf

# Add
# Set gtls driver
$DefaultNetstreamDriver gtls
# Certs
$DefaultNetstreamDriverCAFile /etc/ssl/rsyslog/CA.pem
$DefaultNetstreamDriverCertFile /etc/ssl/rsyslog/CLIENT-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/rsyslog/CLIENT-key.pem
# Auth mode
$ActionSendStreamDriverAuthMode x509/name
# Only send log to SERVER.EXAMPLE.COM host
$ActionSendStreamDriverPermittedPeer SERVER.EXAMPLE.COM
# Only use TLS
$ActionSendStreamDriverMode 1
# Forward everithing to SERVER.EXAMPLE.COM
# If you use hostnames instead of IP configure DNS or /etc/hosts
*.* @@SERVER.EXAMPLE.COM:6514

Перезапустите демон rsyslog

sudo /etc/init.d/rsyslog restart

Для тестирования на СЕРВЕРЕ запустите tcpdump и отправьте журналы с КЛИЕНТА

sudo yum install tcpdump -y
sudo tcpdump -i eth0 tcp port 6514 -X -s 0 -nn
3
ответ дан 4 December 2019 в 11:17

Теги

Похожие вопросы