基礎環境安裝
安裝依賴
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
安裝python3
# yum install python3 -y # python3 -V Python 3.6.8
安裝erlang
# cd /tmp # wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm # rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm # erl -version Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 8.0.3
安裝Rabitmq
# cd /tmp # wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.-el7.noarch.rpm # 下載 # yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm -y # 安裝 # service rabbitmq-server start # 啟動rabbitmq-server Redirecting to /bin/systemctl start rabbitmq-server.service # rabbitmq-plugins enable rabbitmq_management # 開啟web The following plugins have been enabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@localhost... started 6 plugins.
rabbitmq基本操作
# rabbitmqctl add_user admin admin # 創建用戶 Creating user "admin" ... # rabbitmqctl add_vhost semf # 添加vhost Creating vhost "semf" ... # rabbitmqctl set_user_tags admin administrator # 設置標簽 Setting tags for user "admin" to [administrator] ... # rabbitmqctl set_permissions -p semf admin ".*" ".*" ".*" # 設置權限 Setting permissions for user "admin" in vhost "semf" ...
安裝nmap
# yum install nmap -y
防火牆設置
開放rabbitmq端口。
# systemctl start firewalld.service # 啟動防火牆 # firewall-cmd --zone=public --add-port=5672/tcp --permanent # rabbitmq api 端口 success # firewall-cmd --zone=public --add-port=15672/tcp --permanent # rabbitmq web 端口 success # firewall-cmd --reload # 刷新規則 success # firewall-cmd --zone=public --list-ports # 查看開放端口 5672/tcp 15672/tcp
安裝SeMF
創建一個SeMF的專屬目錄進行操作。
# cd /opt/
# mkdir SeMF
# cd SeMF/
# yum install git -y # git clone https://gitee.com/gy071089/SecurityManageFramwork # cd SecurityManageFramwork/ # ls ArticleManage cnvd_xml logs RBAC SeMFSetting TaskManage AssetManage cnvd_xml.py manage.py README.md SeMF使用指南-2018-06-20.pdf templates ChartManage initdata.py MappedManage requirements.txt SeMF安裝指南-2018-06-12.pdf tmp cnnvd_xml.py LICENSE NoticeManage SeMF static VulnManage
修改配置文件
需修改郵箱和隊列存儲信息。
# vim /opt/SeMF/SecurityManageFramwork/SeMF/settings.py ... #設置郵箱 EMAIL_HOST = 'smtp.qq.com' #SMTP地址 EMAIL_PORT = 25 #SMTP端口 EMAIL_HOST_USER = 'your-email' #我自己的郵箱 EMAIL_HOST_PASSWORD = 'your-password#' #我的郵箱密碼 EMAIL_SUBJECT_PREFIX = u'[SeMF]' #為郵件Subject-line前綴,默認是'[django]' EMAIL_USE_TLS = True #與SMTP服務器通信時,是否啟動TLS鏈接(安全鏈接)。默認是false ...
#設置隊列存儲 BROKER_URL = 'amqp://admin:admin@localhost/semf' #設置與rabbitmq一致 CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']
數據庫的話我們就用默認sqlite就好了,省懶。
安裝依賴
# cd /opt/SeMF/SecurityManageFramwork/
# sudo python3 -m pip install -r requirements.txt
安裝可能會比較慢,可能需要多試幾次,如果還無法安裝,請使用其它pip源。
初始化數據庫
# python3 manage.py makemigrations # 初始化數據表
# python3 manage.py migrate # 初始化數據庫

創建超級用戶
# python3 manage.py createsuperuser
此處輸入密碼有復雜度要求,此處為登錄SeMF界面的超管賬戶。

初始化漏洞庫
CNNVD 漏洞數據 ,測試環境可不執行,執行過程中出現 fail 表明漏洞信息不完善或不重要,可忽略,因漏洞數據較多,需要耗費一定的時間,大概10min+。
# python3 cnvd_xml.py
初始化權限信息
主要包含菜單,權限以及管理員角色信息,該信息可在后台調整。
# python3 initdata.py
initassettype ok
initassettypeinfo ok
initrole ok
initrole ok
initsuperuser ok
initarticle ok
開啟異步任務,執行celery
# celery -A SeMF worker -l info
啟動服務器。
# python3 manage.py runserver 192.168.8.15:8000 # 虛擬機地址
使用
界面演示
訪問http://192.168.8.15:8000/。

可以看到左邊欄:資產管理、漏洞管理、任務管理、報表中心及用戶管理等。

資產掃描
點擊資產管理 》 資產列表 》 新增資產 》 填寫相關新即可,其中唯一標記可填單個ip或網段。

資產發現
如果填寫了個172.16.80.0/24子網段,就可以點擊資產發現,用來探測子網段中存活的主機。

【注】經測試,資產發現實現功能有問題,未能正確識別資產和探測存活情況,應該簡單修改就能修正這個Bug。

