本文实例讲述了python实现ipsec开权限的方法。分享给大家供大家参考。具体实现方法如下:
F) ]6 v) j& l, P o' Z# A4 Uwindows自带的命令行工具netsh ipsec static add filter不支持批量添加,还会添加重复的规则进去。我用python编写了ipsecset解决了上述问题,支持批量添加,同一个列表里避免重复的规则。/ o. S! o5 }" ^
为了方便使用,已编译成exe,源码和程序在下面的链接里
; G% d- W5 w: Z& x% b6 N% W8 S语法:% D' o6 R" ?6 f
参数和netsh ipsec static add filter的参数是一样的,不区分大小写 q3 X6 k) B1 J
必要参数:
. j2 s+ W& [% O5 a7 esrcaddr=(me/any/特定ip/网段)8 ]7 x: ^. W8 e/ e( P* b% y
dstaddr=(me/any/特定ip/网段)
/ |# }* `9 p8 b5 W3 J/ udstport=(0/特定端口)
4 m5 u9 `6 l2 |/ F- S0 w默认参数:5 W) q6 r9 H2 N# y
srcport=0
: v4 p, F6 x% Vsrcmask=255.255.255.2550 L: l% L) e1 n6 p: I. m
dstmask=255.255.255.255- L9 Z* c% { s3 Q3 l+ v
protocol=tcp/ m. X8 r) y/ o+ J6 q& Q3 K
mirrored=yes( Y2 i5 z# [- k' w% a0 Q
filterlist=选用规则8 d* \: Z+ g w" n! s) V
description=add by script {time_now}
0 `' K8 X. J7 T& o, j$ b批量操作:1 `8 U& k+ z8 K! n( i, X
“-和,两种操作符,可混合使用
- c8 {# E: t0 {" D( M' ~- e6 j( m$ q& M支持批量操作的参数:srcport,dstport,srcaddr,dstaddr2 ]" } c% O6 J
其中srcaddr和dstaddr仅最后一个段支持
$ H" {* ?' M! _( }" q% p6 o r0 S列如,srcport=1000-1003,1007,1009$ l( `- D0 o( @) z7 [
srcaddr=1.1.1.10-13,15! F' f+ s, c0 j3 M5 r
示例如下:9 z% L- r7 m% d3 b3 E
复制代码 代码如下:ipsecset srcport=1.1.1.1 dstport=2.2.2.2-30,31 dstport=8080 filterlist=基础规则
- h0 z, Z$ B3 Z" B; p' _ipsecset srcport=me dstport=any dstport=81-85,87
, X$ j& s! k: o9 sipsecset srcport=me dstport=10.1.1.0 dstmask=255.255.255.0 dstport=6161 protocol=udp4 P) \5 [+ m A& E
代码保存在github上- y, _/ w) Y% Y9 P- @/ u+ E+ b6 |
编译后的文件保存在dist文件夹
3 Z; {# G+ S! `: t
; j2 t! V. m @9 y$ a9 o2 e7 [& E, o& n更多网页制作信息请查看: 网页制作 |
|