내 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과 동일), 중요, 경보, 비상, 공황(및 비상). "iptables에서 로그 수준을 지정하기 위해 "notice"라는 이름을 사용하는 것은 어떻습니까? 지금은 전혀 문제가 되지 않는다고 생각하므로 확인하지 않고 게시하는 것은 제 권리입니다. 위와 비슷한 방식을 구현했지만 또한 같은 질문입니다. 내 centos 7 커널은 v3.10.0입니다. v3.5부터 커널 로깅은 /dev/kmsg를 사용하여 수행되는 것 같습니다. dmesg가 어떻게든 거기에서 입력을 받는 것 같습니다.
답변4
왜 신경쓰나요? dmesg
최근 커널 메시지를 인쇄하는 저수준 도구이며 실제로 커널에 삭제된 패킷을 기록하도록 요청합니다.
다른 커널 메시지와 다른 로그 파일에 iptables 메시지를 기록하도록 시스템의 syslog 시스템을 구성하고 dmesg
.