삭제된 패키지를 /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 ULOG
ULOG 모듈에는 개념이 없으므로 --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 또는 시스템에 대한 텔넷(비활성화되거나 방화벽이 있는 것이 바람직함)이라는 몇 가지 줄이 표시됩니다.