Ubuntu 18.04.3 시스템에 들어오는 모든 TCP 연결을 기록하고 싶습니다. 이것은 잘 작동하며 소개로서 문제가 되지 않습니다. 저는 crontab에서 다음 명령을 사용합니다.
@reboot /sbin/iptables -I INPUT -p tcp --syn -j LOG --log-prefix='[tcpconnections] '
(이것이 그다지 좋은 접근 방식은 아니라는 것을 알고 있지만 보안 문제는 아니므로 이 간단한 접근 방식에 만족합니다. 다시 말하지만, 그것은 문제가 아닙니다.)
물론 이로 인해 시스템 로그에 많은 로그 줄이 생성됩니다. 따라서 정보를 별도의 로그 파일로 다시 라우팅하고 싶습니다.
/var/log/tcpconnections.log
새 파일을 생성하여 로깅 정보를 이 별도의 파일에 넣을 수 있었습니다.
/etc/rsyslog.d/tcpconnections.conf
내용이 있는
if $msg contains "[tcpconnections]" then {
/var/log/tcpconnections.log
stop
}
그런 다음 rsyslog 서비스 및/또는 전체 시스템을 다시 시작하십시오.
그러나 로그 항목은 시스템 로그와 별도의 로그 파일에 모두 나타납니다. 내가 아는 한 "중지"는 이런 일이 발생하지 않도록 해야 합니다.
내가 시도한 것들도 성공하지 못했습니다.
~ 중지하는 대신 더 이상 사용되지 않는 것으로 나타났습니다.
:msg,contains,"[tcpconnections] " /var/log/tcpconnections.log
& ~
위의 내용과 해당 주제에 대해 Google에서 검색할 수 있는 모든 항목의 거의 모든 조합입니다.
내 오류가 어디에 있는지 아는 사람 있나요? 이에 대한 도움을 주시면 정말 감사하겠습니다. 모두 감사드립니다.
답변1
저도 같은 문제가 있어서 주문을 처리하는 것을 잊어버렸습니다. /etc/rsyslog.d/00_tcpconnections.conf
에 있도록 파일 이름을 다음과 같이 지정해야 합니다 /etc/rsyslog.d/
. 다음은 ocragent 스크립트의 예입니다.
# copy to /etc/rsyslog.d/00_ocragent.conf
if ( $programname == "ocragent" ) then {
action(type="omfile" file="/var/log/ocragent.log" flushOnTXEnd="on")
stop
}