我终于设法安装我的虚拟主机,现在我正在搞iptables创build,testing和学习。
如果我把下面的规则放在我的规则的开始或结束时,是否有关系?
$IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP
我已经testing,没有什么区别,但我想确认。
回答我目前select:尽早实施您的政策是一个好主意。 把它们放在一开始。 内部stream量的DROP规则可能会导致问题。
有下面的规则会被认为是防火墙上的错误?
$IPT -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
没有这个规则,我需要添加例如一个输出规则为我的SSH连接,例如:
$IPT -A OUTPUT -p tcp --sport 2013 -j ACCEPT
答案:在-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT @ freenode上进行了更多的testing并与人交谈之后,我得出结论:使用-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT INPUT和OUPUT是一个很好的方法,它将帮助你处理大量像FTP这样的东西,并且是一个很好的解决scheme,因为除非你给定的端口打开并且被接受,否则就不会有恶意的连接。
这是一个正常的例子,不使用上面的例子:
$IPT -A INPUT -p tcp --dport 20:21 -j ACCEPT $IPT -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
现在这里是如何使用上面的规则:
$IPT -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT
这就是你所需要的,因为一旦连接build立起来,输出将立即进行后续处理,而不需要为ftp-data端口制定规则。
有什么是不好的事情有以下的规则,你可以举一些例子,为什么不拥有它,而只是定义你可能需要使用的任何东西?
$IPT -P OUTPUT ACCEPT
回答我目前select:此策略规则允许所有传出stream量。 作为一项政策,允许一切显然比只允许明确的stream量安全。 所以,如果安全是您的最高优先级,您需要改为在输出链上设置DROP策略。 请注意,您将不得不包含一些规则,以允许传出stream量到可能的大量世俗事物,例如:DNS,SMTP,IMAP,POP3,HTTP,HTTPS等。
conntrack和国家之间的区别是什么?
状态示例:
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
conntrack例子:
$IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
答:在与#iptables @ freenode的人们进行了一些研究之后,我得出结论,我应该从这里开始使用conntrack。
从技术上来说,conntrack比赛取代了国家队的比赛,而且已经过时了。 但实际上国家的比赛并没有以任何方式过时。
我会不胜感激良好的在线iptables阅读材料。
完美的规则集
Linux文档项目
你可能想看一下Shorewall文档,看看iptables能做什么。 我使用它在我的所有Linux实例(包括OpenWRT)上构build防火墙。 对于具有1个,2个或3个接口的服务器,它具有良好的文档示例(默认/基本)configuration。
Linux文档项目也有文档。
你没有提到有关NAT表的任何内容,所以我将假定这个问题涉及到为独立服务器写iptables防火墙脚本,而不是多宿主/网关盒。
你是正确的:每一个链条都有一个单一的政策,所以这个政策规则的地方或者顺序是没有关系的。
该规则build立了许多/大部分防火墙脚本使用的约定: 状态性 。 虽然只是一个小挑逗。 我不会包含NEW状态,并且还会包含INPUT链的规则,即:
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
我将这些规则放在所有防火墙脚本的附近或顶部,因为它们允许我专注于创build过滤连接尝试的规则,而不必考虑build立非连接的数据包。 在我看来,没有这些规则的防火墙脚本可能比包含它们的更复杂,因此更容易出错。
此策略规则允许所有传出stream量。 作为一项政策,允许一切显然比只允许明确的stream量安全。 所以,如果安全是您的最高优先级,您需要改为在输出链上设置DROP策略。 请注意,您将不得不包含一些规则,以允许传出stream量到可能的大量世俗事物,例如:DNS,SMTP,IMAP,POP3,HTTP,HTTPS等。
State vs. Conntrack:State被删除,赞成使用Linux kernel 3.7的conntrack