详细总结Linux中的火墙策略优化

防火墙对于企业安全意义重大,本节重点学习iptables及firewalld的管理,从而提高管理企业信息的安全;
netfilter:①Netfilter是新一代的Linux防火墙机制,是linux内核的一个子系统。其重要工具模块IPTables从用户态的iptables连接到内核态的Netfilter的架构中,Netfilter与IP协议栈是无缝契合的,并允许使用者对数据报进行过滤、地址转换、处理等操作,他是一种表格;②iptables:往netfilter 中写内容的工具;③管理 iptable 策略的方式A.iptablesB.firewalld


实验环境:

Windows: IP为192.168.0网段
主机一:双网卡主机:192.168.0网段和172.25.254网段
主机二:单网卡:172.25.254网段
在这里插入图片描述

一、火墙介绍

1.netfilter ##插件,是新一代的Linux防火墙机制,是linux内核的一个子系统。其重要工具模块IPTables从用户态的iptables连接到内核态的Netfilter的架构中,Netfilter与IP协议栈是无缝契合的,并允许使用者对数据报进行过滤、地址转换、处理等操作,他是一种表格;
2.iptables ##往netfilter 中写内容的工具,有iptables及firewalld两种方式
3.iptables | firewalld

netfilter包含:
三张表:filter、nat、mangle
5条链:input、output、forward、postrouting、prerouting
在这里插入图片描述

二、火墙管理工具切换和对比

在rhel8中默认使用的是firewalld

firewalld----->iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld 
systemctl mask firewalld 
systemctl enable --now iptables

iptales -------> fiewalld 
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld

在这里插入图片描述

firewalld与iptables的区别

firewalld 与 iptables 的区别有以下四点:

  • iptables 主要是基于接口,来设置规则,从而判断网络的安全性。firewalld 是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全,与硬件防火墙的设置相类似。
  • iptables 防火墙类型为静态防火墙。firewalld 防火墙类型为动态防火墙。
  • 使用 iptables 每一个单独更改意味着清除所有旧有的规则从 /etc/sysconfig/iptables 里读取所有新的规则。使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此 firewalld 可以在运行时间内,改变设置而不丢失现行连接
  • iptables 在 /etc/sysconfig/iptables 中储存配置。firewalld 将配置储存在 /etc/firewalld/ (优先加载) 和 /usr/lib/ firewalld/ ( 默认的配置文件) 中的各种 XML 文件里。

三、iptables

1.火墙策略的永久保存

/etc/sysconfig/iptables          ##iptables 策略记录文件

永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save

2.火墙默认策略

(1)iptables命令

默认策略中的5条链
input          ##输入
output         ##输出
forward        ##转发
postrouting    ##路由之后
prerouting     ##路由之前

默认的3张表
filter         ##经过本机内核的数据(input output forward)
nat            ##不经过内核的数据(postrouting,prerouting,input,output);即通过本机访问另外一台主机
mangle         ##当filter和nat表不够用时使用(input output forward postrouting,prerouting,)
iptables命令
iptables
         -t           ##指定表名称
         -n           ##不做解析
         -L           ##查看
         -A           ##添加策略
         -p           ##协议
         --dport      ##目的地端口
         -s           ##来源
         -j           ##动作
             ACCEPT   ##允许
             DROP     ##丢弃
             REJECT   ##拒绝
             SNAT     ##源地址转换
             DNAT     ##目的地地址转换
         -N           ##新建链
         -E           ##更改链名称
         -X           ##删除链
         -D           ##删除规则
         -I           ##插入规则
         -R           ##更改规则
         -P           ##更改默认规则

