zoukankan      html  css  js  c++  java
  • Linux添加防火墙、iptables的安装和配置(亲测)

    iptables基础


           规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。

    规则链:


    1.INPUT    ——进来的数据包应用此规则链中的策略
    2.OUTPUT     ——外出的数据包应用此规则链中的策略
    3.FORWARD  ——转发数据包时应用此规则链中的策略
    4.PREROUTING  ——对数据包作路由选择前应用此链中的规则
    (记住!所有的数据包进来的时侯都先由这个链处理)
    5.POSTROUTING ——对数据包作路由选择后应用此链中的规则
    (所有的数据包出来的时侯都先由这个链处理)

    -A  在指定链的末尾添加(append)一条新的规则
    -D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
    -I  在指定链中插入(insert)一条新的规则,默认在第一行添加
    -R  修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
    -L  列出(list)指定链中所有的规则进行查看
    -E  重命名用户定义的链,不改变链本身
    -F  清空(flush)
    -N  新建(new-chain)一条用户自己定义的规则链
    -X  删除指定表中用户自定义的规则链(delete-chain)
    -P  设置指定链的默认策略(policy)
    -Z 将所有表的所有链的字节和数据包计数器清零
    -n  使用数字形式(numeric)显示输出结果
    -v  查看规则表详细信息(verbose)的信息
    -V  查看版本(version)
    -h  获取帮助(help)


    规则表之间的优先顺序:

    Raw——mangle——nat——filter
    规则链之间的优先顺序(分三种情况):

    第一种情况:入站数据流向

           从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。

    第二冲情况:转发数据流向

           来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。

    第三种情况:出站数据流向
           防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

    iptables 的安装与配置

    由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。

    #停止firewall 
    systemctl stop firewall.service

    #禁止firewall开机启动 
    systemctl disable firewall.service

    #安装iptables 
    yum install iptables-services

    #编辑防火墙文件 (建议都在配置文件配置,不要命令配置
    vi /etc/sysconfig/iptables 
    #添加80和3306端口 等等(自己配置)
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT   
           #80端口开放

    -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT    #3306端口开放

    -I INPUT -s 113.106.93.110 -p tcp --dport 8089 -j DROP                         #禁止指定IP访问 8089

    -I INPUT -s 113.106.93.110 -p tcp --dport 8080 -j ACCEPT                    #开放固定ipIP访问 8080

    #重启防火墙使配置文件生效  
    systemctl restart iptables.service

    #设置iptables防火墙为开机启动项 
    systemctl enable iptables.service

    service iptables  start          #启动服务

    service iptables  stop     #停止服务

    service iptables  restart  #重启服务

    关闭SELINUX 
    vi /etc/selinux/config 
     #注释以下配置 
     SELINUX=enforcing 
     SELINUXTYPE=targeted 
      
     #增加以下配置 
     SELINUX=disabled 
      
     #使配置立即生效 
     setenforce 0

  • 相关阅读:
    Flash builder发布Air程序时设备配置文件supportedProfiles的配置
    Apple Swift中文入门教程【转发】
    管理书籍
    Android Market google play store帐号注册方法流程 及发布应用注意事项
    BMFont使用图片自定义字体(无需字体文件)
    google广告尺寸
    AndroidMainfest.xml文件解释
    win10 vscode ssh-remote配置免密登录
    vscode java配置
    vscode Java 11 or more recent is required to run. Please download and install a recent JDK”
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/7608029.html
Copyright © 2011-2022 走看看