======建構簡單單機型防火牆實驗====== {{:linux:security:wiki_防火牆lab.gif?250 |}} - 預設進來(INPUT)的封包都Drop - 清空所有filter表的所有規則 - 新增一筆允許進來的lookback 介面 - 允許從防火牆ping其他的電腦;反之不允許其他電腦ping 防火牆 - 允許從來源端192.168.0.0/24網段且以ICMP協定 - 允許以tcp 且為目的port 22 新連線進來 - 來源為192.168.1.0/24網段都reject掉 - 任何進來的都reject掉#!/bin/bash iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p icmp -s 192.168.0.0/24 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j REJECT; iptables -A INPUT -j REJECT ======測試單元====== iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT * 於防火牆測試loopbackping 127.0.0.1 ok * 從192.168.1.8 ping及ssh 192.168.1.254ping 192.168.1.254 Not ok ssh 192.168.1.254 Not ok * 從192.168.0.8 ping及ssh 192.168.0.254ping 192.168.0.254 Not ok ssh 192.168.0.254 Not ok * 從192.168.0.254 ping 192.168.0.8ping 192.168.0.8 Not ok iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT * 從192.168.0.254 ping 192.168.0.8ping 192.168.0.8 ok * 反之,從192.168.0.8 ping 192.168.0.254ping 192.168.0.254 not ok iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j REJECT; * 從192.168.0.8 ssh 192.168.0.254 ssh 192.168.0.254 not ok * 從192.168.1.8 ssh 192.168.1.254 ssh 192.168.1.254 not ok * 從192.168.1.8 ping 192.168.1.254 ping 192.168.1.254 not ok,且會出現 Destination Port Unreachable等訊息 iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j REJECT; iptables -A INPUT -p icmp -s 192.168.0.0/24 -j ACCEPT * 從192.168.0.8 ping 192.168.0.254 ping 192.168.0.254 ok * 從192.168.0.8 ssh 192.168.0.254 ssh 192.168.0.254 not ok iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j REJECT; iptables -A INPUT -p icmp -s 192.168.0.0/24 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT * 從192.168.0.8 ssh 192.168.0.254 ssh 192.168.0.254 ok * 從192.168.1.8 ssh 192.168.1.254 ssh 192.168.1.254 not ok #!/bin/bash iptables -P INPUT DROP; iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p icmp -s 192.168.0.0/24 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j REJECT; iptables -A INPUT -j REJECT * 從192.168.0.8 ssh 192.168.0.254 ssh 192.168.0.254 ok * 從192.168.0.8 ping 192.168.0.254 ping 192.168.0.254 ok * 從192.168.1.8 ssh 192.168.1.254 ssh 192.168.1.254 ok * 從192.168.1.8 ping 192.168.1.254 ssh 192.168.1.254 not ok