python编写网络防火墙_dnxfirewall:一款纯Python实现的下一代防火墙系统
dnxfirewall
dnxfirewall是一套包含了经过优化的高性能应用程序及服务套件,它可以将一个标准的Linux系统转换成一个基于空间区域的下一代防火墙系统。dnxfirewall中的所有软件都可以相互进行交互,并配合运行。dnxfirewall基于纯Python实现,防火墙内的应用程序和服务都是基于模块化设计的,因此很多定制化的修改和功能实现都可以不费吹灰之力即可实现。主安全模块对通过系统的所有通信连接、数据流和消息来进行直接/内联控制。也就是说,根据不同的协议,如果启用了全面检查的话,我们可以通过卸载较低级别的控制来保持整个系统内的最高数据吞吐量。除此之外,dnxfirewall提供了一个自定义的IPTable链,允许管理员在不覆盖dnx安全模块的情况下,捕捉到所有的数据包流。
包含的功能
DNS代理基于块的分类(TLD、子字符串匹配)
基于用户添加的白名单/黑名单或自定义常规类创建
带有可选UDP回退的本机DNS over TLS转换
本地dns服务器
软件故障转移
二级记录缓存
IP代理基于复现的主机过滤
地理位置过滤器
LAN限制(禁用所有未列入白名单的IP地址对LAN的访问)
IPS/IDS(WAN/内联)拒绝服务检测/防御
端口扫描检测/防御
轻量级DHCP服务器(自定义)IP保留
安全警报集成
通用服务日志处理
数据库管理
Syslog客户端(UDP、TCP、TLS):当前该功能处于测试状态,这个服务默认不会启用。
其他功能IPv6禁用
预构建IPTable规则
DNS绕过防御(HTTPS、TCP、TLS)
默认情况下,所有到wan的入站连接都已断开
IPTABLES自定义链管理挂钩到数据包流
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:git clone https://github.com/DOWRIGHTTV/dnxfirewall.git
工具配置
出于部署方便的考虑,SQLite3是当前版本dnxfirewall默认使用的数据库系统。我们也可以通过调整dnx_configure/dnx_constants.py中定义的环境变量“SQL_VERSION”来使用PostgreSQL数据库。警告:初始化配置后再调整数据库的话,可能会导致dnxfirewall的运行出现问题。
首先,编辑data/config.json和data/dhcp_server.json来映射我们的系统[接口]。接下来,将所有的系统服务文件移动到系统的systemd目录下。然后,配置系统接口,必须将LAN设置为本地网络的默认网关。
配置完成后,针对我们当前的系统架构来编译python-netfilterqueue,确保文件名为netfilter.so,并将其存储至dnxfirewall/netfilter目录下。
然后,针对我们当前的系统架构编译dnx_iptools/binary_search.pyx,确保文件名为binary_search.so,并将其存储至dnxfirewall/dnx_iptools目录下。
最后,运行工具提供的部署脚本来安装工具即可。
工具演示视频
视频地址:【油管链接】
许可证协议
dnxfirewall项目的开发与发布遵循AGPL v3开源许可证协议。
项目地址
dnxfirewall:【GitHub传送门】
python编写网络防火墙_dnxfirewall:一款纯Python实现的下一代防火墙系统相关推荐
- 使用python编写网络爬虫
使用python编写网络爬虫 前言 1.为何使用爬虫 2.编写爬虫的知识要求 3.确定爬虫使用的工具库 4.确定要获取的数据集 4.1 分析Url地址变化 4.2 获取目标数据集所在的HTML区域 5 ...
- 使用Python编写网络扫描程序
使用Python编写网络扫描程序 网络扫描程序通过向成百上千台计算机发送请求并分析其响应,扫描第2层和第3层网络中指定范围内的网络ID.利用某些扩展技术,网络扫描程序还可以获得通过Samba和Ne ...
- 防火墙工作在哪一层_简单概括下一代防火墙和传统防火墙的区别:“下一代”不只是说说而已...
在市场层面,我们总是能看到一些"新型"."增强"或者"下一代"的字眼.那从这一角度来看,"下一代防火墙"是真的确有此物, ...
- python恶搞图_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...
分享一:"啥是佩奇?"让Python语言告诉你 用Python代码创作一副佩奇: # coding:utf-8 import turtle as t t.pensize(4) t. ...
- python搞笑语句_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...
import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),"pink&quo ...
- python制作恶搞_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...
为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代码,感兴趣的小伙伴可以跟着学习借鉴哦!进群:839383 765可以获取Python学习资 ...
- python编写异常处理_Python 简明教程 --- 23,Python 异常处理
要么做第一个,要么做最好的一个. 目录 我们在编写程序时,总会不自觉的出现一些错误,比如逻辑错误,语法错误和一些其它的运行时错误等. 逻辑错误: 这种错误不会导致程序崩溃,它不容易被发现,只有在执行结 ...
- 用python编写程序判断奇偶_如何用python判断奇偶数
问题分析:用Python编写一个程序,判断输入的数字是奇数还是偶数,并相应的输出信息,要判断一个数为奇数还是偶数,依据的是它被2除后的余数.因此可以用"%"运算符来计算并判断. 代 ...
- python编写统计选票的程序_使用python编写微信公众号发稿统计程序
近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...
最新文章
- java中List深拷贝的简单实例
- 夺命雷公狗---linux NO:17 linux系统查找
- 静态工厂配置bean
- 关于有序二维矩阵查找和字符串替换的两道算法题
- array.tolist_在Python中使用array.tolist()将数组转换为列表
- windows系统bat批处理 打开乱码
- sqlite具体操作篇
- (转)1.43亿用户信息泄露案后 美国征信机构CEO离职
- Pareidolia — AI的艺术教学
- servlet和springMVC框架
- SQL Server不允许保存更改【解决】
- VS2010版最常用的快捷键和其他快捷键
- 常见的绩效管理系统有哪些功能?
- codeforce 1260
- python operator用法_说说 Python 中的 Operator 模块
- 在新旧交替的过程中,我们成长着—导师制,舞台和挑战
- Android机应用多开分身CK获取ksjsb-jrttjsb-aqc羊毛
- 为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
- Excel 表格实现多列排序
- 面向需求编程才是常态,聊聊我的经历