저는 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