我正在尝试以编程方式将列入黑名单的IP添加到防火墙。 我尝试这样做,但出现错误。 我对python并不是那么陌生,但是我对阅读文档不是那么精通,所以如果有帮助的话,这里就是。
https://media.readthedocs.org/pdf/smc-python/latest/smc-python.pdf
https://smc-python.readthedocs.io/en/latest/index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
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()
Traceback (most recent call last): File
"/home/matthew/PycharmProjects/GitSMC/BlacklistTest.py", line 12, in
system.blacklist(src='1.1.1.1/32', dst='2.2.2.2/32', duration=3600)
File
"/home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/administration/system.py",
line 159, in blacklist
json=prepare_blacklist(src, dst, duration, **kw))
File
"/home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/base/mixins.py",
line 32, in make_request
result = getattr(request, method)()
File
"/home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/api/common.py",
line 66, in create
return self._make_request(method='POST')
File
"/home/matthew/PycharmProjects/GitSMC/venv/lib/python3.7/site-packages/smc/api/common.py",
line 101, in _make_request
raise err
smc.api.exceptions.ActionCommandFailed: Invalid JSON format: At line 1
and column 17, end_point1 is not recognized as JSON attribute.
可以通过多种方法将其列入黑名单,既可以通过上面的系统入口点,也可以针对单个防火墙/群集单独进行黑名单。
如果使用系统入口点,则黑名单条目将转到所有SMC管理的防火墙。
根据该消息,您似乎正在使用较新版本的smc-python(即>6.5.x)。
在这种情况下,最好使用引擎级别黑名单:
1
2
3
4
5
6
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命令。
防火墙有网络防火墙和病毒防火墙。网络防火墙不能完全用python做,低层的协议包过滤器需要用C和C++,
然后还要做一个服务,python上层管理程序可以与服务程序做通讯进行低层包的过滤规则设定。这东西都有现成的框架。国产的有,国外的也有。直接拿来用就可以。不用开发。
病毒防火墙也是一样,需要在文件API上做一个挂勾。当文件读写时会触发通知到你的服务里。
服务程序会检查相应的文件,通常会先拦截一下,检查完了再放开。
用python可以做病毒检查,但是速度太慢,估计加载后会让操作系统死机。
还有一种是WEB防火墙,需要使用插件。如果是ie插件,就不用说了,这个必须用C,还不容易稳定。不过chrome可以用JS,
firefox可以用它自带的那个语言。也可以用C。用python理论上也可以。价值不太大。
不过可以做一个python的WEB网站,做一个云计算,病毒数据查询之类的。
让python通过防火墙的方法:首先进入开始菜单,点击控制面板;然后找到Windows防火墙选项并单击它;在新出现的防火墙界面找到python,然后勾选python进行添加即可。首先进入开始菜单,然后在菜单中找到控制面板,单击控制面板这个选项进入控制面板窗口界面。
进入到控制面板界面,在这个界面上可以看到系统自带的控制面板选项,找到Windows防火墙选项并单击它。
接着就进入了在Windows防火墙主页面,在这个主页面左上方找到允许程序或功能通过防火墙,然后单击这个选项。
这时候就到了允许程序通过Windows防火墙通信界面,这个界面上我们可以添加程序(添加你要通过防火墙的程序)。
注意:不要为陌生的软件程序开启通过防火墙的功能,这是很危险的事情,很容易被黑客利用而达到入侵的目的
添加要通过防火墙通信的软件
单击允许运行另一程序,这时候弹出来一个框,在框中上下移动选择python,选中这个程序然后单击添加按钮即可。
推荐课程:Python数据分析与展示(嵩天教授)