우분투 16.04를 실행 중입니다.
Linux 커널에는 패킷 필터 조건에 대한 몇 가지 로그 문이 있는데 실제로 트리거되는지 확인하고 싶습니다.
예는 다음과 같습니다:
/* Smaller that minimal TCP header? */
th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
if (th == NULL) {
if (LOG_INVALID(net, IPPROTO_TCP))
nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
"nf_ct_tcp: short packet ");
return -NF_ACCEPT;
}
https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c 760번 국도
nf_log_packet() 출력을 어딘가에서 볼 수 있도록 Linux 시스템을 어떻게 설정합니까? 아마도 /var/log/syslog나 다른 목적지에 있을 것입니다.
어디에 기록되어 있나요? 로깅을 활성화하는 방법은 무엇입니까?
답변1
따라서 다음 단계가 작동합니다.
커널 로깅 출력을 캡처하기 위해 일부 플러그인과 상호 작용하는 Ulog를 설치합니다.
sudo apt 설치 ulog2
그런 다음 sudo echo "255" > /proc/sys/net/netfilter/nf_conntrack_log_invalid를 통해 상태 INVALID 로깅을 활성화합니다.
255에 대한 추가 문서는 여기에서 찾을 수 있습니다. https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt
/etc/ulog.conf에서 디버깅할 Ulog 캡처 수준을 설정합니다.
그런 다음 로그를 트리거하면 /var/log/ulog/syslogemu.log에 저장됩니다.