标签 wifidog配置 下的文章

wifidog认证实现路由器插入广告

现在有很多免费的wifi 访问网页的时候底部会出现一些广告,以下为的实现过程:

1.在路由器上抓http的TCP/IP包,解压,对比,并重新算校验码,打包,并转发

如果没有很深入对的TCP/IP的了解,肯定做不了

2.使用现场的一些带过滤的代理软件(其实也是实现以上过程,但已封装好接口,不需要你在去了解TCP/IP的高深知识)

 在IPTABLE上转做好端口转发,比如把80转发到此代理的上,如8080

以下为第2种实现,基于openwrt(目前国内绝大部分广告路由的实现方式,没高大上的代码,但方式消耗更多的资源,不建议使用)

安装

http://www.privoxy.org/user-manual/actions-file.html#ADD-HEADER

修改配置文件

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
#proxy-info-url http://www.example.com/proxy-service.html

在user.filter 中添加规则

FILTER: block-weeds  
s|</head>|<script type="text/javascript" src="http://www.yourdomainname.com/ystest/js/hupu.js"></script>$0|

把用户规则加入到服务 user.action

{+filter{block-weeds}}
.*

把访问80的转向到你的本地代理服务器,如果你弄有wifidog时候,将要一些判断

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

如果一些普通的商家路由,此方法没任何问题,自己写个C小程序管理下配置等.

增加百度推广 user.action (哎,有钱大家赚....) 其他首页推广类似实现.

{+redirect{?tn=baiduerr}}
www.baidu.com/$
{+redirect{s@tn=\w+@tn=baiduerr@}}
www.baidu.com/s\?

配置注释:

##config
#配置在线手册
user-manual ./doc/user-manual/
#不信任的网页
trust-info-url  http://www.example.com/why_we_block.html
#出错时候管理员的邮箱
admin-address privoxy-admin@example.com
#不可访问时候的地址
proxy-info-url http://www.example.com/proxy-service.html
#配置目录
confdir .
#日志目录
logdir .
#模板目录
templdir .
#所有动作
actionsfile match-all.action
#基于网址过滤(系统带,过滤广告地址)
actionsfile default.action
#基于网址过滤(自定义)
actionsfile user.action
#基于内容过滤(系统带,去除一些网站广告内容)
filterfile default.filter
#基于内容过滤(自定义) 
filterfile user.filter
#日志文件
logfile privoxy.log
#日志等级
debug 1
#监听的地址
listen-address 127.0.0.1:8118
#启用内容切换
toggle 1
#是否可以网页上开启内容切换
enable-remote-toggle 0
#内容切换后是否使用特殊的HTTP头
enable-remote-http-toggle 0
#是否可以在网页上编辑网络行为
enable-edit-actions 0
#被禁止的页面是否可以被用户解封
enforce-blocks 0
#缓存大小
buffer-limit 4096
#代理验证
enable-proxy-authentication-forwarding 0
forwarded-connect-retries 0
#
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
#活动链接超时
keep-alive-timeout 5
#流水线送达,访问页面不正常禁用
tolerate-pipelining 1
#SOCKET 超时
socket-timeout 300

本文章由http://www.wifidog.pro/2015/04/03/wifidog%E8%AE%A4%E8%AF%81%E5%AE%9E%E7%8E%B0%E5%B9%BF%E5%91%8A%E6%8F%92%E5%85%A5.html 整理编辑,转载请注明出处

wifidog 配置radius配置文件radiusd.conf分析

Radiusd.conf文件是freeradius的核心配置文件,其中设置了 服务器的基本信息, 配置文件与日志文件的环境变量,并详细配置freeradius模块所使用的信息, 与认证和计费所使用模块的配置. 配置的变量定义的形式为${foo},他们就在这个文件上,并且不随请求到请求而改变. 变量的格式参照 variables.txt.

1.1 环境变量
此处定义其他配置文件以及目录的位置,也就是环境变量

prefix = /usr/local

exec_prefix = ${prefix}

sysconfdir = ${prefix}/etc

localstatedir = ${prefix}/var

sbindir = ${exec_prefix}/sbin

logdir = ${localstatedir}/log/radius

raddbdir = ${sysconfdir}/raddb

radacctdir = ${logdir}/radacct

配置文件和日志文件的位置

