(四)openEuler欧拉系统防火墙及yum源配置指南

[复制链接]
发表于 2026-10-3 16:00:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

写在前面

openEuler 最小化安装之后,很多常用命令是缺的(比如 ifconfig 这类),必须先把 yum 源配好才能装包;同时默认启用的 firewalld 也常常挡着远程连接。本文把这两件事一次讲清楚:本地镜像源怎么配、防火墙怎么开端口、改 SSH 端口时踩的 SELinux 坑怎么绕。

一、yum 源配置(本地 ISO 镜像源)

最小化安装时执行 yum install 报"找不到包/无法解析仓库",基本就是源没配对。如果服务器暂时不能上外网,最稳的办法是拿 openEuler 的 DVD 镜像当本地源。

1.1 配置步骤

第 1 步,上传镜像并创建挂载目录:

mkdir -p /mount/iso

第 2 步,挂载镜像:

mount -o loop ./openEuler-22.03-LTS-x86_64-dvd.iso(镜像上传目录)/mount/iso/

第 3 步,写 yum 仓库配置:

vi /etc/yum.repos.d/openEuler.repo

把原有内容注释掉,只留下面几行:

[openEuler]
name=openEuler
baseurl=file:///mount/iso
gpgcheck=no
enabled=1

baseurl 指向挂载目录,gpgcheck=no 先跳过公钥校验(离线镜像环境里常常没有对应 GPG key,开着会直接失败)。

第 4 步,设开机自动挂载:把挂载写进 /etc/fstab,避免重启后镜像没挂上、源又失效:

/root/openEuler-22.03-LTS-x86_64-dvd.iso  /mount/iso  iso9660  ro,loop  0 0

第 5 步,验证:

yum -y install net-tools

能装上 net-tools 就说明本地源通了,ifconfig 等命令随之可用。

1.2 有外网时更省事:直接换网络源

如果能连公网,就没必要挂镜像,换成 Euler 官方或 mirrors 的在线源更方便(还能拿到更新):

vi /etc/yum.repos.d/openEuler.repo
# 内容形如:
[openEuler]
name=openEuler
baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/os/x86_64/
gpgcheck=0
enabled=1

yum clean all
yum makecache

换源之后记得 yum clean all + yum makecache 重建缓存,否则用的还是旧索引。

二、防火墙配置

openEuler 默认启用 firewalld 服务。

2.1 状态查看与临时关闭

service firewalld status          # 看状态
systemctl stop firewalld.service  # 临时停掉(测试环境图省事,生产不建议)
systemctl disable firewalld       # 开机不起

生产上不建议直接关防火墙,正确的做法是按需放端口。

2.2 放通服务与端口

firewall-cmd --permanent --add-service=ssh     # 放通 SSH(默认一般已加)
firewall-cmd --permanent --add-port=8080/tcp   # 放通自定义 TCP 端口
firewall-cmd --permanent --remove-port=8080/tcp # 删除规则
firewall-cmd --reload                          # 重新加载,永久规则生效必须这步

查看已配置的策略:

firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --list-all

关键提醒:用 --permanent 加的规则必须跟一次 --reload 才生效,只写不 reload 会让人误以为"规则没配上"。

2.3 只放行指定 IP(更安全)

开放整台机器的服务端口前,先想想能不能限定来源地址。rich rule 就能做到:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.159.150" port protocol="tcp" port="64922" accept'
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.159.150" port protocol="tcp" port="64922" accept'
firewall-cmd --reload

运维里对管理端口(SSH、数据库、后台)尽量这么配,只给跳板机或运维网段。

三、改 SSH 端口时踩的 SELinux 坑

想提高安全性,很多人的做法是改 SSH 默认端口 22。改完 /etc/ssh/sshd_config 后重启 sshd 报错起不来,八成是 SELinux 拦的——SELinux 只允许 sshd 使用被登记过的端口,你配了一个它不认识的端口号,策略校验过不去,sshd 直接拒绝启动。

3.1 临时解法的原理

一种常见处理是编辑 /etc/selinux/config:

SELINUX=disabled      # 禁用 SELinux
SELINUXTYPE=targeted

把 SELINUX 从 enforcing(强制模式,违反策略的操作会被系统阻止)改成 disabled,系统启动时就不再加载 SELinux 模块。这样 sshd 换任意端口都能起来。

注意:关 SELinux 是下策——它会让整套强制访问控制失效,容器、权限隔离等依赖它的场景会一起变松。改端口前先试下面 3.2 的正确姿势,不行再考虑禁用。

3.2 更稳妥的做法:把新端口登记进 SELinux 策略

不关 SELinux,只是告诉它"64922 这个端口也允许 sshd 用":

semanage port -a -t ssh_port_t -p tcp 64922   # 添加(已存在会报 Already exists,改用 -m)
semanage port -m -t ssh_port_t -p tcp 64922   # 修改
semanage port -l | grep ssh                   # 查看 ssh 已登记的端口
grep sshd /etc/ssh/sshd_config | grep -v '^#'
systemctl restart sshd

记得 sshd_config 里 Port 64922 要去掉行首注释,两端(sshd_config + selinux + firewall)都改完再重启,端口才能正常用。

3.3 完整顺序(推荐)

  1. 改 /etc/ssh/sshd_config 的 Port;
  2. semanage port 把新端口加进 ssh_port_t;
  3. firewall-cmd --permanent --add-port=64922/tcp 并 --reload;
  4. systemctl restart sshd,确认状态是 active;
  5. 用新端口从客户端连一次,成功后再把老端口 22 从防火墙移除。

第 5 步很关键——别一上来就 --remove-service=ssh,万一新端口没通,就被自己锁在门外了。

四、总结

openEuler 的日常初始化基本就这两块:

  • yum 源:离线环境挂 ISO + 写 /etc/yum.repos.d/openEuler.repo(baseurl=file:///mount/iso、gpgcheck=no),并把挂载写进 /etc/fstab 保证重启后还在;有公网就换在线源并 yum clean all && yum makecache。
  • 防火墙:firewalld 用 --permanent 加规则 + --reload 生效,生产上优先用 rich rule 限定来源 IP,而不是整段放开。

改 SSH 端口时记住"三处一致":sshd_config 的 Port、SELinux 的 ssh_port_t、firewalld 的放行端口,三者都改对再重启。SELinux 拦住 sshd 起步的常见报错,先 semanage port -l | grep ssh 看看,别急着把 SELinux 关掉——那相当于为了开一扇门,把整栋楼的防盗系统拆了。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:以 openEuler 22.03 LTS 为例,firewalld 与 SELinux 操作适用于 RHEL 系通用场景,改动前请备份配置文件。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表