ssh 浏览器_Bastillion:一款基于Web的SSH控制终端

Bastillion是一款基于Web的SSH控制终端,该工具可以帮助广大开发人员集中管理针对目标系统的管理员权限访问。这款基于Web的管理工具还结合了用户公共SSH密钥的管理和分发,而密钥的管理需要基于配置文件中定义的用户身份来进行分配。

管理员可以使用Authy或Google Authenticator来在登录时开启双因素身份验证功能。登录后,他们就可以管理公共SSH密钥,或通过一个WebShell来连接到他们的系统中了。在Bastillion中,命令是可以跨Shell共享的,这样可以简化操作,并消除冗余的命令执行。

Bastillion将TLS/SSL层放在SSH之上,并充当bastion主机进行管理。由于Bastillion使用的协议栈为TLS/SSL+SSH,因此基础设施不能通过隧道/端口转发来暴露在外。另外,默认情况下启用SSH密钥管理,以防止非托管公钥并强制实施最佳实践。

03709e0df0a89b82fe3cdaf5dbd50bf1.png

Bastillion下载

广大研究人员可以直接点击【https://github.com/bastillion-io/Bastillion/releases】来下载Bastillion的发布版本。

除此之外,我们也可以直接在AWS商城中获取Bastillion【https://aws.amazon.com/marketplace/pp/Loophole-LLC-Bastillion/B076PNFPCL】。

当然了,由于Bastillion可以通过FreeBSD端口系统来在FreeBSD平台上进行安装,因此广大研究人员也可以通过下列命令来安装Bastillion:

pkg install security/bastillion

依赖组件

安装并部署Open-JDK / Oracle-JDK v1.9或更高版本【文档】:

apt-get install openjdk-9-jdk

使用Jetty构建项目

首先,我们需要点击【https://github.com/bastillion-io/Bastillion/releases】下载bastillion-jetty-vXX.XX.tar.gz。接下来,我们需要导出环境变量。

Linux/Unix/macOS:

export JAVA_HOME=/path/to/jdk export PATH=$JAVA_HOME/bin:$PATH

Windows:

set JAVA_HOME=C:pathojdk set PATH=%JAVA_HOME%bin;%PATH%

接下来,我们就可以安装Bastillion了。

Linux/Unix/macOS:

./startBastillion.sh

Windows:

startBastillion.bat

源码构建

首先,我们需要安装Maven3或更高版本:

apt-get install maven

安装Loophole MVC:https://github.com/bastillion-io/lmvc

导出环境变量:

export JAVA_HOME=/path/to/jdkexport M2_HOME=/path/to/mavenexport PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH

切换到包含了pom.xml文件的目录中,然后运行下列命令:

mvn package jetty:run

工具使用

打开你的浏览器,然后访问https://:8443,并使用下列凭证登录:

username:adminpassword:changeme

管理SSH密钥

默认配置下,Bastillion会针对目标系统重写authorized_keys文件中的所有配置值,我们也可以修改BastillionConfig.properties文件来禁用密钥管理功能,这样Bastillion就只会以Bastillion主机运行了,这个文件位于jetty/bastillion/WEB-INF/classes目录内:

#set to false to disable key management. If false, the Bastillion public key will be appended to the authorized_keys file (instead of it being overwritten completely).keyManagementEnabled=false

除此之外,authorized_keys文件会根据应用程序的情况进行刷新,如果启用了密钥管理功能,那么我们就可以在BastillionConfig.properties文件中定义刷新间隔了:

#authorized_keys refresh interval in minutes (no refresh for <=0)authKeysRefreshInterval=120

如果需要禁用或允许管理员设置任意公共密钥,可以按照如下代码编辑BastillionConfig.properties文件:

#set to true to generate keys when added/managed by users and enforce strong passphrases set to false to allow users to set their own public keyforceUserKeyGeneration=false

设置自定义SSH密钥对

我们还可以在BastillionConfig.properties文件中设置自定义的SSH密钥对:

#set to true to regenerate and import SSH keys  --set to trueresetApplicationSSHKey=true #SSH Key Type 'dsa' or 'rsa'sshKeyType=rsa #private key  --set pvt keyprivateKey=/Users/kavanagh/.ssh/id_rsa #public key  --set pub keypublicKey=/Users/kavanagh/.ssh/id_rsa.pub #default passphrase  --leave blank if passphrase is emptydefaultSSHPassphrase=myPa$$w0rd

调整数据库设置

我们还可以在配置选项中调整数据库设置:

#Database userdbUser=bastillion#Database passworddbPassword=p@$$w0rd!!#Database JDBC driverdbDriver=org.h2.Driver#Connection URL to the DBdbConnectionURL=jdbc:h2:keydb/bastillion;CIPHER=AES;

默认配置下,数据库是嵌入式的,但我们也可以通过调整连接URL来使用远程H2数据库:

#Connection URL to the DBdbConnectionURL=jdbc:h2:tcp://:/~/bastillion;CIPHER=AES;

外部认证

我们还可以通过调整BastillionConfig.properties文件配置来启用外部认证:

#specify a external authentication module (ex: ldap-ol, ldap-ad).  Edit the jaas.conf to set connection detailsjaasModule=ldap-ol

连接信息可以在jaas.conf文件中配置:

ldap-ol {com.sun.security.auth.module.LdapLoginModule SUFFICIENTuserProvider="ldap://hostname:389/ou=example,dc=bastillion,dc=com"userFilter="(&(uid={USERNAME})(objectClass=inetOrgPerson))"authzIdentity="{cn}"useSSL=falsedebug=false;};

通过使用org.eclipse.jetty.jaas.spi.LdapLoginModule,我们还可以映射和使用LDAP角色:

ldap-ol-with-roles {    //openldap auth with roles that can map to profiles    org.eclipse.jetty.jaas.spi.LdapLoginModule required    debug="false"    useLdaps="false"    contextFactory="com.sun.jndi.ldap.LdapCtxFactory"    hostname=""    port="389"    bindDn=""    bindPassword=""    authenticationMethod="simple"    forceBindingLogin="true"    userBaseDn="ou=users,dc=bastillion,dc=com"    userRdnAttribute="uid"    userIdAttribute="uid"    userPasswordAttribute="userPassword"    userObjectClass="inetOrgPerson"    roleBaseDn="ou=groups,dc=bastillion,dc=com"    roleNameAttribute="cn"    roleMemberAttribute="member"    roleObjectClass="groupOfNames";};

工具使用截图

bdf532a11ed0dae35d48d2d42805ffe7.png
d45138a1d3986110ccb17ee970ea63aa.png
3eff2191affcf70e21b1647d25fcbc1f.png
7469e0b2b717f53259b1429cd523f848.png
2e84e862cb93ed42b93a4c9304f38167.png
2c565305ddb5e20da0e5043c66994ff8.png
062e7700c685bff744f86f24913de275.png

许可证协议

Bastillion的开发与发布遵循AGPL开源许可证协议。

项目地址

Bastillion:https://github.com/bastillion-io/Bastillion

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值