Linux 的 SSH 默认监听端口是 22 ,但在公网有非常多的人扫描这个端口爆破 SSH 密码
建议将 SSH 端口设置成高高位数端口
1. 登录终端,建议使用 VNC 或 SSH 之外的连接方式登录终端
2. 检查环境
在终端下执行下面的命令查看当前监听的端口
1
| sudo ss -tlnp | grep ssh
|
不出意外的话应该会有类似的输出:
1 2 3
| ~ » sudo ss -tlnp | grep ssh LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1276,fd=6)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1276,fd=7))
|
3. 修改端口
较新系统以及使用 systemd 管理服务:
1
| sudo systemctl edit ssh.socket
|
找到类似于以下这几行,如果没有这几行而不是没找到文件或命令就添加上:
1 2 3
| # [Socket] # ListenStream=22 # Accept=no
|
改成:
1 2 3 4
| [Socket] ListenStream= ListenStream=<高位数端口>
|
保存退出,重启 ssh 服务即可
1 2
| sudo systemctl restart ssh.socket sudo systemctl restart ssh.service
|
较旧系统以及使用 systemd 管理服务:
1
| sudo nano /etc/ssh/sshd_config
|
找到这一行
把 22 改成高位数端口即可,去掉注释
保存退出,重启 ssh 服务即可
1
| sudo systemctl restart ssh.service
|
4. UFW 放行端口
1
| sudo ufw allow <刚才设置的高位数端口>
|
删除原来的 22 端口
请先确保新端口能访问 SSH 终端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ~ » sudo ufw status numbered Status: active
To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 123 ALLOW IN Anywhere [ 3] 22 (v6) ALLOW IN Anywhere (v6) [ 4] 123 (v6) ALLOW IN Anywhere (v6)
~ » sudo ufw delete 3 Deleting: allow 22 Proceed with operation (y|n)? y Rule deleted (v6) ~ » sudo ufw delete 1 Deleting: allow 22 Proceed with operation (y|n)? y Rule deleted ~ »
|