堡垒机构建和发布搭建项目(二)

本文详细描述了如何配置堡垒机功能,包括加固SSH服务、新建用户、设置防火墙策略、建立与Web服务器的免密通道,以及验证DNAT和堡垒机功能的过程。同时,还介绍了如何编写一个可管理多服务器SSH登录的脚本jump.sh。
摘要由CSDN通过智能技术生成

目录

目录

三:堡垒机功能配置

1.步骤流程图

2.加固堡垒机的ssh服务

3.新建用户

4.启用防火墙功能,只开放8899端口

5.和web服务器建立免密通道

四:web服务器功能配置

 1.步骤流程图

2.安装web服务

3.配置tcp wrappers

4.ssh服务的加固

5.禁用防火墙

五:验证DNAT功能和堡垒机的功能

1.验证DNAT功能,发布的web服务器和堡垒机

2.验证堡垒机的功能,能否通过堡垒机ssh登录web服务器

六:编写一个可以ssh登录其他机器的脚本jump.sh



三:堡垒机功能配置

1.步骤流程图

先进行一个规划,再去做项目会更加有头绪有逻辑,知道每一步之后该干嘛

2.加固堡垒机的ssh服务

直接原因是仅主机模式导致不能上网,所以vim功能还没有,虽然之前打通了dnat/snat,但是整体还没有搭建好项目。需要直接使用vi

加固ssh服务就是1:禁止root用户登录  2:改了之前设计好了的端口(不再是ssh常用的22端口)

[root@jumpserver ~]# cd /etc/ssh/
[root@jumpserver ssh]# vi  sshd_config 
Port 8899
PermitRootLogin no

3.新建用户

既然禁用了root用户,肯定就需要创建一个普通用户来登录。

[root@jumpserver ssh]# useradd scjump
[root@jumpserver ssh]# echo "Sctl@123456"|passwd scjump --stdin ##这一条命令将密码直接给新建用户
更改用户 scjump 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@jumpserver ssh]# 
刷新ssh服务
[root@jumpserver ssh]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@jumpserver ssh]# 

4.启用防火墙功能,只开放8899端口

[root@jumpserver ssh]# mkdir  /iptables
[root@jumpserver ssh]# cd  /iptables/
[root@jumpserver iptables]# vi  rule.sh
#!/bin/bash

#开放8899端口
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
#考虑防火墙dnat映射转发到堡垒机的8899端口的数据能进来
iptables -A INPUT -p tcp --dport 8899 -j ACCEPT
#允许ping(icmp协议就是与Ping命令紧密相连),设置完这条规则以后就可以Pingweb服务器了
iptables -A INPUT -p icmp -j ACCEPT
#考虑的是堡垒机访问web服务器的数据可以回来
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 6677 -j ACCEPT
#设置INPUT链默认规则为DROP
iptables -P INPUT DROP
[root@jumpserver iptables]# 
设置防火墙规则开机启动,修改/etc/rc.local文件
[root@jumpserver iptables]# vi  /etc/rc.local 
bash /iptables/rule.sh
##设置开机就启动这个写好的脚本
[root@jumpserver iptables]# pwd
/iptables
[root@jumpserver iptables]# ls
rule.sh
[root@jumpserver iptables]#
授予/etc/rc.d/rc.local 文件可执行权限
[root@jumpserver iptables]# chmod   +x   /etc/rc.d/rc.local
[root@jumpserver iptables]# 
重启服务器,验证以上配置是否开机生效
[root@jumpserver iptables]# reboot
启动后登录
[scjump@jumpserver ~]$ su - root
密码:
上一次登录:二 12月 19 14:38:47 CST 2023从 192.168.5.1pts/0 上
[root@jumpserver iptables]# iptables -L -n 
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8899
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:6677

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@jumpserver iptables]# 
以上效果证明配置全部生效

1:这个时候加固了ssh以后Xshell里堡垒机同防火墙一样,要更改用户登录和端口(同上),

2:登录的时候再切换root用户扩大自身权限即可

#考虑的是堡垒机访问web服务器的数据可以回来
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 6677 -j ACCEPT

这里是为了能把公钥传过去!!!

5.和web服务器建立免密通道

[root@jumpserver ~]# su  -   root
上一次登录:二 12月 19 15:02:49 CST 2023pts/0 上