confdir = ${raddbdir}

run_dir = ${localstatedir}/run/radiusd

日志文件的信息,添加到如下配置文件的底部

log_file = ${logdir}/radius.log

1.2 全局配置
模块的位置由 libdir来配置。

如果不能工作,那么你可以从新配置,从新Build源码,并且使用 共享库。

pidfile: Where to place the PID of the RADIUS server.

pidfile = ${run_dir}/radiusd.pid

user/group

如果有评论,服务器会运行 用户/组 启动它. 修改用户/组,必须具有root权限启动服务器

这里的含义是指定启动radius服务可以限定操作系统上的用户和组,但是不建议启动它.

#user = nobody

#group = nobody

最长请求时间(秒),这样的问题经常需要存在在应用SQL数据库时候,建议设置为5秒到120秒之间.

max_request_time = 30

当请求超过最长请求时间的时候,可以设置服务器删除请求.

当你的服务在threaded(线程下)运行,或者 线程池(thread pool) 模式,建议这里设置为no.

但用threaded 服务设置为yes时,有可能使服务器崩溃.

delete_blocked_requests = no

在 reply 发送给NAS后的等待清空时间. 建议 2秒 到 10秒

cleanup_delay = 5

服务器的请求最大数 ,建议值 256 到无穷

max_requests = 1024

让服务器监听某个IP,并且从次IP发送 相应 信息. 主要是为了 服务器同时具有多服务器时候使用.

bind_address = *

可以指定raidus的使用端口号,使用0表示使用默认的radius端口, 在配置文件 /etc/services配置.

port = 0

如果需要服务器同时监听其他的IP,可以用listen 块. 下面是例子

#listen {

# IP address on which to listen.

# Allowed values are:

# dotted quad (1.2.3.4)

# hostname (radius.example.com)

# wildcard (*)

# ipaddr = *

# Port on which to listen.

# Allowed values are:

# integer port number (1812)

# 0 means "use /etc/services for the proper port"

# port = 0

# Type of packets to listen for.

# Allowed values are:

# auth listen for authentication packets

# acct listen for accounting packets

#

# type = auth

#}

hostname_lookups大概是表示为NAS查找它的域名信息?可以通过域名配置NAS?

hostname_lookups = no

是否允许 core dumps.

allow_core_dumps = no

expressions支持,规则和扩展.

regular_expressions = yes

extended_expressions = yes

记录User-Name属性的全称.

log_stripped_names = no

是否记录认证请求信息到日志文件

log_auth = no

当请求被拒绝时记录密码, 当请求正确时记录密码

log_auth_badpass = no

log_auth_goodpass = no

是否允许用户名冲突,即重复同用户同时登陆.强烈不建议启用重复用户.

usercollide = no

将用户名 小写化, 将密码小写化.

lower_user = no

lower_pass = no

是否去除用户名和密码中的空格

nospace_user = no

nospace_pass = no

程序执行并发检查(不理解含义)

checkrad = ${sbindir}/checkrad

安全 配置 域

security {

指在Radius包中的最大属性数目.设置为0表示无穷大.

max_attributes = 200

发送 Access-Reject 包时候,可以设置一定的延迟,以缓慢DOS攻击,也可以缓慢穷举破解用户名和密码的攻击

reject_delay = 1

服务器是否对状态服务器的请求信息进行相应.

status_server = no

}

PROXY CONFIGURATION

代理域.

是否开启代理服务,具体配置参照 ${confdir}/proxy.conf

proxy_requests = yes

$INCLUDE ${confdir}/proxy.conf

Clients配置

$INCLUDE ${confdir}/clients.conf

是否启用snmp配置,具体配置文件在snmp.conf

snmp = no

$INCLUDE ${confdir}/snmp.conf

线程池 配置 域

thread pool {

启动时服务的个数.(在启动Mysql模块后可以明显看到.)当同时进行的请求数超过5个时,会增加线程服务.

start_servers = 5

最大的服务数

max_servers = 32

当少于最少空闲服务时,它会建立服务,大于最大空闲服务时会停止多余的服务.

最少空闲服务,与最大空闲服务.

min_spare_servers = 3

max_spare_servers = 10

每个server最大的请求数.当有内存漏洞时,可能需要配置.

max_requests_per_server = 0

}

