8.1 防火墙管理工具

  防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用。主要功能都是依据策略对穿越防火墙自身的流量进行过滤。防火墙策略可以基于

流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之

则丢弃。这样一来,就可以保证仅有合法的流量在企业内网和外部公网之间流动了。

  iptables 与 firewalld 都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙

策略交由内核层面的 netfilter 网络过滤器来处理,而 firewalld 服务则是把配置好的防火墙策略交由内核层面的 nftables 包过滤框架来处理。

8.2 iptables

  在早期的 Linux 系统中,默认使用的是 iptables 防火墙管理服务来配置防火墙,

8.2.1 策略与规则链:

  防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规

则之后没有匹配项,就去执行默认的策略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),

就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用.

  iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:

    ➢ 在进行路由选择前处理数据包(PREROUTING)
    ➢ 处理流入的数据包(INPUT)
    ➢ 处理流出的数据包(OUTPUT)
    ➢ 处理转发的数据包(FORWARD)
    ➢ 在进行路由选择后处理数据包(POSTROUTING)

  一般来说,从内网向外网发送的流量一般都是可控且良性的,因此我们使用最多的就是INPUT 规则链,该规则链可以增大黑客人员从外网入侵内网的难度。

  例如:比如在您居住的社区内,物业管理公司有两条规定:禁止小商小贩进入社区;各种车辆在进入社区时都要登记。显而易见,这两条规定应该是用于社

区的正门的(流量必须经过的地方),而不是每家每户的防盗门上。根据前面提到的防火墙策略的匹配顺序,可能会存在多种情况。比如,来访人员是小商小贩,

则直接会被物业公司的保安拒之门外,也就无需再对车辆进行登记。如果来访人员乘坐一辆汽车进入社区正门,则“禁止小商小贩进入社区”的第一条规则就没有被

匹配到,因此按照顺序匹配第二条策略,即需要对车辆进行登记。如果是社区居民要进入正门,则这两条规定都不会匹配到,因此会执行默认的放行策略。

  但是,仅有策略规则还不能保证社区的安全,保安还应该知道采用什么样的动作来处理这些匹配的流量,比如“允许”、“拒绝”、“登记”、“不理它”。这些动作对

应到 iptables 服务的术语中分别是ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)。“允许流量通过”和“

记录日志信息”都比较好理解,这里需要着重讲解的是 REJECT 和 DROP 的不同点。就 DROP 来说,它是直接将流量丢弃而且不响应;REJECT 则会在拒绝流量后

再回复一条“您的信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的的响应信息。

  例如:比如有一天您正在家里看电视,突然听到有人敲门,您透过防盗门的猫眼一看是推销商品的,便会在不需要的情况下开门并拒绝他们(REJECT)。但如

果您看到的是债主带了十几个小弟来讨债,此时不仅要拒绝开门,还要默不作声,伪装成自己不在家的样子(DROP)。

  当把 Linux 系统中的防火墙策略设置为 REJECT 拒绝动作后,流量发送方会看到端口不可达的响应:
  而把 Linux 系统中的防火墙策略修改成 DROP 拒绝动作后,流量发送方会看到响应超时的提醒。但是流量发送方无法判断流量是被拒绝,还是接收方主机当前不在线:

8.2.2 Iptables服务相关命令

  iptables 命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables 就会根据策略规则所预设的动作来处理这些流量。

  另外,再次提醒一下,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。

  1.查看iptables状态

service iptables status

  2.开启/关闭iptables

service iptables start

service iptables stop

  3.查看iptables是否开机启动

chkconfig iptables --list

  4.设置iptables开机启动/不启动

chkconfig iptables on

chkconfig iptables off

8.3.iptables的结构

  在iptables中有四张表,分别是filter、nat、mangle和raw每一个表中都包含了各自不同的链,最常用的是filter表

filter表:filter是iptables默认使用的表,负责对流入、流出本机的数据包进行过滤,该表中定义了3个链:

  

  INPOUT  负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包。

  FORWARD 负责转发流经本机但不进入本机的数据包,起到转发的作用。

  OUTPUT 负责处理所有源地址是本机地址的数据包,就是处理从主机发出去的数据包。

8.4.iptables练习

  #查看帮助
  iptables -h
  man iptables

  列出iptables规则
  iptables -L -n
  列出iptables规则并显示规则编号
  iptables -L -n --line-numbers

  列出iptables nat表规则(默认是filter表)
  iptables -L -n -t nat

  清除默认规则(注意默认是filter表,如果对nat表操作要加-t nat)
  #清楚所有规则
  iptables -F

  #重启iptables发现规则依然存在,因为没有保存
  service iptables restart

  #保存配置
  service iptables save

  #禁止ssh登陆(若果服务器在机房,一定要小心)
  iptables -A INPUT -p tcp --dport 22 -j DROP
  #删除规则
  iptables -D INPUT -p tcp --dport 22 -j DROP

-A, --append chain    追加到规则的最后一条
-D, --delete chain [rulenum]    Delete rule rulenum (1 = first) from chain
-I, --insert chain [rulenum]    Insert in chain as rulenum (default 1=first) 添加到规则的第一条
-p, --proto  proto    protocol: by number or name, eg. 'tcp',常用协议有tcp、udp、icmp、all
-j, --jump target 常见的行为有ACCEPT、DROP和REJECT三种,但一般不用REJECT,会带来安全隐患

