发现一个不错的开源堡垒机 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. malloc(0)的问题

    http://blog.csdn.net/js_xj/article/details/5826042 解答: 首先来解释malloc(0)的问题,这个语法是对的,而且确实也分配了内存,但是内存空间是0 ...

  2. 内存卡的class是什么意思 内存卡class的5个等级

    内存卡的class是什么意思 SD协会针对TF内存卡(SDHC)的传输规范:传输速度(写入速度及读取速度的最低速度)被定义为Class2(2MB/sec).Class4(4MB/sec).Class6 ...

  3. C#面向对象基础类与方法

    C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神. 在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基 ...

  4. swift 学习资源

    http://blog.csdn.net/sqc3375177/article/details/29206779

  5. 【CF】207 Div.1 B.Xenia and Hamming

    这题目一看很牛逼,其实非常easy.求求最小公倍数,最大公约数,均摊复杂度其实就是O(n). /* 356B */ #include <iostream> #include <str ...

  6. Ruby 程序员最要好的朋友

    Ruby 是... 一种跨平台.面向对象的动态类型编程语言.Ruby 体现了表达的一致性和简单性, 它不仅是一门编程语言,更是表达想法的一种简练方式. https://www.ruby-lang.or ...

  7. bat坐拥大数据。数据挖掘/大数据给他们带来什么。

    阿里巴巴CTO即阿里云负责人王坚博士说过一句话:云计算和大数据,你们都理解错了.   实际上,对于大数据究竟是什么业界并无共识.大数据并不是什么新鲜事物.信息革命带来的除了信息的更高效地生产.流通和消 ...

  8. [LeetCode] Interleaving String 解题思路

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...

  9. HDU 1712 ACboy needs your help 典型的分组背包

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 ACboy needs your help Time Limit: 1000/1000 MS ( ...

  10. Java中url传递中文参数取值乱码的解决方法

    java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作. 方法一: http://xxx.do?ptname=’我 ...