ssh 堡垒机实验服务

目录

 ##堡垒机(跳板机)

什么是跳板机?什么是堡垒机?

VPN: Virtual Private Network  虚拟专用网络:

访问策略的检查顺序:

什么是dmz区?

堡垒机实验的步骤:

1.在内网的web服务器上配置tcp wrappers策略,只允许jumpserver 能ssh过来,其他的机器都不可以

 2.确保堡垒机上的ssh服务是正常运行的

3.在防火墙服务器上启用snat和dnat功能

##建立一个脚本来选择进入的机器

#出现的问题


ssh 堡垒机实验

 ##堡垒机(跳板机)

什么是跳板机?什么是堡垒机?

跳板机和堡垒机其实就是内部的一台服务器,允许外面的机器可以ssh或者web连接进来,然后通过堡垒机或者跳板机再去访问内部其他的服务器,而且其他的服务器也做了安全上的限制,只允许堡垒机或者跳板机可以访问,这样做的目的是为了保护内网的服务器的安全。

外面的用户---》VPN-->进入公司内部---》ssh到跳板机---》内部的服务器上,进行控制

什么是dmz区?

DMZ(Demilitarized Zone)是指网络安全中的一个概念

jumpserver 是一个非常好的堡垒机软件

JumpServer 是什么?

JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产。

JumpServer 堡垒机支持事前授权、事中监察、事后审计,满足等保合规要求。

VPN: Virtual Private Network  虚拟专用网络:

虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。

    VPN解决了什么问题? 其实就是让外网的用户访问到内网,需要对外网的用户进行认证,然后分配一个内部的ip地址,就可以访问内网了。

VPN网关: vpn服务器(硬件防火墙)

openvpn 可以实现vpn功能

ssh 服务: 远程控制linux系统的服务

sudo

iptables --->tcp wrappers

tcp wrappers 是一个端口过滤机制,可以理解为一个防火墙软件。

会对进出系统的数据包进行过滤

4、TCP_Wrappers访问策略

相关控制文件:/etc/hosts.allow(允许文件)、 /etc/hosts.deny(拒绝文件)

/etc/hosts.allow(允许文件) 白名单

/etc/hosts.deny(拒绝文件) 黑名单

访问策略的检查顺序:

1.先看hosts.allow里是否有允许的策略,如果有直接放行,如果没有,再去检查hosts.deny

2.如果hosts.deny里有拒绝的策略,直接拒绝,如果没有,则放行

[root@localhost ~]# vim /etc/hosts.allow

sshd:61.63.65.67,192.168.2.*

[root@localhost ~]# vim /etc/hosts.deny

sshd:ALL

====

iptables  -A INPUT -s 192.168.5.99 -p tcp --dport 22 -j ACCEPT

iptables  -A INPUT  -p tcp --dport 80 -j ACCEPT

iptables  -A INPUT  -p tcp --dport 443 -j ACCEPT

iptables -P INPUT DROP

====

什么是dmz区?

隔离区域(非军事化区域)---》就是集成存放服务器的区域

堡垒机实验的步骤:

准备机器环境:

1.给防火墙服务器和web服务器、堡垒机配置好ip地址和设置好主机名,内网使用hostonly网卡类型,防火墙的外网卡使用桥接类型

注意: 你们自己规划的IP地址和网关一定要配置好,dns域名解析服务器可以配置8.8.8.8(谷歌的)

网卡配置方面要自己让路由器有两个网卡,外网卡设置桥接,内网的客户机的网卡都设置为仅主机模式

[root@feng ~]# hostnamectl set-hostname jumpserver

[root@feng ~]# su

[root@jumpserver ~]#

[root@web ~]# hostnamectl set-hostname web-server
[root@web ~]# su
[root@web-server ~]#

##本图片仅供参考

步骤:

1.在内网的web服务器上配置tcp wrappers策略,只允许jumpserver 能ssh过来,其他的机器都不可以

[root@web-server ~]# cat /etc/hosts.deny

sshd:ALL

[root@web-server ~]# cat /etc/hosts.allow

sshd:192.168.5.99,192.168.5.1

[root@web-server ~]#

 2.确保堡垒机上的ssh服务是正常运行的

 [root@jumpserver ~]# service sshd restart

Redirecting to /bin/systemctl restart sshd.service

#ssh进程是否启动

[root@web-server ~]# ps -aux|egrep sshd
root        982  0.0  0.2 113004  4360 ?        Ss   07:26   0:00 /usr/sbin/sshd -D
root       2180  0.0  0.3 161772  6124 ?        Ss   16:18   0:00 sshd: root@pts/2
root       2619  0.0  0.3 161772  6120 ?        Ss   22:21   0:00 sshd: root@pts/0
root       2834  0.0  0.3 161772  6124 ?        Ss   22:36   0:00 sshd: root@pts/1
root       2927  0.0  0.0 112828   980 pts/1    S+   22:45   0:00 grep -E --color=auto sshd
 

#查看端口号

[root@web-server ~]# netstat -anuplt|grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      982/sshd            
tcp        0      0 192.168.142.2:22        192.168.142.1:63009     ESTABLISHED 2180/sshd: root@pts 
tcp        0     36 192.168.142.2:22        192.168.142.1:50308     ESTABLISHED 2834/sshd: root@pts 
tcp        0      0 192.168.142.2:22        192.168.142.1:57540     ESTABLISHED 2619/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      982/sshd  

