堡垒机/跳板机连接内网服务器

堡垒机介绍

堡垒机(Jump Server)又称跳楼机,是一种位于内部网络和外部网络之间的服务器,用于管理和控制对内部网络资源的访问。堡垒机在网络中扮演着以下重要角色:

  1. 访问控制:堡垒机作为唯一的入口,可以限制用户通过堡垒机来访问内部网络资源,实现了访问控制和权限管理。用户需要经过堡垒机认证后才能进入内部网络。

  2. 安全审计:堡垒机可以记录用户的所有操作和活动,包括登录信息、命令操作等,以便进行安全审计和监控。这有助于发现潜在的安全问题和追踪用户行为。

  3. 隔离网络:通过堡垒机作为中转站,实现了内外网络的隔离。内部网络不直接暴露在公网上,提高了网络的安全性。

  4. 集中管理:堡垒机集中管理了对多个服务器的访问,管理员可以通过堡垒机统一管理和监控各类资产,简化了运维管理的复杂性。

  5. 安全防护:堡垒机可以配置严格的访问控制策略、多层认证和防火墙规则,保护内部网络免受恶意攻击和未经授权的访问。

总体而言,堡垒机在网络安全中扮演着重要的角色,可以提高网络安全性、管理效率和审计可追溯性,在企业网络中被广泛应用以加强网络安全防护。

实验介绍

模拟企业或者学校内部环境,构建一个防火墙服务器实现内部网络上网,发布内网的web服务和堡垒机,构建堡垒机帮助企业以更安全的方式管控和登录各种类型的资产,同时给予外网被授予堡垒机登录权限的用户可以实现远程访问内部网络的资源。

实验配置

1.根据实际情况所需,规划网络拓扑图,IP地址的配置和网络适配器的选择模式问题

如下图所示,为保证实验的真实性和可靠性,端口配置可自定义,IP地址不要发生冲突,web服务器(192.168.110.2)和堡垒机(192.168.110.99)的网络适配器属于仅主机模式,防火墙配俩个网卡,同时LAN口为仅主机模式(192.168.110.254),WAN口配为桥接模式(192.168.1.54)

2.在Vmware上搭建环境,配置好IP地址和主机名,禁用selinux和firewalld服务

1.搭建防火墙,堡垒机,web服务器环境,特别注意防火墙需要配置俩块网卡

2.修改网络适配器

点击右下角的网络适配器,再点击设置,将web服务器和堡垒机的网络适配器改为仅主机模式,防火墙网络适配器1改为仅主机模式,网络适配器2改为桥接模式(俩者顺序可以调换,但是建议使用桥接模式)。

3.配置IP地址和主机名

通过ip add命令查看防火墙,堡垒机和web服务器分配的IP地址

ip add

如果要修改IP地址,可以通过编辑网络配置文件,修改IP地址及其网关。(建议修改IP地址时要查看windows的网络连接情况,查看详细信息,了解IP地址所在的网段。因为仅主机模式下,虚拟机是与Vmnet1连接,桥接模式最后药通过路由器与外部网络连接,所以也需要查看路由器的IP地址)郑重声明配置的IP地址不要与其他IP地址出现冲突,特别是网关地址!!!

进入网络配置文件,然后查看配置文件名称,编辑配置文件

cd /etc/sysconfig/network-scripts/
ls
vim ifcfg-ens33

左图为防火墙LAN口网络配置信息,需要注意,LAN口的地址和堡垒机以及web服务器是同一个网段,并且LAN口是此网段中的网关。

左图为防火墙WAN口的网络配置信息,需要注意,WAN口的IP地址是本次实验中需要用到的DNAT技术的地址,同时也是实验中web服务器内网的公共IP地址,网关就是路由器地址

同理将web服务器以及堡垒机的IP地址配好就行,只要注意IP地址不要冲突,同时在同一网段中,网关地址为防火墙LAN口的IP地址

最后配置好IP地址后一定要重启网络服务

service network restart

通过hostnamectl修改主机名

hostnamectl set-hostname newhostname

禁用 SELinux 服务:

  1. 检查当前 SELinux 状态: 在终端中运行以下命令来检查当前 SELinux 的状态:

    sestatus
    或者
    getenforce
  2. 临时禁用 SELinux: 如果 SELinux 当前处于启用状态,您可以使用以下命令临时禁用它,之后还可以通过getenforce查看状态:

     setenforce 0
  3. 永久禁用 SELinux: 若要永久禁用 SELinux,编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled

    vim /etc/selinux/config
  4. 重启系统: 为了使 SELinux 禁用生效,最好重新启动系统。

禁用firewalld服务

service firewalld stop

3.在防火墙上编写脚本实现开启SNAT和DNAT功能

可以通过xshell连接防火墙,web服务器和堡垒机,方便接下里的实验。

1.在防火墙上编写脚本实现SNAT和DNAT功能,开启路由功能。

cd /nat
vim snat_dnat.sh 
#!/bin/bash
#关闭防火墙
service firewalld stop
#开启路由功能 1表示开启路由功能 0表示禁用路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
#清楚原来iptables相关表里的规则
iptables -F
iptables -t nat -F
#添加snat策略
##iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -o ens37 -j SNAT --to-source 192.168.1.54
iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -o ens37 -j MASQUERADE
#添加DNAT策略
iptables -t nat -A PREROUTING -d 192.168.1.54 -p tcp --dport 80 -i ens37 -j DNAT --to-destination 192.168.110.2
#发布堡垒机
iptables -t nat -A PREROUTING -d 192.168.1.54 -p tcp --dport 2288 -i ens37 -j DNAT --to-destination 192.168.110.99:2299

