利用Python脚本自动化香港VPS防火墙规则配置
管理香港VPS时,频繁调整防火墙规则是常事。手动逐条输入命令不仅耗时,稍不留神输错端口或IP,还可能留下安全隐患。这时候,用Python写个自动化脚本,就能让这些重复操作变得轻松——就像给防火墙配了个24小时在线的“智能管家”。

为何要自动化配置
曾有用户因手动配置时误将22端口写成23,导致SSH连接中断,花了两小时排查才发现问题。对香港VPS来说,其常作为跨境业务或多IP站群的节点,面临更复杂的网络环境:既要防外部攻击,又要保证内部业务连通。手动配置不仅效率低(单条规则输入平均耗时3分钟),更易因疏忽遗漏关键规则(如未放行已建立连接),导致正常业务中断。自动化脚本通过预设规则模板直接调用系统命令,既能避免输入错误,又能在需要批量调整时(比如站群多IP节点统一开放80端口)快速生效,效率提升超70%。
准备工作
考虑到香港VPS的特殊用途,准备阶段需多做一步:先梳理业务所需的端口列表。比如Web服务常用80/443端口,SSH管理用22端口,站群节点间通信可能需要特定内网端口。接下来确保两点:一是VPS已安装Python环境(建议3.6以上版本),二是防火墙工具已就绪——Linux系统推荐使用iptables(基于内核的防火墙框架,支持规则动态管理)。
编写Python脚本
下面是针对香港VPS常见场景的Python脚本示例,用于自动化生成iptables规则:
import subprocess
def add_firewall_rule(rule):
"""执行iptables命令添加规则"""
try:
# 拆分规则参数并执行系统命令
subprocess.run(['iptables', '-A'] + rule.split(), check=True, text=True)
print(f"规则添加成功:{rule}")
except subprocess.CalledProcessError as e:
print(f"规则添加失败,错误信息:{e}")
# 允许本地回环接口(如127.0.0.1通信)
add_firewall_rule('INPUT -i lo -j ACCEPT')
# 放行已建立/关联的连接(保障长连接业务)
add_firewall_rule('INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT')
# 开放SSH管理端口(按需调整为其他管理端口)
add_firewall_rule('INPUT -p tcp --dport 22 -j ACCEPT')
# 禁止其他未明确允许的输入流量(默认拒绝策略)
add_firewall_rule('INPUT -j DROP')
脚本中,`subprocess.run`调用系统命令直接操作iptables,`-A`参数表示将规则追加到链尾。值得注意的是`--ctstate ESTABLISHED,RELATED`参数,它能确保已建立的连接(如视频流传输、文件下载)不会被意外中断,这对香港VPS承载的跨境业务尤为重要。
脚本扩展与多IP适配
若香港VPS用于多IP站群,可将规则存储在CSV文件中。例如文件内容如下:
```
IP地址,端口,动作
192.168.1.10,80,ACCEPT
192.168.1.11,443,ACCEPT
```
脚本读取后循环添加规则:
```python
import csv
def load_rules_from_csv(file_path):
with open(file_path, 'r') as f:
reader = csv.DictReader(f)
return [f"INPUT -s {row['IP地址']} -p tcp --dport {row['端口']} -j {row['动作']}" for row in reader]
# 从CSV加载规则并添加
rules = load_rules_from_csv('firewall_rules.csv')
for rule in rules:
add_firewall_rule(rule)
```
这样新增节点时只需更新CSV文件,脚本自动生成对应规则,无需重复编写代码。
部署与长期生效
将脚本上传至香港VPS后,需赋予执行权限:`chmod +x script.py`。直接运行`python script.py`即可生效。为避免重启后规则丢失,可将脚本加入开机启动项:通过`crontab -e`添加`@reboot python3 /path/to/script.py`(注意替换实际路径)。若用于多IP站群,建议先在测试节点运行脚本,确认规则无误后再批量部署到其他节点。
从手动输入到自动执行,Python脚本让香港VPS的防火墙管理变得更简单、更安全。无论是个人开发者还是企业运维,掌握这门技巧都能为VPS的稳定运行加上一道“智能保险”。现在不妨打开编辑器,写一个属于自己的防火墙自动化脚本吧。