本文实例讲述了python实现ipsec开权限的方法。分享给大家供大家参考。具体实现方法如下:
2 { y5 x8 R, P0 i4 l" zwindows自带的命令行工具netsh ipsec static add filter不支持批量添加,还会添加重复的规则进去。我用python编写了ipsecset解决了上述问题,支持批量添加,同一个列表里避免重复的规则。
, G8 d+ a* H! P8 g& _为了方便使用,已编译成exe,源码和程序在下面的链接里
' O- p5 X* g" }5 R# M& P. L' |语法:
3 w/ e! i* E1 I* B9 ]9 @8 g2 O参数和netsh ipsec static add filter的参数是一样的,不区分大小写
3 S: E" X3 U$ L& v; s4 M2 L必要参数:
' S) G1 d8 C& U, r$ zsrcaddr=(me/any/特定ip/网段). M2 u# F0 o2 |' m0 I6 E& [
dstaddr=(me/any/特定ip/网段)2 a- P) a3 v& _' l$ L: P0 M, s
dstport=(0/特定端口)
3 ^* J3 o( \3 E G9 j8 C X6 [- e" R! R默认参数:
/ P: D: a X% D# C* ysrcport=0
$ t: X) C9 f8 Q4 fsrcmask=255.255.255.255
/ d4 I d- e) T3 j! _( `7 Xdstmask=255.255.255.255+ N$ ?3 R8 m4 L- |1 x7 w o
protocol=tcp
6 y# E) X- h+ g0 c, a( `mirrored=yes+ }4 V# L6 Z+ ]+ `3 v
filterlist=选用规则0 s9 Q J. U' U) m+ A
description=add by script {time_now}
. T5 ]9 M) t1 O批量操作:- M# H5 v2 ]$ T% v2 R8 _0 h
“-和,两种操作符,可混合使用
' [- l; P& ^' J7 z/ r4 f支持批量操作的参数:srcport,dstport,srcaddr,dstaddr! A: C+ x2 w$ {. F5 }# u4 }
其中srcaddr和dstaddr仅最后一个段支持, x W9 e* A O1 h2 A
列如,srcport=1000-1003,1007,1009: \- ?6 g4 W4 y5 ^! a7 C; @
srcaddr=1.1.1.10-13,15
2 H! U1 q; v6 O' q" n6 ~" K. v示例如下:7 p% H6 M+ H5 S
复制代码 代码如下:ipsecset srcport=1.1.1.1 dstport=2.2.2.2-30,31 dstport=8080 filterlist=基础规则
# n( d; E( I& L3 P8 s8 {ipsecset srcport=me dstport=any dstport=81-85,87
! g6 U# r8 W1 X1 u/ Gipsecset srcport=me dstport=10.1.1.0 dstmask=255.255.255.0 dstport=6161 protocol=udp
- N5 | s% M6 g代码保存在github上( n# ]' e; m {* ~6 k$ A
编译后的文件保存在dist文件夹7 r \* B" Z. A- A9 [! l0 V% m
" S4 X% A1 \$ s$ Q, A更多网页制作信息请查看: 网页制作 |
|