注:所有安装在UBUUTU7.10上进行,不保证其他平台有些差异,另外命令也许有些参数也不一定相同。
1、安装 ppp-2.4.3.tar.gz
# tar zxvf php-2.4.3.tar.gz
# cd ppp-2.4.3
# ./configure
# make
# make install
# chmod u+s /usr/local/sbin/pppd
2、安装rp-pppoe
# tar zxvf rp-pppoe-3.6.tar.gz
# cd rp-pppoe-3.6/src
# ./configure --prefix=/usr/local --enable-plugin=../../ppp-2.4.3(刚刚ppp-2.4.3的路径)
# make
# make install
3、复制模块
# cp /usr/local/lib/pppd/2.4.3/* /etc/ppp/plugins
附1:在此处可先做PPPOE-SERVER的测试:
配置:
# cat /etc/ppp/options
lock
crtscts
nobsdcomp
nodeflate
nopcomp
# cat /etc/ppp/pppoe-server-options
auth
require-chap
default-mru
default-asyncmap
lcp-echo-interval 60
lcp-echo-failure 5
ms-dns 202.98.96.68
(本地DNS服务器1,可调整)
ms-dns xxx.xxx.xxx.xxx (本地DNS服务器2,可调整)
noipdefault
noipx
nodefaultroute
noproxyarp
noktune
192.168.0.5:192.168.0.200 (为客户端分配的IP段)
netmask 255.255.255.255
logfile /var/log/pppd.log
# cat
/etc/ppp/chap-secrets
"test" * "123456" *
测试:
启动服务:
# /usr/local/sbin/pppoe-server -k -I eth0 -L 192.168.0.1
-R 192.168.0.5 -N 20
// -k 为内核模式
// -I 为指定接入的网络设备
// -L 本地IP
// -R 远程起始IP
// -N 最大支持连接数
在windows下用拨号程序直接拨号即可,用户名密码为上。没意外情况,将会很顺利。此步通过,即可接着干下面的。
4、安装mysql 5.0.20
添加mysql用户和用户组:
# groupadd mysql
# useradd –g mysql mysql
将源码包解压缩:
# tar zxvf mysql_mysql-5.0.20a.tar.gz
进入生成的目录中并编译安装:
# ./configure –prefix=/usr/local/mysql
# make
# make install
创建配置文件:
# cp support-files/my-medium.cnf /etc/my.cnf
创建mysql授权表:
# cd /usr/local/mysql
# bin/mysql_install_db –-user=mysql
更改文件属主:
# cd /usr/local/mysql
# chown –R root .
# chown –R mysql var
# chgrp –R mysql .
启动mysql:
# bin/mysqld_safe --user=mysql &
(停止mysql的命令是:bin/mysqladmin shutdown –uname -ppasswd)
连接:
# bin/mysql –uroot
对默认的root用户进行设置:
mysql> use mysql;
mysql> update user set
host='localhost',password=password('111111') where Host='localhost' and
user=’root’;
mysql>delete from user where
host=’Admin’;
mysql>create database radius;
退出mysql:
mysql>\q
5、安装freeradius1.1.2
将源码包解压缩:
# tar –zxvf freeradius_version
进入生成的目录中进行编译安装:
编译之前,先处理一下mysql的库,freeradius默认查找libmysqlclient_r.so,可是mysql默认为 libmysqlclient.so,内容完全一样,做个链接即可:(至关重要,否则启动freeradius的时候会提示找不到 rlm_sql_mysql.so:Could not link driver rlm_sql_mysql: file not found)
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
# cd /usr/local/mysql/lib/mysql/
# ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
# cd -
# ./configure –prefix=/usr/local/freeradius
# make
# make install
附2:测试freeradius:
配置:
添加一个帐户:
# vi /usr/local/freeradius/etc/raddb/users
加入如下代码在任意地方
test Auth-Type:=local,
User-Password=="123456",
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 192.168.0.6,
Framed-IP-Netmask = 255.255.255.0
启动freedius:
# /usr/local/freeradius/sbin/radiusd -X (调试模式)
连接:
# /usr/local/freeradius/bin/radtest test 123456 localhost 0
testing123
可在client.conf里更改服务器的密码;
正常的话能接收到 Access-Accept字样,表示成功。接着做下面的:
6、配置freeradius+sql:
# cd /usr/local/freeradius/etc/raddb
将radiusd.conf中authorize和accouting项中的sql前的“#”去掉
更改sql.conf文件中:
server=”localhost”
login=”root”
password=”mysql的root的密码”
radius_db=”radius”
将users中的下面两行注释掉:
DEFAULT Auth-Type = System
(这个是从系统获取帐号和密码来认证)51Testing软件测试网$c!R9kHvSP-C
Fall-Through = 1
# cd /usr/local/mysql
# bin/mysql -uroot -p111111 radius
# bin/mysql –uroot –p111111 radius
mysql>insert into radgroupreply (groupname,attribute,op,value) values
('user','Auth-Type',':=','Local');
mysql>insert into radgroupreply (groupname,attribute,op,value) values
('user','Service-Type',':=','Framed-User');
mysql>insert into radgroupreply (groupname,attribute,op,value) values
('user','Framed-IP-Address',':=','255.255.255.254');
mysql>insert into radgroupreply (groupname,attribute,op,value) values
('user','Framed-IP-Netmask',':=','255.255.255.0');
mysql>insert into radgroupreply (groupname,attribute,op,value) values
('user','Simultaneous-Use',':=','1'); (限制一个帐号只能拨一次)
加入测试账号
x0lx/u)U:o Dy@0
mysql>insert into radcheck (username,attribute,op,value) values
('test','User-Password',':=','test');51Testing软件测试网lf*])Sm6aq?L z3[
测试账号加入组51Testing软件测试网N:[n;meZU'{
mysql>insert into usergroup (username,groupname) values
('test','user');
以后添加帐户只需要进行如下操作即可:
mysql>insert into radcheck (username,attribute,op,value)
values ('用户名','User-Password',':=','密码');51Testing软件测试网lf*])Sm6aq?L z3[51Testing软件测试网N:[n;meZU'{
mysql>insert into usergroup (username,groupname) values
('用户名','user');
测试:
启动radius:
# /usr/local/freeradius/sbin/radiusd –X
执行命令进行测试:
# /usr/local/freeradius/bin/radtest test test localhost 0
testing123
能收到Access-Accept字样即表示成功。
7、配置pppoe进去:
# mkdir /etc/ppp/radiuds
# cd ppp-2.4.3/pppd/plugins/radius/etc
# cp * /etc/ppp/radius
# vi /etc/ppp/options 加上下面两句
plugin /etc/ppp/plugins/radius.so // 注意pppd安装时候radius.so的位置
radius-config-file /etc/ppp/radius/radiusclient.conf
# cat /etc/ppp/radius/radiusclient.conf
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radius/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/ppp/radius/servers
dictionary /etc/ppp/radius/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radius/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
#
cat /etc/ppp/radius/servers
localhost testing123 // testing123是前面设置的radius服务器密码
# vi /etc/ppp/radius/dictionary
主要看最后一行的路径,应为:
INCLUDE /etc/ppp/radius/dictionary.microsoft
8、完全测试
到此为止,整个服务器配置完毕,可以重新启动拨号服务器试看。用SQL里的帐号test/test进行测试,好运.^()^
呵呵