## 登录服务器怎么设置端口更安全?(站长经验分享)
作为网站和服务的守护者,服务器的安全是根基。**登录端口**是黑客尝试入侵的首要目标,默认的SSH端口(通常是**22**)如同敞开的大门,吸引着大量自动化攻击脚本,修改这个默认端口,是提升安全门槛最简单有效的一步,下面我来详细说明操作流程和关键要点:
**一、为什么必须修改默认端口?
* **降低扫描风险:** 绝大多数自动化攻击工具和脚本首先会疯狂扫描全网开放着22端口的服务器,修改端口后,你的服务器就从这些“广撒网”式的扫描中隐身了,大大减少暴露面。
* **增加攻击难度: 即使攻击者定位到你的服务器,也需要额外探测实际使用的端口号,这增加了他们的时间和资源成本,很多低水平攻击者会因此放弃。
* **基础安全屏障:** 这是服务器安全加固中公认的、必须执行的第一步,成本极低,效果显著。
**二、修改服务器登录端口(以常见Linux为例)
> **重要提醒:** 操作前请确保你有**另一个活跃的登录会话(如控制台)**,或者操作后**立即测试新端口登录**,配置错误可能导致无法登录!务必谨慎。
1. **连接服务器:** 使用你现有的SSH客户端(如PuTTY、Xshell、终端)通过当前端口(默认22)登录服务器。
2. **编辑SSH配置文件:
* 输入命令:`sudo nano /etc/ssh/sshd_config` (使用 `vi` 或你熟悉的编辑器亦可)
3. **找到端口设置行:
* 在文件中查找类似 `#Port 22` 的行,`#` 表示注释,这行默认是关闭的。
4. **修改/添加端口:
* **推荐方法:** 在 `#Port 22` 下面**新增一行**,`Port 28956` (将 `28956` 替换为你选定的**1024到65535之间**且未被系统服务占用的端口号),保留 `#Port 22` 作为注释和备份参考。
* *替代方法:* 直接取消注释 `#Port 22` 并修改数字(如 `Port 28956`),两种方式效果相同,新增行更清晰。
5. **(可选)限制监听地址:** 如果服务器有多个IP,找到 `#ListenAddress 0.0.0.0` 行,取消注释并根据需要修改为特定IP(如 `ListenAddress 192.168.1.100`),通常保持监听所有地址(`0.0.0.0`)即可。
6. **保存并退出:** 按 `Ctrl+O` 保存文件,按 `Ctrl+X` 退出编辑器(nano)。
7. **重启SSH服务:
* **Systemd系统 (Ubuntu 16.04+, CentOS 7+):** `sudo systemctl restart sshd`
* **旧版系统 (SysVinit):** `sudo service ssh restart`
8. **立即测试新端口登录:
* **不要关闭当前连接!** 打开一个新的终端窗口或SSH客户端。
* 尝试使用新端口连接:`ssh username@yourserver_ip -p 28956` (替换为你的用户名、服务器IP和新端口)。
* **确认新端口登录成功至关重要!
9. **关闭旧端口(可选但推荐):
* 确认新端口工作无误后,重新编辑 `/etc/ssh/sshd_config`。
* 找到之前修改的 `Port` 行(新端口)和原始的 `#Port 22`。
* 确保**只有新端口**那行是未注释且有效的(即行首没有`#`),可以注释掉或删除 `Port 22` 相关的行。
* 保存文件,再次重启SSH服务 (`sudo systemctl restart sshd` 或 `sudo service ssh restart`)。
**三、防火墙放行新端口(关键步骤!)
修改端口后,**必须**在服务器的防火墙规则中允许新端口,否则你将无法连接!
* **UFW (Ubuntu等常用):
* `sudo ufw allow 28956/tcp` (替换为你的新端口)
* `sudo ufw reload`
* **Firewalld (CentOS/RHEL等常用):
* `sudo firewall-cmd --permanent --add-port=28956/tcp` (替换端口)
* `sudo firewall-cmd --reload`
* **iptables (通用,较复杂):
* 添加规则如:`sudo iptables -A INPUT -p tcp --dport 28956 -j ACCEPT` (替换端口)
* **务必保存规则** (方法取决于系统,如 `sudo iptables-save > /etc/iptables/rules.v4` 或使用 `netfilter-persistent`/`iptables-persistent` 包保存)。
**四、安全加固不仅是改端口
端口修改是基础,但绝非万能,务必结合以下措施:
1. **禁用密码登录,强制使用密钥认证:** 这是比改端口更重要的安全措施!生成SSH密钥对,将公钥上传到服务器,然后在 `/etc/ssh/sshd_config` 中设置 `PasswordAuthentication no`,这从根本上杜绝了暴力破解密码的可能。
2. **禁用Root直接登录:** 设置 `PermitRootLogin no` (在sshd_config中),强制使用普通用户登录后再 `su` 或 `sudo` 提权。
3. **使用强密码(如果仍需密码):** 长度、复杂度缺一不可。
4. **部署入侵检测/防御:** 安装配置 **fail2ban**,自动封锁多次登录失败的IP地址。
5. **保持系统和软件更新:** 定期执行 `sudo apt update && sudo apt upgrade` (Debian/Ubuntu) 或 `sudo yum update` (CentOS/RHEL)。
6. **限制可登录用户:** 在sshd_config中使用 `AllowUsers` 指令指定允许SSH登录的用户名。
**五、修改后如何连接?
以后连接服务器时,**必须**在SSH命令或客户端设置中明确指定新端口:
* 命令行:`ssh your_username@yourserver_ip -p 28956`
* 图形客户端 (如PuTTY):在连接设置的 “Port” 或 “Connection -> SSH -> Port” 字段中填入新端口号。
**重要安全提醒:
* **端口选择:** 避免使用常见服务端口(如80, 443, 21, 23, 25, 3306等),选择**1024-65535**范围内随机性强的数字。
* **备份与测试:** 修改关键配置文件前先备份 (`sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`),修改后**务必**立即通过新端口测试连接,确认无误后再退出原有会话。
* **防火墙是双刃剑:** 错误配置防火墙可能导致服务器完全无法访问,操作时保持已有连接畅通,并确认理解规则含义。
**我的观点:** 修改默认SSH端口是服务器安全防护中最基础、最有效的一环,几分钟的操作就能过滤掉海量自动化攻击,但这仅仅是开始,绝非终点,真正的安全防护是层次化的,必须结合密钥登录、强密码策略、及时更新和入侵检测等综合措施,作为站长,持续关注安全动态,定期审查加固服务器配置,才能为网站和用户数据筑起稳固的防线,安全无小事,一次有效的防护就能避免未来巨大的损失。
```html
作为网站和服务的守护者,服务器的安全是根基。登录端口是黑客尝试入侵的首要目标,默认的SSH端口(通常是22)如同敞开的大门,吸引着大量自动化攻击脚本,修改这个默认端口,是提升安全门槛最简单有效的一步,下面我来详细说明操作流程和关键要点:
sudo nano /etc/ssh/sshd_config
(使用vi
或你熟悉的编辑器亦可)#Port 22
的行。#
表示注释,这行默认是关闭的。#Port 22
下面新增一行,Port 28956
(将28956
替换为你选定的1024到65535之间且未被系统服务占用的端口号),保留#Port 22
作为注释和备份参考。#Port 22
并修改数字(如Port 28956
),两种方式效果相同,新增行更清晰。#ListenAddress 0.0.0.0
行,取消注释并根据需要修改为特定IP(如ListenAddress 192.168.1.100
),通常保持监听所有地址(0.0.0.0
)即可。Ctrl+O
保存文件,按Ctrl+X
退出编辑器(nano)。sudo systemctl restart sshd
sudo service ssh restart
ssh username@yourserver_ip -p 28956
(替换为你的用户名、服务器IP和新端口)。/etc/ssh/sshd_config
。Port
行(新端口)和原始的#Port 22
。#
),可以注释掉或删除Port 22
相关的行。sudo systemctl restart sshd
或sudo service ssh restart
)。修改端口后,必须在服务器的防火墙规则中允许新端口,否则你将无法连接!
sudo ufw allow 28956/tcp # 替换为你的新端口sudo ufw reload
sudo firewall-cmd --permanent --add-port=28956/tcp # 替换端口sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 28956 -j ACCEPT
(替换端口)sudo iptables-save > /etc/iptables/rules.v4
或使用netfilter-persistent
/iptables-persistent
包保存)。文章摘自:https://idc.huochengrm.cn/fwq/11448.html
评论
牧钧
回复在设置登录服务器端口时,需确保所选端口未被占用,并在配置文件中指定。