以下是基于Ubuntu系统搭建堡垒机并集成设备管理的详细步骤和注意事项:

一、堡垒机搭建步骤

  1. 系统准备

sudo apt update && sudo apt upgrade -y

sudo apt install openssh-server fail2ban ufw -y

  1. 安全加固

# 修改SSH端口

sudo sed -i 's/#Port 22/Port 58222/' /etc/ssh/sshd_config

# 禁用root登录

sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

# 配置防火墙

sudo ufw allow 58222/tcp

sudo ufw enable

sudo systemctl restart sshd

  1. 安装Teleport堡垒机

curl https://deb.releases.teleport.dev/teleport-pubkey.asc | sudo apt-key add -

echo "deb https://deb.releases.teleport.dev/ stable main" | sudo tee /etc/apt/sources.list.d/teleport.list

sudo apt update

sudo apt install teleport

  1. 配置Teleport

sudo teleport configure -o /etc/teleport.yaml

sudo systemctl enable teleport

sudo systemctl start teleport

二、设备接入配置

  1. 生成管理密钥

ssh-keygen -t rsa -b 4096 -C "bastion_admin"

ssh-copy-id -i ~/.ssh/id_rsa.pub admin@server1  # 维护服务器

  1. 网络设备配置示例(以Cisco为例)

enable

configure terminal

ip domain-name example.com

crypto key generate rsa modulus 2048

line vty 0 4

transport input ssh

access-class 100 in

exit

ip access-list standard 100

permit host 192.168.1.100  # 堡垒机IP

exit

  1. 安全设备接入(以FortiGate防火墙为例)

config system admin

edit "teleport_admin"

set ssh-public-key1 "ssh-rsa AAAAB3NzaC1yc2E..."

set trusthost1 192.168.1.100/32

set accprofile "super_admin"

next

end

三、访问Teleport Web控制台

  1. 获取访问地址

# 查看Teleport服务状态获取访问地址(默认使用3080端口)

sudo teleport status

输出示例:

Cluster Name: teleport.example.com

Version: 13.0.0

Hostname: bastion-server

Web UI: https://bastion-server:3080

  1. 浏览器访问

https://<堡垒机IP或域名>:3080

首次访问需忽略证书警告或提前部署合法证书

  1. 初始管理员注册

首次登录需通过CLI获取初始令牌:

sudo tctl users add teleport-admin --roles=editor,access

按提示设置密码后完成登录


四、网页端添加服务器设备

  1. 导航到「节点」管理
    • 左侧菜单栏 → Infrastructure → Servers → Add Server
  2. 填写服务器信息

Hostname: web-server-01

IP Address: 192.168.1.101

Port: 22 (默认SSH端口)

Labels:

env=production

role=webserver

  1. 配置认证方式
    • 选择 SSH 协议
    • 认证方式选择以下之一:
      • 自动上传密钥(推荐):

# 在堡垒机上生成并分发密钥

sudo tctl auth sign --format=openssh --user=teleport-admin --host=web-server-01

      • 手动密钥上传:粘贴~/.ssh/teleport-admin.pub公钥内容
  1. 测试连接
    • 点击 Verify Connection 进行连通性测试
    • 成功标志:显示绿色 "Node is reachable" 提示

五、添加网络设备(Cisco交换机为例)

  1. 前置准备
    • 确保交换机已启用SSH访问(参考CLI配置):

line vty 0 4

transport input ssh

login local

  1. Web界面操作
    • 导航至 Infrastructure → Networking Devices → Add Device

Device Type: Cisco Switch

Management IP: 192.168.1.200

Protocol: SSHv2

Port: 22

Credentials:

Type: SSH Key

Username: cisco-admin

Private Key: [上传预先创建的专用密钥]

  1. 高级配置
    • 开启 Session Recording 启用操作审计
    • 设置命令过滤规则(示例禁止配置删除):

# 在Teleport策略文件添加

spec:

deny:

- "clear configuration"

- "delete flash:*"


六、添加安全设备(以FortiGate防火墙为例)

  1. API密钥生成
    • 登录防火墙控制台:

config system api-user

edit "teleport-user"

set accprofile "super_admin"

set vdom "root"

config trusthost

edit 1

set ipv4-trusthost 192.168.1.100/32

next

end

set api-key generate

end

  1. Web界面配置
    • 导航至 Infrastructure → Security Devices → Add Firewall

Vendor: Fortinet

