Ubuntu系統下freeradius+pptpd+mysql的VPN服務系統,freeradiuspptpd
/*以下操作為radius伺服器上操作*/#更新源sudo apt-get update#先安裝Mysqlsudo apt-get install -y mysql-server mysql-client #安裝freeradius及所需組件sudo apt-get install -y freeradius freeradius-mysql freeradius-utils freeradius-dialupadmin#從這裡開始,要切換到root使用者,否則看不到freeradius的設定檔。sudo su#修改主設定檔vim /etc/freeradius/radiusd.conf#listen欄位的配置listen { ... ipaddr = * #預設為*,可修改為所需的本機ip地址 type = auth #acct類型下的配置寫法也類似 ... #interface = eth0 #多個網路介面的情況下,可以指定其中一個 ... } #module欄位的配置modules { ... $INCLUDE ${confdir}/modules/ #pap、chap等模組的配置也在該目錄下 ... $INCLUDE sql.conf #反注釋,以開啟sql的相關配置 ... } #修改設定檔 vim /etc/freeradius/sites-enabled/default找到authorize {}模組,注釋掉files(170行),去掉sql前的#號(177行)。找到preacct {}模組,注釋掉files(372行)。找到accounting {}模組,注釋掉radutmp(396行),去掉sql前面的#號(406行)。找到session {}模組,注釋掉radutmp(450行),去掉sql前面的#號(454行)。找到post-auth {}模組,去掉sql前的#號(475行),去掉sql前的#號(563行)。#修改設定檔vim /etc/freeradius/sites-enabled/inner-tunnel找到authorize {}模組,注釋掉files(124行),去掉sql前的#號(131行)。找到session {}模組,注釋掉radutmp(251行),去掉sql前面的#號(255行)。找到post-auth {}模組,去掉sql前的#號(277行),去掉sql前的#號(301行)。#修改用戶端設定檔client 10.0.0.0/16 { #用戶端的ip地址,可以是ip段,如192.168.1.0/24 secret = testing123 shortname = private-network-client } #修改訪問資料庫的設定檔 vim /etc/freeradius/sql.conf sql {database = "mysql" driver = "rlm_sql_${database}" server = "localhost" login = "radius" password = "xxxxxxx" radius_db = "radius" } #建立radius資料庫和使用者 mysql> create database radius; mysql> grant all on radius.* to radius@'%' identified by 'xxxxxx'; mysql> flush privileges; #匯入freeradiu表 cd /etc/freeradius/sql/mysql/ for i in `ls`;do mysql -uroot -pxxxxxx radius < $i; done /*以上操作為radius伺服器上操作*/ ======================================================================================== /*以下操作為pptpd伺服器上操作*/ #在PPTPD伺服器上安裝Freeradius-client,注意使用root編譯 wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.7.tar.gz tar zxvf freeradius-client-1.1.7.tar.gz cd freeradius-client-1.1.7 ./configure make && make install #修改用戶端的設定檔 vim /usr/local/etc/radiusclient/servers x.x.x.x testing123<span style="white-space:pre"></span>//radius伺服器位址及密鑰 vim /usr/local/etc/radiusclient/radiusclient.conf authserver x.x.x.x //radius伺服器位址 #增加字典(重要) wget -c http://small-script.googlecode.com/files/dictionary.microsoft mv dictionary.microsoft /usr/local/etc/radiusclient/ # cat >>/usr/local/etc/radiusclient/dictionary << EOF # INCLUDE /usr/local/etc/radiusclient/dictionary.sip # INCLUDE /usr/local/etc/radiusclient/dictionary.ascend # INCLUDE /usr/local/etc/radiusclient/dictionary.merit # INCLUDE /usr/local/etc/radiusclient/dictionary.compat # INCLUDE /usr/local/etc/radiusclient/dictionary.microsoft # EOF #修改設定檔(重要) vim /usr/local/etc/radiusclient/dictionary #注釋與IPv6有關的行 92:#ATTRIBUTE Framed-IPv6-Prefix 97 ipv6prefix 100:#ATTRIBUTE Framed-IPv6-Address 168 ipv6addr 101:#ATTRIBUTE DNS-Server-IPv6-Address 169 ipv6addr 102:#ATTRIBUTE Route-IPv6-Information 170 ipv6prefix #與PPTP整合 sed -i 's/logwtmp/\#logwtmp/g' /etc/pptpd.conf sed -i 's/radius_deadtime/\#radius_deadtime/g' /usr/local/etc/radiusclient/radiusclient.conf sed -i 's/bindaddr/\#bindaddr/g' /usr/local/etc/radiusclient/radiusclient.conf #注意:32作業系統的radius.so路徑為/usr/lib/pppd/2.4.5/radius.so,這裡是64位的路徑 echo plugin /usr/lib64/pppd/2.4.5/radius.so >> /etc/ppp/options.pptpd echo radius-config-file /usr/local/etc/radiusclient/radiusclient.conf >> /etc/ppp/options.pptpd /*以上操作為pptpd伺服器上操作*/ ======================================================================================================================== /*以下操作為radius伺服器上操作*/ #Mysql添加認證帳號 #添加demo使用者並加入到user使用者組 mysql>INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('demo','Password',':=','demo'); mysql> INSERT INTO radusergroup (username,groupname) VALUES ('demo','user'); #debug模式啟動freeradius freeradiusd -X #正式啟動 /etc/init.d/freeradius start
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。