web shell历史记录的web服务器
archelond的Python项目详细描述
这是Archelon的Web服务器端。一旦全部配置完毕 连接到Archelonc可以用来存储你的外壳历史 从你所有的主人那里。
它是一个简单的烧瓶应用程序,通常设计为连接到 一个ElasticSearch主机,提供一个索引良好的shell历史,以及 应该可以在Heroku上使用ElasticSearch插件免费部署。
安装和配置
pip install archelond
显然,安全性对于shell历史和设置 身份验证我们使用基本身份验证,使用apache htpasswd文件 作为用户数据库。为自己添加一个并配置archelond 要使用它,请运行以下命令:
htpasswd -c ~/.htpasswd username exportARCHELOND_HTPASSWD_PATH=~/.htpasswd
在完成最小的设置之后,我们只需使用简单的命令:
archelond
它将使用内存中的 bash历史数据存储非常健忘。一旦它起来,你 应该可以去http://localhost:8580/,用你的用户名和密码登录 在htpasswd文件中创建,并查看 搜索并删除shell历史记录,类似于:
。它还提供了一个简单的 按钮以显示您在Archelonc中需要的令牌,以便将两者连接起来 一起。要直接访问restful api端,可以签出 通过访问示例命令 http://localhost:8580/api/v1/history或获取令牌以供使用 与原型http://localhost:8580/api/v1/token。
连接到ElasticSearch
为了让你的历史在初创企业中存活下来,我们可以使用 弹性搜索。您可以在本地安装它,也可以从 Heroku上的附加组件。一旦你有了连接url,我们只需要 添加几个环境变量以指向服务并设置 存储提供程序类,类似于:
exportARCHELOND_ELASTICSEARCH_URL='http://localhost:9200'exportARCHELOND_ELASTICSEARCH_INDEX='history'exportARCHELOND_DATABASE='ElasticData'
可以根据需要更改索引,但它是 将用于存储历史记录的ElasticSearch。
注意
使用ElasticData的archelond可以支持多个用户 使用文档类型中的用户
投产运行
运行archelond命令有助于测试,但要运行 在生产中,您需要通过适当的wsgi运行它 应用服务器。例如,我们在 要求和它可以在生产中运行,例如:
uwsgi --http :8580 -w archelond.web:app
然后像nginx这样的web服务器通过https代理,以便 进一步保护您的shell历史记录。
在Heroku中运行
对于heroku,设置应用程序部分非常容易。只是 在repo的根目录中至少创建一个requirements.txt文件 一行:
archelond
使用以下命令设置procfile:
web: uwsgi uwsgi.ini
还有一个uwsgi.ini,看起来像:
[uwsgi]http-socket=:$(PORT)master=trueprocesses=10die-on-term=truemodule=archelond.web:appmemory-report=true
您还需要使用^{tt3}设置机密$ 命令。弹性搜索需要最小设置的变量 版本为:
ARCHELOND_DATABASE="ElasticData"ARCHELOND_ELASTICSEARCH_INDEX="my_index"ARCHELOND_ELASTICSEARCH_URL="http://example.com/elastic_search"ARCHELOND_FLASK_SECRET="a_very_long_randomized_string"ARCHELOND_HTPASSWD="username:hashfromhtpasswd"ARCHELOND_HTPASSWD_PATH="htpasswd"
注意
我还得加上-egit+https://github.com/elasticsearch/elasticsearch-py.git@master#egg=elasticsearch 因为我的ElasticSearch服务器需要 指定https、用户名和密码。当前版本 版本1.2.0没有该功能,但它在 它们的主分支