9.7 本章习题
- 为什么我架设了防火墙,我的主机还是可能中毒?防火墙不是万灵丹,他还是可能被病毒或者是木马程序所入侵的! 此外,如果你的主机本身就已经提供了多个网络服务,则当该网络服务的软件有漏洞时, 防火墙仍然无法克服该服务的漏洞的!因此仍然需要持续的进行主机的监视与后端分析工作
- 请说明为何架设了防火墙,我的主机还是可能被入侵?入侵的依据可能是什么方法?因为防火墙仅是抵挡某些不受欢迎的封包,如果你有开放 WWW 的服务时,则要求你主机 port 80 的封包将可直接进入你的主机,万一 WWW 套件有漏洞时,那么就可能被入侵了!所以软件的更新很重要!
- 我们知道核心为 2.6 的 Linux 使用的防火墙机制为 iptables ,请问,如何知道我的 Linux 核心版本?利用 uname -r 可以查得!
请列出 iptables 预设的两个主要的 table ,以及各个 table 里面的 chains 与各个 chains 所代表的意义;filter 为预设的 Table,里头预设的链有:
- INPUT:为来自外部,想要进入主机的封包;
- OUTPUT:为来自主机,想要离开主机的封包;
- FORWARD:为主机内部网域与外部网域的封包(不论进或者出),但该封包不会进入主机。
还有 nat 这个 table:
- PREROUTING:进行路由之前的封包传送过程
- OUTPUT:离开主机的封包传送过程;
- POSTROUTING:已经经过路由了,然后才进行的过滤规则。
什么是 iptables 的预设政策 (Policy)?若我要针对 filter 的 INPUT 做成 DROP 的默认政策,指令如何下达?当封包的所有属性都不在防火墙的规则当中时,那么这个封包能否顺利的通过防火墙,则以 Policy 作为这个封包的最终动作了! iptables -P INPUT DROP
- 假设今天我的 Linux 仅是作为 Client 之用,并没有对 Internet 进行任何服务, 那么你的防火墙规划应该如何设定比较好?既然没有对 Internet 提供任何服务,那么(1)请将所有的对外埠口先关闭吧!(2)防火墙规则当中,最重要的是 INPUT 的 Policy 一定要 DROP ,然后将『 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 』即可!
- 我要将来自 192.168.1.50 这个 IP 来源的封包,只要是向我的 21~23 埠口要求的封包,就将他抵挡,应该如何下达 iptables 指令?iptables -A INPUT -p tcp -s 192.168.1.50 --dport 21:23 -j DROP
- 我要将我自己主机 ping 的响应功能取消,应该如何下达 iptables 的指令?因为 ping 能否响应用的是 icmp 的 type 8 (请参考网络基础内的 ICMP 相关内容),所以我可以这样做: iptables -I INPUT -p icmp --icmp-type 8 -j DROP
- 请说明为何这个指令是错误的?『iptables -A INPUT -p udp --syn -s 192.168.0.20 -j DROP』?因为只有 TCP 封包才会具有 SYN 的标志, UDP 并没有 SYN 的标志啊!所以上面的指令是错误的
- DNS 的要求是必须的,那么我该如何设定我的主机可以接受要求 DNS 的响应呢?因为 DNS 的来源是 port 53 ,因此要接受来自 port 53 的封包就成为了: iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT
- 如何取消 iptables 在我的系统上面?先要清除规则后,才能够将 iptables 移除!不过,我们主要将规则清除即可! iptables -F; iptables -X; iptables -Z iptables -t nat -F; iptables -t nat -X; iptables -t nat -Z
- 如何储存目前的防火墙机制,以及如何将上次储存下来的机制回复到目前的系统中?请利用 iptables-save 以及 iptables-restore 这两个指令,配合命令重导向即可! 也可以使用 /etc/init.d/iptables save 来储存喔!
- 如果你的区网当中有个 PC 使用者老是连上 Internet 乱搞,你想要将他的 IP 锁住,但他总是有办法修改成其他 IP 来连外, 那你该怎么办?让他无法继续连外?可以利用封锁网络卡卡号 MAC 来处理!