1.3 模块配置
1.3.1 PAP 模块

# Supports multiple encryption schemes 支持多种加密方式

# clear: Clear text 明文

# crypt: Unix crypt Unix 加密

# md5: MD5 ecnryption MD5加密

# sha1: SHA1 encryption. SHA1加密

# DEFAULT: crypt 默认是Unix加密

pap {

encryption_scheme = crypt

}

1.3.2 CHAP模块
chap {

authtype = CHAP

}

1.3.3 PAM模块
PAM模块 (PAM) 是行业标准验证框架,

鉴于很多系统的PAM库都有内存漏洞,所以不建议使用。

pam {

pam_auth = radiusd

}

1.3.4 UNIX 系统用户的 认证模块
unix {

cache = no

cache_reload = 600

# passwd = /etc/passwd

# shadow = /etc/shadow

# group = /etc/group

radwtmp = ${logdir}/radwtmp

}

1.3.5 EAP模块
详细见${confdir}/eap.conf

$INCLUDE ${confdir}/eap.conf

1.3.6 MSCHAP 模块
mschap {

#use_mppe = no

#require_encryption = yes

#require_strong = yes

# 为了纠正window发送chap时有时包括域,有时又不包括域的信息.

#with_ntdomain_hack = no#ntlm_auth = "/path/to/ntlm_auth –request-nt-key –username=%{Stripped-User-Name:-%{User-Name:-None}} –challenge=%{mschap:Challenge:-00} –nt-response=%{mschap:NT-Response:-00}"

}

1.3.7 LDAP 配置 <SPAN style="FONT-SIZE: 9pt; COLOR:

本文章由 http://www.wifidog.pro/2015/03/27/wifidog%E9%85%8D%E7%BD%AE%E5%88%86%E6%9E%90.html 整理编辑,转载请注明出处

wifidog无线认证RADIUS 配置指南

RADIUS 是通信网络中负责认证、鉴权、计费的服务节点。它通常和各种网络接入服务节点相连,如路由器、交换机、RAS、等各种网络接入服务器(NAS)。由于 RADIUS 和各种网络接入服务器是通过标准 RFC 协议进行连接交互,所以 RADIUS 和各种网络接入服务器的配置方法也非常相似,下面就以 WinRadius 和 3COM 公司的 RS 1500 进行举例说明。
出于安全性考虑,每个网络接入服务器(NAS)通常和两个 RADIUS 相连接,这两个 RADIUS 处于主备份关系,即 primary 和 secondary。网络接入服务器(NAS)和 RADIUS 之间的接口有两个:认证(accounting)接口、计费(authentication)接口。每个接口的配置参数主要都是:RADIUS IP、port、secret 三个。secret 是安全配置参数,只要网络接入服务器(NAS) 和 RADIUS 相同即可。
网络接入服务器(NAS)通常采用 Telnet 方式进行配置,您只需在 Windows、Linux/Unix 下运行 telnet 命令就可以启动 Telnet 连接,等连接到网络接入服务器(NAS)后,您只需输入相应的配置命令即可,例如:

  • 关闭 RADIUS 命令:disable accounting、disable authentication remote。
  • 打开 RADIUS 命令:enable accounting、enable authentication remote。
  • 配置 RADIUS 命令:set accounting、set authentication。
    主要配置参数为:
    primary_port
    primary_secret <"secret_string">
    primary_server [IP_address or host_name]
    retransmissions
    secondary_port
    secondary_secret <"secret string">
    secondary_server [IP_address or host_name]
    timeout [number_seconds]
  • 调试 RADIUS 命令:show accounting、show accounting settings、show
    authentication、show authentication settings

RADIUS 服务器的配置主要是 port、secret 两个。如果您的 RADIUS 服务器和多个网络接入服务器(NAS),而不同网络接入服务器(NAS)又使用了不同的 secret,这时您需要为每个网络接入服务器(NAS)指定对应的 secret,即在 WinRadius 的"配置/多重密钥"中指定即可。
另外,大多数网络接入服务器(NAS)都有简单的认证功能。但是几乎全部商用网络接入都需要配置 RADIUS 服务器来实现复杂的认证、鉴权、计费功能。

本文章由 http://www.wifidog.pro/2015/03/27/wifidog%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97.html 整理编辑,转载请注明出处