Iptables를 사용하여 ICMP 패킷 기록

Iptables를 사용하여 ICMP 패킷 기록

저는 iptables를 배우고 있지만 여기서 벽에 부딪혔습니다.

내 임무는 192.168.1.2에서 192.168.1.1까지 ICMP 요청과 응답을 기록하는 것입니다.

그래서 이 규칙을 추가했습니다.

iptables -A INPUT -p icmp --icmp-type 8 --source 192.168.1.2 -j LOG

그리고

iptables -A OUTPUT -p icmp --icmp-type 0 -d 192.168.1.2 -j LOG

192.168.1.2에서 192.168.1.1로 ping을 하면 요청이 기록되는 것 같습니다.

하지만 응답을 녹음할 수는 없습니다. 어떤 아이디어가 있나요?

// 편집하다


bash-5.1# iptables-save -c
# Generated by iptables-save v1.8.7 on Fri Apr  1 09:20:45 2022
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[43:3612] -A INPUT -s 192.168.1.2/32 -p icmp -m icmp --icmp-type 8 -j LOG
[37:3108] -A OUTPUT -d 192.168.1.2/32 -p icmp -m icmp --icmp-type 0 -j LOG
COMMIT

두 규칙이 모두 OUTPUT ACCEPT에 있는 이유는 확실하지 않지만 다음과 같습니다.iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        icmp --  192.168.1.2          anywhere             icmp echo-request LOG level warning

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
LOG        icmp --  anywhere             192.168.1.2          icmp echo-reply LOG level warning

답변1

192.168.1.2에서 192.168.1.1로 ping을 시도하면 OUTPUT 체인은 요청 전송을 검색하는 데 사용되고 INPUT 체인은 응답 수신을 검색하는 데 사용되므로 올바른 iptables는 다음과 같이 생성됩니다.

iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.1.2 -j LOG
iptables -A INPUT -p icmp --icmp-type 0 -d 192.168.1.2 -j LOG

관련 정보