验证IPSec抗重放攻击

linux内核xfrm参数replay-window用于设定抗重放攻击效果。

replay-window为0表示不启用抗重放攻击,大于0时表示当前esp/ah包活动序列窗口大小,序号太旧的包因赶不上活动窗口而被丢弃或回复失败包。

在基于
StrongSwan PSK RSA
连通的环境下。

在C机器中编辑/etc/strongswan.d/charon.conf,更改replay-window值。
重启strongswan并启动连接后,可能通过命令

1
ip xfrm state

查看strongswan有没有将参数值设定到内核中。

在B机器中

1
apt install tcpreplay

在B机器中启动两个wireshark进程,分别抓包vmnet2和vmnet3。

当B和C中的strongswan都启动并连通后,在A中ping D的ip。

此时在B中抓vmnet3上的esp包,抓了几个后,点击对应wireshark窗口菜单

1
File/Export Specified Packet

将这些esp包保存为文件

1
/tmp/esp-b2c.pcapng

在A中停止ping D的ip。

在B的bash中执行

1
tcpreplay -i enp2s6 /tmp/esp-b2c.pcapng

其中enp2s6是网卡vmnet3对应的识别名。

可以看到,
当C中的replay-window参数设为0时,B中的vmnet2上会抓到模拟重放的icmp ping包,并且方向是10.2.0.10至10.1.0.10。
当C中的replay-window参数不为0时,B中的vmnet2上抓不到模拟重放的icmp ping包。
一旦重启B或C中的strongswan,使用旧的esp-b2c.pcapng文件重放时,不管C中的replay-window取何值,B中的vmnet2上都不会出现模拟重放包。

Strongswan中验证NATT

在基于
StrongSwan PSK RSA
连通的环境下。

四台虚拟机ABCD,三段Host Only虚拟网络vmnet2、vmnet3、vmnet4,DHCP都禁掉。

1
2
3
4
5
6
7
8
9
10
A
vmnet2: 10.1.0.10/24 gw 10.1.0.2
B
vmnet2: 10.1.0.2/24
vmnet3: 192.168.0.12/24  <--这里变了
C
vmnet3: 192.168.0.3/24
vmnet4: 10.2.0.2/24
D
vmnet4: 10.2.0.10/24 gw 10.2.0.2

在B的bash中执行

1
2
iptables -t nat -A POSTROUTING -s 192.168.0.12 -j SNAT --to-source 192.168.0.2
iptables -t nat -A PREROUTING -d 192.168.0.2 -j DNAT --to-destination 192.168.0.12

在B中用ifconfig命令查看vmnet3的hwaddr,比如为00:0c:29:5a:fc:8e。
在C的bash中执行

1
arp -s 192.168.0.2 00:0c:29:5a:fc:8e

修改B的ipsec.conf中指定conn下的left为192.168.0.12。
而仍将C的ipsec.conf中指定conn下的right设为192.168.0.2。

之后再重启BC中的strongswan并连接会看到第5条ISAKMP消息开始端口都走4500了。

医学英语备忘录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
当前面的元音是非重读元音时,f,θ和x进一步变化成b,d和g。
Verner's Law says that voiceless fricatives, when immediately following an unstressed syllable in the same word, underwent voicing.
centum -> hundred
PIE upo -> over
PIE apo -> off
 
中元音2个: / ә / / ә: / 
后元音6个: / u / / u: / / ɔ / / ɔ: / / Λ / / a: /
前元音4个: / i: / / i / / e / / æ /
 
i-umlaut(i-mutation), a-mutation, u-mutation
 
唇	b p m f
齿	d t n l
硬腭	dʒ s tʃ
软腭	g k h
 
Green's Low
b -> p -> f
d -> t -> th
g -> k -> h
 
a - e - i - o - u
t - d - s 前齿音
b - p - m - f - v - d 前唇音
u - v - w
g - k/c - h 喉音
l - m - n - r 鼻音 侧音
s - c - z
 
r - s - t
 
b - d
m - w
y - g
y - j
g - w
 
ad-vjpm
a*-bcfglnqrst
a-sp,sc,st
 