在这里插入图片描述

  106  iptables -F                 ##清除策略
  107  iptables -nL                ##不做解析的查看   
  108  systemctl restart iptables.service     ##重启火墙
  109  iptables -nL 
  110  iptables -F 
  111  service iptables save       ##保存当前状态,
  112  iptables -nL
  113  systemctl restart iptables.service     ##重启火墙,状态会被保存
  114  iptables -nL      
  115  iptables -t nat -nL         ##查看nat表
  116  iptables -t mangle -nL      ##查看mangle表
  117  iptables -t fileter -nL     ##查看fileter表,若什么都不加,默认是fileter表
  118  iptables -t filter -nL
  119  iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
                                   ##在INPUT中添加22端口允许
  120  iptables -nL
  121  iptables -t filter -A INPUT -s 192.168.0.100 -p tcp --sport 80 -j REJECT 
                                   ##-s 来源主机
  122  iptables -t filter -A INPUT ! -s 192.168.0.100 -p tcp --sport 80 -j REJECT 
                                   ##“!”表示除了
  123  iptables -nL
  124  iptables -t filter -D INPUT 3    ##删除INPUT中第三条
  125  iptables -nL
  126  iptables -R INPUT 2 -s 192.168.0.100 -p tcp --sport 80 -j REJECT ##更改
  127  iptables -nL
  128  iptables -A INPUT -j REJECT      ##拒绝所有:火墙策略是从上至下,依次读
  129  iptables -nL
  129  iptables -I INPUT 2 tcp --dport 53 -j ACCEPT    ##插入式添加
  130  iptables -P INPUT ACCEPT         ##改变默认规则
  131  iptables -nL
  132  iptables -N westos               ##新建链
  133  iptables -nL
  134  iptables -E westos WESTOS        ##更改链名称
  135  iptables -nL
  136  iptables -X WESTOS               ##删除链
  137  iptables -nL

(2)filter 表

数据包状态
(数据跟踪:例子:sshd服务第一次认证时按照顺序从上至下,第二次仅仅读第一条就可认证)
RELATED       ##建立过连接的
ESTABLISHED   ##正在连接的
NEW           ##新的

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT     ##接受:建立过连接、正在连接
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT               ##接受:回环接口
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT   ##接受:80端口
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT  ##接受:443端口
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT   ##接受:53端口
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT ##拒接该主机的22端口
iptables -A INPUT -m state --state NEW -j REJECT                     ##其他均拒绝
service iptables save                                                ##保存策略

在这里插入图片描述

(3)nat表

实验:172.25.254网段的虚拟机访问192.168.0网段的Windows
双网卡主机功能类似于路由器

nat表中的dnat snat

snat:内网访问外网
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20

dnat:外网访问内网
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30

snat:内网访问外网
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
dnat:外网访问内网
在这里插入图片描述
在这里插入图片描述
注意:双网卡主机的内核路由功能必须开启!!
在这里插入图片描述

四、firewalld

1. firewalld的开启

systemctl stop iptables 
systemctl disable iptables
systemctl mask iptables 

systemctl unmask firewalld
systemctl enable --now firewalld

在这里插入图片描述

2.关于firewalld的域

trusted   ##接受所有的网络连接
home      ##用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client
work      ##工作网络 ssh ipp-client dhcp-client
public    ##公共网络 ssh dhcp-client
dmz       ##军级网络 ssh
block     ##拒绝所有
drop      ##丢弃 所有数据全部丢弃无任何回复
internal  ##内部网络 ssh mdns ipp-client samba-client dhcp-client
external  ##ipv4网络地址伪装转发 sshd

3.关于firewalld的设定原理及数据存储

/etc/firewalld     ##火墙配置目录
/lib/firewalld     ##火墙模块目录

在这里插入图片描述
在这里插入图片描述

4. firewalld的管理命令

图形管理
在这里插入图片描述
命令管理

域:
firewall-cmd --state                    ##查看火墙状态
firewall-cmd --get-active-zones         ##查看当前火墙中生效的域
firewall-cmd --get-default-zone         ##查看默认域
firewall-cmd --set-default-zone=trusted ##设定默认域

firewall-cmd --list-all              ##查看默认域中的火墙策略
firewall-cmd --list-all --zone=work  ##查看指定域的火墙策略

服务:
firewall-cmd --get-services                       ##查看所有可以设定的服务
firewall-cmd --permanent --add-service=cockpit    ##添加服务
firewall-cmd --reload 
firewall-cmd --permanent --remove-service=cockpit ##移除服务
firewall-cmd --reload 

源:
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block 
                                                  ##指定数据来源访问指定域
firewall-cmd --reload 
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block 
                                                  ##删除自定域中的数据来源
firewall-cmd --reload 

接口:
firewall-cmd --permanent --remove-interface=ens192 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens192 --zone=block     ##添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens192 --zone=public ##更改网络接口到指定域

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. firewalld的高级规则

firewall-cmd --direct --get-all-rules ##查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.250 -p tcp --dport 22 -j REJECT      
                                      ##除了172.25.254.250主机,其他主机均拒绝访问

在这里插入图片描述
在这里插入图片描述

6.firewalld中的NAT

SNAT:内网访问外网
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload 

DNAT:外网访问内网
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
firewall-cmd --reload

SNAT:内网访问外网
打开地址伪装功能
在这里插入图片描述
在这里插入图片描述
DNAT:外网访问内网
数据转发
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值