本文实例讲述了python实现ipsec开权限的方法。分享给大家供大家参考。具体实现方法如下:
& g9 w# |3 E5 f" Q" Z% J, y/ ?# ?windows自带的命令行工具netsh ipsec static add filter不支持批量添加,还会添加重复的规则进去。我用python编写了ipsecset解决了上述问题,支持批量添加,同一个列表里避免重复的规则。% R+ C+ S2 b( @4 u8 ~3 N$ |" @
为了方便使用,已编译成exe,源码和程序在下面的链接里
! Y# @0 d* Y7 z" w- [ T语法:9 @4 i5 |! y! ^$ t
参数和netsh ipsec static add filter的参数是一样的,不区分大小写' w- b+ W: w5 D% \6 |; n/ f# ]
必要参数:
h# P& w4 R1 @8 I% Jsrcaddr=(me/any/特定ip/网段)( O! g [+ [/ [" K5 t
dstaddr=(me/any/特定ip/网段)% G, X! S. o+ I- K6 f
dstport=(0/特定端口)( E7 B. Z# I! U4 O' p" f8 F
默认参数:) a$ @0 _! R9 ?) \
srcport=0
o! P" [2 B; x4 l& U0 Asrcmask=255.255.255.255
/ {0 E8 Y% O+ Y' G3 x5 \dstmask=255.255.255.255" }/ ]) K6 H" ~( p9 i" P
protocol=tcp$ Z% e* \! w, s1 M' E) |6 w
mirrored=yes
) k9 \6 }. |4 y. W7 Jfilterlist=选用规则
# k' {. M! J' A, v# _ v7 u/ Adescription=add by script {time_now}
b6 Z& C/ b6 {8 v. ?批量操作:* x% Z* h, f i* F7 B/ S
“-和,两种操作符,可混合使用- R. {0 o5 D2 s( j# K7 i- C7 H
支持批量操作的参数:srcport,dstport,srcaddr,dstaddr
% o3 f W# x5 I( e3 z其中srcaddr和dstaddr仅最后一个段支持: X' Y3 v# {$ w- h# f
列如,srcport=1000-1003,1007,1009
( {. n6 E5 ~# bsrcaddr=1.1.1.10-13,15
% o2 b( X8 J' f7 ~# ]示例如下:
# @2 h5 p% u& \2 o5 d9 Q Y1 y* I复制代码 代码如下:ipsecset srcport=1.1.1.1 dstport=2.2.2.2-30,31 dstport=8080 filterlist=基础规则
1 [2 I5 ~9 Z. Sipsecset srcport=me dstport=any dstport=81-85,87, j; r' \( F$ D% K! D
ipsecset srcport=me dstport=10.1.1.0 dstmask=255.255.255.0 dstport=6161 protocol=udp
4 x4 p$ d( I) n9 X3 E代码保存在github上
5 G6 ~ V. }! G4 @" M编译后的文件保存在dist文件夹: V+ k9 z6 W3 I" O
8 r: A3 ?2 c: D; Q
更多网页制作信息请查看: 网页制作 |
|