生成密钥对##直接ssh-keygen,再敲两下回车
[root@jumpserver ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FtmZcpjAamqqdRZv3GJdsaTr06z8o1yG1XXq0GINByE root@jumpserver
The key's randomart image is:
+---[RSA 2048]----+
|     ..   E o.   |
|      .. = + .   |
|     .  * B . o .|
|    o    * + * o |
|   o.   S + = +  |
|  o  + + = . +   |
| o. o * =oo   .  |
|.. o o =.o+      |
|o       *=..     |
+----[SHA256]-----+

##查看生成的密钥对
[root@jumpserver ~]# cd /root/.ssh/
[root@jumpserver .ssh]# ls
id_rsa  id_rsa.pub


上传公钥到web服务器的root用户上
[root@jumpserver .ssh]# ssh-copy-id  -i   id_rsa.pub   root@192.168.5.80
##这里只要对方用的22端口就可以,不用自身一定是22端口
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
The authenticity of host '192.168.5.80 (192.168.5.80)' can't be established.
ECDSA key fingerprint is SHA256:CE23O23CKzYi8umeR673VuPVdXQfUL5ytKAYDC81S/4.
ECDSA key fingerprint is MD5:78:ec:59:3c:d2:c3:b8:1f:8f:c1:a4:c1:92:93:f6:a6.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

root@192.168.5.80's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.5.80'"
and check to make sure that only the key(s) you wanted were added.

[root@jumpserver .ssh]# 
测试堡垒机和web服务器之间的免密通道是否创建成功
[root@jumpserver iptables]# ssh   'root@192.168.5.80'
Last login: Tue Dec 19 14:38:50 2023 from 192.168.5.1
[root@web-server ~]#

如果这个时候,我直接输入命令ssh ‘root@192.168.5.80’

不用密码就能直接脸上说明免密通道已经打通了

四:web服务器功能配置

 1.步骤流程图

2.安装web服务

[root@web-server ~]# yum  install  httpd -y
[root@web-server ~]# service  httpd  restart     ##启动httpd服务
Redirecting to /bin/systemctl restart httpd.service
[root@web-server ~]# ps aux|grep httpd       ##查看进程
[root@web-server ~]# ss -anplut|grep httpd       ###查看端口
tcp    LISTEN     0      128    [::]:80                 [::]:*    
##可以看到此时http监听的是80端口               

在windows机器上进行测试,访问web服务

3.配置tcp wrappers

只允许堡垒机访问web,其他ip都不允许。记住这里要加入自己的windows机器ip地址,因为windos是通过Xshell连接的,allow除开跳板机ip以外要加入自己的ip地址

[root@web-server ~]# vim   /etc/hosts.allow 
sshd:192.168.5.99,192.168.1.113
[root@web-server ~]# vim   /etc/hosts.deny 
sshd:ALL

同时验证一下

在防火墙服务器上测试是否可以ssh到web服务器
[root@firewall nat]# ssh   root@192.168.5.80
ssh_exchange_identification: read: Connection reset by peer
[root@firewall nat]# 
连接失败,说明tcp wrappers设置成功

4.ssh服务的加固

root用户不用禁止,因为当时建立web与jump server的免密通道是用root用户之间进行的

[root@web-server ~]# vim /etc/ssh/sshd_config 
Port 6677
PasswordAuthentication no
[root@web-server ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

这个时候Xshell也自动断开了,重新连接需要1:用6677端口 2:用密钥认证而不是密码登录

5.禁用防火墙

五:验证DNAT功能和堡垒机的功能

1.验证DNAT功能,发布的web服务器和堡垒机

需要在windows的机器上验证

访问防火墙服务器的WAN口的ip 192.168.1.113的80端口,看能否访问内网的web服务器

注意:这里与之前访问的不同,之前是访问web说明http服务器安装成功,这里访问的是WAN口,如果能访问就说明DNAT功能发布web服务器发表成功

以上效果说明DNAT功能发布web服务器成功

2.验证堡垒机的功能,能否通过堡垒机ssh登录web服务器

Xshell用防火墙的WAN口ip能登录堡垒机的用户成功,说明跳板成功。说明你的DNAT里的堡垒机发布成功

这里用的防火墙的ip以及特定的9988端口

输入堡垒机上的运行ssh远程登录的用户scjump和密码Sctl@123456

说明堡垒机发布成功了,再切换到root用户,用防火墙的ip堡垒机的用户进行ssh连接到web服务器

[scjump@jumpserver ~]$ su - root
密码:
上一次登录:二 12月 19 15:05:37 CST 2023pts/0 上
[root@jumpserver ~]# 
登录web服务器,指定端口号为6677
[root@jumpserver ~]# ssh  -p  6677   root@192.168.5.80
Last login: Tue Dec 19 16:10:34 2023 from 192.168.5.99
[root@web-server ~]# 
[root@web-server ~]# exit
登出
Connection to 192.168.5.80 closed.

六:编写一个可以ssh登录其他机器的脚本jump.sh

该脚本方便记忆有哪些机器需要登录,以及它们开放的ssh的端口号

并给出选项,输入四个选项并给出对应步骤

[root@jumpserver iptables]# vim   jump.sh       ##编写脚本
#!/bin/bash

echo "1. 连接web服务器"
echo "2. 连接redis服务器"
echo "3. 连接mysql服务器"
echo "4. 退出"
read  -p "请输入你的选项,输入1~4之间的数字:"  num

case  $num in
1)
   ssh -p 6677  root@192.168.5.80
   ;;

2)
   ssh  root@192.168.5.36
   ;;
3)
   ssh  root@192.168.5.37
   ;;

*)
   exit
   ;;
esac
使用脚本
[root@jumpserver iptables]# bash jump.sh 
1. 连接web服务器
2. 连接redis服务器
3. 连接mysql服务器
4. 退出
请输入你的选项,输入1~4之间的数字:1
Last login: Tue Dec 19 16:45:00 2023 from 192.168.5.99
[root@web-server ~]# 
[root@web-server ~]# 
[root@web-server ~]# ls
anaconda-ks.cfg
[root@web-server ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:89:52:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.80/24 brd 192.168.5.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe89:5235/64 scope link 
       valid_lft forever preferred_lft forever
[root@web-server ~]# exit  
登出
Connection to 192.168.5.80 closed.
[root@jumpserver iptables]# 

至此,项目的步骤基本完成。这中途遇到的问题已经放入每个步骤的中间并给出解决方案。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值