API Endpoint: https://192.168.1.150:443

API Key: xxxxxxxxxxxxxxxxx (从防火墙获取的API密钥)

Sync Interval: 300 (秒自动同步策略)

  1. 权限映射
    • 创建角色 firewall-operator:

kind: role

version: v5

metadata:

name: firewall-operator

spec:

allow:

firewall_actions: ["get","list"]

deny:

- "execute reboot"


七、添加IDS/IPS设备(以Suricata为例)

  1. 日志服务器配置

# 在Suricata服务器配置日志转发

sudo tee -a /etc/suricata/suricata.yaml <<EOF

outputs:

- eve-log:

enabled: yes

type: syslog

syslog:

facility: local5

level: info

EOF

  1. Teleport集成配置
    • 导航至 Security → Integrations → Add Log Forwarder

Integration Type: Syslog

Protocol: TCP

Port: 5140

Log Format: CEF (Common Event Format)

Filters:

Severity: >=medium

Event Types: intrusion_attempt


八、日常维护操作

  1. 批量导入设备
    • 使用CSV模板批量上传:

hostname,ip,type,credentials

core-switch-01,10.1.1.1,switch,key:/path/to/key

ids-sensor-01,10.1.2.5,ids,api:xxxxxx

  1. 连接故障排查
    • 在设备详情页点击 Diagnostics
      • 检查SSH握手过程
      • 验证权限策略匹配
      • 查看实时日志流

九、关键注意事项

  1. 证书管理
    • 每90天轮换设备访问证书:

sudo tctl auth rotate --type=device

  1. 高危操作审批
    • 启用审批工作流(需企业版):

kind: access_request

spec:

require_approval: yes

approvals_required: 2

  1. 浏览器兼容性
    • 推荐使用Chrome/Firefox最新版
    • 禁用浏览器插件防止会话中断

通过Web界面管理可大幅简化设备纳管流程,建议对每类设备创建专用标签(如device:cisco-switch),便于后续基于标签的权限分配。所有变更操作会自动记录至审计日志,可通过 Activity 菜单回溯完整操作历史。

十、日常维护注意事项

  1. 访问控制
  • 采用最小权限原则,按角色分配权限
  • 实施双因素认证(Teleport支持Google Authenticator)
  • 每周审查/var/log/teleport.log和/var/log/auth.log
  1. 会话审计

# 查看Teleport会话记录

tctl sessions ls

# 回放特定会话

tctl play 0d8c4f4e-1234-5678-90ab-cdef01234567

  1. 系统维护

# 每日安全检查脚本

#!/bin/bash

apt list --upgradable

fail2ban-client status sshd

netstat -tulnp | grep -vE '(127.0.0.1|::1)'

十一、数据备份方案

  1. 配置自动备份

# 创建备份脚本

sudo nano /usr/local/bin/teleport_backup.sh

#!/bin/bash

DATE=$(date +%Y%m%d)

tar czvf /backup/teleport-config-$DATE.tar.gz /etc/teleport.yaml /var/lib/teleport/

mysqldump -u root -p'password' teleport > /backup/teleport-db-$DATE.sql

