防火墙
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
设置默认策略,对流入的数据包不理睬
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 | 当前不生效,重启后生效,也叫永久生效 |
目的:让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
端口流量转发
把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连接显示拒绝访问
练习:
redhat开启端口转发,win10访问redhat的8888端口,连接到kali的22端口
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
重新加载服务
win10连接成功