使用此简单脚本使用iptables创建自己的防火墙

我花了一些时间思考有关iptables的两件事:大多数正在寻找这些教程的人是初学者,其次,许多人已经在寻找相当简单且已经详细阐述的东西。

此示例适用于Web服务器,但您可以轻松添加更多规则并使其适应您的需求。

当您看到ip的“ x”更改时


#!/bin/bash

#我们清理iptables表-F iptables -X#我们清理NAT iptables -t nat -F iptables -t nat -X#修改PPPoE,PPP和ATM iptables的表-t mangle -F iptables -t mangle -X #策略我认为这对初学者来说是最好的方法,并且#仍然不错,我将解释所有输出,因为它们是传出的连接#输入我们会丢弃所有内容,并且任何服务器都不应转发。 iptables -P输入下降iptables -P输出接受iptables -P转发下降#Intranet LAN intranet = eth0 #Extranet wan Extranet = eth1#保持状态。 已连接(已建立)的所有内容都像这样保留:iptables -A INPUT -m状态--state已建立,相关-j接受#循环设备。 iptables -A INPUT -i lo -j ACCEPT#http,https,我们未指定接口,因为#我们希望它适用于所有iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp-dport 443 -j ACCEPT#仅在内部以及ip iptables范围内的ssh -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT#监视例如是否有zabbix或其他一些snmp服务iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet -dport 10050 -j ACCEPT#icmp,ping iptables -A INPUT -p icmp -s 192.168。 xx / 24-i $ intranet -j ACCEPT #mysql with postgres是端口5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh如果要发送一些邮件#iptables -A输出-p tcp --dport 25 -j接受#防欺骗09年07月2014日#SERVER_IP =“ 190.xxx”#服务器IP-服务器的真实局域网IP LAN_RANGE =“ 192.168.xx /您的网络或VLAN的21“#LAN范围#IP永远不要进入Extranet,如果我们有一个纯WAN接口,则将使用#逻辑,它永远不应通过该接口输入#LAN类型的流量SPOOF_IPS =“ 0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 .16 / XNUMX“#默认操作-在任何规则与ACTION =” DROP“匹配时执行。#通过wan iptables与我的服务器的IP相同的数据包-A INPUT -i $ Extranet -s $ SERVER_IP -j $ ACTION# iptables -A OUTPUT -o $ Extranet -s $ SERVER_IP -j $ ACTION#与WAN的LAN范围有关的数据包,如果您有#任何特定的网络,我就这样说,但这是多余的,其中包含以下#规则iptables -A INPUT -i $ Extranet -s $ LAN_RANGE -j $ ACTION的iptables -A OUTPUT -o $ Extranet -s $ LAN_RANGE -j $ ACTION ## WAN不允许的所有SPOOF网络$ SPOOF_IPS做iptables -A输入-i $ Extranet -s $ ip -j $操作iptables -A输出-o $ Extranet -s $ ip -j $操作完成

一如既往,我一直在等待您的评论,请继续关注本博客,谢谢