CentOS 7에서 iptables 이벤트 로깅

CentOS 7에서 iptables 이벤트 로깅

Centos 7에 iptables가 있습니다. 방화벽이 비활성화되었습니다. iptables 이벤트를 어떻게 기록하나요? 데비안에서는 dmesg 옵션이지만 centos에서 설정하는 방법을 모르겠습니다.

모든 iptables 이벤트를 기록하고 싶습니다. 특별한 규정은 없습니다.

답변1

패킷이 iptables ... -j LOG규칙과 일치하면 커널 로그 메시지가 생성됩니다. 표준 시스템 로그 수준 식별자( , , , , 또는 ) 중 하나일 수 있는 options 를 사용하여 메시지의 심각도 수준을 지정할 수 있습니다 --log-level <level>.<level>emergalertcriterrorwarningnoticeinfodebug

rsyslog이러한 로그 메시지는 심각도 수준이 충분히 낮은 경우 rsyslog완전히 삭제될 수 있는 방식으로 처리됩니다 . iptables 로그 메시지는 커널에서 나오므로 해당 로깅 범주는 항상 입니다 kern. 따라서 /etc/rsyslog.conf처리할 메시지의 최소 심각도 수준과 해당 메시지가 저장될 로그 파일을 확인하세요. kern.*그런 다음 규칙에 대한 적절한 심각도 수준을 설정합니다 iptables -j LOG.

또는 이 iptables ... -j LOG --log-prefix <prefix>옵션을 사용하여 인식 가능한 접두사를 iptables 메시지에 추가한 다음 고급 기능을 사용하여 rsyslogiptables 메시지를 별도의 로그 파일에 기록합니다.

답변2

나에게 가장 적합한 솔루션을 찾았습니다. 경고 수준:

iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 4
iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 4
iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 4

디버그 수준:

iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 7
iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 7
iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 7

로그는 다음 위치에 저장됩니다.

/var/log/messages

예제 출력:

Aug  4 13:22:40 centos kernel: BAD_INPUT: IN= OUT=em1 SRC=192.168.1.23 DST=192.168.1.20 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=59228 SEQ=2
Aug  4 13:23:00 centos kernel: BAD_INPUT: IN=em1 OUT= MAC=a2:be:d2:ab:11:af:e2:f2:00:00 SRC=192.168.2.115 DST=192.168.1.23 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=9434 DF PROTO=TCP SPT=58428 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0

답변3

CentOS 7은 systemd의 저널을 기본 로깅 시스템으로 사용하고 커널 로그(예:iptables)는 저널링이 아닌 저널링으로 전달되며 다음과 같이 /var/log/messages(커널 로그를 의미) 저널ctl 에 전달하여 표시되어야 합니다 .-k

journalctl -k

Journalctl의 남자 보기여기 또는 웹의 많은 튜토리얼 중 하나를 사용하여 모든 옵션을 찾을 수 있지만 대부분 -f추적 로그를 사용하거나, -b마지막 부팅 이후의 로그만 포함하거나, --since날짜별로 로그를 선택하거나, --no-pager출력 시 기본 호출기를 비활성화할 것입니다.

로그를 생성하려면 다른 응답에서 언급한 대로 iptables와 함께 작업을 사용해야 하며 로그 범람을 방지하기 위한 -j LOG작업을 포함하고 싶을 가능성이 높습니다 .--limit

iptables -A INPUT -j LOG -limit 1/s --limit-burst 3 --log-prefix "INPUT REJECTED: " --log-level 4

답변4

/var/log/messagesiptables는 CentOS 7 에 이벤트를 기록합니다 .

관련 정보