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

目录

项目名称 

项目架构图

项目环境

项目描述

项目步骤:

项目心得(搭建完项目后写在前面)

一:搭建环境(整体规划)

1:防火墙服务器

原理图:(局部)

具体操作(新建虚拟机)

2:其他虚拟机的安装

3:各虚拟机网卡的ip配置

配网卡的一些问题(重要)

4:关闭firewalled和setlinux服务

二:在防火墙服务器上配置SNAT和DNAT功能

1:步骤流程图

2:永久开启路由功能

3:编写实现snat和dnat的脚本snat_dnat.sh(重要)

 重要指令讲解

4:加固ssh服务

5.设置防火墙开机的时候就启动dnat/snat











项目名称 

           堡垒机构建和发布搭建

项目架构图

              

项目环境

            centos7.9  、iptables、tcp wrappers、httpd、ssh

项目描述

               模拟企业里的环境,构建一个防火墙服务器实现内部网络上网,发布内网的web服务和堡垒机,构建堡垒机帮助企业以更安全的方式管控和登录各种类型的资产。

项目步骤:

1.规划设计项目拓扑图,并且规划好ip地址和各项工作的顺序

2.给防火墙服务器、堡垒机、web服务器等安装好centos7.9的系统,并且配置好ip地址和主机名,禁用selinux和firewalld服务。

3.在防火墙服务器编写脚本实现SNAT和DNAT功能,开启路由功能,加固ssh服务(修改端口号、禁用root用户登录),同时设置开机启动执行SNAT和DNAT的脚本。

4.在堡垒机上加固了ssh服务(修改端口号、禁用root用户登录),开启iptables防火墙功能,只允许访问固定的端口(8899),其他端口都进行封闭。和web服务器之间建立免密通道,编辑登录脚本jump.sh。

5.在web服务器上搭建httpd服务,加固ssh服务(修改端口号、禁用密码登录)、配置tcp wrappers功能,只允许堡垒机的ip地址可以访问ssh服务。

6.测试SNAT和DNAT,堡垒机的功能

项目心得(搭建完项目后写在前面)

1.提升了整个项目规划的能力,将计算机网络和linux各种网络配置、编写脚本进行融合

2.提升故障排除的能力

3.对防火墙和堡垒机在安全上的使用进一步加深

4.对ssh服务进一步熟悉

5.沟通能力的提升等

6.今后考虑深入研究下开源的jumpserve

一:搭建环境(整体规划)

本项目从最基本的环境配置(虚拟机创建)开始搭建,一步一步落实到位

1:防火墙服务器

原理图:(局部)

看清楚:配置两块网卡(网络适配器),WAN口使用桥接模式,LAN口使用仅主机模式

具体操作(新建虚拟机)

没有图显示默认为下一步

1:版本centOS7 64位

2:网卡模式(待会还会添加)

3:继续添加一块网卡,设置为hostonly模式

4:总体配置如图(注意此时有了两块网卡了)

5:放入镜像(操作系统)

因为当时是自定义设置的,需要再手工配置镜像,别遗漏!!!

6:打开虚拟机进去安装centos7系统来到配置界面

7:网络连接打开(很重要,之前漏过这一步导致不能连接网络)记住防火墙两个网卡都连接一下!

同时注意:最小安装(不安装图形化界面) 和  安装位置的自动分区

8:设置root用户的密码

9:自动安装成功点击重启

10:安装成功(显示此界面则成功)

2:其他虚拟机的安装

继续安装上述步骤安装即可,注意其他两台服务器都是用的仅主机模式,

一台命名为centos7-jumpserver,另一台命名为centos7-web

3:各虚拟机网卡的ip配置

各自用root用户登录进入以后第一步先ip add

可以看到ens33没有ip地址,此时用ifup ens33 来激活网卡的ip地址

改一下主机名(方便区分,而不只是用不同ip来区分不同机器)

[root@localhost ~]# hostnamectl set-hostname  firewall
[root@localhost ~]# su
[root@firewall ~]# 

