這次發(fā)布的版本適合企業(yè)使用,兼容堡壘機、LDAP等,目前只支持linux,等哪天有時間在完善windows。適用于云服務(wù)器等場景,部署及使用簡單方便。同時可做為主機IDS的補充防護,主機IDS畢竟是事中事后防護,JXOTP可以做為事前防護提高服務(wù)器的整體安全性。
回顧本系列的第一篇文章:
開源SSH雙因素登陸認證系統(tǒng)JXOTP了解一下
部署
服務(wù)端部署:
# git clone https://github.com/jx-sec/jxotp.git
# cd jxotp
# pip install -r requirements.txt
# vim jxotp/settings.py
直接拉到最下面:
# 郵件設(shè)置 這里以阿里郵箱為例子
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.mxhichina.com' #非阿里郵箱需修改
EMAIL_PORT = 25
EMAIL_HOST_USER = 'security@jxwaf.com' # 用戶名
EMAIL_HOST_PASSWORD = '*' #密碼
DEFAULT_FROM_EMAIL = 'security@jxwaf.com' #同用戶名
# login setup
USERNAME = 'admin' # 服務(wù)端登陸用戶名
PASSWORD = '123456' # 服務(wù)端登陸密碼
OTP_SECRET_KEY = 'hellojxotp' # OTP客戶端與服務(wù)端對接的密鑰
接下來初使化數(shù)據(jù)庫,啟動服務(wù)端 PS:例子為非正式部署,需正式部署請使用uwsgi+nginx:
# python manage.py makemigrations
# python manage.py migrate
# python manage.py runserver 0.0.0.0:8000
服務(wù)端部署結(jié)束。
客戶端部署:
# vim jxotp_auth.py
只需修改兩個參數(shù)的配置:
SERVER_API_URL = “http://1.1.1.1:8000/otp_auth“
OTP_SECRET_KEY = “hellojxotp”
其中 SERVER_API_URL 為你部署服務(wù)器的地址,如你服務(wù)器地址為 52.163.121.204,則這塊應(yīng)設(shè)置為http://52.163.121.204:8000/otp_auth
OTP_SECRET_KEY 為OTP客戶端與服務(wù)端對接的密鑰,需與服務(wù)端一致
# setenforce 0
# sh install_jxotp.sh
# vim /etc/pam.d/sshd
在最頂行添加:
auth optional pam_python.so jxotp_auth.py
到這里客戶端和服務(wù)端就全部部署完了。
架構(gòu)及使用說明
架構(gòu)說明

一旦網(wǎng)絡(luò)中斷或者服務(wù)器異常,服務(wù)器的OTP驗證將自動轉(zhuǎn)為bypass模式,回歸密碼驗證。默認服務(wù)端OTP驗證為偏移3次,也就是說當(dāng)前時間兩分鐘內(nèi)的OTP驗證碼都有效,提高易用性。
客戶端OTP驗證為獨立驗證,所以不與LDAP等驗證沖突,驗證失敗會將密碼重置為空,導(dǎo)致密碼驗證失敗(服務(wù)器密碼要是為空算你厲害)。
可通過配置服務(wù)器驗證將堡壘機IP加入白名單,即兼容堡壘機。
可開啟防暴力破解功能,例如OTP驗證錯誤超過10次,鎖定客戶端IP三十分鐘,并郵件報警,可針對特定用戶開啟,也可設(shè)置特定IP開啟,總之就是靈活,滿足大部分應(yīng)用場景。
使用說明
1、用戶管理

新建用戶后點擊發(fā)送郵件:

2、全局設(shè)置

default_enable 是否開啟服務(wù)器自動注冊:
默認為true,當(dāng)有客戶端訪問JXOTP SERVER時,自動注冊,無需管理員手動添加。
default_global_check 是否開啟所有用戶檢測:
默認為false,當(dāng)值為true時,所有登錄的用戶都需要進行OTP檢驗,為false時,僅設(shè)置了default_check_user的用戶會開啟OTP檢驗。
default_check_user 默認值為root:
當(dāng)default_global_check為true時生效(不要在意為啥false時不屏蔽該選項),設(shè)置需要開啟OTP檢驗的系統(tǒng)用戶名
default_white_ip 默認值為false:
當(dāng)需要設(shè)置白名單IP或者已使用堡壘機時,可將相應(yīng)IP添加進去,中間用逗號(,)隔開,如白名單IP為1.1.1.1,堡壘機IP為2.2.2.2,則值為 1.1.1.1,2.2.2.2。
black_check 默認值為false:
是否開啟防暴力破解功能,默認為false,關(guān)閉狀態(tài)。
black_check_time 默認值為5:
暴力破解功能檢測時間,單位為分鐘,5即檢測5分鐘內(nèi)暴力破解的攻擊次數(shù)。
black_check_count 默認值為 10:
OTP失敗次數(shù),10即失敗10次開啟防暴力破解功能。
black_deny_time 默認值為 720:
檢測到暴力破解攻擊后封禁IP的時間,單位為分鐘,720即封禁IP 12小時。
black_send_email 默認值為 ?:
檢測到暴力破解攻擊后告警郵箱。
3、服務(wù)器管理


自定義設(shè)置會覆蓋全局配置,其他同全局配置,可手動添加需要開啟OTP功能的服務(wù)器,也可在全局配置開啟default_enable選項,即自動注冊服務(wù)器。
4、查看日志

Server ip 服務(wù)器IP;
Client ip 客戶端IP;
Result OTP校驗結(jié)果;
Message 詳細信息;
Check user 登錄的系統(tǒng)用戶名;
time 登錄校驗的時間;
User email 登錄用戶(OTP用戶,非服務(wù)器系統(tǒng)用戶)。
總結(jié)
支線任務(wù)完結(jié)撒花,JXWAF恢復(fù)更新。
|