sub-btnm
su*-cfgpc
 
ab: abs,aps,as,au,a
con: cog,col,com,cor,co
in: im,il,ir,ig
en: em
syn: sym,sy
ob: oc,of,op,o
trans: tran,tra
dis: dif,dir,di
ex: ef,e,ec,es
 
drag=trac(t)
break=frac(t)
make=fact
miss=mit
pend=pens
grad=gress 走
hundred=centi
hand=chir
hard=crac
carve=gram,graph
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
malleolus: 踝
tibia: 胫骨
tuberosity: 粗隆
fibula: 腓骨
phlegm: 粘液
bile: 胆汁
chole: 胆汁
etymology: 词源
 
adenosine: 腺苷
adenine: 维生素B4、腺嘌呤
purine: 嘌呤
guanine: 鸟嘌呤
pyrimidine: 嘧啶
cytosine: 胞嘧啶
thymine: 胸腺嘧啶
uracil: 尿嘧啶
glycoside: 糖苷
ribose: 核糖
glucose: 葡萄糖
choline: 胆碱
Cholesterol: 胆固醇
fructose: 果糖
peptide: 肽
acyl: 酰
ester: 酯
lipid: 脂
aldose: 醛糖
steroid: 类固醇
histone: 组蛋白
 
halide: 卤
fluoride: 氟
chloride: 氯
bromide: 溴
iodide: 碘
alkane: 烷
alkene: 烯
alkyne: 炔
alcohol: 醇
aldehyde: 醛
acetal: 缩醛
ketone: 酮
ketal: 缩酮
amine: 胺
imine: 亚胺
aminal: 缩醛胺
ether: 醚
oxime: 肟,亚硝基化合物
aldoxime: 硝酮
hydrazone: 腙
azine: 嗪
pyridine: 吡啶
cyanohydrin: 羟腈
nitrile: 腈
hydrazide: 酰肼
amidine: 脒
urea: 脲
enol: 烯醇
mercaptan: 硫醇
sulfone: 砜
alkyl halide: 卤代烷
epoxide: 环氧化物
lactone: 内酯
aryl group: 芳基
phenyl group: 苯基
Phenol: 苯酚
naphthalene: 萘
benzyl group: 苄基
ketyl radical: 羰自由基
dextro isomer: 右旋异构体
laevo isomer: 左旋异构体
chiral: 手性

refer to:
本源英语
钱博士英语
安森垚(yáo)、李浩
American Heritage Dictionary
http://www.chem.ucla.edu/~harding/IGOC/IGOC.html
https://wenku.baidu.com/view/04cad1c84b7302768e9951e79b89680202d86b53.html
https://www.chemicalbook.com/CASDetailList_8400.htm
https://weibo.com/ttarticle/p/show?id=2309634676610120089888
https://easyenglishnotes.com/verners-law-and-grimms-law/
https://zhuanlan.zhihu.com/p/387221511
https://china.guidechem.com/
https://zhuanlan.zhihu.com/p/403476453

gdb调试有管道的命令行

以pcre2调试为例

1
2
3
4
5
6
7
8
9
#!/bin/sh
 
cd `pwd`/installed/bin
 
mkfifo /tmp/pcre
echo "<h1>hello</h1>" > /tmp/pcre &
 
gdb ./pcre2grep -ex 'b main' -ex 'r -o "<.*>" < /tmp/pcre'
rm /tmp/pcre

refer to:
http://www.voidcn.com/article/p-migwptlv-bsq.html

西欧名字中的单词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
van = von = de = of = from
la = le = les
Boer: 农民
Bakker: 面包师
Schoenmaker: 鞋匠
Hoedemaker: 制帽匠
Visser: 渔夫
Kuip: 篾匠
Bruier: 酿酒师
Bosman: 伐木工
Beek: 小溪
Dam: 坝
Dijk: 堤
Hoek: 角落
Berg: 小山包
Bach:小河
Adler:鹰
Winzer:种葡萄的人
Philip: 爱马者
Paul: 小个子
Klein:矮子
Schwarz:黑人
Patrick: 高贵的
Rex: 帝王
Richard/Ricky: 严厉的统治
Charlie查理 = carl卡尔in德国 = carlos卡洛斯in西班牙
Louis路易 = Ludwig路德维希in德国
Calf: 牛犊

