Python與系統安全


一、概要

   信息安全是運維的根本,直接關系到企業的安危,稍有不慎會造成災難性的后果。本文主要講述如何通過Python來實現系統級的安全防范策略,包括構建集中式的病毒掃描機制、端口安全掃描、安全密碼生成等。

二、構建集中式病毒掃描機制

  Clam AntiVirus(ClamAV)是一款免費而且開放源代碼的防毒軟件,軟件與病毒庫的更新皆由社區免費發布,官網地址 https://www.clamav.net/。目前ClamAV主要為Linux、Unix系統提供病毒掃描、查殺等服務。pyClamad(https://xael.org/pages/pyclamd-en.html)是一個Python第三方模塊,可讓Python直接使用ClamAV病毒掃描守護進程clamd,來實現一個高效的病毒檢測功能,另外,PyClamad模塊也非常容易整合到我們已有的平台當中。
官方網站地址:
https://www.clamav.net/
https://xael.org/pages/pyclamd-en.html
https://pypi.org/project/pyClamd/
https://xael.org/pages/python-module-pyclamd.html
https://xael.org/norman/python/pyclamd/

PyClamad模塊安裝方法

mac os 與CentOS 6.8 安裝pyClamd模塊

[root@localhost ~]# pip3 install pyclamd
Collecting pyclamd
  Downloading https://files.pythonhosted.org/packages/13/73/97a0518b59f1b6aefa2ac851566038d2c9128f8a5503bcf4cd0adf8b0072/pyClamd-0.4.0.tar.gz
Installing collected packages: pyclamd
  Running setup.py install for pyclamd ... done
Successfully installed pyclamd-0.4.0

客戶端(病毒掃描源)安裝步驟

Centos 6.9安裝clamd

[root@localhost tmp]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@localhost tmp]# yum -y install clamav clamd clamav-update     #安裝clamavp相關程序包
[root@localhost tmp]# chkconfig --levels 235 clamd on                      #添加掃描守護進程clamd系統服務
[root@localhost tmp]# /usr/bin/freshclam        #更新病毒庫,建議配置到crontab中定期更新
[root@localhost tmp]# setenforce 0    #臨時關閉SELinux,避免遠程掃描時提示無權限的問題,永久關閉selinux修改/etc/selinux/config配置SELINUX=enforcing修改為SELINUX=disabled
[root@localhost tmp]# getenforce      #查看selinux狀態
Disabled

#更新守護進程監聽IP配置文件,根據不同環境自行修改監聽的IP,'0.0.0.0'為監聽所有主機IP
[root@localhost tmp]# grep "TCPAddr 127.0.0.1" /etc/clamd.conf
TCPAddr 127.0.0.1
[root@localhost tmp]# sed -i -e '/^TCPAddr/{ s/127.0.0.1/0.0.0.0/; }' /etc/clamd.conf
[root@localhost tmp]# grep "TCPAddr 127.0.0.1" /etc/clamd.conf
[root@localhost tmp]# grep "TCPAddr" /etc/clamd.conf
TCPAddr 0.0.0.0
[root@localhost tmp]# /etc/init.d/clamd start          #啟動掃描守護進程;停止服務/etc/init.d/clamd stop
Starting Clam AntiVirus Daemon:                            [  OK  ]

主控端部署PyClamd環境步驟

 

 

 

模塊常用方法說明

    PyClamd提供了兩個關鍵類,一個為ClamdNetworkSocket()類,實現使用網絡套接字操作clamd;另一個為ClamdUnixSocket()類,實現使用Unix套接字操作clamd。兩個類定義的方法安全一樣。本文以ClamdNetworkSocket()類進行說明。

__init__(self,host='127.0.0.1',port=3310,timeout=None)方法,是ClamdNetworkSocket類的初始化方法,參數host為連接主機IP;參數port為連接的端口,默認為3310,與/etc/clamd.conf配置文件中的TCPSocket參數要保持一致;timeout為連接超時時間。
contscan_file(self,file)方法,實現掃描指定的文件或目錄,在掃描時發生錯誤或發現病毒經不終止,參數file(string類型)為指定的文件或目錄的絕對路徑。
multiscan_file(self,file)方法,實現多線程掃描指定的文件或目錄,多核環境速度更快,在掃描時發生錯誤或發現病毒將不終止,參數file(string類型)為指定的文件或目錄的絕對路徑。
scan_file(self,file)方法,實現掃描指定的文件或目錄,在掃描時發生錯誤或發生病毒將終止,參數file(string類型)為指定的文件或目錄的絕對路徑。
shutdown(slef)方法,實現強制關閉clamd進程並退出。
stats(self)方法,獲取Clamscan的當前狀態。
reload(self)方法,強制重載clamd病毒特征庫,掃描當前建議做reload操作。
EIRAR(self)方法,返回EICAR測試字符串,即生成具有病毒特征的字符串,便於測試。

實現集中時的病毒掃描 

點擊查看:https://www.cnblogs.com/hwlong/articles/9095280.html

三、實現高效的端口掃描器

   python-nmap模塊作為nmap命令的Python封裝,可以上Python很方便地操作nmap掃描器,它可以幫助管理員完成自動掃描任務和生成報告。

mac os 與CentOS 6.9 安裝python-nmap模塊

pip3 install python-nmap

模塊常用方法說明

點擊鏈接查看:https://www.cnblogs.com/hwlong/articles/9096925.html

實現高效的端口掃描

點擊鏈接查看:https://www.cnblogs.com/hwlong/articles/9096932.html

 


免責聲明!

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



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