Python自动化与系统安全

        信息安全是运维的根本,直接关系到企业的安危,稍有不慎会造成灾难性的后果。比如经年发生的多个知名网站会员数据库外泄事件,信息安全体系建设已经被提到了前所未有的高度。如何提升企业的安全防范水准是目前普遍面临的问题,主要有,安全设备防护、提高人员安全意识、实施系统平台安全加固、安全规范融合到ITIL体系、关注安全设备防护、提高人员安全意识、实施系统平台安全加固、安全规范融合到ITIL体系、关注最新安全发展动向,通过上述几个方面可以在很大程度上避免出现安全事故。

        通过Python来实现系统级的安全防范策略,包括构建集中式的病毒扫描机制端口安全扫描安全密码生成

1.构建集中式的病毒扫描机制

        Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布。目前ClamAV主要是使用在由Linux、FreeBSD等Unix-like系统架设的邮件服务器上,提供电子邮件的病毒扫描服务。ClamAV本身是在文字接口下运作,但也有许多图形接口的前端工具可用,另外由于其开放源代码的特性,在Windows与Mac OS X平台都有其移植版。

官网地址:http://www.clamav.net/lang/en/

        pyClamad是一个Python第三方模块,可让Python直接使用ClamAV病毒扫描守护进程clamd,来实现一个高效的病毒检测功能

pyClamad模块安装方法如下

1、客户端(病毒扫描源)安装步骤

# yum -y install clamav clamd clamav-update      #安装clamavp相关程序包

# chkconfig --levels 235 clamd on   # 添加扫描守护进程clamd系统服务

#  /usr/bin/freshclam      # 更新病毒库,建议配置到crontab中定时更新

#  setenforce 0  # 关闭SELinux,避免远程扫描时提示无权限的问替

# 更新守护进程监听IP配置文件,根据不同环境自行修改监听的IP,“0.0.0.0”为监听所有主机IP

# sed -i -e '/^TCPADDr/{ s/127.0.0.1/0.0.0.0/;}'   /etc/clamd.conf

# /etc/init.d/clamd start  # 启动扫描守护进程

# 2、主控端部署pyClamad 环境步骤

# wget http://xael.org/norman/python/pyclamd/pyClamd-0.3.4.tar.gz

# tar -xzvf pyClamd-0.3.4.tar.gz

# python setup.py install

 

2.模块常用方法说明

pyClamad提供了两个关键嘞,一个为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为连接的超时时间。
  • contcan_file(self,file)方法,实现扫描指定的文件或目录,在扫描时发生错误或发现病毒将不终止,参数file(string类型)为指定的文件或目录的绝对路径
  • multiscan_file(self,,file)方法,实现多线程扫描指定的文件或目录,多核环境速度更快,在扫描时发生错误或发现病毒将不终止,参数file(string类型)为指定的文件或目录的绝对路径
  • scan_file(self,file)方法,实现扫描指定的文件或目录,在扫描时发生错误或发现病毒将终止,参数file(string类型)为指定的文件或目录的绝对路径
  • shutdown(self)方法,实现强制关闭clamd进程并退出
  • stats(self)方法,获取Clamscan的当前状态
  • reload(self)方法,强制重载clamd病毒特征库,扫描前建议做reload操作
  • EICAR(self)方法,返回EICAR测试字符串,即生成具有病毒特征的字符串,便于测试

 

3.实践

实现一个集中式的病毒扫描管理,针对不同环境定制扫描策略,比如扫描对象、描述模式、扫描路径、调度评率等

1.首先对apt-get进行更新,执行下面的代码:

sudo apt-get update
sudo apt-get upgrade -y


2.之后安装clamav:这一步可能会出错,ubuntu会提示你重新执行一下上面的update方法,我试了一下,重新执行update之后再重新执行下面的命令就能成功执行了。

sudo apt-get install clamav clamav-daemon -y


3.更新病毒库:这一部分可能会报错,

ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

sudo freshclam

如果要停止守护程序并手动运行它:

sudo systemctl stop clamav-freshclam.service

手动运行它:

