我正在尝试以编程方式将列入黑名单的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/