本文主要是介绍iptables官方手册整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 简介
2. 首先,什么是包过滤?
3. 快速入门指南
4. 数据包过滤流程
5. 具体如何使用 Iptables 命令实现过滤功能
6. 地址转换(NAT)
7. 排除建议
1. 简介
————————————————————————————————————————————————
读者们,大家好:
在这里我们假设你已经有一定的 IP 地址、网络地址、子网掩码、路由、DNS 基础知识。如果没有建议你先阅读一下官网的 networking-concepts-HOWTO 文档。官网地址为:www.netfilter.org
当前我们的网络是不安全的。但问题是我们做网络限制,同时还需要提供快速、便利的网络通讯环境,而不是处于邪恶的目的。网络限制是一把双刃刀,但本文章并非解决这个问题。
所以刀在手如何使用完全取决于你。我相信你会把这些工具用到合理的地方,并能很好地使用这些工具。而不是用于其他目的。
------------------------------------------------------------------------------------------------
2. 首先,什么是包过滤?
包过滤是当一个数据包通过时,使用软件去查看包头信息并决定对该包的处理方式。你可以丢弃该数据包、接受该数据包亦或是其他更复杂的处理方式。
在 Linux 中包过滤已经集成到内核中了,甚至还可以做一些数据包欺骗,但基本原则还是查看数据包头并决定处理方式。
------------------------------------------------------------------------------------------------
2.1 为什么我们需要包过滤?
可控性、安全性、可监控性
可控性:当你在局域网中使用 Linux 连接另一个网络时(如:互联网),你可以允许或拒绝特定类型的数据。例如:数据包都会包含目标地址,这样你就可以防止数据包进入某个特定的网络。再举个例子,我使用浏览器访问某个网站,在该网站上全是广告,此时浏览器会浪费我的时间去下载这些广告信息。这时我可以告知包过滤工具不允许该网站的数据包通过以解决这个问题。
安全性:当你的 Linux 主机是复杂的互联网与有序的局域网之间的唯一主机时,你可以通过数据包限制让该 Linux 主机成为局域网与互联网之间的安全大门!比如:你可以会想允许所有的数据包进入互联网,但你会对从外网进来的死亡之 ping 感到忧虑。再如,你可能不希望有人可以 telnet 连接你的 Linux 主机,即使对方有密码也不可以。简单而言就是通过包过滤工具拒绝外网部分数据包进入本地。
可监控性:当有些不正常的数据流量出现时,包过滤工具可以及时通知你是非常不错的注意!
------------------------------------------------------------------------------------------------
2.2 Linux 系统如何过滤数据包
Linux 内核从 1.1 开始就已经有包过滤功能。第一代产品是 1994 年诞生于 BSD 系统的 ipfw。Linux2.0 增强了该功能;用户可以使用 ipfwadm 控制内核过滤规则。Linux2.2 是用户工具变更为 ipchains。最后在 Linux2.4 中用户工具被重写,新的工具为 iptables。
你需要一个支持 netfilter 架构的 Linux 内核:netfilter 是在内核中的过滤架构,而且该架构可以使用插件动态加载。
Linux 防火墙主要包括两个部分:一部分为 netfilter 是内核过滤的基础架构,一部分为 iptables 是用户工具,用来编辑具体的过滤规则提供给内核 netfilter。
IPTABLES:该工具可以添加删除具体的过滤规则至内核包过滤表。这也意味着无论你如何设置防火墙规则,一旦机器重启所有的规则将丢失。
永久保存规则:你设置的防火墙规则被保存在内核中,但重启会丢失。你可以使用 iptables-save 和 iptables-restore 脚本实现永久保存与恢复。
备注:Linux 防火墙所有的规则被保存在表中,默认 Iptables 防火墙有 4 个表:filter 表(实现过滤功能),nat 表(实现地址转换功能), mangle 表(修改数据包的 TOS、TTL 等信息),raw 表(实现数据包跟踪功能)
这篇关于iptables官方手册整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!