文档章节

真正无感知的堡垒机----sshfortress

叫我甘道夫
 叫我甘道夫
发布于 03/20 15:03
字数 1686
阅读 9.3K
收藏 12

堡垒机实现方式对比

SSHfortress

中文 English 下载文件尽量到github去下载,因为目前官网的带宽很小

   目前市面上存在的大部分堡垒机,要么是做一个Web界面的连接终端,要么就是跳板机再跳一次,试想如果你用的是命令行工具怎么用Web终端,又怎么批量操作使用跳板机,这无疑是多此一举,文件无法互传等其他限制,这也就是sshfortress出现的原因,它不会改变用户原有高效的使用习惯。

社区版完全免费,用户无须注册和授权文件,版本区别。这个说明是介绍如何安装sshfortress系统,它有一个Web管理界面greatfortress是用java实现的用来可示化的增加账号、资产等功能;后端sshfortress是在openssh的基础上开发的功能,好了往下面看如何安装和配置吧。

目录

  • 产品简介
  • 功能
  • 注意
  • 依赖
  • 安装
  • 演示视频
  • 如何使用

产品简介

sshfortress堡垒机集中了运维身份鉴别、账号管控、系统操作审计等多种功能。基于协议反向代理实现,通过反向代理的方式实现对 SSH 、SCP 及 SFTP 协议的数据流进行全程记录。统一运维入口,统一用户与主机帐号间的权限关系,防止内部数据泄密。

功能

堡垒机具备操作审计、职权管控、安全认证、高效运维等功能。

  • 操作审计

多面记录运维人员的操作行为,作为事件追溯的保障和事故分析的依据。

运维操作记录: 操作失误、恶意操作、越权操作详细记录。

Linux命令审计: 可提取命令符审计。

文件传输审计: 支持远程桌面文件传输、SFTP的原文件审计。

终端录制回放: 支持终端录制ssh操作过程,完全兼容linux自带工具scriptreplay进行回放。回放文件存放路径/var/log/sshfortress_playback,按年月日归类。

  • 职权管控

通过账号管控和权限组管理,实现分职权进行人员和资产的管理。

账号管控: 运维账号唯一,解决共享账号、临时账号、滥用权限等问题。

权组管理: 按照人员、部门组织、资源组,建立人员职责与资源分配的授权管理。

  • 高效运维

原生实现,不改变用户使用习惯,仿佛没有使用堡垒机一样。

C/S架构运维接入: 支持SSH、SCP、SFTP协议。

多运维工具: 支持PuTTY、SecureCRT、Xshell等工具。

注意

sshfortress将接管22端口,所以在这之前你需要另外编译安装一个openssh并监听其他端口(22端口以外)以便你远程连接 https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

# wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
# tar zxvf openssh-8.1p1.tar.gz
# cd openssh-8.1p1/
# ./configure --prefix=/usr/local/openssh2233
# make -j4; make install
# sed -i '1i\Port 2233' /usr/local/openssh2233/etc/sshd_config
# sed -i '2i\PermitRootLogin yes' /usr/local/openssh2233/etc/sshd_config
# /usr/local/openssh2233/sbin/sshd

可以创建一个开机启动项 rc-local在centos7以前是加载的,之后不再开机加载了,现在我们打开它

[root@centos8 tmp]# cat /usr/lib/systemd/system/rc-local.service 
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
 
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
 
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable rc-local
# chmod +x /etc/rc.local
# echo "/usr/local/openssh2233/sbin/sshd" >> /etc/rc.local

友情提示centos8开始启用了nftables而不是iptables,如果你不熟悉规则的添加,最好清空规则

# nft flush ruleset

依赖

  1. glibc 2.17+
  2. mysql 5.6+ or MariaDB
  3. jdk 1.8
  4. tomcat 8
  5. sshfortress

安装

进入资源页按需下载即可,https://sshfortress.com/downloads/ 或者 https://github.com/sshfortress/sshfortress/releases 进行下载

apache-tomcat-8.5.31.tar.gz                        09-Jan-2020 11:21      9M
audit_sec.sql                                      09-Jan-2020 16:07     10M
greatfortress.tar.gz                               10-Jan-2020 09:52     65M
jdk-8u172-linux-x64.tar.gz                         09-Jan-2020 11:22    182M
sshfortress-1.6.1.sha256                           09-Jan-2020 16:14     155
sshfortress-1.6.1.tar.gz                           09-Jan-2020 15:58     10M

jdk

