防火墙(iptables与firewalld)

发布时间 2023-07-18 21:17:12作者: i苏沐辰

防火墙

iptables

疏通和堵

进行路由选择前处理的数据包:prerouting

处理流入的数据包:input

处理流出的数据包:output

处理转发的数据包:forward

进行路由选择后处理的数据包:POSTROUTING

允许, 拒绝, 允许流入进行日志登记,不理睬

ACCEPT,REJECT, LOG, DROP

iptables

​ -P 设置默认策略

​ -F 清空规则链

​ -L 查看规则链

​ -I 在规则链的头部加入新规则

​ -A 在规则链的末尾加入新规则

==================================

​ -j 用来指定要'进行的处理动作

​ -s 匹配来源地址

​ -d 匹配目标地址

​ -i 匹配从这块网卡流入的数据

​ -o 匹配从这块网卡流出的数据

​ -p 接协议—匹配协议(TCP/UDP/ICMP)

​ -dport 匹配目标端口

​ -sport 匹配来源端口

保存iptables配置

iptbales-PINPUT DROP 白名单
iptbales -PINPUT ACCEPT 黑名单

如果是redhat8或者centos8以上版本,iptables-save

以下版本使用service iptables save

​ 设置默认策略,对流入的数据包不理睬

image

image

image

image

image

image

image

image

image

firewalld

区域 默认规则策略
trusted 允许所有数据包
home 拒绝流入的流量,除非与流出的流量相关;如果流量与ssh、mdns、ipp-client、dhcpv6-clent服务相关,则允许流量
internal 等同于home
work 拒绝流入的流量,除非与流出的流量相关;如果流量与ssh、dhcpv6-clent服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;如果流量与ssh服务相关,则允许流量
drop 拒绝流入的流量,除非与流出的流量相关

firewall-cmd

参数 作用
--get-default-zone 查询默认的区域名称
--set-default-zone 设置默认区域,使其永久生效
--get-zones 显示可用的区域
--get-services 显示预先定义的服务
--get-active-zones 显示当前正在使用的区域与网卡名称
--add-source= 源自此ip或子网的流量导向到某个区域
--remove-source= 不源自此ip或子网的流量导向到某个区域
--add-interface= 源自此网卡的流量导向到某个区域
--list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones 显示当所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=服务名称 设置默认允许该服务的流量
--remove-port=端口/协议 设置默认区域不允许该端口的流量
--reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
-panic-on 开启应急模式
-panic-off 关闭应急模式
--permanent 当前不生效,重启后生效,也叫永久生效

image

image

image

image

目的:让http协议在public区域,流量允许通过
firewall-cmd --zone=public --query-service=http 		检查public区域是否允许http协议通过,yes为允许,no不允许
firewall-cmd --get-zone-of-interface=ens160 			检查ens160网卡处于哪个区域,如果不在public区域我们就修改回来
firewall-cmd --permanent --zone=public --change-interface=ens160	 将ens160网卡修改区域为public
firewall-cmd --zone=public--add-service=http --permanent	 将http协议在public区域内永久允许通过
firewall-cmd --reload 		重新加载firewall配置规则

目的:让8080和和8081端口在public允许通过
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp

image

端口流量转发

把888端口转发到22

firewa11-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.175.131

显示只有192.168.175.0/24 拒绝访问ssh

防火墙富规则

firewal1-cmd --permanent --Zone=public --add-rich-rule="rule family="ipv4”source address="192.168.175.0/24” service name="ssh” reject"

kali连接显示拒绝访问

image

练习:

redhat开启端口转发,win10访问redhat的8888端口,连接到kali的22端口

image

firewall-cmd --permanent --zone=public --add-forward-port=port=8888:proto=tcp:toport=22:toaddr=192.168.163.143
将访问本地8888端口转发到192.168.163.143的22端口
firewall-cmd --permanent --zone=public --add-port=8888/tcp
添加8888端口放行
firewall-cmd --permanent --add-masquerade 
开启伪装IP
firewall-cmd --reload
重新加载服务

image

image

win10连接成功

image