iptables에 대한 사용자 정의 로그 파일 구성

iptables에 대한 사용자 정의 로그 파일 구성

삭제된 패키지를 /var/log/messages.

이를 달성하기 위해 구성 파일 끝에 다음 두 줄을 추가했습니다.

    -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
    -A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4

이는 기본적으로 INPUT 및 OUTPUT 체인을 DROP으로 구성했기 때문에 작동하므로 패키지가 이전 규칙과 일치하지 않으면 기록되고 삭제됩니다.

그러나 사용자 정의 파일에는 기록할 수 없습니다. 성공적으로 로그인했지만 /var/log/messages로그인하길 원합니다 /var/log/iptables.log. /etc/rsyslog.d/iptables.conf다음 내용으로 파일을 만들었습니다 .

    :msg, contains, "IPTables-INPUT-Dropped: " - /var/log/iptables.log
    & ~

그런 다음 rsyslog를 다시 시작 /etc/init.d/rsyslog restart하고 삭제될 것으로 알고 있는 일부 패킷을 보냈습니다. 그러나 iptables.log에는 기록되지 않고 여전히 기록됩니다 /var/log/messages.

어떤 구성이 누락되었나요?

해결됨 문제는 둘 사이에 공백이 있으면 안된다는 것입니다.-그리고/

답변1

문제는 - 및 / 사이에 공백이 없어야 한다는 것입니다.

답변2

이는 다음을 사용하여 달성할 수 있습니다.

syslog에서 iptables 로그인을 비활성화하려면 다음을 수정하십시오 /etc/rsyslog.d/50-default.conf.

*.*;auth,authpriv.none;kern.*=!kern.warning             -/var/log/syslog

별도의 파일을 기록합니다.

kern.=warning -/var/log/iptables.log

그런 다음 다시 시작 syslog하거나 rsyslog기록하세요.tail

/etc/init.d/rsyslog restart

그것은 syslog또한 작동 rsyslog합니다

답변3

이것은 사용되는 또 다른 방법입니다 ulogd. 커널 로깅 메커니즘 사용 을 중지하므로 이 메커니즘을 사용하는 것이 좋습니다 -m LOG(로그를 채우는 심각한 부작용도 있음 dmesg).

먼저 ulogd가 필요합니다. 모듈을 apt-get install ulogd편집하여 ( 처음에 있는 줄을 /etc/ulogd.conf제거하여 ) 이 모듈을 활성화할 수 있습니다.#

plugin="/usr/lib/ulogd/ulogd_LOGEMU.so"

이 부분을 변경/추가하십시오 [LOGEMU].

[LOGEMU]
file="/var/log/iptables.log"
sync=1

그런 다음 를 사용하여 ulogd를 다시 시작하십시오 /etc/init.d/ulogd restart. 그런 다음 iptables 규칙에 사용하지 마십시오 -j LOG. -j ULOGULOG 모듈에는 개념이 없으므로 --log-level이러한 옵션을 제거할 수 있습니다. --ulog-prefix대신 사용되기도 합니다 --log-prefix.

답변4

ulogd에 대한 작업 솔루션

a) 이 모듈이 활성화되어 있는지 확인하십시오

modprobe nf_log_ipv4
cp /etc/modules /etc/modules.bak
echo nf_log_ipv4 >> /etc/modules

b) /etc/ulogd.conf 파일을 편집하여 이러한 플러그인을 활성화합니다(주석 해제 #).

plugin="/usr/lib64/ulogd/ulogd_inppkt_NFLOG.so"
plugin="/usr/lib64/ulogd/ulogd_filter_IFINDEX.so"
plugin="/usr/lib64/ulogd/ulogd_filter_IP2STR.so"
plugin="/usr/lib64/ulogd/ulogd_filter_PRINTPKT.so"
plugin="/usr/lib64/ulogd/ulogd_output_LOGEMU.so"
plugin="/usr/lib64/ulogd/ulogd_raw2packet_BASE.so"

첫 번째 댓글의 #stack 앞에 다음 줄을 추가하세요.

stack=firewall11:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu11:LOGEMU

마지막으로 파일 끝에 다음 줄을 추가하십시오.

[firewall11]
group=11

[emu11]
file="/var/log/iptables.log"
sync=1

c) 이제 저는 방화벽 대신 iptables 스크립트를 사용하는 기존 방식을 선호합니다. iptables 스크립트에서는 로깅을 위해 이 줄을 사용합니다.

# Log
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A FORWARD -j NFLOG
iptables -A LOGGING -j NFLOG --nflog-prefix "[firewall-drop]:" --nflog-group 11
iptables -A LOGGING -j DROP

d) 마지막 부분

touch /var/log/iptables.log
systemctl restart ulogd

이 명령을 사용할 수 있는지 확인

tail -f /var/log/iptables.log

이벤트 후에는 nmap portscan 또는 시스템에 대한 텔넷(비활성화되거나 방화벽이 있는 것이 바람직함)이라는 몇 가지 줄이 표시됩니다.

관련 정보