首先清空所有的规则链,并设置规则链的默认策略为DROP,即丢弃所有的网络数据包。
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
新增用户者自定义规则链bad_tcp_packets、allowed和icmp_packets。
iptables -N bad_tcp_packets
iptables -N allowed
iptables -N icmp_packets
下面定义bad_tcp_packets规则链的规则:将要求重导向的网络连接记录起来,然后将报文丢弃(防止本地机器被其他主机作为入侵跳板,侵入别的主机):
iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"
iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP
下面定义allowed规则链的规则:允许要求连接的网络数据包或相应包进入,将其与网络数据包丢弃:
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allwoed -p TCP -m state --state ESTABLLSHED,RELATED -J ACCEPT
IPTABLES -A allowed -p TCP -j DROP
下面定义icmp_packets规则链的规则:允许ping网络数据包进入,将其余的网络数据包丢弃:
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
INPUT链,过滤要到达防火墙的网络数据包。
进入防火墙主机的TCP网络数据包必须先进行bad_tcp_packets过滤:
iptables -A INPUT -p TCP -j bad_tcp_packets
从WAN进入防火墙主机的ICMP网络数据包,必须先进行icmp_packets过滤,这是为了避免黑客传送不完整的IP网络数据包,系统会相应ICMP网络数据包,以通知对方,导致主机位置被侦测出来:
iptables -A INPUT -p ICMP -i eth1 -j icmp_packets
从LAN进入防火墙主机的全部单播和广播的网络数据包,均会放行:
iptables -A INPUT -p ALL -i eth0 -d 192.168.1.1 -j ACCEPT
iptables -A INPUT -p ALL -i eth0 -d 192.168.1.255 -j ACCEPT
从LAN进入防火墙主机的DHCP网络数据包,予以放行,只有当防火墙担任DHCP时才使用:
iptables -A INPUT -p UDP -i eth0 --dport 67 --sport 68 -j ACCEPT
从WAN进入防火墙主机的所有网络数据包,检查是否为响应网络数据包,若是则予以放行:
iptables -A INPUT -p ALL -d 10.25.0.7 -m state --state ESTABLISHED,RELATED -j ACCEPT
限制过滤规则的检测频率为每分钟平均流量三个网络数据包(超过)上限的网络数据包将暂停检测,并将瞬间流量设定为一次最多处理三个网络数据包(超过上限的网络数据包将丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died:"
FORWAD链,过滤要通过防火墙的网络数据包
通过防火墙的TCP网络数据包必须先进行bad_tcp_pcakets过滤:
iptables -A FORWAD -P TCP -J bad_tcp_packets
从LAN要到WAN的网络数据包均放行:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
从WAN到LAN的网络数据包仅放行应答网络数据包:
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
允许来自WAN的PING网络数据包,递送到局域网内的WWW服务器:
iptables -A FORWARD -p ICMP -i eth1 -o eth0 -d 192.168.1.2 -j icmp_packets
允许来自WAN的HTTP,HTTPS网络数据包,递送到局域网的WEB服务器:
iptables -A FORWARD -p TCP -i eth1 -o eth0 -d 192.168.1.2 -m multiport --dport 80,443 -j allowed
限制过滤规则的检测频率为每分钟平均流量3各网络数据包(超过上限的网络数据包将暂停检测),并将瞬间流量设定为一次最多处理3个数据包(超过上限的网络数据包将被丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died:"
OUTPUT链,过滤从防火墙送出的网络数据包。
从防火墙送出的TCP网络数据包必须先进行bad_tcp_packets过滤:
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 2 34 5 6 7 8 下一页
上一篇:菜鸟乐园 Linux操作系统入门级命令大全 下一篇:Linux操作系统的源代码目录树结构图解
|