python 编写本地防火墙
时间: 2023-11-15 15:45:51 浏览: 160
Python可以通过调用操作系统的防火墙规则来实现本地防火墙。以下是一个使用Python编写的简单的本地防火墙程序:
```python
import subprocess
# 添加规则,允许IP地址为192.168.1.1的计算机访问本机的80端口
subprocess.call(["iptables", "-A", "INPUT", "-p", "tcp", "--dport", "80", "-s", "192.168.1.1", "-j", "ACCEPT"])
# 添加规则,禁止IP地址为192.168.1.2的计算机访问本机的22端口
subprocess.call(["iptables", "-A", "INPUT", "-p", "tcp", "--dport", "22", "-s", "192.168.1.2", "-j", "DROP"])
# 开启默认规则,允许本机访问外部网络,禁止外部网络访问本机
subprocess.call(["iptables", "-P", "INPUT", "DROP"])
subprocess.call(["iptables", "-P", "FORWARD", "DROP"])
subprocess.call(["iptables", "-P", "OUTPUT", "ACCEPT"])
```
这个例子中使用了`subprocess`模块来调用命令行工具`iptables`添加防火墙规则。其中:
- `-A`表示添加规则;
- `-p tcp`表示规则只适用于TCP协议;
- `--dport`表示目标端口;
- `-s`表示源IP地址;
- `-j ACCEPT`表示允许访问,`-j DROP`表示禁止访问;
- `-P`表示设置默认策略,`DROP`表示禁止访问。
阅读全文