在Linux系统中修改远程访问端口(如SSH端口)涉及一系列关键步骤,以下是详细的方法:
一、前期准备
1.备份SSH配置文件:
备份当前SSH配置文件以防万一出现问题时可以恢复。
使用命令:`sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`
2.检查新端口是否被占用:
使用`netstat`或`ss`命令检查新端口是否已被其他服务占用。
例如:`sudo netstat tuln | grep <新端口号>`或 `sudo ss tuln | grep <新端口号>`
二、修改SSH配置文件
1.打开SSH配置文件:
使用文本编辑器(如vim、nano)打开SSH的主配置文件`sshd_config`。
例如:`sudo nano /etc/ssh/sshd_config`或 `sudo vim /etc/ssh/sshd_config`
2.找到并修改Port行:
在配置文件中找到`#Port 22`这一行(有些版本中可能是`Port 22`且没有注释符号`#`)。
将其修改为新的端口号,并去掉注释符号(如果有的话)。
例如:将端口号更改为2222,则修改为`Port 2222`
3.保存并关闭文件:
在nano编辑器中,按`Ctrl+O`保存文件,然后按`Ctrl+X`退出编辑器。
在vim编辑器中,按`Esc`键,然后输入`:wq`保存并退出。
三、重启SSH服务
修改配置文件后,需要重启SSH服务以使更改生效。
使用命令:`sudo systemctl restartsshd`或 `sudo service ssh restart`
四、更新防火墙规则
如果服务器上运行着防火墙(如iptables、ufw、firewalld),则需要更新防火墙规则以允许新的SSH端口。
对于iptables:
```bash
sudo iptables A INPUT p tcp dport <新端口号> j ACCEPT
sudo service iptables save
sudo service iptables restart
```
对于ufw:
```bash
sudo ufw allow <新端口号>/tcp
sudo ufw reload
```
对于firewalld:
```bash
sudo firewallcmd zone=public addport=<新端口号>/tcp permanent
sudo firewallcmd reload
```
五、测试新的SSH端口
使用SSH客户端(如PuTTY或命令行SSH)从另一台计算机尝试通过新端口连接到服务器。
例如:`ssh p <新端口号> username@server_ip`
例如:`ssh p 2222 username@192.168.1.100`
六、后续步骤
1.删除旧的Port 22配置(可选):
如果确认新端口工作正常,可以回到`sshd_config`文件中删除或注释掉`Port 22`这一行。
再次重启SSH服务:`sudo systemctl restart sshd`
2.更新所有相关的访问配置:
如果您在多个地方(如自动化脚本、配置文件、文档等)使用了旧的SSH端口号,请确保更新这些配置以反映新的端口号。
3.监控和日志记录:
建议启用SSH日志记录功能,并定期检查日志文件以监控任何可疑的登录尝试。
通过遵循这些步骤,您可以成功修改Linux服务器的远程访问端口,增加一层额外的安全保护,减少被恶意攻击者利用默认端口进行攻击的风险。