dmesg가 방화벽 로그로 가득 차 있습니다.

dmesg가 방화벽 로그로 가득 차 있습니다.

내 iptables에는 삭제된 패킷을 기록하는 규칙이 있습니다.

-A INPUT -i eth0       -j   LOG  --log-prefix "FW: " --log-level 7
-A INPUT -i eth0       -j   DROP

그리고 에는 /etc/rsyslog.conf이러한 로그를 전용 파일로 보내는 또 다른 규칙이 있습니다 /var/log/firewall.log.

:msg, contains, "FW: "                    -/var/log/firewall.log
& ~

로그 나 다른 로그 파일이 & ~넘치지 않도록 로그를 즉시 삭제합니다 .syslog

dmesg이는 방화벽 로그( /var/log/dmesg명령의 출력은 아님 dmesg) 로 가득 차 있다는 점을 제외하면 잘 작동합니다 .

이러한 로그가 에 표시되지 않도록 하는 방법이 있습니까 dmesg?

답변1

NFLOG다음 대신 대상을 사용할 수 있습니다 LOG.

NFLOG
    This target provides logging of matching packets. When this  target  is  set  for  a
    rule, the Linux kernel will pass the packet to the loaded logging backend to log the
    packet. This is usually used in combination with nfnetlink_log as  logging  backend,
    which  will multicast the packet through a netlink socket to the specified multicast
    group. One or more userspace processes may subscribe to the  group  to  receive  the
    packets.  Like  LOG, this is a non-terminating target, i.e. rule traversal continues
    at the next rule.

필요한 것은 nfnetlink_log유능한 로깅 프로그램뿐입니다. 메시지는 그곳으로 이동하고 사용자 공간 프로세스는 패킷을 기록할지 여부를 결정합니다.

시도해 볼 수 있는 또 다른 방법은 LOG규칙을 특정 임계값으로 제한하는 것입니다.

-A INPUT -i eth0 -m limit --limit 10/minutes -j LOG --log-prefix "FW: " --log-level 7
-A INPUT -i eth0 -j DROP

이는 평균적으로 분당 10개의 패킷을 기록합니다. 물론 필요에 따라 조정할 수도 있습니다.

답변2

다음 명령을 사용하여 로그 수준을 7로 설정한 경우:

-A INPUT -i eth0       -j   LOG  --log-prefix "FW: " --log-level 7

그런 다음 레벨 임계값을 dmesg에 전달하여 이러한 메시지를 간단히 필터링할 수 있습니다.

dmesg --level=err,warn

답변3

iptables에서 사용하는 로그 수준과 관련이 있을 수 있습니다. rsyslog 문서에서 알 수 있듯이 로그 수준은 다음과 같습니다. "우선 순위는 오름차순으로 다음 키워드 중 하나입니다: debug, info, 통지, 경고, 경고(경고와 동일), err, 오류(err과 동일), 치명타, 경보, 비상, 패닉( 비상과 동일)." 이름(예: 'notice')을 사용하여 iptables에서 로그 수준을 지정하는 것은 어떻습니까? 이제는 그것이 전혀 문제가 아니라고 생각하기 때문에 확인하지 않고 게시하는 것이 나에게 도움이 됩니다. 위에 설명된 것과 유사한 구성표를 구현했는데 동일한 문제가 발생합니다. 내 centos 7 커널은 v3.10.0이고 v3.5 이후로는 커널 로깅이 /dev/kmsg를 사용하여 수행되는 것으로 보이며 dmesg가 어떻게든 거기에서 입력을 얻는 것으로 가정합니다.

답변4

왜 신경쓰나요? dmesg는 최근 커널 메시지를 인쇄하는 저수준 도구이며 커널에 삭제된 패킷을 기록하도록 요청했습니다.

다른 커널 메시지와 별도의 로그 파일에 iptables 메시지를 기록하도록 시스템의 syslog 시스템을 구성하고 dmesg.

관련 정보