zoukankan      html  css  js  c++  java
  • linux centos 防火墙设置

    最近两周都在搞写iptables设置的脚本,就总结一下,适合初学者看看。有大牛经过的话欢迎指正,毕竟偶还是菜鸟一只。。。这里只总结了常用的一些内容,如果想查看完整的,请访问:鸟哥的私房菜 或 http://www.linuxdw.com/netweb/iptables.htm#iptablessyntax

    linux在2.4以后的内核中防火墙用的都是netfilter/iptables,可以实现防火墙,NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部(目前没去了解啥东东),iptables则是用户定义规则集的表结构,就是一条条规则来进行限制。

    iptables的表有三个:filter、nat、mangle,最常用的是filter(另外两个还没用过,据很多教程都说mangle几乎不会用到),一般的防火墙设置,貌似filter就够了。

    一、启动与停止

      服务启动命令:service iptables start

      服务启动命令:service iptables stop

      服务状态查看命令:service iptables status(下面还有另外一种查看方式)

      

      table——表名

      chain——列名

      下面即为规则,num——规则号;target——处理动作;prot——协议名(如tcp、udp、icmp)opt——选项;source——源地址;destination——目标地址

    二、设置

    iptables一般设置步骤:

    1.清除原先设置:

    iptables -F  清除filter表中所有规则

    iptables -X  清除filter表中所有用户自定义的规则

    iptables -Z  清零所有规则的计数和流量统计

    2.添加自己的规则:

    (1)设定默认规则,即默认的处理方式ACCEPT,DROP,REJECT

    一般比较安全的话如下设置(如果有特殊要求,按自己的要求设置呗^_^):

    iptables -P INPUT DROP     对进入的封包设置默认动作——忽略

    iptables -P FORWARD DROP  对转发的封包设置默认动作——忽略

    iptables -P OUTPUT ACCEPT  对本机发出去的包设置默认动作——允许

    (2)添加自己的规则

    iptables [-t table] command [match] [-j target/jump]

    [table]   即所用的表filter/nat/mangle

    [command](只列出常用的):

    -L  查看当前规则链的所有规则,可加-n选项,省去hostname与IP的翻译,速度较快

    例:  iptables -L -n

    -A  添加一条新的链,将会添加到所有规则链的最后

    例:  iptables -A INPUT -p tcp

    -D  删除一条规则

    例:可以列出规则的全部内容,如 iptables -D INPUT -p tcp

        也可以只列出规则号,如 iptables -D INPUT 1   即删除filter表中的编号为1的规则

      注:规则的编号,可以用service iptables status查看,其中的项num即为规则编号。

        

    [match]  匹配规则(:-(这个好长的说。。。。俺在此偷懒,只写俺用过的吧= -)

    -p  协议名

    -s  源地址

    -d  目标地址

    --sport  源端口

    --dport  目标端口

    [此处省略N个字]……

    [-j target]    处理动作

    ACCEPT  对封包放行,进行完此处理动作后,将不再匹配其它规则,直接跳往下一个规则链

    DROP   对封包忽略,不采取任何动作,匹配该规则之后直接停止过滤程序

    REJECT  对封包拒绝,并通知对方,可用选项有ICMP port-unreachable、ICMP echo-reply 或是tcp-reset(这个封包会要求对方关闭 连接),进行完此处理动作后,将不再匹配其它规则,直接中断过滤程序。

    三、保存与恢复

      1.如果你只输入命令不保存的话,下次启动iptables又会恢复原来的设置(这与配置文件iptables-config有关)。因此,如果想之后都用自己的设置,就要对设置进行保存。

       iptables规则可以保存至自己任意指定的文件:iptables-save > /your/iptables/file

         恢复的时候用命令:iptables-restore < /your/iptables/file

      2.不过,默认是保存在文件/etc/sysconfig/iptables中的,可以查看该文件cat /etc/sysconfig/iptables

    # Generated by iptables-save v1.3.5 on Sun Jul 31 08:21:53 2011

    *filter   ——*开头的是表名

    :INPUT ACCEPT [211:14330]     ——:开头的是链

    :FORWARD ACCEPT [0:0]

    :OUTPUT ACCEPT [341:30516]

    COMMIT

    # Completed on Sun Jul 31 08:21:53 2011

    四、碰到的问题,或者叫【说明】

    1.偶用的系统是centos5.5,精简版的哦,亲!

    地址:http://dl.wdlinux.cn/taxonomy/term/3

    2.安装过程中,偶选的是不开启防火墙。如果这样的话,未开启防火墙的时候是不能查看iptables的status的

    3.与iptables有关的几个文件(查看/etc/init.d/iptables可查看iptables的代码)

    /proc/net/ip_tables_names   里面放的是iptables的表名,stop的时候会检查该文件

    /etc/sysconfig/iptables    保存iptables的规则的文件,没有该文件,iptables无法启动

    /etc/sysconfig/iptables-config  iptables的配置文件,里面配置项比较关心的IPTABLES_SAVE_ON_STOP="no",即iptables关闭的时候不保存当前设置,同理IPTABLES_SAVE_ON_RESTART="no",可以自己更改这些配置项。

    /var/lock/subsys/iptables  iptables的日志记录文件,start过程创建,stop的时候会删除。

    这里再奉上一个大牛的总结—— http://blog.csdn.net/tianlesoftware/article/details/6208985

  • 相关阅读:
    PHP 实现Word,excel等转换pdf
    ajax提交表单
    HDOJ题目2089 不要62(数位DP)
    linux中断子系统:中断号的映射与维护初始化mmap过程
    hdu 1548
    怎样高效利用GitHub(非常多资料可供下载)
    MySQL命令学习(一)
    Error-Javascript:错误:页面文档类型(DOCTYPE)未声明!
    Un-Error-ASP.NET:无法加载协定为“YlbService.MMSHServicesSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
    故事-民间故事:《石头汤》
  • 原文地址:https://www.cnblogs.com/aaronwxb/p/2135833.html
Copyright © 2011-2022 走看看