发现一个不错的开源堡垒机 jumpserver: https://github.com/ibuler/jumpserver

最开始看的是jumpserver2.0.0 版本,具体的实现方式是:

1. django + uwgsi 实现web前端的用户管理界面

关于django可以参考:http://xianglong.me/article/django-request-work-flow/

django的 MVC, 以jumpserver下为例子:

- urls.py 文件,控制用户请求由哪个方法处理,其具体内容就是url的正则表达式,并对应views中具体方法名

- views.py文件,处理用户请求,其具体内容就是urls对应的各个方法。

- models.py文件,定义数据模型,处理数据库请求, 其具体内容就是对应的数据库表字段名。

最终,views把处理结果返回给template目录下对应的前端文件, 完成一次完整请求。

通过pip,这是一个python的egg包管理器,我们可以方便安装django包。用django提供的工具,我们可以轻松建立一个django框架下的web工程:

    django-admin startproject mywebproject

2. ldap + paramiko 实现服务器权限管理

ldap是一个轻量级的目录访问协议,一个比较知名的ldap协议实现是 openldap / openldap-server。

  它是CS架构,包含客户端和服务端两个组件。客户端可以通过ldapsearch / ldapadd / ldapdel等命令去查询修改数据,服务器端其实是以Berkeley database 为数据库进行数据管理,以相同命令进行数据库操作, 它没有sql解析步骤,按照百度说法是介于关系型数据库 比如mysql 跟内存型数据库 比如redis之间的 文件数据库。

下面简单介绍下,在linux中如何开启ldap验证:

在linux中,我们大部分软件都是通过调用pam组件进行身份认证,

- 具体验证内容,可以查看/etc/pam.d/system-auth, 这个配置文件可以通过调用命令 authconfig 或是 authconfig-tui 自动生成。

- 另外,authconfig也会更新配置文件 /etc/sysconfig/authconfig, 在这个文件可以控制具体使用哪种方式验证 (开启ldap认证我们需要,更新到这个文件,设置USELDAPAUTH = yes

最后我们还需要更新nsswitch.conf,该文件控制验证机制的先后顺序,比如 files, ldap 代表先本地passwd文件验证没有后,再去寻找ldap服务器。

注: 当决定使用ldap验证,不要忘记安装 nss-pam-ldap组件

3. express + socket.io 实现在线用户监测

express是js的web开源框架,在这之前需安装 NodeJS 这个js 解析器,NodeJs之于js语言,类似于 php-fpm解析器之于php语言。

说到php,我们知道fastcgi协议,用于定义php跟其他web服务器的通信接口,而php-fpm是该协议的实现。

那前面提到的uwgsi协议,也是类似于fastcgi一样的接口,但是它是定义python的跟其他web服务器的通信,而uWGSI 是该协议的实现。

最后,socket.io也是一个实现,它是websocket这个协议的实现,好多实现。。

django开发框架之jumpserver的更多相关文章

  1. django开发框架-view & template

    django框架的主要模型是MVT,Model模型,View视图,Template模板,基于基本的HttpRequest方式. django支持的数据库有四种:PostgreSQL,MySQL, Or ...

  2. Django开发框架知识点

    一.什么是web服务器(了解) 当我们在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址.然后发送一个HTTP Request(请求)给拥有该 IP 的主机,接着就会接收到服 ...

  3. 【二次开发jumpserver】——整合jumpserver与zabbix推送主机功能

    jasset/forms.py "ip", "other_ip", "hostname", "port", " ...

  4. 1.1 Django起步

    1.1 Django起步   1.1.1. Django简介   Django开发框架(简称Django)诞生的时间是2003年的金秋时节,美国有两位程序员Adrian  Holovaty和Simon ...

  5. Centos7.4下安装Jumpserver 1.0.0(支持windows组件)

    0)系统环境CentOS 7.4 IP: 192.168.100.10 [root@jumpserver-server ~]# cat /etc/redhat-release CentOS Linux ...

  6. Centos7.3下安装Jumpserver 1.0.0(支持windows组件)

    Jumpserver最新版本支持windows组件,废话不多介绍了,下面直接介绍下部署过程: 0)系统环境 CentOS 7.3 IP: 192.168.10.210 [root@jumpserver ...

  7. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  8. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  9. python环境

    官网:https://www.python.org windows环境:http://www.cnblogs.com/windinsky/archive/2012/09/20/2695520.html ...

随机推荐

  1. Seattle(65) lypzxy的博客

    http://www.cnblogs.com/cb168/tag/Firemonkey/

  2. Android Adapter的getViewTypeCount和getItemViewType

    Adapter的getViewTypeCount和getItemViewType 不同的项目布局(item layout) 我们再举一个稍微复杂的例子,在上例的list中加入一些分隔线 你需要做这些: ...

  3. Android Mediaplayer各种属性和方法简单介绍

    主要涉及类:MediaPlayer (1) 当一个MediaPlayer对象被创建或者调用reset()方法之后,它处于空闲状态,调用release()方法后处于结束状态 1,一个MediaPlaye ...

  4. Java序列化与Hessian序列化的区别

    Java序列化: Java序列化会把要序列化的对象类的元数据和业务数据全部序列化为字节流,而且是把整个继承关系上的东西全部序列化了.它序列化出来的字节流是对那个对象结构到内容的完全描述,包含所有的信息 ...

  5. YIi 使用 beginContent() 和 endContent() 设定 Yii 的 layouts

    Yii 的 views/layouts 是用来放置 layouts 的目录,在默认的情况下会有 main.php 和 column1.php 和 column2.php. main.php 内容定义了 ...

  6. $response->decoded_content; 和$response->content; 乱码问题

    centos6.5:/root/podinns/lib#cat t1.pl use LWP::UserAgent; use HTTP::Date qw(time2iso str2time time2i ...

  7. ListView 的position和id的区别

    我们在使用ListView的时候,一般都会为ListView添加一个响应事件android.widget.AdapterView.OnItemClickListener.本文主要在于对OnItemCl ...

  8. 【CF】323 Div2. D. Once Again...

    挺有意思的一道题目.考虑长度为n的数组,重复n次,可以得到n*n的最长上升子序列.同理,也可以得到n*n的最长下降子序列.因此,把t分成prefix(上升子序列) + cycle(one intege ...

  9. Oracle core06_latch&lock

    lock and latch 在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点: 1,lock和pin,采用的是队列的方式,先来先服务的策略,latc ...

  10. 三种asp.net 抓取网页源代码

    /// <summary>方法一:比较推荐 /// 用HttpWebRequest取得网页源码 /// 对于带BOM的网页很有效,不管是什么编码都能正确识别 /// </summar ...