# tar zxvf jdk-8u172-linux-x64.tar.gz -C /usr/local/
# ln -s /usr/local/jdk1.8.0_172/ /usr/local/jdk
# echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile
# echo "export JRE_HOME=/usr/local/jdk/jre" >> /etc/profile
# echo "export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib:\${CLASSPATH}" >> /etc/profile
# echo "export PATH=\${JAVA_HOME}/bin:\${JRE_HOME}/bin:/usr/local/mysql/bin:\${PATH}" >> /etc/profile
# source /etc/profile

mysql

  • 选项1: 源码编译
# yum -y install make gcc-c++ cmake bison-devel bison  ncurses-devel libgnomeui-devel perl-Module-Install  bzip2 libtirpc-devel

# wget https://github.com/sshfortress/sshfortress/releases/download/1.6.1/mysql-5.7.16.tar.gz
# wget https://github.com/sshfortress/sshfortress/releases/download/1.6.1/boost_1_59_0.tar.bz2
# tar jxvf boost_1_59_0.tar.bz2 -C /tmp
# tar zxvf mysql-5.7.16.tar.gz
# groupadd mysql;useradd -r -g mysql -s /bin/false -M mysql
# cd mysql-5.7.16/

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DINSTALL_DATADIR=/usr/local/mysql/data \
    -DSYSCONFDIR=/usr/local/mysql/etc \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    -DEXTRA_CHARSETS=all \
    -USER=mysql \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1  \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MEMORY_STORAGE_ENGINE=1 \
    -DWITH_BOOST=/tmp/boost_1_59_0
    
# make -j4; make install
# chown -R mysql.mysql /usr/local/mysql
# cp -f support-files/mysql.server /etc/init.d/mysqld
# mysqld --initialize --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# /etc/init.d/mysqld start
# 初始密码,初始化的时候可以看到 <temporary password 'nibmcstse9!i'>
# mysql -uroot -p'NiBMcstse9!i' --connect-expired-password -e "alter user 'root'@'localhost' identified by 'SSHfortress123@';CREATE USER 'sshfortress'@'%' IDENTIFIED BY 'SSHfortress123@';GRANT ALL PRIVILEGES ON *.* TO 'sshfortress'@'%' IDENTIFIED BY 'SSHfortress123@' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;flush privileges;"

# mysql -uroot -p'SSHfortress123@' -e "create database audit_sec; use mysql;create user 'audit'@'127.0.0.1' identified by 'audit'; grant all privileges on audit_sec.* to 'audit'@'127.0.0.1';"


# mysql -uroot -p'SSHfortress123@' -e "set global log_bin_trust_function_creators=1; set global explicit_defaults_for_timestamp=1;set global sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';"

# mysql -uroot -p'SSHfortress123@' audit_sec  <audit_sec.sql 
为了防止每次重启失效,所以把它写入到配置文件中如下:
#[root@centos8 local]# cat etc my.cnf
[mysqld]
log_bin_trust_function_creators="on"
explicit_defaults_for_timestamp="on"
sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" 
# systemctl enable mysqld
# /etc/init.d/mysqld restart
  • 选项2: YUM安装 这里centos8.0 mysql 8.0为例

 # yum install mysql-server
 
 # echo "skip_ssl" >> /etc/my.cnf.d/mysql-server.cnf
 # echo "log_bin_trust_function_creators=on" >> /etc/my.cnf.d/mysql-server.cnf
 # echo "explicit_defaults_for_timestamp=on" >> /etc/my.cnf.d/mysql-server.cnf
 # echo "sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" >> /etc/my.cnf.d/mysql-server.cnf
 
 # systemctl enable mysqld
 # systemctl restart mysqld
 # mysql -e "create user audit@'127.0.0.1' identified  by 'audit'; grant all privileges on *.* to audit@'127.0.0.1' with grant option;"
 # mysql -e "create database audit_sec;"
 # mysql audit_sec < audit_sec.sql
 
  • 选项3: APT安装 这里以Debian 9.9.0 MariaDB 10.1.41为例
# apt-get install mysql-server 
# systemctl enable mariadb
# mysql -e "create user audit@'127.0.0.1' identified  by 'audit'; grant all privileges on *.* to audit@'127.0.0.1' with grant option;"
# mysql -e "create database audit_sec;"
# mysql audit_sec < audit_sec.sql

tomcat

# tar zxvf apache-tomcat-8.5.31.tar.gz -C /usr/local/
# ln -s /usr/local/apache-tomcat-8.5.31/ /usr/local/tomcat
# rm -rf /usr/local/tomcat/webapps/*
# tar zxvf greatfortress.tar.gz -C /usr/local/tomcat/webapps
# sed -i 's/192.168.7.3/x.x.x.x/g' /usr/local/tomcat/webapps/greatfortress/common/layui/layui.js
# /usr/local/tomcat/bin/catalina.sh start

