如何在Linux系统中正确开启22端口
22端口是SSH(Secure Shell)协议的默认端口,用于远程安全登录和管理Linux服务器,开启22端口前,需确保系统已安装SSH服务并配置防火墙规则,以下是详细操作步骤及注意事项:
检查SSH服务状态
-
确认SSH是否安装
大多数Linux发行版默认安装OpenSSH服务,可通过以下命令检查:sudo systemctl status sshd
若提示“未找到服务”,需手动安装:
- Debian/Ubuntu:
sudo apt update && sudo apt install openssh-server
- CentOS/RHEL:
sudo yum install openssh-server && sudo systemctl start sshd
- Debian/Ubuntu:
-
启动并设置开机自启
sudo systemctl enable --now sshd
配置防火墙放行22端口
若系统启用了防火墙(如ufw
或firewalld
),需手动放行22端口:
-
使用UFW(Ubuntu/Debian)
sudo ufw allow 22/tcp sudo ufw reload
-
使用Firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload
-
验证防火墙规则
sudo ufw status # 查看ufw状态 sudo firewall-cmd --list-ports # 查看firewalld开放端口
验证22端口是否开启
-
检查SSH服务监听
运行以下命令,若显示LISTEN
状态且包含:22
,表示服务正常:sudo netstat -tuln | grep 22 # 或 sudo ss -tuln | grep 22
-
远程连接测试
从另一台设备尝试连接:ssh username@服务器IP地址
若提示输入密码,则说明22端口已成功开启。
安全注意事项(关键步骤)
直接开放22端口可能暴露服务器风险,建议结合以下措施增强安全性:
-
修改默认SSH端口
编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
找到
#Port 22
,取消注释并修改为其他端口(如Port 2222
)。
重启服务:sudo systemctl restart sshd
注意:修改后需同步更新防火墙规则。
-
禁用密码登录,启用密钥认证
在sshd_config
中设置:PasswordAuthentication no PubkeyAuthentication yes
-
限制IP访问
通过防火墙仅允许可信IP连接22端口:# ufw示例 sudo ufw allow from 192.168.1.100 to any port 22
-
定期更新SSH服务
sudo apt upgrade openssh-server # Debian/Ubuntu sudo yum update openssh-server # CentOS/RHEL
常见问题排查
- 连接超时:检查防火墙是否放行端口,或云服务器的安全组规则是否配置。
- 权限拒绝:确认
sshd_config
中PermitRootLogin
设置为prohibit-password
或no
,避免Root直接登录。 - SELinux拦截:若启用SELinux,需额外添加规则:
sudo semanage port -a -t ssh_port_t -p tcp 22
开启Linux系统的22端口需安装SSH服务、配置防火墙规则,并严格遵循安全实践,建议优先使用非默认端口与密钥认证,以降低被暴力破解的风险,定期审查日志(/var/log/auth.log
)可帮助发现异常登录行为。
引用说明
- OpenSSH官方文档:https://www.openssh.com/manual.html
- Ubuntu防火墙指南:https://help.ubuntu.com/community/UFW
- Red Hat防火墙配置:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/6400.html