一、概要
信息安全是運維的根本,直接關系到企業的安危,稍有不慎會造成災難性的后果。本文主要講述如何通過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