修改主配置文件,将端口号修改为6677,并且禁用root用户登录

[root@jumpserver ~]# cd /etc/ssh/

[root@jumpserver ssh]# vim sshd_config

PermitRootLogin no

Port 6677

[root@jumpserver ssh]# service sshd restart

Redirecting to /bin/systemctl restart sshd.service

[root@jumpserver ssh]#

新建一个普通用户,用于登录堡垒机

[root@jumpserver ssh]# useradd  wangyalin

[root@jumpserver ssh]# echo 123456|passwd wangyalin --stdin

更改用户 wangyalin的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@jumpserver ssh]#

#root登录不了的效果

[wangyalin@jumpserver ~]$ service sshd restart
Redirecting to /bin/systemctl restart sshd.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===
 

清空tcp wrappers里的配置,停止firewalld的服务

[root@jumpserver ssh]# vim /etc/hosts.allow

[root@jumpserver ssh]# vim /etc/hosts.deny

[root@jumpserver ssh]# service firewalld stop

Redirecting to /bin/systemctl stop firewalld.service

[root@jumpserver ssh]#

3.在防火墙服务器上启用snat和dnat功能

[root@router nat]# cat snat_dnat.sh

#!/bin/bash

#关闭firewalld服务,关闭linux自带的防火墙服务

service firewalld  stop

#开启路由功能  1表示开启路由功能  0 表示禁用路由功能

##暂时开启路由功能

echo   1 >/proc/sys/net/ipv4/ip_forward

#SNAT策略

#清除原来iptables 相关表里的规则

iptables -F

iptables -t nat -F

#添加snat策略

#iptables -t nat -A POSTROUTING  -s 192.168.5.0/24 -o ens36 -j SNAT --to-source 192.168.1.146

iptables -t nat -A POSTROUTING  -s 192.168.5.0/24 -o ens36 -j MASQUERADE

#添加DNAT策略,发布的是web服务器

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p tcp  --dport 80 -i ens36  -j DNAT --to-destination 192.168.5.2

#发布mysql服务器

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p tcp  --dport 3306 -i ens36  -j DNAT --to-destination 192.168.5.3

#redis服务器

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p tcp  --dport 6379 -i ens36  -j DNAT --to-destination 192.168.5.4

#添加DNAT策略,发布的是web服务器

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p tcp  --dport 8080 -i ens36  -j DNAT --to-destination 192.168.5.5:80

#dns服务器

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p udp  --dport 53 -i ens36  -j DNAT --to-destination 192.168.5.8

#发布堡垒机

iptables  -t nat  -A PREROUTING -d 192.168.1.146  -p tcp  --dport 2288 -i ens36  -j DNAT --to-destination 192.168.5.99:6677

[root@router nat]#

[root@router nat]# bash snat_dnat.sh   执行脚本

Redirecting to /bin/systemctl stop firewalld.service

[root@router nat]# iptables -t nat -L -n  查看效果

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination         

DNAT       tcp  --  0.0.0.0/0            192.168.1.146        tcp dpt:80 to:192.168.5.2

DNAT       tcp  --  0.0.0.0/0            192.168.1.146        tcp dpt:3306 to:192.168.5.3

DNAT       tcp  --  0.0.0.0/0            192.168.1.146        tcp dpt:6379 to:192.168.5.4

DNAT       tcp  --  0.0.0.0/0            192.168.1.146        tcp dpt:8080 to:192.168.5.5:80

DNAT       udp  --  0.0.0.0/0            192.168.1.146        udp dpt:53 to:192.168.5.8

DNAT       tcp  --  0.0.0.0/0            192.168.1.146        tcp dpt:2288 to:192.168.5.99:6677

Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination         

MASQUERADE  all  --  192.168.5.0/24       0.0.0.0/0           

[root@router nat]#

在测试服务器上验证dnat功能和跳板机功能

在另外一台服务器上ssh到防火墙wan口的ip+22端口--》DNAT映射到跳板机,然后再在跳板机上ssh到内网的服务器

编写jump.sh脚本的目的是,方便在跳板机上ssh到对应的服务器,服务器资产过多,记不清,有脚本好分辨清楚。

##建立一个脚本来选择进入的机器

[wangyalin@jumpserver ~]$ cat jumpserver-choice.sh 
#!/bin/bash
echo "1.连接web服务器"
echo "2.连接MySQL服务器"
echo "3.退出"
while true
do
    read -p "请输入你的选择:" num
    case $num in 
        1)
            ssh root@192.168.142.2
            ;;
        2)
            ssh root@192.168.142.137
            ;;
        3)
            break
            ;;
        *)
            echo "输入不合法!"
        
esac
done
 

[wangyalin@jumpserver ~]$ bash jumpserver-choice.sh 
1.连接web服务器
2.连接MySQL服务器
3.退出
请输入你的选择:1
root@192.168.142.2's password: 
Last login: Tue Mar  5 22:36:15 2024 from 192.168.142.1
[root@web ~]# 

##实验的过程中我改了很多的主机名可能导致我的主机名有问题,请各位看官见谅

#出现的问题

喜欢博主的请点个关注和免费的赞!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值