构筑Linux防火墙之个人用户设置防火墙

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作为例子,我们来为一个普通家庭用户创建一个防火墙。假设该家庭用户一般将自己的计算机用于Internet浏览、电子邮件等。我们所要做的就是允许所有必须的连接通过,而禁止所有不相关的连接。以下是防火墙配置文件的内容:

1 *filter

2 :INPUT DROP [0:0]

3 :FORWARD DROP [0:0]

4 :OUTPUT DROP [0:0]

5

6 # 允许本地loopback连接

7 -A INPUT -i lo -j ACCEPT

8

9 # drop非法连接

10 -A INPUT

-m state --state INVALID -j DROP

11 -A OUTPUT

-m state --state INVALID -j DROP

12 -A FORWARD -m state --state INVALID -j DROP

13

14 # 允许所有已经建立的和相关的连接

15 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

16 -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

17

18 # 允许连接的ISP的DNS服务器

19 -A OUTPUT -d 2.3.4.10 -m state --state NEW -p udp --dport 53 -o eth0 -j ACCEPT

20 -A OUTPUT -d 2.3.4.11 -m state --state NEW -p udp --dport 53 -o eth0 -j ACCEPT

21

22 # 允许向外连接到Web服务器

23 -A OUTPUT -d 0/0 -m state --state NEW -p tcp --dport http -o eth0 -j ACCEPT

24 -A OUTPUT

-m state --state NEW -p tcp --dport https -o eth0 -j ACCEPT

25

26 # 允许向外连接到ISP的SMTP和POP3服务器

27 -A OUTPUT -d 2.3.4.5 -m state --state NEW -p tcp --dport smtp -o eth0 -j ACCEPT

28 -A OUTPUT -d 2.3.4.5 -m state --state NEW -p tcp --dport pop3 -o eth0 -j ACCEPT

29

30 # 记录其它试图向外进行的连接

31 -A OUTPUT -o eth0 -j LOG

32 # 缺省情况下是DROP向外的连接

33

34 COMMIT

有关具体命令行的意义参照上文很容易就可以理解,这里就不在赘述。事实上,只要熟悉了某一特定环境下防火墙的设置,我们就可以比较容易地为其它的应用环境创建相应的防火墙。

编后语:

这里,我们介绍了在Linux上使用iptables创立防火墙的基本方法。实际上,由于需求不同,因此并不存在什么完全的防火墙指南。我们只能在了解了基本概念和术语后再自己进行深入的学习。

随着计算机技术的发展,系统安全日益成为一个熟悉而又陌生的话题。因为,现在的计算机世界正日渐成为网络功能的技术集合,但是从概念上来看,网络和安全又是根本矛盾的。网络的设计目的是尽可能地实现一台计算机的开放性,而安全则要尽可能地实现一台计算机的封闭性。

因此,在现实中讨论的安全性,实际上是要在二者中寻找到一个平衡点,一个让用户可以接受的平衡点。从这个意义上讲,计算机安全是一个无穷无尽的主题,因此,在计算机领域没有终极的安全方案。也就是说,对于计算机来说,安全本身就是一个相对的概念。

此外,建议学习一些有关TCP/IP方面的知识。如果想要了解更全面的有关iptables的知识,可以查看以下链接,这是一个非常不错的iptables教程:

http://iptables-tutorial.frozentux.net/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航