iptables 防火墙和firewalld

iptables防火墙

主要作用:隔离功能,一般部署在网络边缘或者主机边缘,控制哪些数据可以被外网访问,哪些数据可以访问内网

硬件防火墙:路由器,交换机,三层交换机

软件防火墙:360,金山毒霸,iptables,firewalld 

运用到的安全技术

        1、入侵检测系统:当检测数威胁(例如:木马、病毒等),不会立刻阻断网络访问,而是过后才报警和监督

        2、入侵防御系统:一旦检测出威胁,会立刻阻断,主动的方式保护网络安全,以透明模式工作,一般采取在线部署的方式

区分方式

1.按保护范围:

        主机防火墙:服务范围就是当前自己的主机

        网络防火墙:必经之路

2.按照实现方式

        硬件:即有硬件的专业的防护,也有专业的软件防护

        软件:代码实现,判断

3.按照网络协议划分

        网络层:包过滤防火墙

        应用层(代理服务器):设置数据的进出

Linux的防火墙:firewalld Centos7自带

                           iptables  包过滤防火墙

                         selinux      自带的安全工具

继承在内核netfilter之中    ---内核态

iptables 包过滤防火墙

工作在网络层;针对数据包进行过滤和限制

iptables属于用户态

过滤数据包:IP地址、端口、协议都可以在iptables中进行配置,同时页可以进行限制或者放行

主要的作用协议:TCP

iptables的组成和工作机制

组成部分:

四表五链

(特殊:selinux 也是一个表,但是,是不在讨论范围之内的第五表)

四表:

raw 表:连接跟踪机制;可以加快封包穿过防火墙的速度;数据包跟踪

mangle 表:数据标记

nat 表:地址转换表

filter 表:过滤规则表;根据规则来定义或者过滤符合条件的数据包;默认表

四表的优先级

security——>raw ——>mangle ——>nat ——>filter

五链

INPUT:处理数据包,进入本机的规则

OUTPUT:处理数据包发出本机的规则

prerouting:处理数据包进入的规则

postrouting:处理数据包离开本机之后的规则

FORWARD:处理数据包转发的规则

iptables 的规则

表里有链(每个表里都可以有着五个链),链里有规则(规则:自定义的对于数据包的控制命令)

匹配顺序

1、根据表的优先级进行匹配;在表中从上到下进行检查,找到匹配的规则后立刻停止,不在继续从表中向下查找,如果匹配不到规则,则按照链的

默认规则进行处理

2、报文流向

流入本机:prerouting——>INPUT链——>用户进程——>请求——>相应——>数据返回给用户

流出本机:例  httpd——>相应(报文)——>OUTPUT链——>postrouting(是否要进行地址转换)——>用户

转发:数据包进来,一定来自非同一网段,路由转发——>FORWARD链——>数据包出去(如不允许转发,则数据包将被直接丢弃)

iptables 的命令格式

iptables [-t 表名](如果不使用-t指定表则默认指定filter表) 管理选项 [链名] [匹配条件] [-j 控制类型]

末尾可以添加字段  --line-number  :表示给自定义的条件编号


管理选项

-A:在链的末尾追加一条;添加一条规则

-I:在链中插入一条新的规则;指定插入的序号   -I 后指定序号

-P:修改默认策略(链的)

-D:删除规则;可以指定序号删除

-R:替换、修改规则(一般不使用)

-L:查看链中的规则;一般配合 v:显示详细信息,和  n:将规则以数字形式展示  -vnL

-F:清空链中的所有规则;慎用!!!!


匹配条件

-p:指定匹配的协议类型

-s:指定匹配的源IP地址(数据包)

-d:指定匹配的目的IP地址(数据包) 

-i:指定数据包进入本机的网络接口

-o:指定数据包离开本机的网络接口

--sport:指定源端口号

--dport:指定目的端口号

控制类型

ACCEPT:允许数据包通过

DROP:拒绝,并且直接丢弃数据包,不给主机做出任何信息回应

REJECT:拒绝,但会给主机做出相应

SNAT:修改数据包的源IP地址

DNAT:修改数据包

在生产中,iptables 中所有链的默认规则都是DROP

隐藏模块

在 -p 指定协议时,如已经指明了是什么协议,就无需在用-m来指明控制模块;当指定端口号时,可以使用冒号的形式,也可以使用-m因此模块来实现

-m 可以用明确的形式来指出类型、多端口、mac地址、IP地址、数据包状态

用法:   -p tcp -m multiport --dport 22,20,3306,80 -j ACCEPT

可以看出 使用-m multiport 来指定多端口时,要使用“.”隔开,而且不用顾及大小排序

IP范围

-m iprange --src-range       源ip范围

-m iprange --dst-range       目的IP范围

使用方法:  -p icmp -m iprange --src-range 20.0.0.10-20.0.0.20 -j ACCEPT

mac地址范围

-m mac --mac-source

iptables 的备份与还原

1、在命令行中的iptables配置都是临时,即重启服务就会失效

2、永久配置

步骤:

首先将策略全部备份 ——> iptables-save > /opt/iptables.bak

再将备份的策略重定向到 iptables的默认永久配置文件 /etc/sysconfig/iptables

另外一种临时配置格式

