Gamepad & WSN

iptables解决电信劫持购物网站

作者: Gamepader    分类: Network    标签: , ,     评论: 2    超过0人围观

起因: 下午在家准备剁手, 突然发现打开某些B2C购物网站, 会自动跳转到p.yiqifa.com, 然后再带着小尾巴跳转回去, 不爽, 怒投诉, 和小白客服解释半天, 威胁ta直接按照我说的填投诉单即可. 后续有客服打电话来, 死活不承认是他们的问题,  一开始是怀疑浏览器插件,无果, 于是怒抓包, 发现确实是收到了包含javascript跳转指令的数据包:

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
GET / HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*
Referer: //www.jd.com/?utm_source=jd.com
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.jd.com
DNT: 1
Connection: Keep-Alive

收到数据包:

HTTP/1.1 200 OK
Connection: close
Content-Type: text/html;charset=GBK
Content-Language: zh-CN
Server: CNGA
Cache-Control: no-cache
Content-Length: 212

<html>
<head>
<script language="javascript"> location.replace("//p.yiqifa.com/n?k=2mLErntOWZLErI6H2mqXUOAwMKgHWEK7rnReWEwm1QLO6nUH2mqerI6HMn2S6OKe3EMH2L--&t=//www.jd.com/") </script>
</head>
</html>

发现该伪造的响应存在一系列问题, 最明显的特征是TCP FLAGS为0x18.... 0000 0001 1000 = Flags: 0x018 (PSH, ACK), 想起iptables里面能匹配--tcp-flags, 于是准备在路由器上建立防火墙规则, 丢弃这个包含劫持信息的数据包:

1
2
iptables -A INPUT -p tcp --tcp-flags ALL PSH,ACK -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL PSH,ACK -j DROP

至此, 问题完全解决.

参考文献:
//windtear.net/2009/10/iptables_drop_reset.html

05-09
2015

单独更新SVN Repo中间某个目录下的几个文件的简便方法

作者: Gamepader    分类: 碎碎念        评论: 0    超过0人围观

需求:有一个比较大的svn版本库,现需要更新其中的少数几个文件(位于根目录下的几个config),但是本地没有完整checkout下来这个库.

思路:单独checkout这几个文件,本地更新,再commit

解决办法:

svn co -N svn://xxx
[edit files]
svn commit -c “this is a commit log”

04-28
2015

编译libressl-2.1.6出错解决

作者: Gamepader    分类: Network    标签: , , ,     评论: 1    超过0人围观

nginx-1.7.11,使用libressl-2.1.6作为openssl库时,编译过程中出错, 错误提示为undefined reference to 'clock_gettime'
解决思路:g++没有链接”实时共享库”librt.so,需要手动修改g++命令行参数,添加-lrt.
解决办法:修改nginx-1.7.11/objs/Makefile,在第4行LINK =  $(CC)后面添加-lrt,变成LINK =  $(CC) -lrt
保存,make,成功~

附上nginx-1.7.11使用libressl-2.1.6,并开启SNI支持的编译参数:
--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-http_spdy_module --with-openssl=../libressl-2.1.6 --with-openssl-opt=enable-tlsext --add-module=../substitutions4nginx-read-only

update:
另外一个解决办法:
在ngingx-1.7.11 configure时,添加参数 –with-ld-opt=”-lrt” 即可.
参考来源:

03-28
2015
loading...