我正在尝试以编程方式将列入黑名单的IP添加到防火墙。我尝试这样做,但出现错误。我对python并不是那么陌生,但是我对阅读文档并不那么精通,所以如果有帮助的话,这里就来了。

https://media.readthedocs.org/pdf/smc-python/latest/smc-python.pdf

https://smc-python.readthedocs.io/en/latest/index.html

from smc import session
from smc_monitoring.monitors.blacklist import BlacklistQuery
from smc.core.engines import Engine
from smc.administration.system import System

session.login(url='http://nope', api_key='supersecret')
print("logged in")

# #   Method 1  ERROR
system = System()
print(system.smc_version)
system.blacklist(src='1.1.1.1/32', dst='2.2.2.2/32', duration=3600)
session.logout()



  追溯(最近一次通话):文件
  “ /home/matthew/PycharmProjects/GitSMC/BlacklistTest.py”,第12行,在
  
  
  system.blacklist(src ='1.1.1.1 / 32',dst ='2.2.2.2 / 32',持续时间= 3600)
  
  文件
  “ /home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/administration/system.py”,
  黑名单中的第159行
      json = prepare_blacklist(src,dst,duration,** kw))
  
  文件
  “ /home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/base/mixins.py”,
  第32行,在make_request中
      结果= getattr(请求,方法)()
  
  文件
  “ /home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/api/common.py”,
  第66行,在创建中
      返回self._make_request(method ='POST')
  
  文件
  “ /home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/api/common.py”,
  _make_request中的第101行
      提高错误
  
  smc.api.exceptions.ActionCommandFailed:无效的JSON格式:在第1行
  第17列,end_point1无法识别为JSON属性。

最佳答案

可以通过多种方法将其列入黑名单,这些方法可以通过上述系统入口点进行,也可以单独针对单个防火墙/集群进行黑名单。
如果使用系统入口点,则黑名单条目将转到所有SMC管理的防火墙。
根据该消息,您似乎正在使用较新版本的smc-python(即> 6.5.x)。

在这种情况下,最好使用引擎级别黑名单:

from smc.elements.other import Blacklist

engine = Engine('myfw')
blacklist = Blacklist()
blacklist.add_entry(src='1.1.1.1/32', dst='2.2.2.2/32')
engine.blacklist_bulk(blacklist)


我刚刚注意到,系统入口点没有针对SMC 6.5的黑名单功能(该库尚未在技术上经过完全认证),但是我将添加到development分支,因为6.5.x将在接下来的几周。

如果使用SMC版本
DLP

关于python - SMC-Python添加和删除列入黑名单的IP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53859112/

10-12 18:27