工业互联网服务器安全配置新手实操,从零锁紧生产环境
工业互联网环境下的服务器一旦被攻破,可能导致整个生产线瘫痪。
下面这套配置方案,我做了不下百次,零基础跟着走也能搞定。
零基础需要准备的几样东西
- 一台已安装 Linux(推荐 Ubuntu 20.04 或 CentOS 7+)的服务器,能通过 SSH 连上。
- 本地电脑上的 SSH 客户端(Windows 用 Xshell 或 PuTTY,Mac/Linux 直接用终端)。
- 一个域名或者 IP 地址,以及 root 密码。
如果你用的是云服务器,先登录云平台控制台放行 22 端口 暂时用于操作,后面我们会改成其他端口。
一步一步锁紧 SSH 登录
第一步:创建普通用户并赋予 sudo 权限
登录 root 后执行:
adduser opsadmin
passwd opsadmin
usermod -aG sudo opsadmin
这里 opsadmin 就是你以后日常使用的用户,密码要设置得复杂一些。
第二步:配置 SSH 密钥登录(禁用密码)
在本地生成密钥对(回车默认即可):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
然后把公钥传到服务器:
ssh-copy-id opsadmin@你的服务器IP
接着修改 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
找到并修改以下三项:
PermitRootLogin no(禁止 root 直接 SSH)PasswordAuthentication no(关闭密码登录,只允许密钥)Port 2222(改掉默认的22端口,降低被扫风险)
修改后保存,重启 SSH 服务:
sudo systemctl restart sshd
注意:改端口后,你的 SSH 连接命令要加上-p 2222,比如ssh opsadmin@服务器IP -p 2222。建议不要退出当前会话,先另开一个终端测试新配置是否正常。
第三步:配置防火墙只放行业务端口
使用 ufw(Ubuntu)或 firewall-cmd(CentOS)都行,这里以 ufw 为例:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw --force enable
sudo ufw status verbose
记得把 2222 换成你实际设置的 SSH 端口。
如果你的工业应用还需要其他端口(比如 MQTT 1883),同样用 allow 放行。
第四步:安装 Fail2ban 防暴力破解
sudo apt update
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
在 [sshd] 部分设置:
enabled = true
port = 2222
filter = sshd
maxretry = 3
bantime = 3600
保存后启动:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
这样,任何 IP 在 1 小时内尝试失败 3 次就会被自动拉黑。
容易被忽略的配置陷阱
- 改 SSH 端口后忘记放行防火墙:导致自己被锁在外面。解决方案是:先在防火墙放行新端口,再修改 SSH 配置。
- 密钥文件权限不对:服务器上
~/.ssh目录权限必须是 700,authorized_keys文件必须是 600。可以用chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys修复。 - Fail2ban 没有生效:检查日志
sudo journalctl -u fail2ban,看是否加载了 sshd jail。 - 工业协议端口暴露过多:只放行业务需要的端口,不要一次性
ufw allow 1:65535/tcp。
最后一步:验证你的安全配置是否生效
- 检查 SSH 配置:尝试用 root 密码登录,应该被拒绝;尝试用错误密钥登录,应被拒绝。
- 检查端口扫描结果:在本地用
nmap -p 2222 你的服务器IP,应该能看到 2222 端口 open,其他未放行端口为 filtered。 - 测试 Fail2ban:连续用错误密码 SSH 3 次,然后立刻再用正确密钥登录,如果被 ban 会提示连接超时,可以用
sudo fail2ban-client status sshd查看被封 IP。 - 查看系统日志:
sudo tail -f /var/log/auth.log可以实时看到登录尝试记录,确认只有正确的操作被允许。
遇到异常时,优先回看上面的避坑部分,大部分问题都是配置顺序或权限引起的。
工业互联网服务器的安全没有终点,建议每季度复查一次安全配置,及时更新系统补丁。