系統安全:iptables與 ip6tables

iptables簡單測試:以kvm 架設虛擬機,進行測試

在虛擬機中,加入以下規則,進行 192.168.122.247

#!/bin/bash
#清理規則
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#建立ICMP chain
iptables -N ICMP

#進行紀錄
iptables -A ICMP -p icmp -j LOG --log-prefix 'Ping:' --log-level alert

#ICMP chain 的規則 :DROP封包
iptables -A ICMP -p icmp -j DROP

#針對INPUT chain的icmp封包跳到 ICMP chain
iptables -A INPUT -p icmp -j ICMP

此時由於任何ping封包都被禁止,所以當由192.168.122.247 ping 192.168.122.1也不通

改善:

要禁止的只有type=8,code=0
改指令:

#!/bin/bash
#清理規則
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#建立ICMP chain
iptables -N ICMP

#進行紀錄
iptables -A ICMP -p icmp --icmp-type 8 -j LOG --log-prefix 'Ping Request:' --log-level alert


#ICMP chain 的規則 :DROP封包
iptables -A ICMP -p icmp --icmp-type 8 -j DROP

#針對INPUT chain的icmp封包跳到 ICMP chain
iptables -A INPUT -p icmp -j ICMP

觀察

cat /var/log/syslog | grep ICMP

Feb 18 08:34:19 pi-pc kernel: [ 253.444190] Ping:IN=enp1s0 OUT= MAC=52:54:00:5d:71:e6(目的MAC):52:54:00:a0:9d:cf(來源MAC):08:00 SRC=192.168.122.1 DST=192.168.122.247 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=9022 DF PROTO=ICMP TYPE=8 CODE=0 ID=3 SEQ=1

Last updated