歡迎您光臨本站 註冊首頁

遊戲代理VPN(pptp+radius+mysql) 安裝筆記總結

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

遊戲代理VPN(pptp+radius+mysql) 安裝筆記總結

軟體:pptp+radius+mysql
平台:linux,可以是各發行版,內核最好是2.6以上的
我的測試平台是RHEL5 beta1,內核 2.6.18-1.2747.el5xen
這個版本有個好處,就是內核已支持MPPE,不用再安裝

首先要確定內核是否支持mppe
方法: modprobe ppp-compress-18 && echo ok
如果顯示ok,即表示內核已具備了mppe支持

如不支持,需要升級內核以支持mppe
軟體下載 http://sourceforge.net/project/showfiles.php?group_id=44827
下載2個rpm包。
dkms-2.0.10-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
dkms是一個新的軟體,能讓你在不編譯內核的基礎上,外掛一些內核的模塊。
kernel_ppp_mppe就是mppe支持的內核模塊
OK后最好重起下你的系統

安裝pppd
也可以在上面的地址下載,但只可以下載RPM包,最高版本為 ppp-2.4.3-5.rhel4.i386.rpm,也有FC的
源碼下載可以到 http://samba.org/ppp/download.html,最新版本為 ppp-2.4.4b1.tar.gz
最新版已支持 mppe,不用再打補丁
如不支持,可以到此下載 http://mppe-mppc.alphacron.de/#AEN56,包括ppp和內核補丁
檢查pppd是否支持mppe
# strings `which pppd`|grep -i mppe|wc --lines
42
結果大於36,即表示支持
解壓安裝
tar -zxvf ...
configure,make,make install
用 make install-etcppp 來安裝範例配置文件

安裝pptpd
下載 http://sourceforge.net/project/showfiles.php?group_id=44827
最新版本,源碼包的是 pptpd-1.3.4.tar.gz
RPM包的是 pptpd-1.3.3-1.rhel4.i386.rpm,FC6
解壓安裝 tar -zxvf ...
configure,make,make install

配置
pppd 的配置文件 /etc/ppp
pptpd 的配置文件 /etc/pptpd.conf
在pptpd.conf
localip 10.10.10.1
remoteip 10.10.110.2-100
localip是pptpd的對外服務的ip,也就是客戶端需要撥號的ip
remoteip是撥號伺服器分配給撥號用戶的ip ,可以用-表示ip範圍

添加測試用戶 /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
test pptpd test *

認證方式設置 /etc/ppp/options.pp
默認就可以用,如果不mppe,或是不用加密,可以在此文件設置


為方便測試,請打開debug和dump調試,並查看/var/log/messages 文件

啟動pptpd后,就可以在XP建立連接測試了

以上一個簡單的VPN就完成了.



結合radius

軟體下載 http://www.freeradius.org
當前最新版本為 freeradius-server-2.0.4.tar.bz2
但與1.X的配置方式上,有比較大的區別.
我開始是用2.X測試的,但沒成功,最後用了1.X的.有空再研究2.X的.

解壓安裝
tar -zxvf ...,configure,make,make install

配置
從pppd的源碼目錄把下面這個目錄複製到/etc/radiusclient/
cp -R ppp-2.4.4b1/pppd/plugins/radius/etc  /etc/radiusclient/

修改 options.pptpd
在最後加入
plugin /usr/local/lib/pppd/2.4.4b1/radius.so

配置 /etc/radiusclient中的servers和radiusclient.conf
在servers中,你需要增加一個radiusd的地址和密碼
localhost       vpn
這裡localhost表示你的radiusd就在本機,並且訪問的密碼是vpn


在radiusclient.conf中 加入
authserver      localhost:1812
acctserver      localhost:1813
確認上面也是本地的,默認就是本地,所以一般不需要修改。
同時確保這個文件中radiusclient相關的路徑所有的路徑都是 /etc/radiusclient 開頭的。

配置freeradius
在 freeradius/etc/raddb 下
修改clients.conf
這裡說明一下,所有的nas都是radiusd的client,nas就是那個pptpd,所以這個文件就是配置pptpd的登陸許可權的。
client 127.0.0.1      {
                        secret = vpn
                        shortname = mm
                        nastype     = other
                        }

修改127.0.0.1部分為上面的樣子。secret就是我們剛才在/etc/radiusclient中servers里設置的那個。這兩個要一致

在users文件的最上面加入一個用戶
ww Auth-Type:= MS-CHAP, User-Password=="ww", Simultaneous-Use:=1
          Service-Type = Framed-User,
          Framed-Protocol = PPP,
          Framed-IP-Address = 255.255.255.254,
          Framed-IP-Netmask = 255.255.255.0

