异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
本书的读者应该使用一台运行着Linux的计算机,不论该计算机是单机的还是作为防火墙亦或是作为互联网网关。本书讲解了如何为单一的计算机例如台式主机构建防火墙,同时也展示了如何为可以托管多台计算机的本地网络构建防火墙。
最简单的保护您自己的方式就是不提供服务。但如果您需要这些本地服务中的一个呢?并不是所有的服务都能够在数据包过滤层被充分地保护。文件共享软件、即时通讯服务和基于UDP的RPC服务都是众所周知难以在数据包过滤层保障安全的。
如果您的防火墙保护着由微软公司Windows系统构成的局域网,那么控制传出流量将变得更加重要。被盗用的Windows计算机已在历史上(并将继续)被用于协助DoS攻击和其他对外部的攻击。特别是基于这个原因,对离开您的网络的数据包进行过滤是十分重要的。
在iptables和nftables中的Netfilter防火墙机制给予您驳回或丢弃数据包的选项。那么,二者有何不同?如图2.5所示,当一个数据包被驳回(reject)时,该数据包被丢弃,同时一个ICMP错误消息将被返回到发送方。当一个数据包被丢弃时,它仅仅是被简单地丢弃而已,不会向发送者进行通知。
“接受所有消息”的策略使构建防火墙更加容易并且可以立刻运行。但它迫使您预见到您要关闭的所有可以想象到的访问类型(见图2.4)。这样做的危险是您并不能预期到某一危险的访问类型,直到这一切已经太迟了。或者您可能在后来启用一个不安全的服务,而并没有首先阻止外部访问到它。