Ubuntu堡垒机搭建与设备管理指南
以下是基于Ubuntu系统搭建堡垒机并集成设备管理的详细步骤和注意事项:
一、堡垒机搭建步骤
- 系统准备
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server fail2ban ufw -y
- 安全加固
# 修改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
- 安装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
- 配置Teleport
sudo teleport configure -o /etc/teleport.yaml
sudo systemctl enable teleport
sudo systemctl start teleport
二、设备接入配置
- 生成管理密钥
ssh-keygen -t rsa -b 4096 -C "bastion_admin"
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@server1 # 维护服务器
- 网络设备配置示例(以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
- 安全设备接入(以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控制台
- 获取访问地址
# 查看Teleport服务状态获取访问地址(默认使用3080端口)
sudo teleport status
输出示例:
Cluster Name: teleport.example.com
Version: 13.0.0
Hostname: bastion-server
Web UI: https://bastion-server:3080
- 浏览器访问
https://<堡垒机IP或域名>:3080
首次访问需忽略证书警告或提前部署合法证书
- 初始管理员注册
首次登录需通过CLI获取初始令牌:
sudo tctl users add teleport-admin --roles=editor,access
按提示设置密码后完成登录
四、网页端添加服务器设备
- 导航到「节点」管理
- 左侧菜单栏 → Infrastructure → Servers → Add Server
- 填写服务器信息
Hostname: web-server-01
IP Address: 192.168.1.101
Port: 22 (默认SSH端口)
Labels:
env=production
role=webserver
- 配置认证方式
- 选择 SSH 协议
- 认证方式选择以下之一:
- 自动上传密钥(推荐):
# 在堡垒机上生成并分发密钥
sudo tctl auth sign --format=openssh --user=teleport-admin --host=web-server-01
- 手动密钥上传:粘贴~/.ssh/teleport-admin.pub公钥内容
- 测试连接
- 点击 Verify Connection 进行连通性测试
- 成功标志:显示绿色 "Node is reachable" 提示
五、添加网络设备(Cisco交换机为例)
- 前置准备
- 确保交换机已启用SSH访问(参考CLI配置):
line vty 0 4
transport input ssh
login local
- 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: [上传预先创建的专用密钥]
- 高级配置
- 开启 Session Recording 启用操作审计
- 设置命令过滤规则(示例禁止配置删除):
# 在Teleport策略文件添加
spec:
deny:
- "clear configuration"
- "delete flash:*"
六、添加安全设备(以FortiGate防火墙为例)
- 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
- Web界面配置
- 导航至 Infrastructure → Security Devices → Add Firewall
Vendor: Fortinet
API Endpoint: https://192.168.1.150:443
API Key: xxxxxxxxxxxxxxxxx (从防火墙获取的API密钥)
Sync Interval: 300 (秒自动同步策略)
- 权限映射
- 创建角色 firewall-operator:
kind: role
version: v5
metadata:
name: firewall-operator
spec:
allow:
firewall_actions: ["get","list"]
deny:
- "execute reboot"
七、添加IDS/IPS设备(以Suricata为例)
- 日志服务器配置
# 在Suricata服务器配置日志转发
sudo tee -a /etc/suricata/suricata.yaml <<EOF
outputs:
- eve-log:
enabled: yes
type: syslog
syslog:
facility: local5
level: info
EOF
- 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
八、日常维护操作
- 批量导入设备
- 使用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
- 连接故障排查
- 在设备详情页点击 Diagnostics:
- 检查SSH握手过程
- 验证权限策略匹配
- 查看实时日志流
九、关键注意事项
- 证书管理
- 每90天轮换设备访问证书:
sudo tctl auth rotate --type=device
- 高危操作审批
- 启用审批工作流(需企业版):
kind: access_request
spec:
require_approval: yes
approvals_required: 2
- 浏览器兼容性
- 推荐使用Chrome/Firefox最新版
- 禁用浏览器插件防止会话中断
通过Web界面管理可大幅简化设备纳管流程,建议对每类设备创建专用标签(如device:cisco-switch),便于后续基于标签的权限分配。所有变更操作会自动记录至审计日志,可通过 Activity 菜单回溯完整操作历史。
十、日常维护注意事项
- 访问控制
- 采用最小权限原则,按角色分配权限
- 实施双因素认证(Teleport支持Google Authenticator)
- 每周审查/var/log/teleport.log和/var/log/auth.log
- 会话审计
# 查看Teleport会话记录
tctl sessions ls
# 回放特定会话
tctl play 0d8c4f4e-1234-5678-90ab-cdef01234567
- 系统维护
# 每日安全检查脚本
#!/bin/bash
apt list --upgradable
fail2ban-client status sshd
netstat -tulnp | grep -vE '(127.0.0.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/
- 设置定时任务
sudo crontab -e
# 每天凌晨2点执行备份
0 2 * * * /usr/local/bin/teleport_backup.sh
- 备份验证
# 每月执行恢复测试
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
十二、高级安全设置
- 网络隔离
# 创建管理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
- 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
十三、故障排查命令
- 网络诊断
mtr -rw 192.168.1.1 # 实时路由跟踪
tshark -i eth0 -Y "ssh" -f "tcp port 58222" # SSH流量分析
- 性能监控
# 安装Prometheus监控
sudo apt install prometheus-node-exporter
sudo systemctl enable prometheus-node-exporter
建议每月执行安全审计:
lynis audit system
rkhunter --check
以上方案实现了基于角色的精细化管理,所有管理操作均通过加密隧道进行,审计日志保留周期建议不低于180天。关键设备建议采用证书+动态令牌双因素认证,网络设备配置变更需通过堡垒机审批流程。
Ubuntu堡垒机搭建与设备管理指南的更多相关文章
- Jumpserver堡垒机搭建
系统: CentOS 7 IP: 192.168.11.199关闭 selinux 和防火墙 # setenforce # 临时关闭,重启后失效 # systemctl stop firewalld. ...
- jumpserver 堡垒机搭建
1.摘要 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python ...
- Docker容器版Jumpserver堡垒机搭建部署方法附Redis
1.简介 Jumpserver是全球首款完全开源的堡垒机,多云环境下更好用的堡垒机,使用GNU GPL v2.0开源协议,是符合 4A 的专业运维安全审计系统,使用Python / Django 进行 ...
- Jumpserver堡垒机搭建(脚本自动化)
#!/bin/bash # coding: utf- # Copyright (c) set -e #返回值为非0时,退出脚本 echo "0. 系统的一些配置" setenfor ...
- jumpserver 堡垒机环境搭建(图文详解)
摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...
- jumpserver 堡垒机环境搭建(图文具体解释)
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...
- CentOS 7 搭建Jumpserver跳板机(堡垒机)
跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...
- 【转】jumpserver 堡垒机环境搭建(图文详解)
jumpserver 堡垒机环境搭建(图文详解) 摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...
- JumpServer 堡垒机 指南
堡垒机介绍 在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以便集中报警.及时处理及审计定责. ...
- 基于Docker搭建Jumpserver堡垒机操作实践
一.背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文 ...
随机推荐
- Q:oracle备份表语句
oracle备份还原表语句 方法1.sql语句(同一数据库服务器) 备份 create table xxx_temp as select * from xxx; 还原 truncate table x ...
- Sdcb Chats 重磅更新:深度集成 DeepSeek-R1,思维链让 AI 更透明!
Sdcb Chats 是一个强大且易于部署的 ChatGPT 前端,旨在帮助用户轻松接入和管理各种主流的大语言模型. Sdcb Chats 主要特性: 广泛的大模型支持: 已支持 15 种不同的大语言 ...
- spark-sql查询Iceberg时处理流程
1.查询表结构 show create table data_lake_ods.test CREATE TABLE spark_catalog.data_lake_ods.test ( `user_n ...
- 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
关注公众号回复1 获取一线.总监.高管<管理秘籍> 书接上文:DeepSeek怎么突然就比肩GPT了? 如前所述,应用层AI开发压根不会去刻意关注大模型底层实现,多数时候也关注不了. 但我 ...
- 安川YASKAWA工业机器人板卡维修策略
一.安川YASKAWA工业机器人板卡识别故障症状 首先,需要准确识别电路板故障的症状.这通常包括安川YASKAWA机器人操作不稳定.错误代码频繁出现.某些功能失效或整体性能下降等.通过仔细观察和诊断, ...
- Memcached深度剖析:解锁高性能分布式内存缓存的秘密
引言 在当今快节奏的互联网世界中,应用程序的响应速度往往是用户体验的关键.为了提升性能,减轻数据库的压力,Memcached作为一种高性能的分布式内存对象缓存系统,被广泛应用于加速动态Web应用程序. ...
- Typecho的Joe主题新增QQ打开自动跳转到浏览器
前言 QQ抽风,很多站长的网站都被屏蔽白了,我的也不例外 而且很多人上午解了下午又白,所以我就想做一个跳转,跳转到浏览器访问 然后看到执念有教程,就直接搬过来了,也就当做个备份吧 效果图 QQ内打开: ...
- hbase - [05] hbase关联hive
一.配置 1.在hive的配置文件中配置HBASE_HOME(conf/hive-env.sh) export HBASE_HOME=/opt/module/hbase 2.将 conf/hive-e ...
- 『Python底层原理』--Python字符串的秘密
在现代编程中,字符串是不可或缺的数据类型. 无论是处理用户输入.文件读写还是网络通信,字符串都扮演着核心角色. 然而,字符串的处理并非简单地将字符拼接在一起,它涉及到字符集.编码以及编程语言的底层实现 ...
- 选择排序(简单版)(LOW)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ def select_sort_simple(li): li_new = [] ...