aws s3 cp /backup/*-$DATE.* s3://your-bucket/backups/

  1. 设置定时任务

sudo crontab -e

# 每天凌晨2点执行备份

0 2 * * * /usr/local/bin/teleport_backup.sh

  1. 备份验证

# 每月执行恢复测试

tar -tf /backup/teleport-config-latest.tar.gz

mysql -u root -p -e "DROP DATABASE teleport; CREATE DATABASE teleport;"

mysql -u root -p teleport < /backup/teleport-db-latest.sql

十二、高级安全设置

  1. 网络隔离

# 创建管理VLAN

sudo apt install vlan

sudo modprobe 8021q

sudo vconfig add eth0 100

sudo ip addr add 192.168.100.1/24 dev eth0.100

  1. HIDS集成(以Wazuh为例)

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/wazuh.gpg --import

echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list

sudo apt update

sudo apt install wazuh-agent

十三、故障排查命令

  1. 网络诊断

mtr -rw 192.168.1.1  # 实时路由跟踪

tshark -i eth0 -Y "ssh" -f "tcp port 58222"  # SSH流量分析

  1. 性能监控

# 安装Prometheus监控

sudo apt install prometheus-node-exporter

sudo systemctl enable prometheus-node-exporter

建议每月执行安全审计:

lynis audit system

rkhunter --check

以上方案实现了基于角色的精细化管理,所有管理操作均通过加密隧道进行,审计日志保留周期建议不低于180天。关键设备建议采用证书+动态令牌双因素认证,网络设备配置变更需通过堡垒机审批流程。

Ubuntu堡垒机搭建与设备管理指南的更多相关文章

  1. Jumpserver堡垒机搭建

    系统: CentOS 7 IP: 192.168.11.199关闭 selinux 和防火墙 # setenforce # 临时关闭,重启后失效 # systemctl stop firewalld. ...

  2. jumpserver 堡垒机搭建

    1.摘要 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python ...

  3. Docker容器版Jumpserver堡垒机搭建部署方法附Redis

    1.简介 Jumpserver是全球首款完全开源的堡垒机,多云环境下更好用的堡垒机,使用GNU GPL v2.0开源协议,是符合 4A 的专业运维安全审计系统,使用Python / Django 进行 ...

  4. Jumpserver堡垒机搭建(脚本自动化)

    #!/bin/bash # coding: utf- # Copyright (c) set -e #返回值为非0时,退出脚本 echo "0. 系统的一些配置" setenfor ...

  5. jumpserver 堡垒机环境搭建(图文详解)

    摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...

  6. jumpserver 堡垒机环境搭建(图文具体解释)

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...

  7. CentOS 7 搭建Jumpserver跳板机(堡垒机)

    跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...

  8. 【转】jumpserver 堡垒机环境搭建(图文详解)

    jumpserver 堡垒机环境搭建(图文详解)   摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...

  9. JumpServer 堡垒机 指南

    堡垒机介绍 在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以便集中报警.及时处理及审计定责.    ...

  10. 基于Docker搭建Jumpserver堡垒机操作实践

    一.背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文 ...

随机推荐

  1. VSCode Romote SSH连接远程主机经常初始化?10个解决方法!!

    解决方法: 删除远程主机上的 .vscode-server 文件夹:这个文件夹包含 VSCode 的远程服务器组件.如果这个文件夹损坏或配置不正确,会导致连接问题.删除并重新安装可以确保服务器组件是干 ...

  2. 从零构建你的第一个RESTful API:HTTP协议与API设计超图解指南 🌐

    title: 从零构建你的第一个RESTful API:HTTP协议与API设计超图解指南 date: 2025/2/26 updated: 2025/2/26 author: cmdragon ex ...

  3. ABC393E题解

    大概评级:绿. 拿到题目,寻找突破口,发现 \(A_i \le 10^6\),一般的数据都是 \(A_i \le 10^9\),所以必有蹊跷. 数学,权值,最大公约数,联想到了因子--懂了,原来是这么 ...

  4. Top-N推荐算法 Top-N recommendation Algorithms

    引言 推荐算法是计算机专业中的一种算法,通过一些计算,能够推测用户喜欢的东西,在互联网环境中应用比较广泛.Top-N算法在生活中非常常见,比如学术论文推荐论文.音乐软件推荐歌曲等. 今天看到一篇名叫& ...

  5. 使用Semantic Kernel框架和C#.NET 实现大模型Function Calling

    最近研究Function Call,总结了一篇文章,分享给大家 一.GPT-4中实现函数调用功能 定义函数:首先,开发一个函数.例如,一个获取天气信息的函数可能如下: def get_current_ ...

  6. 保姆级教程——手把手教会你如何在Linux上安装Redis

    一.Linux系统安装Redis(7.4.0) 注意: 全程是在root底下操作,当然也可以采用sudo 1.1 安装Redis依赖 Redis是基于C语言编写的,因此首先需要安装Redis所需要的g ...

  7. 面试题-Spring和Springboot框架

    前言 spring框架部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的 ...

  8. MySQL 事务隔离级别:社交恐惧症的四个阶段

    MySQL 事务隔离级别:社交恐惧症的四个阶段 在数据库的世界里,数据们也有社交问题!事务隔离级别就是控制它们互相看到对方的程度... 什么是事务隔离? 想象一下,数据库是一个繁忙的餐厅,每个事务都是 ...

  9. elk收集分析nginx日志,并绘制图形

    一.修改nginx配置 把nginx日志修改成json格式,在nginx.conf中添加如下内容,重启nginx. log_format log_json '{"@timestamp&quo ...

  10. Python 潮流周刊#95:像人类一样使用计算机(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...