启动脚本刷新规则链,可以通过iptables查看规则链信息

iptables -t nat -L -n

2.设置开机启动

直接设置计划任务,使用 crontab -e 命令编辑当前用户的 crontab 文件,添加以下行来在系统启动时执行脚本(假设脚本位于/path/to/myscript.sh,一定要用绝对路径!!!):

@reboot /bin/bash /path/to/myscript.sh

保存并退出 crontab。

4.加固堡垒机的ssh服务,开启iptables

修改端口号,禁用root用户登录。(如果需要实验更加真实,可以把防火墙也禁用root用户登录,但是xshell会断掉,因为xshell登录过去选的是root,不过要是修改的话,可以在防火墙上新建一个新用户并配好密码,xshell通过用户登录过去即可,不过博主未进行此操作,需要的话可以自行根据堡垒机的禁用操作顺序去禁用防火墙的root用户登录及端口号)

vim /etc/ssh/sshd_config

修改完后,xshell会断掉,不过不用担心,可以在虚拟机中配置一个普通用户来登录,同时这个普通用户也是登录堡垒机的一个授权用户!

5.在web服务器上配置tcp-wrappers功能

先修改allow及iptables中的白名单

vim /etc/hosts.allow

192.168.110.1是为了不和我的windows断了连接

再修改deny及iptables中的黑名单

因为tcp-wrappers先看allow文件再看deny文件,所以除了指定的IP地址可以连接以外,其他都被拒绝,从而满足了只有堡垒机的IP地址可以访问ssh服务,及访问内网里的资源

防火墙,堡垒机和web服务器都需要刷新一下ssh服务

service sshd restart

可以通过查看netstat-网络连接状态,查看是否连接上了sshd服务

 netstat -anplut |egrep "sshd"

6.测试堡垒机功能

可以配置第四台设备,或者就用防火墙来模拟外网没有得到web服务器许可的用户登录访问web服务,查看实验是否成功

博主是通过防火墙去直接登录访问web服务器,明显连接失败

最后通过堡垒机连接web服务

1.首先通过xshell作为远程登录的设备

注意!!!主机号是防火墙的WAN口地址,不要直接填写堡垒机的,防火墙会通过DNAT技术将目的地址为192.168.1.54的数据的IP地址修改为堡垒机的IP地址192.168.110.99,端口2288是再防火墙编写脚本的时候自定义的。千万要注意不是直接连接堡垒机,而是通过DNAT技术跳到堡垒机,在通过堡垒机去访问web服务  

用户登录不要用root,因为root用户已经被禁止了,可以使用新建的用户去登录

ssh root@ip地址

登陆成功,实验成功

总结

实验中需要注意:

1.如果配完IP地址以后,一直掉线,可能是IP地址冲突了,可以通过另外一台正常的设备去arping一下,查看具体情况,但是要注意IP地址配置一定要符合规定

2.如果加固ssh服务的时候,重启失败可能是因为SElinux没有关闭,可以重新检查关闭SElinux

3.如果堡垒机连不上,可能是sshd服务没有开启成功,或者是firewalld没有关闭,iptables规则链不正确,通过查看iptables规则链情况和防火墙开启DNAT和SNAT服务的脚本,注意端口和协议一定不要出错

4.此实验未设置免密登录,存在一定的缺陷,所以仅供参考,多多指教

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你要通过跳板机访问内网服务器,可以按照以下步骤操作: 1. 在本地电脑上打开终端,输入以下命令建立 SSH 隧道连接: ``` ssh -L <本地端口号>:<目标服务器IP>:<目标服务器端口号> <跳板机用户名>@<跳板机IP> ``` 其,`<本地端口号>` 是你本地电脑上任意一个未被占用的端口号;`<目标服务器IP>` 和 `<目标服务器端口号>` 是你要访问的内网服务器的 IP 地址和端口号;`<跳板机用户名>` 和 `<跳板机IP>` 分别是你连接跳板机的用户名和 IP 地址。 例如,如果要通过跳板机连接 IP 地址为 `192.168.1.100`,端口号为 `22` 的内网服务器,可以使用以下命令: ``` ssh -L 8888:192.168.1.100:22 user@jumpserver.com ``` 2. 输入跳板机的登录密码进行身份验证。 3. 成功连接跳板机后,在终端输入以下命令连接内网服务器: ``` ssh -p <本地端口号> <内网服务器用户名>@localhost ``` 其,`<本地端口号>` 是你在第一步指定的本地端口号;`<内网服务器用户名>` 是你要登录的内网服务器的用户名。 例如,如果在第一步使用的本地端口号为 `8888`,要登录的内网服务器的用户名为 `root`,可以使用以下命令: ``` ssh -p 8888 root@localhost ``` 4. 输入内网服务器的登录密码进行身份验证。 5. 成功登录内网服务器后,在终端输入 `exit` 命令退出 SSH 连接。 6. 在浏览器输入 `http://localhost:8080` 访问内网服务器Web 应用程序,其 `8080` 是你要访问的应用程序的端口号。 注意:以上命令的 IP 地址、端口号和用户名等参数都需要根据实际情况进行替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值