在CentOS系统上设置跳板机(Jump Server)是实现安全远程访问内部网络资源的常见方法。跳板机一般用作一个中介服务器,通过它可以访问内部系统,同时限制了对内网资源的直接访问。以下是一个常见的跳板机搭建过程,假设你已经有一台CentOS系统并且具备管理员权限。
确保你的CentOS系统已经安装并且处于可用状态。如果没有安装,可以去下载适合你的系统版本的镜像进行安装。
首先,确保系统是最新的,更新系统软件包可以保证系统安全和稳定性:
sudo yum update -y
跳板机的核心功能是通过SSH(安全外壳协议)来进行远程管理。如果你的CentOS系统没有安装SSH服务,可以执行以下命令安装:
sudo yum install -y openssh-server
安装完成后,启动并使SSH服务开机自启动:
sudo systemctl start sshd
sudo systemctl enable sshd
CentOS 默认使用 firewalld
作为防火墙。如果你的防火墙是启用的,你需要允许 SSH 端口(默认是22端口)访问。可以使用以下命令进行配置:
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
为了安全起见,跳板机通常会创建专门的用户账户,并通过SSH密钥进行身份验证。创建一个新用户并设置密码:
sudo useradd jumpuser
sudo passwd jumpuser
接着,生成 SSH 密钥对(如果没有的话):
ssh-keygen -t rsa -b 2048
将生成的公钥 ~/.ssh/id_rsa.pub
上传到跳板机的 ~/.ssh/authorized_keys
文件中(确保权限设置正确):
sudo mkdir -p /home/jumpuser/.ssh
sudo cp ~/.ssh/id_rsa.pub /home/jumpuser/.ssh/authorized_keys
sudo chown -R jumpuser:jumpuser /home/jumpuser/.ssh
sudo chmod 700 /home/jumpuser/.ssh
sudo chmod 600 /home/jumpuser/.ssh/authorized_keys
编辑 /etc/ssh/sshd_config
配置文件,强化 SSH 服务的安全性,防止弱口令登陆等:
sudo vim /etc/ssh/sshd_config
主要修改如下内容:
禁用密码登录,启用密钥登录:
PasswordAuthentication no
限制特定用户访问(如果只允许 jumpuser
用户访问跳板机):
AllowUsers jumpuser
修改完毕后,重启 SSH 服务:
sudo systemctl restart sshd
fail2ban
防止暴力破解为了进一步加强安全性,可以安装 fail2ban
,这是一款可以防止暴力破解攻击的工具:
sudo yum install -y fail2ban
启动并设置自启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
默认的 fail2ban
配置足以防止常见的 SSH 暴力破解攻击。
配置完成后,你可以通过 SSH 客户端从外部访问跳板机。假设跳板机的 IP 地址为 192.168.1.100
,使用以下命令进行连接:
ssh [email protected]
如果一切正常,你将成功登录到跳板机,并且可以从跳板机进一步访问内网的其他机器。
为了加强跳板机的功能,你可以使用 SSH 隧道技术将跳板机作为中介来访问内网的其他服务器。例如,使用以下命令通过跳板机连接内网的 MySQL 服务器:
ssh -L 3306:mysql_server_ip:3306 [email protected]
这将把本地的 3306 端口通过跳板机转发到内网的 MySQL 服务器。
通过以上步骤,你可以成功搭建一个 CentOS 跳板机,用来安全地访问内网资源。在生产环境中,可以进一步加强跳板机的安全性,使用 VPN 或多重认证等措施来进一步保护网络安全。