可以看到此时就网卡ens33激活了ip地址,之后的操作就需要用到之前写过的博客:配置静态IP地址

[root@firewall ~]# cd /etc/sysconfig/network-scripts/
[root@firewall network-scripts]# ls
ifcfg-ens33  ifdown-eth   ifdown-ppp       ifdown-tunnel  ifup-ippp   ifup-post    ifup-TeamPort      network-functions-ipv6
ifcfg-ens34  ifdown-ippp  ifdown-routes    ifup           ifup-ipv6   ifup-ppp     ifup-tunnel
ifcfg-lo     ifdown-ipv6  ifdown-sit       ifup-aliases   ifup-isdn   ifup-routes  ifup-wireless

此时可以看到有两个网卡,再编辑一下对应的配置文件即可。

需用vim编辑命令,记住先yum install vim -y下载

配置好第1块网卡的ip地址、子网掩码、网关和dns服务器地址

[root@firewall network-scripts]# vim ifcfg-ens33
BOOTPROTO="none"
NAME="ens33"
UUID="1dd5fb76-8c91-43d8-ae43-f921aab4f836"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.113
PREFIX=24
GATEWAY=192.168.1.1
DNS1=114.114.114.114

编辑ens36 网卡配置文件,设置好ip地址和子网掩码

[root@firewall network-scripts]# vim ifcfg-ens36
BOOTPROTO=none
NAME=ens36
UUID=bfcbc028-8b94-4753-b7f9-af378b162dba
DEVICE=ens3
ONBOOT=yes
IPADDR=192.168.5.254
PREFIX=24

再刷新网络 service network restart

这里有个问题:如果刷新网络成功了,因为ens33网卡ip地址修改了,需要重新连接一个Xshell终端去登录新的WAN口的IP地址也就是192.168.1.113,最后成功结果如图(已修改好两个网卡的ip地址等)

配网卡的一些问题(重要)

1:这里的网卡一定只有ifcfg-ens33 ifcfg-ens36,多余的一定要删除

多余的文件,如果有错误配置,也会导致网络配置失败

2:ens33和ens36的UID号注意一定不能一样,要删除!

这里发现一样的用Vim编辑器删除,注意dd直接删除该行

3:IP地址要设置在确定的段

先看原理:真实机器有很多网卡,而用的是Vmnet1网卡通过Xshell来与交换机相连从而与防火墙跳板机内部服务器相连,而且Vmnet1对应的是仅主机模式,因此LAN口的IP地址要配与真实机器VMnet1网段的IP

桥接模式要配与真实机器所用的IP,而我真实机器用的是无线网WLAN

所以这里的ens36要换成192.168.102.*

4:关闭firewalled和setlinux服务

SELinux(Security-Enhanced Linux)是一个安全子系统,和防火墙firewalled类似

Firewall是一种网络安全设备或软件,用于监控、过滤和控制网络流量,以防止未经授权的访问和攻击。

注意查看注释内容有对应的代码

[root@jumpserver ~]# service firewalld stop        ##防火墙关闭服务
Redirecting to /bin/systemctl stop firewalld.service         
[root@jumpserver ~]# systemctl disable firewalld            ###开机以后防火墙不再开启
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@jumpserver ~]# getenforce   ###查看setlinux状态
Enforcing
[root@jumpserver ~]# setenforce 0          #######短暂关闭setlinux
[root@jumpserver ~]#
[root@jumpserver ~]# vi /etc/selinux/config         ########查看setlinux配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled              #######打开以后只要设置成disabled即可
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
重启才能生效
[root@jumpserver ~]# reboot

二:在防火墙服务器上配置SNAT和DNAT功能

1:步骤流程图

2:永久开启路由功能

进入配置文件添加net.ipv4.ip_forward = 1

[root@firewall nat]# vim /etc/sysctl.conf  
#添加下面的配置永久开启路由功能
net.ipv4.ip_forward = 1
[root@firewall nat]# sysctl -p   ##让linux内核加载上面的配置,即生效
net.ipv4.ip_forward = 1
[root@firewall nat]#