注意:INPUT和DROP这样的关键字需要大写

#禁止192.168.33.0网段从eth0网卡接入
iptables -A INPUT -p tcp -i eth0 -s 192.168.33.0 -j DROP
iptables -A INPUT -p tcp --dport 22 -i eth0 -s 192.168.33.61  -j ACCEPT

#禁止ip地址非192.168.10.10的所有类型数据接入
iptables -A INPUT ! -s 192.168.10.10 -j DROP

#禁止ip地址非192.168.10.10的ping请求
iptables -I INPUT -p icmp --icmp-type 8 -s 192.168.50.100 -j DROP

#扩展匹配:1.隐式扩展 2.显示扩展
    #隐式扩展
    -p tcp
        --sport PORT 源端口
        --dport PORT 目标端口

#显示扩展:使用额外的匹配规则
    -m EXTENSTION --SUB-OPT
    -p tcp --dport 22 与 -p tcp -m tcp --dport 22功能相同

state:状态扩展,接口ip_contrack追踪会话状态
        NEW:新的连接请求
        ESTABLISHED:已建立的连接请求
        INVALID:非法连接
        RELATED:相关联的连接

#匹配端口范围
iptables -I INPUT -p tcp --dport 22:80 -j DROP

#匹配多个端口
iptables -I INPUT -p tcp -m multiport --dport 22,80,3306 -j ACCEPT

#不允许源端口为80的数据流出
iptables -I OUTPUT -p tcp --sport 80 -j DROP

DA_06_iptables 与 firewalld 防火墙的更多相关文章

  1. 第8章 Iptables与Firewalld防火墙

    章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...

  2. CentOS7使用firewalld防火墙配置端口

    安装启用firewalld防火墙 CentOS7默认的防火墙是firewalld 如果没有firewalld防火墙,可以执行yum install firewalld 命令进行安装 firewalld ...

  3. CentOS7、REHL7的firewalld防火墙使用简单说明

    title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...

  4. Linux firewalld 防火墙

    Linux firewalld 防火墙  简介 RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux system ...

  5. CentOS 7 打开关闭FirewallD防火墙端口命令

    CentOS 7 使用firewalld代替了原来的iptables,使用方法如下: >>>关闭防火墙 systemctl stop firewalld.service        ...

  6. 第7章 Iptables与Firewalld防火墙。

    第7章 Iptables与Firewalld防火墙.     Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00     ...

  7. CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙

    CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙 时间:2014-10-13 19:03:48  作者:哎丫丫  来源:哎丫丫数码网  查看:11761  评论:2 ...

  8. CentOS firewalld 防火墙操作

    Centos 7 开启端口CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询 ...

  9. 9.Iptables与Firewalld防火墙

    第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...

随机推荐

  1. 还原Master数据库后SQLSERVER的服务无法开启

    如果还原Master数据库后,SQLSERVER的服务无法开启,请注意是否因为其他的系统数据库在Master备份中记录的路径与现在的路径不一致导致的. 如果是,可以在cmd中执行“NET START ...

  2. python之selenium元素定位方法

    前提: 大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助! 内容: 一,selenium定位元素 selenium提供了8种方法: 1.id ...

  3. 【VS开发】【C/C++开发】printf缓冲区刷新

    printf之缓冲区小结: 今天调试程序,发现了一个有趣的现象,printf函数没有按照预期的结果输出重复的字符串,单步调试显示代码的确走到了打印屏幕的分支,没有显示不由得想到了是不是缓冲区去刷新的问 ...

  4. 【算法集中营】CRC16 三种算法及c实现

    标准CRC生成多项式如下表: 名称       生成多项式             简记式*  标准引用    CRC-4       x4+x+1                  3        ...

  5. 图表:WebChartControl

    #region 画统计图 /// <summary> /// 画统计图 /// </summary> private void LoadWebChartControl() { ...

  6. Hbase标准配置文件 + 增删改查

    1.可用配置文件 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href=&q ...

  7. day35 守护进程、互斥锁、IPC

    day35 守护进程.互斥锁.IPC 1.守护进程 # 守护进程:当父进程执行完毕后,设置的守护进程也会跟着结束# 当一个进程被设置为守护进程后,其不能再产生子进程​ from multiproces ...

  8. 微信JSAPI支付接口,支付完成后关闭当前窗口

    一.把demo里的这一段: success: function (res) { // 支付成功后的回调函数 if (res.err_msg == "get_brand_wcpay_reque ...

  9. LG P2822 NOIP2016D2T1 组合数问题

    一句话题意 给定n.m和k,求对于所有的i(0<=i<=n)和j(0<=j<=min(i,m)),有多少对(i,j)使\(C_i^j\)使k的倍数 数据范围 部分分.满分做法和 ...

  10. tr、od命令

    一.tr:替换或删除字符 语法:       tr [OPTION] ... SET1 [SET2] 描述       翻译,压缩和/或删除标准输入中的字符,可写吗?       到标准输出. -c, ...