pptpd+radius.docx
- 文档编号:7161149
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:9
- 大小:18.96KB
pptpd+radius.docx
《pptpd+radius.docx》由会员分享,可在线阅读,更多相关《pptpd+radius.docx(9页珍藏版)》请在冰豆网上搜索。
pptpd+radius
最近两天花精力把PPPOE拨号服务器做了一下,因为网上这方面的资料少得可怜,
所以觉得有必要记录一下,用以方便今后需要做这些东西的同志们。
硬件环境:
C42.6/256M/80GIDEHD/intel82801集成网卡。
软件环境:
Debiansarge3.1r0netinst
用到的包:
ppp-2.4.3.tar.gz
ppp-2.4.3-mppe-mppc-1.1.patch.gz
linux-2.4.30.tar.bz2
linux-2.4.30-mppe-mppc-1.3.patch.gz
rp-pppoe-3.5.tar.gz
mysql-4.1.12.tar.gz
freeradius-1.0.4.tar.gz
其中的ppp-2.4.3.tar.gz在http:
//ppp.samba.org/可以下载到
linux-2.4.30.tar.bz2在http:
//www.kernel.org/可以下载到
ppp-2.4.3-mppe-mppc-1.1.patch.gz和linux-2.4.30-mppe-mppc-1.3.patch.gz
可以在下载到
rp-pppoe-3.5.tar.gz在
可以下载到
mysql-4.1.12.tar.gz可以在下载到
freeradius-1.0.4.tar.gz可以在http:
//www.freeradius.org/下载到。
网络情况:
IP:
192.168.1.123
mask:
255.255.254.0
gateway:
192.168.0.1
dns:
192.168.0.2
下面开始:
我的系统一开始就给我装了ppp和pppoe,为了自立更生,我还是把他们删掉了,debian下做这个坏事比较方便:
#apt-getremoveppppppconfigpppoepppoeconf
1、重编译内核,加入PPP和PPPOE的支持;
首先解压内核源码,然后把MPPC+MPPE的补丁打上。
之后就makemenuconfig,加入以下支持:
codematurityleveloptions——>;[*]promptfordevelopmentand/orincompletecode/drivers
networkingoptions——>;[*]packetsocket[*]packetsocket:
mmappedio
networkdevicesupport——>;
characterdevices——>;[*]non-standardserialportsupport
[M]hdlclinedisciplinesupport
Cryptographicoptions--->;
[M]SHA1digestalgorithm
[M]ARC4cipheralgorithm
按照上面的配置重新编译内核,然后安装内核,并用它启动完毕后,备用。
2、创建一个/dev/ppp设备文件,这是ppp拨号所必需的。
#mknod--mode=664/dev/pppc1080
3、确保/etc/modules.conf里面有如下几行:
aliaschar-major-108ppp_generic
aliastty-ldisc-3ppp_async
aliastty-ldisc-13n_hdlc
aliastty-ldisc-14ppp_synctty
aliasnet-pf-24pppoe
4、安装ppp-2.4.3.tar.gz
解压缩之后,打上ppp-2.4.3-mppe-mppc-1.1.patch.gz补丁,然后编译安装:
#tarzxvfphp-2.4.3.tar.gz
#gunzipppp-2.4.3-mppe-mppc-1.1.patch.gz
#patch-p0 #cdppp-2.4.3 #./configure #make #makeinstallinstall-etcppp #chmodu+s/usr/local/sbin/pppd #cd.. 5、安装rp-pppoe #tarzxvfrp-pppoe-3.5.tar.gz #cdrp-pppoe-3.5/src #./configure--prefix=/usr/local--enable-plugin=../../ppp-2.4.3 #make #makeinstall 6、把生成的rp-pppoe.so/radius.so等模块复制到ppp的配置目录里 #cp/usr/local/lib/pppd/2.4.3/*/etc/ppp/plugins 7、配置/etc/ppp/options #cat/etc/ppp/options lock crtscts nobsdcomp nodeflate nopcomp 8、配置/etc/ppp/pppoe-server-options #cat/etc/ppp/pppoe-server-options auth require-chap default-mru default-asyncmap lcp-echo-interval60 lcp-echo-failure5 ms-dns192.168.0.2 ms-dns61.132.90.92 noipdefault noipx nodefaultroute noproxyarp noktune 10.0.0.1: 10.0.0.200 netmask255.255.255.255 logfile/var/log/pppd.log *这里192.168.0.2和61.132.90.92是我使用的dns *10.0.0.1: 10.0.0.200是客户端分配的IP区间 9、设置密码文件(先实现文本文件密码认证) #cat/etc/ppp/chap-secrets hefish*123456* 10、启动pppoe拨入服务: /usr/local/sbin/pppoe-server-k-Ieth0-L192.168.1.123-R10.0.0.1-N128 *-k使用PPP的kernelmode *-Ieth0启动pppoe拨号接入的网卡设备 *-L本地地址IP *-R客户端起始IP *-N最大并发连接数 11、启动IP转发,使客户端可以通过pppoe服务器访问外网。 #echo1>;/proc/sys/net/ipv4/ip_forward #iptables-tnat-APOSTROUTING-oeth0-jMASQUERADE-s0/0 启动之后就可以使用PPPOE拨号接入了。 客户端可以采用win2000+raspppoe或者WinXP自带的pppoe,我用的win2003+raspppoe就不行,改用win2003自带的PPPOE就好了,想必也是软件压缩的问题,按理说我打了MPPC补丁,应该是支持软件压缩了,这个问题以后再说吧。 如果拨号之后无法访问拨号服务器,那就把客户端的PPP设置里面的启用软件压缩去掉,即可。 先休息一下。 稍候继续。 --------------------------------------------------------- 上回书说到,我们用ppp+rp-pppoe架设了pppoe的拨号服务器,采用了文本文件的认证方式,这回我们要说ppp如何使用radius来认证,radius认证的好处我就不多说了,一方面支持数据库,另一方面支持计费。 1、先装mysql,这就不多说了; 2、把freeradius安装一下; freeradius是个很周到的东西,考虑到了n多种后台,什么oracle,mssql,ldap都支持,mysql更是不在话下。 没说的,就安装: #tarzxvffreeradius-1.0.4.tar.gz #cdfreeradius-1.0.4 #./configure--prefix=/usr/local/freeradius #make #makeinstall 有一点要说明,freeradius需要openssl库,所以如果系统里没安装的话,还是要事先安装一下的。 3、配置freeradius; 1)修改clients.conf #vi/usr/local/freeradius/etc/raddb/clients.conf client127.0.0.1{ secret=123456 shortname=localhost nastype=other } 这里secret=123456表示从127.0.0.1这个客户端连接radius服务所需要用的密码。 2)修改naslist,加入: #vi/usr/local/freeradius/etc/raddb/naslist localhostlocalportslave 3)编辑users,加入用户: (这个用户是保存在文本文件里的,做测试用) #vi/usr/local/freeradius/etc/raddb/users hefishAuth-Type: =local, User-Password==123456, Service-Type=Framed-User, Framed-Protocol=PPP, Framed-IP-Address=10.0.0.2, Framed-IP-Netmask=255.255.255.0 4)启动radiusd,测试radiusd服务: #/usr/local/freeradius/sbin/radiusd-X #/usr/local/freeradius/bin/radtesthefish123456localhost0123456 如果有类似Access-Accept的字样出现,则表示radius开始工作了。 下一步就是要培植radiusd用mysql来认证。 5)先在mysql里面创建数据库; #/usr/local/mysql/bin/mysqladmin-uroot-pcreateradius #cdfreeradius-1.0.4/src/modules/rlm_sql/drivers/rlm_sql_mysql #/usr/local/mysql/bin/mysql-uroot-pradius 6)编辑radius.conf使其支持mysql认证; #vi/usr/local/freeradius/etc/raddb/radius.conf authorize{ preprocess chap mschap suffix sql ... } accounting{ ... sql ... } 7)编辑sql.conf,使radius可以访问mysql #vi/usr/local/freeradius/etc/raddb/sql.conf sql{ driver="rlm_sql_mysql" server="localhost" login="root" password="mysql的密码" radius_db="radius" //剩下的配置就默认吧(如果您要做用户帐号/网卡MAC/电话号码绑定之类的东西,那就例外,可以改下面的配置) } 8)向数据库里增加一些数据; #/usr/local/mysql/bin/mysql-uroot-pradius 先加入一些组信息: insertintoradgroupreply(groupname,attribute,op,value)values('user','Auth-Type',': =','Local'); insertintoradgroupreply(groupname,attribute,op,value)values('user','Service-Type','=','Framed-User'); insertintoradgroupreply(groupname,attribute,op,value)values('user','Framed-IP-Netmask','=','255.255.255.255'); insertintoradgroupcheck(groupname,attribute,op,value)values("user","Auth-Type",": =","Local"); 然后加入用户信息: insertintoradcheck(username,attribute,op,value)values('heyu','User-Password','==','123456'); 然后把用户加到组里: insertintousergroup(username,groupname)values('heyu','user'); 9)为了让radius能正确地调用mysql,还要指定一下库的位置: #echo/usr/local/freeradius/lib>;>;/etc/ld.so.conf #ldconfig 10)启动radiusd,做一下测试: #/usr/local/freeradius/sbin/radiusd-X #/usr/local/freeradius/bin/radtestheyu123456localhost0123456 看到Access-Accept之类的字样就表示OK了。 这时可以正式启动radiusd #/usr/local/freeradius/sbin/radiusd 4、配置pppd,使其和radius一起工作; 1)建立一个/etc/ppp/radius目录,用来存放radius的配置,然后把ppp-2.4.3里面的radius相关配置复制过来: #mkdir/etc/ppp/radiuds #cdppp-2.4.3/pppd/plugins/radius/etc #cp*/etc/ppp/radius 2)编辑/etc/ppp/options,加上radius支持 #vi/etc/ppp/options加上下面两句 plugin/etc/ppp/plugins/radius.so//注意pppd安装时候radius.so的位置 radius-config-file/etc/ppp/radius/radiusclient.conf 3)编辑radiusclient.conf文件,如下: (主要是修改一些默认的文件路径,其他没什么要改的) #cat/etc/ppp/radius/radiusclient.conf auth_orderradius login_tries4 login_timeout60 nologin/etc/nologin issue/etc/ppp/radius/issue authserverlocalhost: 1812 acctserverlocalhost: 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_timeout10 radius_retries3 login_local/bin/login 4)编辑servers,设定radius服务器的位置 #cat/etc/ppp/radius/servers localhost123456//这里的123456是我前面设置的访问radius服务器的密码 5)编辑dictionary,修改一些路径设置,主要是最后一个dictionary.microsoft的路径设置 #vi/etc/ppp/radius/dictionary .. ... INCLUDE/etc/ppp/radius/dictionary.microsoft 6)可以拨号看看了,用数据库里面的帐号登录看看,应该是能登录了。 所有的登录记录,都会保存在mysql的radacct表里面,统计十分方便。 goodluck....
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pptpd radius