openwrt广告环境搭建

笔者通过在路由器上搭建Provioxy代理服务器来实现过滤通过其对网页,并植入相应对广告。

废话不多说直接上实验:

第一步:准备固件

编译OpenWrt固件-选择Privoxy

第二步:修改配置文件

配置user.filter, user.action, config文件。

config文件中需要指定监听都地址与端口号

[cpp] 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. root@YSWiFi:/etc/privoxy# cat config confdir /etc/privoxy logdir /var/log filterfile default.filter filterfile user.filter #logfile privoxy actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations listen-address 10.1.1.1:8118 toggle 1 enable-remote-toggle 1 enable-remote-http-toggle 0 enable-edit-actions 1 enforce-blocks 0 buffer-limit 4096 forwarded-connect-retries 0 accept-intercepted-requests 1 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 300 socket-timeout 300 permit-access 10.1.1.0/24 debug 1 # show each GET/POST/CONNECT request debug 4096 # Startup banner and warnings debug 8192 # Errors - *we highly recommended enabling this* #admin-address privoxy-admin@example.com

28.

29.

30. #proxy-info-url /proxy-service.html root@YSWiFi:/etc/privoxy#

在user.action中注入广告脚本 xxx.js

具体参考我的脚本 https:///qianguozheng

user.filter中添加过滤规则

[cpp] 1.

2. FILTER: block-weeds

s|</head>|<script type="text/javascript" src="/ystest/js/hupu.js"></script>$0|

user.action中调用过滤规则 [cpp]

1.

2.

{+filter{block-weeds}} .*

将所有目标地址为80端口的请求转到8118端口

[cpp] view plaincopyprint?

1. iptables -t nat -A PREROUTING -s 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-ports 8118

第三步:体验结果

这时候,当你打开网页的时候,你会发现原来世界那么容易控制, 每个网页都有你所想看到都东西。

 

第二篇:openwrt系统用AP+WDS模式搭建无线中继详细教程

Openwrt实现两台AP的无线中继

网络拓扑图:

2012-4-14 14:00:55 上传

下载附件 (31.38 KB)

AP1(主)的配置:(网段如192.168.15.1)

(外网线接Secondary eth0

openwrt系统用APWDS模式搭建无线中继详细教程

口,不能接LAN口,否则不通外网,需另配eth1)

1. DHCP开启

2. Mode选择AP(WDS)

3. 配置network

config 'interface' 'loopback' option 'ifname' 'lo' option 'proto' 'static'

option 'ipaddr' '127.0.0.1' option 'netmask' '255.0.0.0'

config 'interface' 'lan'

option 'ifname' 'eth0'

openwrt系统用APWDS模式搭建无线中继详细教程

option 'type' 'bridge'

option 'proto' 'static'

option 'netmask' '255.255.255.0' option 'ipaddr' '192.168.15.2' #option 'gateway' '192.168.15.1'

config 'interface' 'wan'

option 'ifname' 'eth1'

option 'proto' 'dhcp'

4. 配置Wireless,使用默认配置

config 'wifi-device' 'radio0'

option 'type' 'mac80211'

option 'channel' '11'

option 'macaddr' '00:15:6d:3c:c9:bb' list 'ht_capab' 'SHORT-GI-40' list 'ht_capab' 'TX-STBC'

list 'ht_capab' 'RX-STBC1'

list 'ht_capab' 'DSSS_CCK-40' option 'disabled' '0'

option 'txpower' '27'

option 'hwmode' '11g'

config 'wifi-iface'

option 'device' 'radio0'

option 'network' 'lan'

option 'mode' 'ap'

option 'encryption' 'psk2'

option 'key' 'aaaaa11111'

option 'wds' '1'

option 'ssid' 'OpenWrt WDS'

5. 编辑Firewall 文件,把几个config里面的REJECT改成ACCEPT

AP2(客)的配置:(网段如192.168.16.1)*网段不能相同,否则会导致有线的包无法通过主AP的wan口(如:配192.168.15.2,则会导致无法连接外网)。

