闇の光

读书笔记 经验感受

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

iptables 是 Linux 中最常用的防火墙软体之一,其实观察各个 Linux distribution 都不约而同的把 iptables 内建安装在系统中,它的重要性便可见一斑。

防火墙是做啥用的?很多人常常把防火墙跟防毒软体搞混,其实这两种软体性质是截然不同的,防毒软体就是在防止一些恶意的程式来破坏主机或盗取主机资料的软体;而防火墙的功能就是在阻挡这一些来自网路上的恶意连线的入侵、或是植入病毒,所以这两种软体是相辅相成的。

广义的来说,只要能够分析与过滤进入我们管理之网域的封包资料,就可以称为防火墙。

其实设定防火墙,并没有想像中那麽难,简易的防火墙设定,只要几行规则,就可以达到不错的效果,先了解到 iptables 的一些规则:

先观察主机中,iptables 的列表:


~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
 
Chain FORWARD (policy ACCEPT)
target prot opt source destination
 
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
上面是一般主机尚未进行规则设定的列表
INPUT 进入主机封包的状态
FORWARD 封包转向的状态
OUTPUT 出去主机封包的状态

後面接的 ACCEPT 意思是开放,也就是说目前三种封包状态都是开放,不管是什麽封包通通照单全收,这一种情形对主机来说是很危险的。

一般来讲,订定 iptables 规则时,INPUT 通常都会定的很严格,反之,FORWARD、OUTPUT 就会定的比较松,有时甚至是全部 ACCEPT,其实是看使用者习惯的问题,依照不同情形制定规则,不过 INPUT 这部分是比较需要下工夫的。

开始制定规则:


开始写规则前,必须将之前的规则全部清空
~# iptables -F
~# iptables -X
~# iptables -Z


参数说明:
  • -F :清除所有的已订定的规则
  • -X :杀掉所有使用者建立的 tables
  • -Z :将所有的 chain 的计数与流量统计都归零

  • 请注意,如果在远端连线的时候,『这三个指令必须要用 scripts 来连续执行』, 不然肯定『会让您自己被主机挡在门外!』

    加入简易的防火墙设定:


    #采取 INPUT 全封闭,在一个一个开的策略
    iptables -P INPUT DROP
    # 让已经建立或者是与我们主机有关的回应封包通过,但是让不合法的封包被抵挡在外!
    iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT
    iptables -A INPUT -m state –state INVALID -j DROP

     


    #接受网域内连线
    iptables -A INPUT -i eth0 -p tcp -s 192.168.0.1/24 -j ACCEPT
    iptables -A INPUT -i eth0 -j ACCEPT

     


    #开放特定 service 连线
    iptables -A INPUT -p TCP -i eth0 –dport 25 -j ACCEPT
    iptables -A INPUT -p TCP -i eth0 –dport 21 -j ACCEPT
    iptables -A INPUT -p TCP -i eth0 –dport 110 -j ACCEPT
    iptables -A INPUT -p TCP -i eth0 –dport 80 -j ACCEPT
    iptables -A INPUT -p TCP -i eth0 –dport 22 -j ACCEPT

     


    #封锁特定连线
    #ping不回应
    iptables -I INPUT -p icmp --icmp-type 8 -j DROP

     

    posted on 2007-08-20 16:15  taizi  阅读(301)  评论(0编辑  收藏  举报