命令说明
tcpdump [option] <expression>
选项
-n
不将IP转换为域名
-nn
协议,IP,端口都保持数字形式,不转换为对应名字
-i interface
指定接口
-A 使用ASCII解释数据包
-w file
packet存储到文件(pcap格式),可用wireshark来分析
常用例子
DNS
tcpdump port 53
ISAKMP
tcpdump port 500
HTTP
tcpdump -A tcp port 80
tcpdump [option] <expression>
-n
不将IP转换为域名
-nn
协议,IP,端口都保持数字形式,不转换为对应名字
-i interface
指定接口
-A 使用ASCII解释数据包
-w file
packet存储到文件(pcap格式),可用wireshark来分析
DNS
tcpdump port 53
ISAKMP
tcpdump port 500
HTTP
tcpdump -A tcp port 80
regedit /s *.reg
NT6-HDD-Installer
安装参考其帮助信息
win$man
win$man
Win6Ins_v1.2.0.62
UltraISO
打开镜像文件setup.exe
安装setup.exe
VPS服务商:digitalocean
VPS系统:ubuntu-14.04-64
VPN:strongSwan-5.1.2
apt-get install build-essential
aptitude install libgmp10 libgmp3-dev libssl-dev pkg-config libpcsclite-dev libpam0g-dev
下载源码
wget http://download.strongswan.org/strongswan-5.1.2.tar.bz2
解压
tar -jxvf strongswan-5.1.2.tar.bz2 & cd strongswan-5.1.2
生成Makefile
./configure --prefix=/usr --sysconfdir=/etc --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap --disable-static --enable-shared --enable-md4 --enable-eap-mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2 --enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls
编译安装
make && make install
生成私钥
ipsec pki --gen --outform pem > caKey.pem
基于这个私钥自己签一个CA证书
ipsec pki --self --in ca.pem --dn "C=CN, O=strongSwan, CN=107.170.222.166" --ca --outform pem > caCert.pem
生成私钥
ipsec pki –gen –outform pem > serverKey.pem
基于这个私钥自己签一个CA证书
ipsec pki –pub –in serverKey.pem | ipsec pki –issue –cacert caCert.pem –cakey caKey.pem –dn “C=CN, O=strongSwan, CN=107.170.222.166” –san=”107.170.222.166” –flag serverAuth –flag ikeIntermediate –outform pem > serverCert.pem
注:
- VPS的公网IP即自己的VPS的IP
生成私钥
ipsec pki --gen --outform pem > clientKey.pem
基于这个私钥自己签一个 CA 证书
ipsec pki --pub --in clientKey.pem | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=CN, O=strongSwan, CN=client" --outform pem > clientCert.pem
将该证书转换为P12
格式
openssl pkcs12 -export -inkey clientKey.pem -in clientCert.pem -name "client" -certfile caCert.pem -caname "strongSwan CA" -out clientCert.p12
使用winscp
等工具将该证书clientCert.p12
下载到本地
cp caCert.pem /etc/ipsec.d/cacerts/
cp serverCert.pem /etc/ipsec.d/certs/
cp serverKey.pem /etc/ipsec.d/private/
1 | config setup |
1 | : RSA serverKey.pem |
1 | charon { |
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.11.1.0/24 -o eth0 -j MASQUERADE #地址与上面地址池对应
iptables -A FORWARD -s 10.11.1.0/24 -j ACCEPT #同上
Note:为避免VPS重启后NAT功能失效,可以把如上5行命令添加到 /etc/rc.local 文件中,添加在exit那一行之前即可。
strongSwan
ipsec restart
Note:可以追加--nofork
选项,帮助调试
win7
参考https://wiki.strongswan.org/projects/strongswan/wiki/Win7Certs
参考https://wiki.strongswan.org/projects/strongswan/wiki/Win7Config
tchar.h
1 |
为什么不直接定义#define _T(x) L ## x
呢?
因为在处理类似_T(__FILE__)
时,会被拓展成L__FILE__
,而L__FILE__
则是未定义标识符
为什么这样能做到?
_T(__FILE__)
先拓展__FILE__
,在插入到该表达式,然后进行合并操作
这两个宏都是为了控制API是使用UNICODE版还是ANSI版。
若定义了,则相关的API为*W
版本(UNICODE版),如GetWindowTextW
若未定义,则相关的API为*A
版本(ANSI版),如GetWindowTextA
UNICODE
宏影响windows API
_UNICODE
宏影响C运行库以及MFC,作用与UNICODE
用来解决ANSI编码和wchar相关字符编码问题
因为ANSI并不是一种固定的编码方式,其取决于当前LOCALE。
所以mbtowc
根据LC_CTYPE
来决定源的编码方式,将其转换为wchar
。
程序默认启动LC_ALL
为C
。
标准IO
当使用wchar提供的宽字节版的IO操作函数时,内部需要使用mbtowc族函数进行编码转换