django開發框架之jumpserver


發現一個不錯的開源堡壘機 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這個協議的實現,好多實現。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM