linux-防火墙

本文探讨了网络安全技术中的关键组件,如入侵检测机制、入侵防御、防火墙(包括iptables和firewalld)的功能、工作原理以及它们在系统中的应用。特别关注了iptables的配置规则和firewalld的动态防火墙特性。
摘要由CSDN通过智能技术生成

安全技术

1、入侵检测机制:特点是阻断,量化,定位来自内外的网络的威胁情况,提供报警和事后监督,类似于监控

2、入侵防御:以透明模式工作,分析数据包的内容,一切进入本机的内容进行防护,木马,蠕虫,系统漏洞进行分析判断,然后,进行阻断,主动的防护机制,部署在整个架构,或者是集群的入口处,(必经之路)

3、防火墙:隔离功能,工作在网络或者主机的边缘,对网络或者主机进出的数据包按照一定规则进行检查(网络层转发的数据包)

我们在工作当中,一般对防火墙的设置都是白名单,拒绝所有,允许个别

4、防水墙,透明模式工作,华为的ensp监控就是防火墙,一切对于防水墙都是透明的

防火墙的种类

保护范围:主机防火墙,仅为当前主机服务

                  网络防火墙,防护的是另一侧的局域网

网络层防火墙,iptables,包过滤防火墙

访问控制,每个数据包的源IP地址,目的IP地址,端口号,协议等等进行组合式监控,由此来判断数据包是否允许通过

通信的五要素和四要素

源/目的IP 源/目的 端口 协议(五要素)

源/目的IP 源/目的 端口(四要素)

iptables:系统自带的包过滤防火墙

firewalld:主机防火墙,它也有包过滤的功能,centos7以后集成的

iptables:内核防火墙,内置四个表,而且所有在的表中,配置规则,配置后立刻生效,不需要重启服务

四表五链

四个表

raw:连接跟踪,跟踪数据的一种机制,配置了之后,可以加快防火墙的穿越速度(关闭raw里面的追踪)

mangle:修改数据包的标记位规则

nat:地址转换的规则表

filter:包过滤规则表,根据预定义的规则,人工设置的规则,对符合条件的数据包进行过滤,也是iptables的默认表

四表是有优先级的

raw------> mangle------->nat-------->filter

五个链

prerouting链:处理数据包进入本机之前的规则(地址转换nat)

input链:处理数据包进入本机的规则

FORWARD:处理数据包转发到其他主机的规则

output:处理本机发出的数据包的规则,一般不做处理

postrouting:处理数据包离开本机之后的规则(地址转换nat)

iptables的配置规则

管理选项

-A在指定链的末尾进行追加

-I在指定链插入新的规则,可以指定插入规则的位置

-P修改摸摸人策略(链的策略)

-D删除

-R修改,替换规则

-L 查看指定链当中的规则

-n以数字形式显示规则

-v查看详细信息

--line-numbers:给每个链中的规则进行编号查看

-F清空指定指定链当中的规则(慎用)

-X清空自定义链的规则

-t:指定表名(可加可不加)

匹配条件

-p:指定数据包的协议类型

-s:指定数据包的源IP地址

-d:指定数据包的目的IP地址

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

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

--sport:指定数据包的源端口(源端口)

--dport:指定数据包的目的端口号(目的端口号)

控制类型

-j:后面跟上控制类型

ACCEPT:允许数据包通过

DROP:直接丢弃数据包(直接丢弃),不给任何回应的信息

REJECT:拒绝,拒绝数据包通过,但是会给一个回应的信息

SNAT:修改数据包的源地址

DNAT:修改数据包的目的地址

环境配置

关闭主机防火墙

安装服务iptables

重启服务

开机自启

实例

给规则排序

iptables -vnL --line-numbers

对所有的IP地址做限制

iptables -t filter -A INPUT -p icmp -j REJECT

允许所有的IP地址访问

iptables -A INPUT -p icmp -j ACCEPT

iptables -I INPUT 1 -p icmp -j ACCEPT

对指定IP地址做限制

iptables -I INPUT -s IP地址 -p 协议 -j REJECT

指定多个IP地址做限制

iptables -I INPUT -s IP地址,IP地址 -p 协议 -j REJECT

指定IP地址和端口做限制

iptables -A INPUT -s IP地址 -p 协议 --dport 端口号 -j REJECT

对序号删除(先查后删)

iptables -D INPUT 序号

根据序号修改控制类型

iptables -R INPUT 序号 -p 协议 -j ACCEPT

修改默认策略

iptables -P INPUT DROP

通用匹配规则:IP+端口+网段+接口(网卡设备)

