使用此简单脚本第2部分,使用iptables创建自己的防火墙

防火墙_(网络)

大家好,今天我为您带来有关iptables防火墙的系列教程的第二部分,非常简单,以便您可以复制和粘贴,我认为最终这是所有初学者所追求的,甚至是大多数经验丰富的人,为什么我们必须重新发明轮子100次,对吗?

这次,我告诉他们尝试着眼于非常具体的情况,即我们是否希望我们的防火墙通过OUTPUT DROP策略变得更具攻击性。 这篇文章也是应本页面和我的读者的要求。 (在我的脑海中)

让我们谈谈建立Output Drop策略的“利与弊”,我可以告诉你的是,它使工作变得更加繁琐和费力,但是优点是,在网络级别,您将拥有安全性比起您坐下来思考,设计和计划策略,您将拥有一台更加安全的服务器。

为了不引起混乱,我将通过一个例子快速向您解释您的规则应多少或更少

iptables -A输出-o eth0 -p tcp –sport 80 -m状态–state已建立-j接受
-A 因为我们添加了规则
-o 指出站流量,如果未指定则放置接口,因为它匹配所有接口。
-运动 源端口起着重要的作用,因为在大多数情况下,我们不知道它们将从哪个端口发出请求,如果可以的话,我们可以使用dport
–Dport 目标端口,当我们事先特别知道传出连接必须仅转到特定端口时。 例如,它必须用于非常准时的东西,例如远程mysql服务器。
-m状态–已建立状态 这已经是维护已经建立的联系的装饰,我们可以在以后的文章中加深它
-d 谈论目的地(如果可以指定的话),例如通过其ip到特定机器的ssh

#!/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 --state ESTABLISHED,RELATED -j ACCEPT
iptables -A输出-m状态-状态已建立,相关-j接受
#循环设备。 iptables -A输入-i lo -j接受
#iptables环回输出-A OUTPUT -o lo -j ACCEPT

#http,https,我们不指定接口,因为#我们希望它是所有iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#出发
#http,https,我们未指定接口,因为
#我们希望它适用于所有用户,但如果我们指定输出端口
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

#仅在内部以及此ip iptables范围内的ssh -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT
#仅在内部和此ip范围内输出#ssh
iptables -A输出-p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j接受
#监视例如它们是否具有zabbix或其他一些snmp服务iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
#出发
#监视例如它们是否具有zabbix或其他某些snmp服务
iptables -A输出-p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j接受

#icmp,ping好是您的决定iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPT
#出发
#icmp,ping好是您的决定
iptables -A输出-p icmp -d 192.168.xx / 24 -o $ intranet -j接受

#带有postgres的mysql是端口5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
#输出-用户还要求创建一个非常特定的规则规则#服务器:192.168.1.2 mysql:192.168.1.3
#mysql with postgres是端口5432
iptables -A输出-p tcp -s 192.168.1.2 -d 192.168.1.3 -dport 3306 -o $ intranet -j ACCEPT

#sendmail bueeeh,如果您想发送一些邮件#iptables -A输出-p tcp --dport 25 -j接受#防欺骗09年07月2014日#SERVER_IP =“ 190.xxx”#服务器IP-真正的WAN IP的LAN_RANGE服务器=“ 192.168.xx / 21”#您的网络或VLAN的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”#默认操作-当任何规则与ACTION匹配时执行ACTION = “ DROP”#通过wan iptables与我的服务器具有相同ip的数据包-A INPUT -i $ Extranet -s $ SERVER_IP -j $ ACTION
iptables -A输出-o $ Extranet -s $ SERVER_IP -j $ ACTION

#带有WAN范围的数据包,如果您有任何特定的网络,我会这样说,但是在“ for”循环iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $动作
iptables -A输出-o $ Extranet -s $ LAN_RANGE -j $ ACTION

## WAN不允许$ SPOOF_IPS中的ip使用所有SPOOF网络iptables -A INPUT -i $ Extranet -s $ ip -j $ ACTION
iptables -A输出-o $ Extranet -s $ ip -j $ ACTION
完成

在下一次审核中,我们将做端口范围,并建立按名称组织的策略,等等。...我等待您的评论和要求。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。