sudo freshclam

4.clamav安装成功之后,可以对它进行测试,执行下面的代码对home文件夹下的文件进行病毒查杀,不出错表示正常执行啦:

sudo clamscan -r /home


5.如果需要自动执行病毒查杀功能,需要执行下面的命令。第一行是启动clamav服务,这一个命令是你如果按章pyclamd调用clamav时必须要提前执行的方法。第二行命令是自动更新病毒库的。到这里,clamav的安装就结束了,撒花撒花~

sudo /etc/init.d/clamav-daemon start

sudo /etc/init.d/clamav-freshclam start


6.安装pyclamd,直接用pip install pyclamd就行,如果是用python3的话就换成pip3执行。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import pyclamd
from threading import Threadclass Scan(Thread):def __init__(self,IP,scan_type,file):"""构造方法,参数初始化"""Thread.__init__(self)self.IP = IPself.scan_type = scan_typeself.connstr=""self.scanresult=""def run(self):"""多进程run方法"""try:cd = pyclamd.ClamdNetworkSocket(self.IP,22)if cd.ping():self.connstr = self.IP+" connection [ok]"cd.reload()  # 重载clamd病毒特征库,建议更新病毒库后做reload()操作if self.scan_type == "contscan_file":   #选择不同的扫描模式self.scanresult = "{0}\n".format(cd.comtscan_file(self.file))elif self.scan_type == "multiscan_file":self.scanresult = "{0}\n".format(cd.contscan_file(self.file))elif self.scan_type=="scan_file":self.scanresult="{0}\n".format(cd.scan_file(self.file))time.sleep(1)   #线程挂起1秒else:self.connstr=self.IP+"ping error,exit"returnexcept Exception as e:self.connstr=self.IP+""+str(e)
IPs = ['192.168.88.223']    #扫描主机列表
scantype = "multiscan_file"   # 指定扫描模式,支持multiscan_file、contscan_file\scan_file
scanfile = "/tmp"    # 指定扫描路径
i = 1threadnum = 4 # 指定启动的线程数
scanlist = [] # 存储扫描Scan类线程对象列表for ip in IPs:currp = Scan(ip,scantype,scanfile)  # 创建扫描Scan类对象,参数(IP,扫描模式,扫描路径)scanlist.append(currp)  # 追加对象到列表if  i%threadnum == 0 or i == len(IPs):      # 当达到指定的线程数或IP列表数后启动、退出线程for task in scanlist:task.join()    # 等待所有子线程退出,并输出扫描结果print(task.connstr)  # 打印服务器连接信息print(task.scanresult)  # 打印扫描结果scanlist = []i+=1   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Greenplum(一)【MPP 架构 数据类型】

1、Greenplum 入门 Greenplum 是基于 MPP 架构的一款分布式分析型数据库,具备关系型数据库的特点,因为它处理的是结构化的数据,同时具备大数据分布式的特点。 1.1、MPP 架构 MPP(Massively Parallel Processing)架构是…

IOC、DI<3> IServiceConllection 自定义IOC含属性注入、多实现注入,方法注入

