内网服务器访问安全,跳板机搭建教程:内网服务器访问安全
把跳板机理解成进入内网的一道门:所有运维人员先登录这台机器,再由它连到后面的业务服务器。
这样内网机器不需要直接暴露公网,登录、命令和文件传输也都集中在一台机器上,便于限制来源、记录操作和排查异常。
下面按零基础也能照做的顺序,从准备、搭建到验证和避坑讲清楚。
先确认网络和资源条件
动手前先明确三件事:跳板机放在哪里、内网机器怎么连、谁能登录。
- 跳板机位置:选一台能同时访问公网和内网的服务器,通常放在 DMZ 或独立安全区,系统建议用主流 Linux 发行版,以官方文档为准。
- 内网连通性:跳板机需要能通过内网 IP 或域名访问业务服务器,先在跳板机上执行
ping 192.168.1.10或nc -vz 192.168.1.10 22,确认 22 端口可达。 - 账号规划:不要所有人共用 root。为每个运维人员建独立账号,例如
useradd -m alice,再按需加入 sudo 组。 - 登录方式:优先用 SSH 密钥,禁用密码登录。客户端生成密钥对:
ssh-keygen -t ed25519 -C "alice@company",把公钥内容追加到跳板机/home/alice/.ssh/authorized_keys,并执行chmod 700 /home/alice/.ssh && chmod 600 /home/alice/.ssh/authorized_keys。
在跳板机上收紧 SSH 入口
跳板机本身是最容易被尝试登录的机器,SSH 配置要改得比普通服务器更严。
编辑 /etc/ssh/sshd_config,重点改这几项:
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers alice bob
ClientAliveInterval 300
ClientAliveCountMax 2
改完先执行 sshd -t 检查语法,没有报错再 systemctl restart sshd。不要直接断开当前连接,另开一个终端用新端口和新账号测试登录,确认成功后再关闭旧会话。
如果服务器有 firewalld,放行新端口并限制来源:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="2222" protocol="tcp" accept'
firewall-cmd --reload
把 203.0.113.10 换成公司出口 IP 或 VPN 地址段。
这样即使端口被扫描到,非白名单来源也无法建立连接。
让跳板机安全地连内网服务器
跳板机到内网服务器这一段同样建议用密钥,并且把私钥留在跳板机上,不要分发到个人电脑。
在跳板机上为每个运维账号生成专用密钥:
ssh-keygen -t ed25519 -f /home/alice/.ssh/id_inner -C "alice-to-inner"
ssh-copy-id -i /home/alice/.ssh/id_inner.pub alice@192.168.1.10
之后可以在 /home/alice/.ssh/config 里写别名,减少每次输入长命令:
Host web01
HostName 192.168.1.10
User alice
IdentityFile ~/.ssh/id_inner
Port 22
配置好后执行 ssh web01 应能直接进入内网服务器。验证要点:登录后运行 whoami 和 hostname,确认身份和目标机器都正确,避免误操作到错误服务器。
日志与审计不能省
跳板机的价值之一是留下操作痕迹。
至少打开 SSH 登录日志,并考虑记录会话内容。
- 查看登录记录:
last -a或journalctl -u sshd --since today。 - 记录命令历史:为每个账号设置独立的
HISTFILE,或在/etc/profile中追加带时间戳的历史格式,例如export HISTTIMEFORMAT="%F %T "。 - 更严格的环境可以部署会话录制工具,但会占用额外磁盘和性能,小团队先用系统日志加集中收集即可,具体方案以实际合规要求为准。
常见报错和避坑提醒
- 改完 SSH 端口后连不上:先检查防火墙是否放行、云安全组是否放行、
sshd -t是否通过,不要急着重装系统。 - 密钥登录仍提示密码:检查
authorized_keys权限是否为 600、.ssh是否为 700、家目录是否可写,权限过松会被 SSH 忽略。 - 跳板机能 ping 通内网但 SSH 超时:可能是内网服务器防火墙只允许特定来源,确认跳板机内网 IP 是否在允许列表。
- 禁用密码登录后把自己锁在外面:保留一个已登录会话,改配置前先备份
/etc/ssh/sshd_config,确认新登录成功后再退出旧会话。
怎么确认这套跳板机真的生效
完成配置后,用三个检查确认结果:
- 从公网直接连内网服务器 22 端口应失败或被拒绝。
- 从非白名单 IP 连跳板机新端口应无法建立连接。
- 用授权账号密钥登录跳板机,再
ssh web01进入内网,last -a能看到对应登录记录。
三项都通过,说明访问入口已经收敛到跳板机,内网服务器不再直接对外暴露。
后续要做的通常是定期轮换密钥、清理离职账号,并根据团队规模评估是否引入更完整的堡垒机方案。