Linux(21)——防火墙

本文对比了Linux系统中iptables与firewalld两种防火墙的安装、切换方法,详细介绍了iptables的配置步骤,包括规则设置和NAT操作,同时涵盖了firewalld的基本配置,如域管理、策略调整和高级规则添加。
摘要由CSDN通过智能技术生成

Linux(21)——防火墙


1. 防火墙安装及切换

  • firewalld
      rhel8中默认使用的是firewalld
    安装:
[root@rhclient Desktop]# dnf install iptables-services -y

从iptables切换至firewalld:

[root@rhclient Desktop]# systemctl stop iptables
[root@rhclient Desktop]# systemctl disable iptables
[root@rhclient Desktop]# systemctl mask iptables
[root@rhclient Desktop]# systemctl enable --now firewalld
  • iptables
    安装:
[root@rhclient Desktop]# dnf install iptables-services -y

从firewalld切换至firewalldiptables:

[root@rhclient Desktop]# systemctl stop firewalld
[root@rhclient Desktop]# systemctl disable firewalld 
[root@rhclient Desktop]# systemctl mask firewalld 
[root@rhclient Desktop]# systemctl enable --now iptables
  • chain

     input				#输入
     output				#输出
     forward			#内核转发
     postrouting		#路由之后
     prerouting			#路由之前
    
  • tables

     filter		#使用内核转发(input output forward)
     nat		#不经过内核的数据(postrouting,prerouting,input,output) 
     mangle		#当filter和nat表不够用时使用
    

2. iptables

配置文件储存在 /etc/sysconfig/iptables

  • 保存当前策略
[root@rhclient Desktop]# iptales-save > /etc/sysconfig/iptables
[root@rhclient Desktop]# service iptables save
  • 恢复默认策略
[root@rhclient Desktop]# iptables -F
  • 设置策略
 [root@rhclient Desktop]#  iptables -[options] <-t table> [chain] [condition] [measure]
-t			#指定表名称
-n			#不做解析
-L			#查看
-A			#添加策略	
-N			#新建链
-E			#更改链名称
-X			#删除链
-D			#删除规则
-F			#刷新所有设定
-I			#插入规则
-R			#更改规则
-P			#更改默认规则
-m			#修改

-p			#协议
--dport		#目的地端口
-s			#来源

	RELATED					#建立过连接的(数据包)
	ESTABLISHED				#正在连接的(数据包)
	NEW						#新的(数据包)

-j			#动作
	ACCEPT			#允许
	DROP			#丢弃
	REJECT			#拒绝
SNAT		#源地址转换
DNAT		#目的地地址转换

使用范例:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# filter表INPUT中添加规则: 接受状态为RELATED,ESTABLISHED的数据包

iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
# filter表INPUT中添加规则: 接受状态为NEW数据包

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
# filter表INPUT中添加规则: 接受状态为NEW并且tcp协议来自80端口的数据包

iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT	
# filter表INPUT中添加规则: 接受状态为NEW tcp协议端口为22的来源不是的192.168.0.10 的数据包

iptables -A INPUT -m state --state NEW -j REJECT
# filter表INPUT中添加规则: 拒绝状态为new的数据包

iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20
# 添加snat规则,从ens160发出的数据来源更改为 192.168.0.20

iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 192.168.0.20
# 添加dnat规则,ens160 收到的数据目标地址改为192.168.0.20

启用iptables,查看指定表内容,添加删除NAT规则:
在这里插入图片描述
在这里插入图片描述
插入SNAT规则在这里插入图片描述
在这里插入图片描述
开启内核路由功能:

在这里插入图片描述
添加目的地地址转换:在这里插入图片描述
删除规则:
在这里插入图片描述

3. firewalld

  firewalld 配置目录 /etc/firewalld ;模块目录 /lib/firewalld
  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
externalipv4网络地址伪装转发 sshd
  • 常规设定
[root@rhclient Desktop]# firewall-cmd [options] 
	firewall-cmd --state			#查看状态
	firewall-cmd --get-active-zones	#查看生效域
	firewall-cmd --get-default-zone	#查看默认域
	
	firewall-cmd --list-all					#查看默认域中的火墙策略
	firewall-cmd --list-all --zone=work		#查看指定域的火墙策略
	
	firewall-cmd --set-default-zone=trusted		#设定默认域
	firewall-cmd --get-services				#查看所有可以设定的服务
	firewall-cmd --permanent --remove-service=dhcp	#移除服务
	
	firewall-cmd --reload 			#刷新防火墙策略
	
	firewall-cmd --permanent --add-source=192.168.158.0/24 --zone=trusted
	#		指定数据来源访问域
	firewall-cmd --reload 
	firewall-cmd --permanent --remove-source=192.168.158.0/24 --zone=trusted
	#		删指定的域中的数据来源
	
	firewall-cmd --permanent --add-interface=ens224 --zone=trusted
	#		添加网络接口至指定域
	firewall-cmd --permanent --remove-interface=ens224 --zone=trusted
	#		删除指定域的网络接口
	firewall-cmd --permanent --change-interface=ens224 --zone=trusted
	#		更改网络接口指定的域
  • 高级设定
[root@rhclient Desktop]# firewall-cmd --direct --get-all-rules	#查看高级规则
[root@rhclient Desktop]# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 192.168.158.128 -p tcp --dport 22 -j REJECT
#		添加规则:非来自192.168.158.128 tcp 端口为22的数据包拒绝接受
  • NAT
    SNAT只需开启masquerade功能,DNAT需要进行具体配置
[root@rhclient Desktop]# firewall-cmd --permanent --add-masquerade
[root@rhclient Desktop]# firewall-cmd --permanent --add-forward port=port=22:proto=tcp:toaddr=192.168.158.128 

开启firewalld
在这里插入图片描述
查看生效域、默认域,修改默认域:
在这里插入图片描述
添加指定网卡、网段至指定域:
在这里插入图片描述
在这里插入图片描述
删除指定域中的指定资源:
在这里插入图片描述
开启路由、设定DNAT:在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值