iptables 로그 출력?

iptables 로그 출력?

iptables를 사용하면 특정 패킷을 기록할 수 있다는 것을 알았습니다. Linux에서 로깅은 어디에서 발생합니까? 어떤 파일의 로그를 확인해야 합니까?

iptables -A INPUT -i wlan0 -p tcp --syn -s 10.0.0.1 -j ACCEPT 

답변1

귀하의 질문에 있는 명령은 iptables -A INPUT -i wlan0 -p tcp --syn -s 10.0.0.1 -j ACCEPT로깅을 지정하지 않습니다. 그러나 각 iptables 규칙 iptables -L -vn에는 일치하는 패킷에 대한 패킷 및 바이트 카운터가 포함되어 있으므로 이 명령을 실행한 후 규칙이 생성되었거나 마지막으로 재설정된 이후 소스 IP 주소 10.0.0.1을 통해 들어오는 트래픽 수를 실행하고 확인할 수 있습니다. 인터페이스에 도착하는 SYN 패킷 wlan0수(최신 항목)

iptables 대상을 사용하는 경우 -j LOG일치하는 패킷이 커널 로그에 기록됩니다. 다음 명령을 사용하여 최신 커널 로그 메시지를 볼 수 있습니다 dmesg. 일반적으로 커널 로그 메시지는 Linux 배포판에서 사용하는 로깅 시스템에 의해서도 기록됩니다.

클래식 스타일 로깅을 사용하면 일반적으로 (RHEL 스타일 syslog 구성) 또는 (Debian 스타일 syslog 구성) syslog에서 커널 로그 메시지를 볼 수 있을 것으로 예상됩니다 ./var/log/messages/var/log/kern.log

기본 로깅 시스템 으로 사용되는 systemd-journald배포판에서는 journalctl _TRANSPORT=kernel현재 저장된 모든 커널 로그 메시지가 출력되어야 합니다 journald.

--log-prefix선택적으로 with 옵션을 사용하여 최대 29자까지 사용자 정의 메시지 접두어를 지정할 수 있습니다 iptables ... -j LOG. 로그 메시지는 상당히 긴 줄이며 다음과 같습니다( \읽기 쉽도록 여러 줄로 구분).

<timestamp> <hostname> kernel: [optional-prefix]IN=<incoming-interface> OUT=<outgoing-interface> \ 
    MAC=<destination MAC address>:<source MAC address>:<ethertype/length> \
    SRC=<source IP address> DST=<destination IP address> LEN=<packet length> \
    TOS=<type-of-service value> PREC=<precedence value> TTL=<packet time-to-live value> \
    ID=<ID field value/fragment ID> PROTO=<protocol> <protocol-specific information...>

IN=및 필드가 OUT=있지만 적용할 수 없는 경우 비어 있습니다. INPUT필터 체인에 기록된 패킷에는 IN=지정된 인터페이스 만 있고 각각 OUTPUT체인에만 있습니다 OUT=. 체인에 기록된 패킷에는 FORWARD두 필드가 모두 채워집니다.

예를 들어 들어오는 TCP SYN 패킷을 기록하는 로그 줄은 -j LOG --log-prefix "custom-prefix:"다음과 같습니다.

Dec 08 12:00:00 hostname.example kernel: custom-prefix:IN=eth0 OUT= \
    MAC=11:22:33:44:55:66:aa:bb:cc:dd:ee:ff:08:00 SRC=192.0.2.2 DST=192.168.0.1 LEN=40 TOS=0x00 \
    PREC=0x00 TTL=232 ID=12345 PROTO=TCP SPT=54321 DPT=22 WINDOW=1023 RES=0x00 SYN URGP=0

iptables 로그를 다른 커널 로그 메시지와 분리하려면 ulogd버전 2.x 이상을 설정한 다음 를 사용할 수 있습니다 iptables ... -j NFLOG. 아주 오래된 커널에서는 여전히 이 메시지가 표시될 수 있지만 -j ULOG이는 더 이상 사용되지 않습니다. 이제 고대 역사여야 합니다. .

관련 정보