方式一:iptables -A INPUT -s IP地址 -j DROP

方式二(拒绝网段):iptables -A INPUT -i ens33 -s 网段 -j DROP

拒绝网段访问服务

iptables -A INPUT -s 网段 -p 协议 --dport 端口号 -j REJECT

隐藏扩展模块

-p:制定协议时,不需要使用-m指明扩展模块 -m tcp

指定多端口匹配(小的端口号在前,大端口号在后面)

iptables -A INPUT -p tcp --dport 端口号:端口号 -j REJECT

-m 扩展模块,可以明确指定类型,多端口 MAC地址 IP范围

指定多端口

-m multiport --sport --dport

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT

指定IP地址范围

-m iprange --src-range 源IP地址范围

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

iptables -A INPUT -p icmp -m iprange --src-range IP地址范围 -j REJECT

对指定Mac地址

iptables -A INPUT -m mac --mac-source Mac地址 -j REJECT

备份和还原

备份

iptables-save > 指定文件

还原

iptables-restore < 指定文件

iptables 默认策略目录

/etc/sysconfig/iptables

自定义链

添加自定义链 iptables -N 链名

修改自定义链名 iptables -E 链名 修改之后的链名

给自定义链添加规则并让系统识别

iptables -I 链名 序号 -p 协议 -j ACCEPT

iptables -I INPUT 序号 -p 协议 -j 链名

删除自定义规则和链(根据序号删除)

iptables -D INPUT 序号

iptables -D INPUT 链名 序号

iptables -X 链名

firewalld

firewalld:centos7自带的,和iptables一样,也是包过滤防火墙

firewalld过滤,通过区域来进行配置

iptables 静态的防火墙

firewalld 是动态防火墙

firewalld靠的是区域:

1、trusted:信任区,所有流量都可以传入

2、public:公共区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,也是firewalld的默认区域

3、external:外部区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,默认通过此区域转发的ipv4流量地址,可以进行伪装

4、home:家庭区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝

5、internal:内部区域,默认值与home区域的作用相同

6、work工作区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝

7、DMZ:隔离区又叫非军事区 ,允许ssh,其他的预定义好配置,其他的全部拒绝

8、block:限制区,拒绝所有的流量

9、drop:丢弃区域,所有流量都会丢弃,而且没有任何响应

dhcpv6-client:获取ipv4地址的客户端工具

开启防火墙

查看防火墙的状态 systemctl staus firewalld

firewalld-cmd --get-default-zone 显示当前系统中的默认区域

firewalld-cmd --list-all 显示默认区域内的所有规则

firewalld-amd --set-default-zone=block 限制

firewalld-cmd --list-service 查看区域内允许访问(通过)的服务

firewalld-cmd --add-service=http --zone=public 添加服务

firewalld-cmd --remove-service=http --zone=public 删除服务

添加多个服务(临时)

方式一

firewalld-cmd --add-service=http --add-service=ftp --zone=public

方式二

firewalld-cmd --add-service={ftp http}

添加多个服务(永久)

firewalld-cmd --add-service={ftp http} --zone=public --permanent

firewalld-cmd --reload

删除服务

firewalld-cmd --remove-service=http --zone=public --permanent

firewalld-cmd --reload

端口管理:

添加端口

firewalld-cmd --zone=public --add-port80/tcp

移除端口

firewalld-cmd --zone=public --remove-port80/tcp

添加多个端口

firewalld-cmd --zone=public --add-port={3306,80,21}/tcp

添加范围端口

firewalld-cmd --zone=public --add-port=30-40/tcp

实验

准备三台主机

test1 20.0.0.10 内网

test2 ens33 20.0.0.254

ens36 12.0.0.254

做SNAT的地址转换

test3 12.0.0.10 外网

test2添加网络适配器

ifconfig 查看是否添加成功

关闭防火墙

关闭安全机制

test2的网卡配置

cp ifcfg-ens33 ifcfg-ens36

配置 ifcfg-ens33

配置 ifcfg-ens36

sysctl.conf 修改内核参数的文件

net.ipv4.ip_forward=1 开启内核转发功能

sysctl -p 立刻生效

test1 test3安装httpd

重启服务

检查一下httpd能访问吗

重启网卡

test2

访问外网

iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --to 10.0.0.10

iptables -t nat -A PERROUTING -d10.0.0.10 -i ens33 -p tcp --dport 80 -j DNAT --to 20.0.010:80

查看nat表

iptables -t nat -vnL

test1在虚拟机里打开浏览器访问test3,test3查看日志tail /var/log/httpd/access_log

test3同理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值