Chinaunix首页 | 论坛 | 博客
  • 博客访问: 479483
  • 博文数量: 132
  • 博客积分: 2995
  • 博客等级: 少校
  • 技术积分: 1412
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-06 20:14
文章分类

全部博文(132)

文章存档

2010年(2)

2008年(21)

2007年(109)

我的朋友

分类:

2007-03-10 13:16:30

iptables
一、iptables介绍
    iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables
    命令设置你的规则,来把守你的计算机网络──哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。让我
    们看一下iptables的优点:iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式
    对于有效地配置FTP和DNS以及其它网络服务是必要的。 iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。
    iptable能够阻止某些DOS攻击,例如SYS洪泛攻击。

二、安装
    linux系统中自带

三、iptables命令行选项的一个总结

    规则链维护选项
      1.建立新的规则链(-N)
      2.删除一个空的规则链(-X)
      3.改变一个内置规则链的策略(-P)
      4.列出一条规则链中的规则(-L)
      5.擦写一条规则链中的规则(-F)

    规则维护
      1.在一条规则链中加入一条新的规则(-A)
      2.删除一条规则链中某个位置的规则(-D)

四、初始化工作
    # iptables -F
    # iptables -X
    # iptables -t nat -F
    # iptables -t nat -X
    以上每一个命令都有它确切的含义。一般设置你的iptables之前,首先要清除所有以前设置的规则,我们就把它
    叫做初始化好了。虽然很多情况下它什么也不做,但是保险起见,不妨小心一点吧!
   
五、开始设置规则
    #iptables -P INPUT DROP
    这一条命令将会为你构建一个非常“安全”的防火墙,此时你的机器将相当于没有网络。如果你ping localhost,
    你就会发现屏幕一直停在那里,因为ping收不到任何回应。

    iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
    iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable
    来代替,以防让黑客对我的计算机了解太多

    #iptables -A INPUT -j ACCEPT
    这条规则的意思是:接受所有的

    #iptables -A INPUT -i ! ppp0 -j ACCEPT
    这条规则的意思是:接受所有的,来源不是网络接口ppp0的数据。

    # iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
    允许来自网络接口eth0(internet接口),并且来源端口是80的数据进入你的计算机。

    # iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
    这条命令的含义是,接受所有来自网络接口eth0,upd协议的53端口的数据。53也就是著名的dns端口。

    # iptables -L
    查看你的防火墙

    # iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    这一句也就是将自己机器上的80端口对外开放了,这样internet上的其他人就能访问你的www了

    # /sbin/service iptables save
    保存和恢复 IPTables 规则

六、实验
1、[root@localhost ~]# iptables -P INPUT DROP
    [root@localhost ~]# iptables -L
    Chain INPUT (policy DROP)
    target     prot opt source               destination
   
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
   
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    这时的主机相当于和网络断开了

2、[root@localhost ~]# iptables -A INPUT -p tcp -s 10.5.3.105 --dport 22 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    ACCEPT     tcp  --  10.5.3.105           anywhere            tcp dpt:ssh
   
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
   
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

3、[root@localhost ~]# iptables -D  INPUT -p tcp -s 10.5.3.105 --dport 22 -j ACCEPT
    删除这条规则

4、[root@localhost ~]# Open_ports="22 80"
    自己机器对外开放的端口

5、[root@localhost ~]# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    [root@localhost ~]# iptables -L
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    ACCEPT     tcp  --  10.5.3.105           anywhere            tcp dpt:ssh
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
   
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
   
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

  这样就完成了。现在只有10.5.3.105 能ssh 上10.5.1.155 ,但是所有的机器都访问10.5.1.155的web.
阅读(937) | 评论(0) | 转发(0) |
0

上一篇:FREEBSD ipfw设置

下一篇:TcpDump安装设置

给主人留下些什么吧!~~