x.x.x.x 是你的监听地址
http://x.x.x.x:8080/greatfortress  
帐号:fortress  密码 hilookhere
启动tomcat后,首次登录有点慢

sshfortress

# tar zxvf sshfortress-x.x.x.tar.gz
# cd sshfortress-x.x.x
# ./install.sh

演示视频

https://sshfortress.com/en/video.html

如何使用

登录名加两个减号加资产ID Example:

ssh name--ID@x.x.x.x 
scp ll.jpg name--ID@x.x.x.x:/tmp
sftp name--ID@x.x.x.

© 著作权归作者所有

叫我甘道夫

叫我甘道夫

粉丝 13
博文 10
码字总数 9058
作品 4
杭州
运维
私信 提问
加载中

评论(4)

W_Lu
W_Lu
与Jumpserver有什么优势吗?功能有什么特别?另外,我司因为管理安保问题,要ssh两台主机才能到达目的主机,这个堡垒机能否甄别以及记录命令信息和控制?
叫我甘道夫
叫我甘道夫 博主
你应该看看我录的视频有演示的,不会改变你的用法,就跟没有使用过堡垒机一样,可以记录ssh scp sftp,绝对颠覆你对堡垒机的认知jumpserver只能叫跳板机,很鸡肋
叫我甘道夫
叫我甘道夫 博主
没有命令黑名单的功能,因为这种很容易被绕过,举个例子比如‘rm’命令是黑名单,如果对它进行转义`\ rm`,或者写入到shell脚本里,又或者用remove函数删除,所以就没有做这个功能
W_Lu
W_Lu
好的,我试试
麒麟开源堡垒机双因素认证功能(动态口令、CA证书)发布

堡垒机经常成为企业内部安全的薄弱环节,堡垒机内部保存所有的设备资产和权限关系,一旦堡垒机被入侵,则意味很多时候黑客得到了登录服务器、网络设备的权限。 堡垒机口令是堡垒机安全的第一...

网安1476
2016/05/24
2.7K
0
开源web终端ssh解决方案——gateone

1.首先来说一下为什么要web ssh? 有人是说,有xshell,secureRT,putty等众多的ssh终端,为嘛还要弄个web的ssh,不是够二的吗?能起多大作用? 有个web的ssh,的确没有多大作用,的确无法代替...

运维技术
2014/12/31
5K
2
开源堡垒机或者运维安全审计系统

堡垒机有以下两个至关重要的功能: 权限管理 当你公司的服务器变的越来越多后,需要操作这些服务器的人就肯定不只是一个运维人员,同时也可能包括多个开发人员,那么这么多的人操作业务系统,...

English0523
2016/05/19
0
0
阿里云堡垒机V3版重磅发布,和运维失误say no!

摘要: 对于外部攻击尚有产品工具可寻,那么对于类似的内部威胁防范该如何进行呢?近日,阿里云运维管理与审计产品重磅发布堡垒机V3版本,这是一款能够帮助用户拥有全方位运维风险控制与事件...

阿里云云栖社区
2018/11/07
142
0
开源堡垒机麒麟开源堡垒机阿里云安装版本发布

为了适应云平台堡垒机安装,麒麟团队近期制作了堡垒机云安装版本,系统基于CentOS7.1,可适合各种云环境进行堡垒机的安装,安装过程非常简单。 一.阿里云或其它云平台建立Centos7.x系统 在阿...

网安1476
2016/05/08
2.6K
8

没有更多内容

加载失败,请刷新页面

加载更多

基于 rsync 和 ln 实现“写时复制”的快照备份功能

一、基本原理 这里“写时复制”加了一个引号,因为这是专门针对使用rsync备份时的写时复制效果,而不是事实上的写时复制(copy-on-write),其达到的目的如下: 使用 rsync 备份数据后,立即...

Inpool
18分钟前
17
0
郑州哪哪里可以开工程款发票-郑州_新闻网

【电薇同步;1.3.8 - 2.7.4.1 - 5.2.9.7.】张生、诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是Android手机通用...

yyqqvip
今天
30
0
Nginx 反向代理访问

在Nginx 配置 server { listen 80; server_name www.xiaocx.org www.xiaocx.org www.xiaocx.org; root /Users/maison/work/xiaocx/dist; index i......

韩庚庚
今天
33
0
python笔记:环境变量已设置CMD中一直报错"python"不是内部命令,也不是可运行的程序或批处理文件

这些天虽然也写了几个小工具,但是打包都是在anaconda prompt中完成的,因为CMD中一直报错"python"不是内部命令,也不是可运行的程序或批处理文件,各种查度,千篇一律的是环境变量配置的问题...

小玲_001
今天
13
0
AI+BI服务模式

术语与缩写解释 缩写、术语 解 释 BI 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析...

zoegu228
今天
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部