这样才能永久生效

3:编写实现snat和dnat的脚本snat_dnat.sh(重要)

在防火墙服务器打通snat/dnat之前,web/jump server都是上不了网的,ping百度的官网或者是

yum install vim -y都是失败的,这时需要开启路由打通snat/dnat来开启上网功能

#临时开启路由功能,因为前面已经永久开启了,这个只是提醒,需要开启路由功能
echo  1  >/proc/sys/net/ipv4/ip_forward
#开启SNAT功能
iptables -F  #清除一下原来的规则,确保规则都是全新额
iptables -X   ##清除自定义链
iptables -t nat -F
iptables -t nat -X
iptables  -t nat  -A POSTROUTING  -s 192.168.5.0/24 -o ens33  -j MASQUERADE
##snat是postrouting链(出去的)
##MASQUERADE就不用接ens33的ip地址了
#dnat 发布堡垒机
iptables  -t nat  -A PREROUTING  -d 192.168.1.113 -p tcp --dport 9988  -i ens33  -j DNAT --to-destination 192.168.5.99:8899
##dnat是prerouting链(进来),同时dnat发布堡垒机的端口是9988,这个时候为了安全不设置为常用端口,
访问了9988端口号后会映射到堡垒机的ip的8899端口号上去,这是最重要的一条命令配置
#dnat 发布web服务的80和443端口
iptables  -t nat  -A PREROUTING  -d 192.168.1.113 -p tcp --dport 80  -i ens33  -j DNAT --to-destination 192.168.5.80:80
iptables  -t nat  -A PREROUTING  -d 192.168.1.113 -p tcp --dport 443  -i ens33  -j DNAT --to-destination 192.168.5.80:443

 重要指令讲解

iptables  -t nat  -A PREROUTING  -d 192.168.1.113 -p tcp --dport 9988  -i ens33  -j DNAT --to-destination 192.168.5.99:8899

这条命令的作用是将来自192.168.1.113地址,目标端口为9988的TCP数据包,通过ens33接口转发到目标地址192.168.5.99的8899端口。

这条iptables规则使用了目标地址转换(DNAT),也称为端口转发。它将数据包的目标地址和端口从192.168.1.113:9988转换为192.168.5.99:8899,从而实现了网络地址转换(NAT)映射。

换句话说,它允许对特定目标IP和端口的传入请求进行地址转换,以便将流量路由到另一个内部网络中的不同地址和端口。

4:加固ssh服务

修改端口号5566,禁用root用户登录,新建一个专门用户登录防火墙ssh服务的用户fwuser,并且设置密码Sctl@123456

[root@firewall nat]# vim /etc/ssh/sshd_config #进入配置文件修改
Port 5566
PermitRootLogin no
[root@firewall nat]# service sshd restart  #每次改了配置文件一定要记得刷新服务

注意:此处如果失败了注意是否关闭了setlinux

检验效果:

此时出现5566就说明端口号修改成功了。

同时:后面再用Xshell连接防火墙服务器,请使用用户fwuser,密码是Sctl@123456  连接的端口是5566,这样就只能用这个普通用户登录5566端口了,22端口不能登录了如图:

5.设置防火墙开机的时候就启动dnat/snat

[fwuser@firewall nat]$ su - root          ######切换至root用户
密码:
上一次登录:二 12月 19 11:46:55 CST 2023从 192.168.1.180pts/1 上
[root@firewall ~]# 
设置snat_dnat.sh开机启动
[root@firewall nat]# vim /etc/rc.local 
bash  /nat/snat_dnat.sh              ########在配置文件中加入一条命令
[root@firewall nat]# pwd
/nat
[root@firewall nat]# ls
snat_dnat.sh
[root@firewall nat]#
授予/etc/rc.d/rc.local 文件可执行权限
[root@firewall nat]# chmod  +x  /etc/rc.d/rc.local
[root@firewall nat]# reboot

这样防火墙上的工作就完成了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值