德国姓氏

Muller		米勒		磨房主
Schmidt		施密特		工匠
Schneider	施奈德		裁缝
Schulze				警官
Fischer		菲舍尔		渔夫
Weber		韦博		织工
Meyer		迈耶		领主
Wagner		瓦格纳		造车工
Becker		贝克尔		面包师
Schulz		舒尔茨		收债人
Hoffmann	霍夫曼		长工
Hermann		赫尔曼		home ruler

refer to:
https://zhidao.baidu.com/question/111534700.html
https://zhidao.baidu.com/question/118073174.html
https://zhuanlan.zhihu.com/p/87185027

gcc多个include目录的优先级

gcc默认include路径

1
2
`gcc -print-prog-name=cc1` -v
`g++ -print-prog-name=cc1` -v

优先级由大到小对应下表中的从上到下

1
2
3
4
5
命令行-I指定,前面的大于后面的
CPATH
CPLUS_INCLUDE_PATH	#只对c++文件起作用
C_INCLUDE_PATH		#只对c文件起作用,即C_INCLUDE_PATH和CPLUS_INCLUDE_PATH不会同时起作用
gcc默认include路径

refer to:
http://www.3scard.com/index.php?m=blog&f=view&id=42

apt testing source

/etc/apt/sources.list

1
2
3
4
deb http://http.us.debian.org/debian/ testing non-free contrib main
#deb http://http.us.debian.org/debian/ stable non-free contrib main
#deb http://http.us.debian.org/debian/ unstable non-free contrib main
#deb http://http.us.debian.org/debian/ wheezy non-free contrib main
1
2
#apt edit-sources
apt update

NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138

1
2
apt-key adv --keyserver keyserver.ubuntu.com --recv 04EE7237B7D453EC
apt-key adv --keyserver keyserver.ubuntu.com --recv 648ACFD622F3D138

ubuntu repo names

1
2
3
wheezy: debian 7.0
xenial: Ubuntu 16.04
focal: Ubuntu 20.04

refer to:
https://serverfault.com/questions/550855/how-to-add-debian-testing-repository-to-apt-get
https://yunwei365.blog.csdn.net/article/details/114930145

in gdb tui mode scroll the command window

Use cgdb instead.

Let GDBW denote the command window,
let SRCW denote the source window
let TTYW denote the input window.

Cgdb basic usage

1
2
3
4
5
6
ESC key in GDBW: switch to SRCW
i key in SRCW: switch to GDBW
T key in SRCW: switch on/off TTYW
PgUp/PgDn key in GDBW: scroll GDBW
PgUp/PgDn key in SRCW: scroll SRCW
-/= in SRCW: decrease/increase SRCW size

Patch: GDBW output is truncated.
cgdb/scroller.cpp:146
https://github.com/cgdb/cgdb/pull/269

refer to:
https://github.com/cgdb/cgdb/blob/master/doc/cgdb.texi

webrtc备忘录

名词

1
2
3
4
5
6
7
I帧: Intra-coded picture
P帧: Predictive-coded Picture
B帧: Bidirectionally predicted picture
GOP: Group of Pictures
IDR: Instantaneous Decoding Refresh
DTS: Decoding Time Stamp
PTS: Presentation Time Stamp

WebRTC 之视频捕获
https://hyjk2000.github.io/2015/04/21/webrtc-video-capture/
https://github.com/uxctx/DesktopLiveStreaming

so动态库只导出指定函数

retain_sym.txt

1
2
func1
func2

ver_script.txt

1
2
3
4
5
6
7
LIBA_1.1 {
	global:
		foo1;
		foo2;
	local:
		*;
};
1
ld -shared --retain-symbols-file=retain_sym.txt --version-script=ver_script.txt tst.o -o tst.so

refer to:
https://blog.csdn.net/chdhust/article/details/79356717
http://blog.sina.com.cn/s/blog_493667730100csde.html
http://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html