1. 关闭DHCP

2. Mode选择Client(WDS)+AP;

*注意:

Client(WDS)模式的ESSID必须与Access Point(WDS)命名相同,相同之后AP2会自动扫描到有匹配模式的AP的mac地址并自动添加,因此无需在命令行中相互添加对方的mac地址,即可实现中继,方便简捷,如果没有看见BSSID中有mac地址,就返回检查,肯定哪一步没设置好,或者参数不相同无法匹配。)如下图(此图名字跟上面ssid命名不同,是过后总结时在另外一台AP上截图下来的,不碍事,关键看椭圆圈起来的是否有获取到的

openwrt系统用APWDS模式搭建无线中继详细教程

MAC

地址):

3. Network配置

config 'interface' 'loopback'

option 'ifname' 'lo'

option 'proto' 'static'

option 'ipaddr' '127.0.0.1' option 'netmask' '255.0.0.0'

config 'interface' 'lan'

option 'ifname' 'eth0'

option 'type' 'bridge'

option 'proto' 'static'

option 'netmask' '255.255.255.0'

openwrt系统用APWDS模式搭建无线中继详细教程

option 'defaultroute' '0'

option 'peerdns' '0'

option 'ipaddr' '192.168.15.1'

config 'interface' 'wan'

option 'ifname' 'wlan0'

option 'proto' 'static'

option 'netmask' '255.255.255.0'

option 'ipaddr' '192.168.15.168' // 添加一个静态地址 option 'gateway' '192.168.15.2' // 填写主AP的网关 option 'defaultroute' '0'

option 'peerdns' '0'

option 'dns' '192.168.15.2' //填写主AP的网关 也可以动态获取,(静态的有时比较稳定)

如下:

option 'ifname' 'eth1'

option 'proto' 'dhcp'

4. Wireless默认配置(各个参数必须与主AP相同)

config 'wifi-device' 'radio0'

option 'type' 'mac80211'

option 'channel' '11'

option 'macaddr' '00:15:6d:3c:ca:25' list 'ht_capab' 'SHORT-GI-40'

list 'ht_capab' 'TX-STBC'

list 'ht_capab' 'RX-STBC1'

list 'ht_capab' 'DSSS_CCK-40'

option 'txpower' '27'

option 'hwmode' '11g' option 'disabled' '0'

config 'wifi-iface'

option 'device' 'radio0'

option 'network' 'lan'

option 'ssid' 'OpenWrt WDS'

option 'mode' 'sta'

option 'wds' '1'

option 'encryption' 'psk2'

option 'key' 'aaaaa11111'

config 'wifi-iface'

option 'device' 'radio0'

option 'ssid' 'XINBO'

option 'network' 'lan'

option 'mode' 'ap'

option 'encryption' 'psk2'

option 'key' 'aaaaa11111'

5. Firewall改成ACCEPT.

6. 测试,运行-- cmd用AP2 ping AP1, 通了,再测试ping外网的连接状态,有线无线都通了,中继大功告成。

7. 搭好WDS之后,如果希望中继单独使用一个essid,则可以在AP1另外再中添加一个mode为Access Point 的条目(点击Add entry即可添加),用于作为无线接入,此时最好把Acces Point的essid隐藏掉(Hide Essid)。

8. 总结:

(1) 俩AP必须设成不同网段,否则无线可以实现中继,而通过有线连接到AP2的电脑将无法通外网。

(2) DHCP获取到的是AP1分配的地址,否则无法上网,如手动设置需注意这点。

(3) 还有一种中继,也可以实现,配置为:AP1设置为单一的Access Point模式,AP2设置为Client和AP模式(network和wireless设置跟上面方法类似),此种方式也可以实现中继的功能,但是连接有线和无线的PC无法自动获取IP,需要手动设置才可以上网,比较麻烦。其他区别有待研究。

(4) 设置的时候要注意两台AP下的wireless的各个参数要保存一直,如信道、加密方式等,细节问题有时候很误事。

openwrt系统用APWDS模式搭建无线中继详细教程