using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;namespace IOC.Common {public class ZenServiceCollection : IZenServiceCollection{// 记录IOC注册的抽象、实现private Di…

sql注入问题批量处理

问题:SQL注入修改,历史代码全是${};无法修改的比如表名,列名,动态排序之类的不改,其他的都要修改完成 背景:新公司第一个任务就是SQL注入的修改,历史sql全部都是${},一个个调整不太合适只能批量…

机场的出租车问题折线图

分析并可视化机场离场车辆数数据 本文将详细介绍如何使用Python的正则表达式库re和绘图库matplotlib对机场离场车辆数数据进行分析和可视化。以下是具体步骤和代码实现。 数据资源: 链接:https://pan.baidu.com/s/1rU-PRhrVSXq-8YdR6obc6Q?pwd1234 提…

6000字以上论文参考:基于Java+SpringMvc+Vue技术的实验室管理系统设计与实现

可参考:基于JavaSpringMvcVue技术的实验室管理系统设计与实现(6000字以上论文参考)-CSDN博客 论文参考:

2024 WAIC|第四范式胡时伟分享通往AGI之路:行业大模型汇聚成海

7月4日,2024世界人工智能大会(WAIC)正式开幕。此次大会围绕核心技术、智能终端、应用赋能等板块展开,展览规模、参展企业数均达历史最高。第四范式受邀参展,集中展示公司十年来在行业大模型产业应用方面的实践。在当天…

【知网CNKI-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

NewspaceGPT带你玩系列之【Song Maker】

目录 注册一个账号,用qq邮箱,然后登录选一个可用的Plus,不要选3.5探索GPT今天的主角是【Song Maker】翻译一下用汉语吧我写词。你谱曲和其他伴奏,例子: 摇滚,忧伤,吉他,鼓&#xff0…

Android约束布局的概念与属性(1)

目录 1.相对定位约束2.居中和偏移约束 约束布局(ConstraintLayout)是当前Android Studio默认的布局方式,也是最灵活的一种布局方式。约束布局推荐使用所见即所得的模式进行布局,约束布局的大部分布局可以通…

CentOS7下安装Doris

Doris简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…

从0到1搭建个性化推送引擎:百数教学带你掌握核心技术

百数低代码的推送提醒功能允许用户高度自定义提醒规则,支持多种提醒方式(如钉钉、企业微信、微信、短信、语音、邮件等),以满足不同场景下的需求。 通过预设字段和模板,用户可以快速编辑提醒内容,减少重复…

BaseServlet的封装

创建BaseServlet的必要性 如果不创建BaseServlet,现在我们只要实现一个功能,我们就需要创建一个servlet! 例如:用户模块(登录,注册,退出录,激活,发送邮件等等功能) 也就是说,我们必须要创建一…

java-数据结构与算法-02-数据结构-03-递归

1. 概述 定义 计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances…

IT项目经理转行大模型,项目经理的进来,你想知道的都在这里非常详细

大模型(如人工智能、机器学习和深度学习模型)可以通过提供数据驱动的决策支持、自动化流程和预测分析来赋能IT项目经理。这些工具可以帮助项目经理更有效地管理项目,预测潜在的风险,并提高项目成功的可能性。以下是IT项目经理如何…

IPD流程学习笔记

一、前言 互联网行业讲究的是快速试错,所以IPD流程的应用并不多,但是传统企业数字化转型中,怎么确保项目投入可以切合市场需求,有较好的ROI及落地性,轻量级的IPD还是很有必要了解下的,特别是重资产类的业务…

探讨大数据在视频汇聚平台LntonCVS国标GB28181协议中的应用

随着摄像头和视频监控系统的普及和数字化程度的提高,视频监控系统产生的数据量急剧增加。大数据技术因其优秀的数据管理、分析和利用能力,成为提升视频监控系统效能和价值的重要工具。 大数据技术可以将视频监控数据与其他数据源进行融合分析&#xff0c…

libaom 编码器实验 AV1 标准 SVC 分层编码

SVC编码 视频SVC编码,即Scalable Video Coding(可适性视讯编码或可分级视频编码),是H.264/MPEG-4 AVC编码的一种扩展,它提供了更大的编码弹性,并且具有时间可适性(Temporal Scalability&#x…

【基础算法总结】分治—归并

分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.排序数组 …

NFTScan | 07.01~07.07 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.07.01~ 2024.07.07 NFT Hot News 01/ 数据:Mad Lads 地板价回升至 100 SOL 上方,24 小时涨幅为 13.65% 7 月 1 日,据数据显示,Solana…

ARM架构以及程序运行解析

文章目录 1. ARM架构 2. ARM处理器程序运行的过程 3. 示例 3. 基于ARM架构的STM32单片机 1. 运行模式 2. 寄存器组 3. STM32的基本结构 4. STM32的运行模式 4. 寄存器组详解 1. 未备份寄存器 2. 备份寄存器 3. 程序计数器 4. 程序状态寄存器 5. CPSR和SPSR寄存器…