CentOS 6.2 PPTP FreeRADIUS MySQL搭建VPN

转载 2013年12月05日 14:08:56
本文描述尽可能使用系统自带的软件发行包来搭建VPN,考虑到使用尽可能高版本的PPTP,freeRadius等,选择了CentOS的最新版6.2
1、安装CentOS6.2 
为了简化系统,选择最下化安装,然后根据需要安装所需软件包
#yum install mysql mysql-server freeradius*  pptp* gcc make
2、配置freeRadius
[root@vpn3-1 ~]# cd /etc/raddb/
[root@vpn3-1 raddb]# cp sites-available/default sites-available/default.sav
[root@vpn3-1 raddb]# vi sites-enabled/default 
 在所有的unix和files前面加上注释,并去掉所有sql前面的注释。如果要减少日志数量,把 detail注视掉
[root@vpn3-1 raddb]# vi radiusd.conf 
去掉$include sql.conf前面的注释。
[root@vpn3-1 raddb]# vi clients.conf
添加NAS信息
#client some.host.org {
#       secret          = testing123
#       shortname       = somehost
#}

#client 10.10.2.3 {
#       secret          = testing123
#       shortname       = localhost2
#}
其中,每一个NAS对应一组,提供的信息有:NAS的IP或域名;加密字符串(Nas配置一致);accounting用的名字
对应localhost,已有缺省配置。
[root@vpn3-1 raddb]# vi sql.conf
        # Connection info:
        server = "localhost"
        #port = 3306
        login = "radius"
        password = "radpass"

        # Database table configuration for everything except Oracle
        radius_db = "radius"
以上是缺省值,可根据实际需要修改的是 server、port、login、password。
[root@vpn3-1 raddb]# vi sql/mysql/dialup.conf 
取消
sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}"
前面的注释,把下一行注释掉。

同时如果需要打开simultanoues-use(控制同时在线用户数)的话需要把simul_query_check取消注释。

3、建立基本数据库:
[root@vpn3-1 raddb]# service mysqld start
初次启动,数据库初始化
并执行了
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h vpn3-1.xxx.com  password 'new-password'

[root@vpn3-1 raddb]# mysql -u root -p
mysql> create database radius;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on radius.* to radius@localhost identified by "radpass";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit

[root@vpn3-1 raddb]# mysql -uradius -p radius < /etc/raddb/sql/mysql/schema.sql 
Enter password: 

mysql> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Auth-Type',':=','Local');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Service-Type',':=','Framed-User');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Address',':=','255.255.255.255');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Netmask',':=','255.255.255.0');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Acct-Interim-Interval',':=','600');
Query OK, 1 row affected (0.00 sec)