私は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