iptables
내 네트워크 활동을 디버그하기 위해 로깅 기능을 사용하고 있습니다 . 출력되는 커널 로그에서 메시지를 --log-prefix
고유하게 식별하기 위해 매개변수와 함께 특정 접두사를 사용합니다 .iptables
::IPT::LOG::
rsyslog
이런 방식으로 표시된 메시지를 별도의 로그 파일로 리디렉션하도록 구성하려면 어떻게 해야 합니까 ? 맨 페이지는 rsyslog
나에게 너무 비밀스러워 보입니다.
답변1
선택기 기반 필터링 외에도 rsyslogd는 로그 메시지 속성에서 발견된 패턴을 필터링할 수 있습니다. 원하는 작업을 수행하려면 iptables 규칙에서 사용하는 문자열과 일치하는 속성 기반 필터를 생성할 수 있습니다. iptables 규칙에서 이를 사용 하려면 --log-prefix "unique_prefix: "
rsyslog.conf에 다음을 추가해야 합니다.
:msg,startswith,"unique_prefix" /var/log/iptables
이 규칙은 접두사에 대한 로그 메시지를 테스트하고 /var/log/iptables(rsyslog가 메시지를 보내도록 구성된 다른 위치에 추가)로 보냅니다. 다른 곳이 아닌 /var/log/iptables에 메시지를 표시해야 하는 경우 새 규칙을 다른 규칙 위에 배치하고 그 뒤에 포함을 추가하세요 & ~
.
:msg,startswith,"unique_prefix" /var/log/iptables
& ~
#
# The rest of my rules appear below
# ...
*.info;mail.none;authpriv.none;cron.none /var/log/messages
Rsyslog 규칙에는 여러 작업이 있을 수 있습니다. 후속 작업은 앰퍼샌드( )로 시작하는 새 줄에 정의됩니다 &
. 위의 예에서 첫 번째 규칙에는 출력을 /var/log/iptables로 보낸 다음 메시지를 삭제하는 두 가지 작업이 있습니다( ~
). 바라보다작업에 대한 rsyslog 문서그리고필터이 답변의 규칙에 대한 추가 정보
성능상의 이유가 startswith
아닌 사용을 위해 편집되었습니다 . contains
iptables는 --log-prefix
실제로 접두사이므로 메시지 시작 부분에 표시됩니다.
답변2
내 경험에 따르면 파일이 구문 분석되는 방식의 특성을 고려할 때 의 rsyslog.conf
추가 구성 줄은 /etc/rsyslog.conf
다른 모든 구성 줄보다 앞에 있어야 합니다. 파일 끝에 추가하면 ip-tables 로깅이 계속 파일에 추가되고 파일 /var/log/messages
로 리디렉션됩니다 ./var/log/iptables.log