說明一下 ww是用戶名
auth-type是驗證的類型
第二個ww是密碼
Simultaneous-Use是允許這個用戶名同時登陸的個數

所有這些都是check屬性,要寫在第一行
然後第二行開始用tab開頭,是伺服器返回給radius客戶端的(也就是返回給pptpd)時reply屬性。
其中ip地址設置為255.255

用debug模式運行radiusd
sbin/radiusd -x

測試,在XP建個VPN連接,用戶密碼均為 ww



結合mysql
mysql安裝略過.
建立一個radius資料庫,把結構導入即可
庫結構文件在 freeradius16/share/doc/freeradius/examples/mysql.sql
配置sql.conf 在安裝目錄下的etc/raddb
修改sql.conf的連接信息
        # Connect info
        server = "192.168.8.53"
        login = "radius"
        password = "radius"

        # Database table configuration
        radius_db = "radius"

去掉下面的simul。。。。前面的#
打開sql的用戶同時連接數測試的語句
        # Uncomment simul_count_query to enable simultaneous use checking
         simul_count_query = "SELECT COUNT(*) FROM ${acct_table1} WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0"


配置radiusd.conf

註釋掉 authorize {
的files
去掉sql前的註釋

註釋掉 preacct {
的files

註釋掉 accounting {

的radutmp
去掉sql前面的#

註釋掉 session{
的radutmp
去掉sql前面的#

去掉 post-auth {
sql前的#

總之就是去掉files模塊,開啟sql模塊


在資料庫中添加用戶
在usergroup中添加一個test用戶,組名為vpn
在radgroupcheck中添加一個vpn組,
attribute為Simultaneous-Use
op為:=
value為1
的紀錄

在radcheck中添加
username為test
attribute為 User-Password
op為==
value為test

這樣就添加了一個用戶為test,組為vpn,密碼為test
並且所有的組用戶的都只能1個用戶名登陸一次

測試
用debug模式啟動radiusd

本文為安裝筆記總結,前些天忙,今天才整理完.如有問題錯誤等可以和我聯繫QQ:5846690
轉載請保留此連接:http://www.vrlinux.cn/gaojijishu/fuwuqi/20080604/13228.html

本文參考了 http://www.chinaunix.net/jh/50/698648.html,謝謝 i_amok 的文章

[ 本帖最後由 vrlinux.cn 於 2008-6-4 11:49 編輯 ]
《解決方案》

是否可以介紹下 radius 作用? 證書的基本概念?
至今還暈著.
《解決方案》

原帖由 C.J 於 2008-6-4 17:46 發表 http://bbs.chinaunix.net/images/common/back.gif
是否可以介紹下 radius 作用? 證書的基本概念?
至今還暈著.


radius是認證與計帳用的.就是驗證用戶名和密碼,同時提供日誌記帳服務

證書就是替代用戶名和密碼的一種安全方法.採用公鑰與私鑰結合.

你可以參考我的一些文章:http://blog.chinaunix.net/u/9284/
《解決方案》

自己頂一下:mrgreen:
《解決方案》

不錯,感謝樓主分享
《解決方案》

古代的mppe文章流毒不輕啊

內核自帶mppe已經好幾年了,現在竟然還有認提到打補丁這回事……唉
《解決方案》

原帖由 julyclyde 於 2008-6-11 12:17 發表 http://bbs.chinaunix.net/images/common/back.gif
古代的mppe文章流毒不輕啊

內核自帶mppe已經好幾年了,現在竟然還有認提到打補丁這回事……唉


內核自帶好幾年了,這個還不知道.孤陋寡聞了,呵呵
但我在AS4上,就是沒有,在AS4U4上也沒有,怪事
而且還是會有新手會有這樣的問題
《解決方案》

原帖由 julyclyde 於 2008-6-11 12:17 發表 http://bbs.chinaunix.net/images/common/back.gif
古代的mppe文章流毒不輕啊

內核自帶mppe已經好幾年了,現在竟然還有認提到打補丁這回事……唉
確實是..呵呵..已經自帶了.至少我的 centos 3開始我記得冒似就開自帶了.
《解決方案》

這樣子是不是沒辦法支持ssl加密的
《解決方案》

原帖由 julyclyde 於 2008-6-11 12:17 發表 http://bbs.chinaunix.net/images/common/back.gif
古代的mppe文章流毒不輕啊

內核自帶mppe已經好幾年了,現在竟然還有認提到打補丁這回事……唉

內核自帶的不支持mppc, 所以我的kernel 2.6.18都有打patch

[火星人 ] 遊戲代理VPN(pptp+radius+mysql) 安裝筆記總結已經有583次圍觀

http://coctec.com/docs/service/show-post-28941.html