1. 新版ubuntu修改默认ssh端口
问题:在新版本ubuntu修改sshd_config下的端口配置,并重启sshd服务后不生效
从ubuntu 22.10开始,Ubuntu中的openssh默认配置为使用systemd socket激活
sshd 的监听任务就转交给了 ssh socket,修改sshd_config中的 port 项无效(其他的配置项还有用)
注意:此版本后,sshd的服务名变成了ssh
1. 修改新的监听侧的配置文件,执行下面的命令,修改 ListenStream后面的端口号。
vim /usr/lib/systemd/system/ssh.socket
2. 重载配置
systemctl daemon-reload
3. 重启 socket
systemctl restart ssh.socket
4. 测试
ssh $USER@localhost -p 12322
2. 新版rocky linux修改sshd端口
新版rocky linux 默认开启了selinux,selinux对服务器默认端口都有严格监控,因此,在修改ssh端口后,除了放开防火墙还需要在selinux上添加端口,否则sshd服务无法启动,导致ssh无法登录
SELinux 是 Linux 上的一个安全增强工具,它提供了访问控制机制。在 Rocky Linux 或其他 Linux 的操作系统中,修改 SELinux 策略以允许特定端口的通信可以通过以下步骤完成:
确定要添加的端口号,例如,我们要允许端口8080的入站连接。
使用semanage 工具来修改 SELinux 策略。semanage 是用来查询和修改 SELinux 策略的工具。
添加端口到 SELinux 的端口类别中。
以下是一个如何添加端口的示例:
1. 安装 semanage 工具,如果尚未安装
sudo dnf install -y policycoreutils-python
2. 添加端口到 SELinux 的 http_port_t 类别
semanage port -a -t http_port_t -p tcp 8080
3. 添加ssh端口到selinux
semanage port -a -t ssh_port_t -p tcp 2222
在上面的命令中,-a 表示添加,-t 指定端口类型为http_port_t,-p 指定协议为tcp,然后是要添加的端口号8080。
如果需要添加到其他类别,可以选择其他相应的类别,例如http_port_t 对应于 HTTP 服务,ssh_port_t 对应于 SSH 服务。
确保在修改 SELinux 策略后,重启相关服务或者整个系统,以确保策略的变更生效