防火墙 Firewalld

本文介绍了RHEL7中防火墙的配置方法,包括firewalld的使用、不同区域(zone)的功能区别,以及如何添加和删除防火墙规则。还详细说明了如何进行端口转发、IP地址屏蔽等高级配置。

RHEL7支持的防火墙:
IPTABLES
IP6TABLES
FIREWALL
EBTABLES

命令模式:
firewall-cmd
图形化界面:
firewall-config

Firewall的区域zone:
Drop 任何流入网络的包都被丢弃,并且不给出任何响应
Block 任何进入的网络都被拒绝,会给出响应。
Public 系统默认zone,允许指定的规则。
External 用在路由器等启用伪装的外部网络
Dmz 允许隔离区dmz中的电脑有限地被外界网络访问
Work 工作网络,允许受信任的计算机被限制的进入连接,类似workgroup
Home 家庭网络,同上,类似homegroup
Internal 内部网络,同上,针对所有互联网用户。
Trusted 允许所有网络连接。

image

一些常用的基本操作命令
#systemctl state/status/start/stop firewalld
#systemctl mask iptables    ---RHEL7中建议使用firewalld,把其它三个防火墙mask掉
#systemctl mask ip6tables
#systemctl mask ebtables
#firewall-cmd --help
#firewall-cmd --list-all     --列出默认zone-public中的防火墙规则

[root@rhel1 ~]# firewall-cmd --list-all
public (active)
   target: default
   icmp-block-inversion: no
   interfaces: enp0s3 enp0s8
   sources:
   services: ssh dhcpv6-client mysql ftp dns smtp samba nfs rpc-bind mountd
   ports: 139/tcp 445/tcp 20048/tcp 20049/tcp 6666/tcp 8888/tcp 12345/tcp 12345/udp 6666/udp 3260/tcp 123/udp 80/tcp
   protocols:
   masquerade: no
   forward-ports:
   source-ports:
   icmp-blocks:
   rich rules:

#firewall-cmd --get-active-zones --列出活动有zone,也就是配置过防火墙策略的zone

[root@rhel1 ~]# firewall-cmd --get-active-zones
public
   interfaces: enp0s3 enp0s8
block
   sources: 192.168.100.0/24

#firewall-cmd --zone=block --add-source=192.168.100.2     --来自这个IP的数据包全部被拒绝了。

从RHEL2客户机ping RHEL1测试:

[root@rhel2 ~]# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
From 192.168.100.1 icmp_seq=1 Destination Host Prohibited   --提示被拒绝。
From 192.168.100.1 icmp_seq=2 Destination Host Prohibited

# firewall-cmd --zone=block --remove-source=192.168.100.2  --删除防火墙策略

# firewall-cmd --zone=drop --add-source=192.168.100.2   --来自source网络的数据包全部被丢弃了。从rhel2 ping rhel1 测试时,没任何提示。从这可以看出block和drob的区别。生产环境一般用drop,就是直接丢弃数据包,不返回任何提示,这样更安全。

#firewall-cmd --zone=work --list-all   --列出指定zone中已配置的防火墙规则

[root@rhel1 ~]# firewall-cmd --zone=block --list-all
block (active)
   target: %%REJECT%%
   icmp-block-inversion: no
   interfaces:
   sources: 192.168.100.2
   services:
   ports:
   protocols:
   masquerade: no
   forward-ports:
   source-ports:
   icmp-blocks:
   rich rules:

#firewall-cmd --get-default-zone   --查看默认zone

[root@rhel1 ~]# firewall-cmd --get-default-zone
public

#firewall-cmd --set-default-zone=public    --设置默认zone,添加防火墙策略时,如果不指定zone参数,则默认添加到public区域中
#firewall-cmd --add-service=http   --添加服务
#firewall-cmd --remove-service=http  --删除服务
#firewall-cmd --add-port=8080/tcp   --添加端口
#firewall-cmd --remove-port=8080/tcp --删除端口
#firewall-cmd --add-source=192.168.100.0/24  --添加源地址
#firewall-cmd --remove-source=192.168.100.0/24
#firewall-cmd --add-icmp-block=echo-request     --添加echo-request屏蔽
#firewall-cmd --remove-icmp-block=echo-request
#firewall-cmd --zone=work --add-service=http    ---指定zone添加服务
#firewall-cmd --permanent --zone=work --add-service=http   --加permanent参数,表示永久生效,即,将防火墙策略写入到配置文件/etc/firewalld下。否则重启防火墙或重启服务器之后,防火墙策略就不生效了。
#firewall-cmd –reload   --重读配置文件

# firewall-cmd --get-zone-of-interface=enp0s3 --查看指定接口的Zone信息
public
#firewall-cmd --zone=public --list-interfaces   --查看指定级别的接口
enp0s3

# firewall-cmd --zone=public --list-all   --查看指定zone的所有信息

# firewall-cmd --zone=public --add-interface=eth0 --添加某接口到指定zone

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

配置public zone端口转发

# firewall-cmd --zone=public --add-masquerade  --打开端口转发

# firewall-cmd --zone=public --add-forward-port=port=12345:proto=tcp:toport=80  --将tcp12345转发到80端口

转发 22 端口数据至另一个 ip 的相同端口上
# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

转发 22 端口数据至另一ip的 2055 端口上
# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
富规则端口转发

把80端口转向8899:

# firewall-cmd –permanent --add-rich-rule="rule family="ipv4" forward-port port="80" protocol="tcp" to-port="8899""
#firewall-cmd --reload

其它富规则例子(拒绝192.168.100.111通过ssh方式连接进来):

 

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.100.111/24 service name=ssh reject"
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost ~]# firewall-cmd --reload 
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.100.111/24" service name="ssh" reject
[root@localhost ~]# 
firewall-cmd --permanent --add-rich-rule="这里面的内容也可以不加引号,系统会自动添加引号“

转载于:https://www.cnblogs.com/rusking/p/7762335.html

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值