Я использую rsyslog (8.37.0-13) в CentOS 8 (CentOS Linux, выпуск 8.1.1911), и я ввожу ошибку в моей конфигурации.
Мой rsyslog.conf:
module(load="imuxsock")
module(load="imjournal")
module(load="imtcp")
module(load="imudp")
global(workDirectory="/var/lib/rsyslog")
include(file="/etc/rsyslog.d/*.conf")
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
Моя подконфигурация:
template(name="template1" type="string" string="/data/%HOSTNAME%-%FROMHOST-IP%.log")
ruleset(name="ruleset1"){
action(type="omfile" dynaFile="template1")
action(type="omfwd" protocol="tcp" target="10.10.10.1" port="2020")
}
input(type="imudp" port="2020" ruleset="ruleset1")
Проверка rsyslog:
# rsyslogd -N1
rsyslogd: version 8.37.0-13.el8, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
Я получаю логи по UDP 2020:
02:56:22.363426 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 751
02:56:22.363434 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 878
02:56:22.363438 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 705
02:56:22.363443 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 695
02:56:22.363448 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 713
02:56:22.363454 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 627
02:56:22.363459 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 713
02:56:22.363466 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 626
02:56:22.363472 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 626
02:56:22.363509 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 861
02:56:22.363518 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 710
02:56:22.363523 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 622
02:56:22.363527 IP 10.10.10.15.40291 > 10.10.10.200.2020: UDP, length 626
Но у меня нет журналов для записи в папку / data и ничего не ждёт до 10.10.10.1_TCP2020:
# pwd
/data/
# ls -Ral
.:
total 0
drw-r--r--. 2 root adm 6 5 mai 10:03 .
drw-r--r--. 5 root adm 50 5 mai 10:03 ..
]# tcpdump -i any tcp -nn port 2020
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
> Nothing
если есть сомнения, я отключил SELinux, но проблема та же.
У кого-нибудь есть идея исправить это?
Спасибо
РЕДАКТИРОВАТЬ :
После отключения SELinux, перезагрузки и перезапуска служб все в порядке.
Теперь я ищу разрешение с помощью Selinux. Я сделаю это :
# chcon -R --reference /var/log /data/
# chcon -R --reference /etc/rsyslog.conf /etc/rsyslog.d/
# systemctl restart rsyslog
Без изменений ... Я перезагружаюсь и без изменений
РЕДАКТИРОВАТЬ 2:
Я проверил журнал аудита:
# sealert -a /var/log/audit/audit.log
100% done
found 0 alerts in /var/log/audit/audit.log
РЕДАКТИРОВАТЬ 3:
Поведение случайное. После перезагрузки подумал о проблеме с SELinux. Однако после повторной деактивации и перезапуска SELinux он больше не работает. Это интригует, я не понимаю, чем это вызвано ...
РЕДАКТИРОВАТЬ 4:
Проблема в огне ...
# firewall-offline-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# nft list table filter
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
# nft list table security
table ip security {
chain INPUT {
type filter hook input priority 150; policy accept;
}
chain FORWARD {
type filter hook forward priority 150; policy accept;
}
chain OUTPUT {
type filter hook output priority 150; policy accept;
}
}
# nft list table raw
table ip raw {
chain PREROUTING {
type filter hook prerouting priority -300; policy accept;
}
chain OUTPUT {
type filter hook output priority -300; policy accept;
}
}
# nft list table mangle
table ip mangle {
chain PREROUTING {
type filter hook prerouting priority -150; policy accept;
}
chain INPUT {
type filter hook input priority -150; policy accept;
}
chain FORWARD {
type filter hook forward priority -150; policy accept;
}
chain OUTPUT {
type route hook output priority -150; policy accept;
}
chain POSTROUTING {
type filter hook postrouting priority -150; policy accept;
}
}
# nft list table nat
table ip nat {
chain PREROUTING {
type nat hook prerouting priority -100; policy accept;
}
chain INPUT {
type nat hook input priority 100; policy accept;
}
chain POSTROUTING {
type nat hook postrouting priority 100; policy accept;
}
chain OUTPUT {
type nat hook output priority -100; policy accept;
}
}
# nft list table bridge nat
table bridge nat {
chain PREROUTING {
type filter hook prerouting priority -300; policy accept;
}
chain OUTPUT {
type filter hook output priority 100; policy accept;
}
chain POSTROUTING {
type filter hook postrouting priority 300; policy accept;
}
}
Я удивлен. Для меня firewalld - это наложение nftables или iptables. Однако, как видно из предыдущих команд, для каждой из них ничего не настраивается.
РЕДАКТИРОВАТЬ 5:
После разрешения firewalld (но не понимаю, потому что nft и iptables пусты) и разрешения SELinux, у меня есть другая проблема:
Новый файл, созданный rsyslog, имеет system_u: object_r: default_t: s0 вместо system_u: object_r: var_log_t: s0. Как сделать так, чтобы каждый созданный файл имел этот контекст?
У тебя есть идеи?
Вам необходимо загрузить модуль "omfwd". Возможно, весь набор правил отменяется из-за действия, которое невозможно выполнить?