返回 导航

其他

hangge.com

CentOS - 增加新的SSH远程访问端口教程(附:防火墙端口转发到22端口)

作者:hangge | 2020-03-31 08:10
    公司的服务器由于网络安全问题,22 端口不对外开放,因此外网无法通过 SSH 连接服务器。但由于其他端口没有限制,因此考虑通过其他端口进行 SSH 连接。有两种方案可以实现这个需求,下面分别介绍。
提示:除了这两种方案外,我们还可以通过反向代理来实现这个需求,详细内容可以参考我写的另一篇文章:

方案一:增加一个 SSH 服务端口

1,修改 SSH 配置文件

(1)首先执行如下命令编辑 SSH 配置文件:
vi /etc/ssh/sshd_config

(2)找到“#Port 22”,将前面的 # 号注释去掉,然后在下面增加一行 Port 10086(表示新增一个 10086 端口),然后保存退出。
补充说明:
  • 这里我不是修改端口,而是保留 22 端口的基础上新增一个端口,是为了保证后面内网仍然能通过 22 端口连接。
  • 新增端口时候最好挑 10000~65535 之间的端口号,10000 以下容易被系统或一些特殊软件占用。

2,配置 SELinux

注意:如果服务器已经关闭了 SELinux,可以忽略这一步。
(1)执行如下命令,查看 SELinux 开放给 ssh 使用的端口,可以看到目前只给 SSH 开放 22 端口:
semanage port -l|grep ssh

(2)接着执行如下命令,给 SSH 添加 10086 端口:
semanage port -a -t ssh_port_t -p tcp 10086

(3)完成后再次查看 ssh 使用的端口,可以发现 10086 端口已经添加:

3,配置防火墙

注意:如果服务器已经关闭了防火墙,可以忽略这一步。
(1)执行如下命令查看防火墙是否开启了 10086 端口,返回 no 表示没有开放 10086 端口:
firewall-cmd --permanent --query-port=10086/tcp

(2)接着执行如下命令添加该端口:
firewall-cmd --permanent --add-port=10086/tcp

(3)然后执行如下命令重新加载防火墙策略:
firewall-cmd --reload

(4)最后再次查看下 10086 端口是否被开启,yes 表示开启:

4,重启相关服务

依次执行如下命令重启 SSH 服务和防火墙:
systemctl restart sshd
systemctl restart firewalld.service

5,连接测试

最后我们尝试通过 10086 端口登录 SSH,如果成功,说明新增的 10086 已经完全可以使用了:
ssh -l root 192.168.60.133 -p 10086

方案二:通过防火墙进行端口转发

1,端口转发介绍

  • 端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定 ip 的话就默认为本机。
  • 使用端口转发的好处是,我们不需要修改 SSH 配置增加一个额外的端口,只需要设置转发规则后就可以从一个指定端口转发到 22 端口上。

2,转发设置

(1)首先执行如下命令,作用是将 10086 端口的流量转发至 22 端口:
firewall-cmd --permanent --add-forward-port=port=10086:proto=tcp:toport=22

(2)然后执行如下命令重新载入配置:
firewall-cmd --reload

3,连接测试

最后我们尝试通过 10086 端口登录 SSH,如果成功,说明新增的 10086 已经完全可以使用了:
ssh -l root 192.168.60.133 -p 10086
评论

全部评论(0)

回到顶部