14. 端口与服务映射
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 配置和检查端口与服务映射,配合 SecureFX 传输日志文件。内容涵盖端口检查(ss, netstat, nmap)、服务与端口映射、防火墙配置,明确默认端口使用服务名方式(--add-service)和自定义端口使用端口开放方式(--add-port),以验证服务端口为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
14.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 2 和第 5 章)。
- 防火墙和 SELinux 启用(参考第 12 章)。
- 网络连接正常,时间同步配置完成(参考第 4 章)。
💡 提示:端口管理是安全基线的一部分,确保仅开放必要端口。在 RHEL 10 中,防火墙工具 firewalld 支持更多动态规则和 nftables 增强,提升端口管理的灵活性。
14.2 端口与服务管理
14.2.1 检查端口映射
-
安装检查工具:
dnf install -y nmap net-tools # 安装 nmap 和 net-tools -
检查本地端口:
ss -tuln # 显示 TCP/UDP 监听端口(推荐工具) netstat -tuln # 备选:显示监听端口 cat /etc/services | grep ssh # 查看服务标准端口映射 -
远程扫描:
nmap -sT -p 1-65535 localhost # TCP 扫描本地所有端口 nmap -sU -p 1-1024 localhost # UDP 扫描
🧠 知识点:
/etc/services定义标准服务端口。ss 是 netstat 的现代替代,支持更快的查询。✅ 检查点:输出显示端口(如 2222/tcp)和关联服务。
14.2.2 服务与端口映射
-
默认端口使用服务名方式:
firewall-cmd --permanent --add-service=http # 开放 HTTP 服务(默认 80/tcp) firewall-cmd --permanent --add-service=https # 开放 HTTPS 服务(默认 443/tcp) firewall-cmd --permanent --add-service=mysql # 开放 MySQL 服务(默认 3306/tcp) firewall-cmd --permanent --add-service=postgresql # 开放 PostgreSQL 服务(默认 5432/tcp) firewall-cmd --reload -
自定义端口使用端口开放方式:
firewall-cmd --permanent --add-port=2222/tcp # 开放自定义 SSH 端口 firewall-cmd --reload
💡 提示:服务名方式自动处理端口变化,端口方式适合自定义。验证:
firewall-cmd --list-all。
14.2.3 SELinux 端口上下文
- 为自定义端口添加 SELinux 标签:
semanage port -a -t ssh_port_t -p tcp 2222 # 为 SSH 添加 2222 端口上下文 restorecon -Rv /etc/ssh/sshd_config # 恢复文件上下文 systemctl restart sshd
🧠 知识点:SELinux 端口标签确保服务安全运行。查看:
semanage port -l | grep ssh。
14.3 常见问题与排查
🔍 故障排查:
-
问题 1:端口未监听
解决:ss -tuln | grep :2222检查,确认服务运行(systemctl status sshd)。 -
问题 2:防火墙阻挡
解决:firewall-cmd --list-ports检查规则,添加端口或服务。 -
问题 3:SELinux 拒绝
解决:ausearch -m avc -ts recent查看拒绝日志,semanage port修正。 -
问题 4:远程扫描失败
解决:检查 nmap 权限(sudo)或网络连通性(ping localhost)。 -
生成 SOS 报告:
sos report --only-plugins=networking,firewalld用于诊断。
14.4 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,检查 SSH 端口映射(2222/tcp)。 - 使用
ss或nmap扫描 HTTP 和 HTTPS 端口。 - 配置防火墙以支持 MySQL 和 PostgreSQL 服务(默认端口,服务名方式)。
- 为自定义 SSH 端口(2222/tcp)配置防火墙(端口开放方式)和 SELinux 上下文。
✅ 检查点:端口开放,服务可访问,SELinux 无拒绝。
14.5 自测问题
-
问题 1:如何查找 SSH 标准端口?
答案:cat /etc/services | grep ssh -
问题 2:如何检查当前开放的 TCP 端口?
答案:ss -tuln -
问题 3:如何为自定义 SSH 端口(2222)配置防火墙和 SELinux?
答案:firewall-cmd --permanent --add-port=2222/tcp和semanage port -a -t ssh_port_t -p tcp 2222,然后firewall-cmd --reload
🧾 总结:
本章完整介绍了 RHEL 9 端口与服务映射的配置与检查,包括工具使用、防火墙规则和 SELinux 调整。正确管理端口可防止未授权访问,确保系统安全,为后续磁盘存储与网络文件系统提供可靠连接基础。