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

    存在以下两种方式:

    一、service方式

    查看防火墙状态:

    [root@centos6 ~]# service iptables status

    iptables:未运行防火墙。

    开启防火墙:

    [root@centos6 ~]# service iptables start

    关闭防火墙:

    [root@centos6 ~]# service iptables stop

    二、iptables方式

    先进入init.d目录,命令如下:

    [root@centos6 ~]# cd /etc/init.d/

    [root@centos6 init.d]#

    然后

    查看防火墙状态:

    [root@centos6 init.d]# /etc/init.d/iptables status

    暂时关闭防火墙:

    [root@centos6 init.d]# /etc/init.d/iptables stop

    重启iptables:

    [root@centos6 init.d]# /etc/init.d/iptables restart

    在linux系统中安装yum install iptables-services

    然后 vi /etc/sysconfig/iptables

    # Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    #这里开始增加白名单服务器ip(请删除当前服务器的ip地址)
    -N whitelist
    -A whitelist -s 8.8.8.8 -j ACCEPT
    -A whitelist -s x.x.x.x -j ACCEPT
    #这些 ACCEPT 端口号,公网内网都可访问
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT  #开放1000到8000之间的所有端口
    #下面是 whitelist 端口号,仅限 服务器之间 通过内网 访问
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist
    #为白名单ip开放的端口,结束
    -A INPUT -j REJECT --reject-with icmp-host-prohibited 
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

    解释:

    添加防火墙过滤规则步骤如下;

    1、查看现有防火墙过滤规则:

     iptables -nvL --line-number

    2、添加防火墙过滤规则(设置白名单):

           1)添加白名单

    iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT

                命令详解:

                 -I:添加规则的参数  

                   INPUT:表示外部主机访问内部资源

        规则链:

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

                    3:表示添加到第三行(可以任意修改)

                   -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP;

                   -p: 用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)

                   --dport: 用于匹配端口号

                   -j: 用于匹配处理方式:

                       常用的ACTION:

            DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
                    REJECT:明示拒绝
                    ACCEPT:接受
            2)查看添加结果

    iptables -nvL --line-number

     然后重启防火墙即可生效 
    重启防火墙的命令:service iptables restart 

    此时,防火墙规则只是保存在内存中,重启后就会失效。

    使用以下命令将防火墙配置保存起来;

    保存到配置中:service iptables save (该命令会将防火墙规则保存在/etc/sysconfig/iptables文件中。)

     -----------------------------------------------------------------------------------

    附:

    开放端口段3000~3008

    iptables -A INPUT -p tcp --dport 3000:3008 -j ACCEPT

    开放ip段

    复制代码

    iprange模块提供了两个匹配参数:
    --src-range: 匹配来源地址的范围,例如,iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.2-192.168.0.61 -j DROP
    --dst-range: 匹配目的地址的范围,例如,iptables -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.2-192.168.0.61 -j DROP 

    禁止用户访问www.baidu.com
    iptables -I FORWARD -d www.baidu.com -j DROP

    复制代码

    iptables—命令(-A、-I、-D、-R、-L等)、

    1、常用命令列表:  常用命令(-A追加规则、-D删除规则、-R修改规则、-I插入规则、-L查看规则)
    命令-A,--append
    范例 iptables -A INPUT ...
    说明新增规则(追加方式)到某个规则链(这里是INPUT规则链)中,该规则将会成为规则链中的最后一条规则。
    
    命令-D,--delete
    范例 iptables -D INPUT --dport 80 -j DROP
    iptables -D INPUT 1
    说明 从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
    
    命令-R, --replace
    范例 iptables -R INPUT1-s 192.168.0.1 -j DROP
    说明取代现行规则,规则被取代后并不会改变顺序。(1是位置)
    
    命令-I,--insert
    范例 iptables -I INPUT1--dport 80 -j ACCEPT
    说明插入一条规则,原本该位置(这里是位置1)上的规则将会往后移动一个顺位。
    
    命令-L, --list
    范例 iptables -L INPUT
    说明 列出某规则链中的所有规则。
    
    命令-F, --flush
    范例 iptables -F INPUT
    说明 删除某规则链(这里是INPUT规则链)中的所有规则。
    
    命令-Z,--zero
    范例 iptables -Z INPUT
    说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
    
    命令-N, --new-chain
    范例 iptables -N allowed
    说明 定义新的规则链。
    
    命令-X, --delete-chain
    范例 iptables -X allowed
    说明 删除某个规则链。
    
    命令-P, --policy
    范例 iptables -P INPUT DROP
    说明 定义过滤政策。 也就是未符合过滤条件之封包,预设的处理方式。
    
    命令-E,--rename-chain
    范例 iptables -E allowed disallowed
    说明 修改某自订规则链的名称。
    View Code

     Iptables防火墙规则使用梳理

    规则的删除等:linux下iptables的使用下面是可能用于防止慢连接攻击的方式

    #处理IP碎片数量,防止攻击,允许每秒100个
    iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
    #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
    iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
  • 相关阅读:
    Windows API的CreateFile()中的OPEN_ALWAYS和CREATE_ALWAYS之间的差异
    Linux下的虚拟串口对(可用于在本机上模拟串口进行调试)
    [转&精]IO_STACK_LOCATION与IRP的一点笔记
    【转】在WIN7、WIN10操作系统用WebDAV映射网络驱动器需要的操作
    Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information
    分布式处理大数据的目录及学习树
    利用docker将传统企业集中式架构转换为微服务架构的实践经验
    docker学习笔记5 端口映射与容器互联
    docker学习笔记4 数据管理、持久化
    docker学习笔记3 容器 container
  • 原文地址:https://www.cnblogs.com/shangwei/p/14251396.html
Copyright © 2011-2022 走看看