我终于设法安装了我的 VM 主机,现在我正在使用 iptables 来创建、测试和学习。
我将以下规则放在规则的开头还是结尾有关系吗?
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
Run Code Online (Sandbox Code Playgroud)
我已经测试过,没有区别,但我想确认一下。
到目前为止我选择的答案: 尽早应用您的政策是个好主意。把它们放在开头。内部流量的 DROP 规则可能会导致问题。
具有以下规则将被视为防火墙故障?
$IPT -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
如果没有这个规则,我需要为我的 ssh 连接添加一个 OUTPUT 规则,例如:
$IPT -A OUTPUT -p tcp --sport 2013 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
答:
经过更多测试并与#iptables@freenode 上的人交谈后,我得出的结论是,使用-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTINPUT 和 OUPUT 是一个很好的方法,可以帮助您处理很多事情,例如 FTP,这是一个很好的方法,因为除非您打开该给定端口并被接受,否则不会有恶意连接。
这是一个不使用上述内容的正常示例:
$IPT -A INPUT -p tcp --dport 20:21 -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20:21 -j ACCEPT …Run Code Online (Sandbox Code Playgroud)我有一台 PC(运行 Fedora 20),它被用作“软件交换机”来控制某些外部设备的网络连接。有八个这样的设备;除了自身与外界的以太网连接外,PC 还具有两个 4 端口以太网卡。缺省情况下,8 个设备接口不经过滤转发到外部接口。
所需的功能是能够阻止进出给定设备的所有流量。目前,我们正在使用bridge link set dev <device> state 0,它将设备的桥状态设置为“禁用”。但是,这似乎也会阻止来自设备的 DHCP 流量。网络的 DHCP 服务器可通过外部接口访问,因此网桥似乎阻止了此流量,这意味着如果设备尝试更新其 IP,则会失败;就我试图在设备上执行的测试而言,这是有问题的。
对于给定的设备,我想要做的是阻止除 DHCP 之外的所有流量通过桥接器。该bridge命令似乎无法执行此操作,因此我可能希望将桥接状态永久保留为“转发”。做了一些研究,这似乎ebtables是我需要的工具,但配置它似乎需要比我更多的 DHCP 和网络知识!通过阅读一些ebtables教程,我认为我需要允许端口 67 和 68 上的流量(我相信这些是唯一用于 DHCP 的端口?)并阻止所有其他流量。
所以我的问题是:
ebtables以执行我想要的操作?ebtables该工作的最佳工具和/或是否有任何抽象层使其更易于配置?(我在想ferm的iptables。)ebtables以阻止所有流量栏 DHCP?