深入分析Linux防火墙
2006-07-04 12:38:10 来源:WEB开发网我们这个示例的目标是只允许从三台特定的机器上接入远程登录服务,它们的IP地址是192.156.12.1到192.156.12.3。表示这个地址范围的IP地址和网络屏蔽码组合是192.156.12.1/255.255.255.252。现在用户的规则语句看起来应该是这个样子的: ipchains-Ainput-s192.156.12.1/255.255.255.252还是不能按回车键,你还有事情要做。
除了来自这三台机器以外,还可以继续细化,告诉ipchains程序允许通过防火墙进入的接收程序必须要使用哪一种协议。用户可以使用-p(protocol,协议)标志。远程登录进程使用的是TCP协议。现在这条规则看起来像是:ipchains- Ainput-s192.156.12.1/255.255.255.252-pTCP还是不要按回车键。
围绕某个特定的协议建立一条规则的选择太多了,但是用户可以为你选定的进程指定其端口(port)来细化那条规则。用户可以把端口的名称加到规则的末尾,也可以用一个冒号引导该端口的端口号。从/etc/services文件中可以查到任何网络服务所使用的端口号。现在这条规则看起来是下列这两行文字中的某个样子:
ipchains-Ainput-s192.156.12.1/255.255.255.252-pTCP:23ALLOW
ipchains-Ainput-s192.156.12.1/255.255.255.252-pTCPTelnetALLOW
现在可以按下回车键了。用户在确实屏蔽了其他接入类型之前,这条规则实际上还是没有什么用处的。最好的解决方法(因为我们的目的是为用户所有希望允许的东西建立规则)是使用-P(policy)标志(注意是大写字母)屏蔽所有的输入,然后ipchains就会去检查特定的规则看看到底什么才能被允许进入。这样的一个策略语句如下所示:ipchains-PinputDENY
在重启动/关机之前保存数据包过滤规则:没有哪个配置文件是用来自动保存数据包过滤规则供你下次启动机器的时候使用的。因此,选择某种方法自己来完成这项工作就十分重要,否则下一次你就还得从头一点一滴地重新写出所有的规则。下面介绍一个保存数据包过滤规则的方法:先以root身份登录进入系统,再使用ipchains-save脚本程序把用户已经编写好的规则设置保存到一个文件中去,比如/root/ipchains-settings文件。输入“ipchains-save>/root/ipchains-settings”。
更多精彩
赞助商链接