iptables-restore < /opt/iptables.bak

创建自定义链

iptables -N 自定义链名

没有指定链名 (-t 链名),会默认创建在filter表中

更改表中的链名

iptables -E 原来的链名 新链名

创建在自定义链中的规则,需要添加到默认链中,才能启用

iptables -I INPUT -p icmp -j 自定义链名

       

删除自定义链

iptables -X 自定义链名

注意:如果自定义链的规则已经在默认链中引用,则需要先删除默认链中的引用规则,然后再删除自定义链中的规则,最后才能删除自定义的链

Linux系统如何实现抓包

使用tcpdump 来实现Linux的抓包;tcpdump为Linux自带的工具

命令示例:

tcpdump 协议 -i 设备名(如ens33) -t -s0 -c 10(指定抓包次数) and dst port 80 and src net 20.0.0.0/24 -w(保存) ./ens33.cap

-i ens33:只抓经过ens33的数据包

-t:不显示时间戳

-s0:抓取完整的数据包

and dst port 80 :目的端口为80

and src net 20.0.0.0/24 :指定网段 为数据包的源地址

-w :把数据包的内容保存; ./表示保存位置为当前目录;或/../..直接指定准确保存文件

动态抓包(即一直抓,手动停止)

tcpdump tcp -i ens33 -s0 -w ./ens33.acp

注意:Linux系统无法直接解析出,而要在winshark中直接打开保存的.cap类型的包

firewalld

firewalld 防火墙 ----包过滤防火墙。工作在:网络层。是centos7自带的默认防火墙,主要目的就是取代iptables


firewalld的两种配置模式:


1.运行时配置


2.永久配置


iptables是静态防火墙。firewalld是动态防火墙。

   systemctl status firewalld.service :查看防火墙状态


1


firewalld是按照区域进行划分的:一共有9个区域。

每个区域的作用:


trusted:信任区域,允许所有的流量传入


public:公共区,默认区域,只允许ssh和dhcpv6这两个预定义服务的流量可以传入,其余都是拒绝的。


external:外部区域,只允许ssh和dhcpv6这两个预定义服务的流量可以传入,其余都是拒绝的。如果通过此区域转发的ipv4流量可以进行地址伪装


home:家庭区域,只允许ssh和dhcpv6这两个预定义服务的流量可以传入,其余都是拒绝的。


internal:内部区域,作为默认值和home是一个作用。


work:工作区域,只允许ssh和dhcpv6这两个预定义服务的流量可以传入,其余都是拒绝的。


dmz:隔离区域,也成为非军事区域,只允许ssh和dhcpv6这两个预定义服务的流量可以传入,其余都是拒绝的。


block:限制区域,所有的流量都拒绝。


drop:丢弃区域,直接丢弃,没有回显信息。


linux自带的预定义服务:


ssh:远程连接协议


dhcpv6:通过dhcpv6服务器进行报文交互,获取ipv6的地址。


ipp:编程语言交互 java python


samba:打印机


mdns:主机名地址解析。主要解析小型网络ip地址。


调用方式:


方式一:使用远程连接工具MobaXterm,输入命令:

使用命令行进行更改:


查看系统防火墙默认区域:


注意要确保防火墙属于开启状态!!!

firewall-cmd --get-default-zone 查看系统防火墙默认区域


1
切换默认区域:

firewall-cmd --set-default-zone=block 修改系统防火墙默认区域切换为block 


1


firewall-cmd --list-all  查看默认区域的全部规则


1
添加单个服务:

firewall-cmd --add-service=http --zone=public


1
添加多个服务:


firewall-cmd --add-service=http --add-serviceftp --zone=public

5、同时添加httpd、ftp服务到默认区域,设置成永久生效


firewall-cmd --add-service=http --add-service=ftp --permanent


firewall-cmd --add-service={ftp,http} --zone=public --permanent #两种方式


firewall-cmd --reload
firewall-cmd --list-all
添加使用 --permanent选项表示设置成永久生效,需要重新启动firewalld服务或执行firewall-cmd --reload命令
重新加载防火墙规则时才会生效。若不带有此选项,表示用于设置运行时规则,
但是这些规则在系统或firewalld服务重启、停止时配置将失效。
6.删除public区域的httpd 服务
firewall-cmd --remove-service=http --zone=public
#删除永久规则
[root@localhost ~]# firewall-cmd --remove-service=ftp --zone=public --permanent
success
[root@localhost ~]# firewall-cmd --remove-service=http --zone=public --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# systemctl restart firewalld.service
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

永久添加


方式一:firewall-cmd --add-service=http --add-service=ftp --permanent


方式二:firewall-cmd --add-service={ftp,http} --zone=public --permanent


修改完成后:firewall-cmd --reload 重启


注意:在生产环境中不要轻易关闭防火墙,或重启防火墙,否则会出大乱子!!!!


端口管理


1、允许TCP的443端口到internal区域


firewall-cmd --zone=internal --add-port=443/tcp


firewall-cmd --list-all --zone=internal

2、从internal 区域将TCP的443端口移除


firewall-cmd --zone=internal --remove-port=443/tcp

3、允许UDP的2048~2050端口到默认区域


firewall-cmd --add-port=2048-2050/udp


firewall-cmd --list-all
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值