IP 表防火墙

IP 表防火墙

我只是有一个简单的问题,好吧,这似乎应该如此,因为我对 IP 表还很陌生。至于问题,我想知道我下面设置的规则是否按正确的“顺序”排列,因为我听说顺序很重要,而且我感觉有些地方不太对劲。如果有人能帮我组织一下,或者您还有其他发现,我将不胜感激!

#!/usr/bin/bash

echo 1> /proc/sys/net/ipv4/ip_forward

ifconfig eth0 down
ifconfig eth0:1 down

iptables -F
iptables -F -t nat 

ifconfig eth0 192.168.10.59 netmask 255.255.255.0
ifconfig eth0:1 192.168.60.1 netmask 255.255.255.0
route add default gw 192.168.10.1
echo nameserver 192.168.10.1 > /etc/resolv.conf

iptables -t nat -A POSTROUTING -s 192.168.60.1/24 -j SNAT MASQUERADE 
(--to 192.168.10.59) not necessary

chmod 755 /etc/rc.d/rc.ip_forward
    /etc/rc.d/rc.ip_forward start

chmod 755 /etc/rc.d/rc.sshd
    /etc/rc.d/rc.sshd start

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


iptables -A INPUT -s 192.168.10.1/24 -p tcp --dport 22 -j DROP
iptables -A INPUT -s 192.168.10.85 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
iptables -A INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -p tcp --dport 20 -j ACCEPT  -Outside Comp Mac Address
iptables -A INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -p tcp --dport 21 -j ACCEPT  -Outside Comp Mac Address
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


iptables -A OUTPUT -s 192.168.59.84 -p tcp --dport 22-j DROP
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 20 -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT - m mac --mac-source xx:xx:xx:xx:xx:xx -p tcp --dport 20 -j ACCEPT  -Inside Comp Mac Address
iptables -A OUTPUT - m mac --mac-source xx:xx:xx:xx:xx:xx -p tcp --dport 21 -j ACCEPT  Inside Comp Mac Address
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

答案1

我们不能仅仅通过查看你的规则就告诉你什么是对的,什么是错的。你的规则需要与你的政策相匹配。更准确的问题可以写成:“我需要确保所有入站端口都已关闭,除了......“。但是,我可以说你有一个永远匹配不了的无用规则:

iptables -A INPUT -s 192.168.10.85 -p tcp --dport 22 -j ACCEPT

因为它遵循以下规则:

iptables -A INPUT -s 192.168.10.1/24 -p tcp --dport 22 -j DROP

答案2

最好先设置策略,然后刷新链,然后创建新的规则集:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -F
iptables -F -t nat

iptables -A INPUT ...
...

否则,您的规则集可能会无意中开放(无论时间多短)。

相关内容