我正在尝试以编程方式将列入黑名单的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属性。
答案 0 :(得分:1)
有多种方法可以将黑名单列入黑名单,或者通过上述系统入口点,也可以针对单个防火墙/集群单独进行黑名单。 如果使用系统入口点,则黑名单条目将转到所有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版本<= 6.4.x,则可以使用engine.blacklist或System.blacklist命令。
DLP