Vmware完全卸载方法(工作站系列)

Posted in 服务器 on 02月 17th, 2012 by Strong

cls
@echo off
CLS
color 0a
echo 取消DLL文件的注册…
pause
regsvr32 /u /s “%cd%/vmappcfg.dll”
regsvr32 /u /s “%cd%/vmappsdk.dll”
regsvr32 /u /s “%cd%/vmdbCOM.dll”
regsvr32 /u /s “%cd%/vmhwcfg.dll”
regsvr32 /u /s “%cd%\V2V\IntraProcessLogging.dll”
regsvr32 /u /s “%cd%\V2V\reconfig.dll”
regsvr32 /u /s “%cd%\V2V\vhdcvtcom.dll”
regsvr32 /u /s “%cd%\V2V\vmc2vmx.dll”
regsvr32 /u /s “%cd%\V2V\vpcCvt.dll”
echo 正在删除虚拟网卡,请稍后……
pause
:delete VM Network
start /wait vnetlib — remove adapter vmnet1
start /wait vnetlib — remove adapter vmnet8
start /wait vnetlib — remove dhcp vmnet1
start /wait vnetlib — remove dhcp vmnet8
start /wait vnetlib — remove nat vmnet8
:delservice
echo 正在删除服务…
pause
call :删除服务 vmnetbridge
call :删除服务 VMAuthdService
call :删除服务 vmx86
call :删除服务 VMnetAdapter
call :删除服务 “VMware NAT Service”
call :删除服务 “VMnetDHCP”
call :删除服务 VMnetuserif
call :删除服务 hcmon
call :删除服务 Vmparport
call :删除服务 vstor2-ws60
call :删除服务 vstor2
call :删除服务 vmkbd
“%cd%\VMMount\vmount2.exe” /Unregserver
netcfg -u vmware_bridge
echo.
:delfile
echo 删除安装的文件….
pause
call :删除文件 %systemroot%\inf\vmnet.sys
call :删除文件 %systemroot%\inf\vmnetBridge.dll
call :删除文件 %systemroot%\inf\netbridge.inf
call :删除文件 %systemroot%\inf\vmnetBridge.sys
call :删除文件 %systemroot%\inf\vmusb.cat
call :删除文件 %systemroot%\inf\vmusb.inf
call :删除文件 %systemroot%\inf\vmusb.sys
call :删除文件 %systemroot%\inf\netadapter.inf
call :删除文件 %systemroot%\inf\vmnetAdapter.sys
call :删除文件 %systemroot%\inf\vnetinst.dll
call :删除文件 %systemroot%\lastgood\system32\drivers\vmnetadapter.sys
call :删除文件 %systemroot%\lastgood\system32\drivers\vmnet.sys
call :删除文件 %systemroot%\lastgood\system32\drivers\vmnetbridge.sys
call :删除文件 %systemroot%\system32\drivers\vmnetadapter.sys
call :删除文件 %systemroot%\system32\drivers\vmnet.sys
call :删除文件 %systemroot%\system32\drivers\vmnetbridge.sys
call :删除文件 %systemroot%\system32\drivers\vmusb.sys
call :删除文件 %systemroot%\system32\drivers\hcmon.sys
call :删除文件 %systemroot%\system32\drivers\vmnetuserif.sys
call :删除文件 %systemroot%\system32\drivers\vmparport.sys
call :删除文件 %systemroot%\system32\drivers\vmx86.sys
call :删除文件 %systemroot%\system32\NETCFG.EXE
call :删除文件 %systemroot%\system32\choice.exe
call :删除文件 %systemroot%\system32\devcon.exe
::以下两句删除用户的配置文件(即虚拟机文件)默认不删除,需要删除请将下面两句前面的::去掉
::rd /s /q %APPDATA%\vmware
::rd /s /q “\Virtual Machines”
echo.
:delreg
echo 删除注册表….
reg delete “HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.” /f
:deluser
echo 删除用户__vmware_user__…
net user __vmware_user__ /delete
net localgroup __vmware__ /delete
pause>nul|echo
goto :eof
:删除文件
echo 正在删除文件 %*
del /f /q “%*” >nul 2>nul
goto :eof
:删除服务
echo 正在删除服务 %*
net stop %* 2>nul
sc delete %*
goto :eof

Linux PPTPD+MYSQL+Radius 安装整套方案 第二篇 MySql部分

Posted in Linux, VPN, 服务器 on 05月 29th, 2011 by Strong


1.需要软件,什么都不需要。

你只要给各mysql的库就好了,库结构在

freeradius源码目录下的/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql

你建立一个数据库就好了,我在我自己的机器上建立了一个名字为radius的数据库

并且导入了这个数据库的结构。

2。配置sql.conf

先回到刚才的freeradius的配置文件目录

cd /usr/local/freeradius-1.1.0/etc/raddb


vi sql.conf

修改连接信息


# Connect info
server = “192.168.8.53″
login = “radius”
password = “radius”
# Database table configuration
radius_db = “radius”

# 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″

3.配置radiusd.conf

注释掉 authorize {
的files
去掉sql前的注释


注释掉 preacct {
的files


注释掉 accounting {
的radutmp
去掉sql前面的#


注释掉 session{
的radutmp
去掉sql前面的#


去掉 post-auth {
sql前的#


总之就是去掉files模块,开启sql模块



4。在数据库中添加用户

在usergroup中添加一个test用户,组名为vpn

在radgroupcheck中添加一个vpn组,
attribute为Simultaneous-Use
op为:=
value为1
的纪录

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


这样就添加了一个用户为test,组为vpn,密码为test
并且所有的组用户的都只能1个用户名登陆一次


5.测试
用debug模式启动radiusd

会看到


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=222, length=146

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “test”

MS-CHAP-Challenge = 0xb6a9e94b94c3c386875043efd5144e17

MS-CHAP2-Response = 0x38006d78036bb5e40ddeca0ce96b944619e000000000000000007b887b8762be38eb111a94a4b581925b85e07453a38a070f

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

rlm_sql (sql): Reserving sql socket id: 4

rlm_sql (sql): Released sql socket id: 4

rlm_sql (sql): Reserving sql socket id: 3

rlm_sql (sql): Released sql socket id: 3

rlm_sql (sql): Processing sql_postauth

rlm_sql (sql): Reserving sql socket id: 2

rlm_sql (sql): Released sql socket id: 2

Sending Access-Accept of id 222 to 127.0.0.1 port 32768

MS-CHAP2-Success = 0x38533d33453434464142394232444230413143464539453832444536453534373331383833454238414536

MS-MPPE-Recv-Key = 0x53a3812a0fd5b6f7b1cf4f6f6796f26b

MS-MPPE-Send-Key = 0xb8be60559cbc46fd4da277516d6584f3

MS-MPPE-Encryption-Policy = 0×00000002

MS-MPPE-Encryption-Types = 0×00000004

rad_recv: Accounting-Request packet from host 127.0.0.1:32768, id=223, length=110

Acct-Session-Id = “43EC0822056A00″

User-Name = “test”

Acct-Status-Type = Start

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = “192.168.8.53″

Acct-Authentic = RADIUS

NAS-Port-Type = Async

Framed-IP-Address = 10.10.110.1

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Acct-Delay-Time = 0

rlm_sql (sql): Reserving sql socket id: 1

rlm_sql (sql): Released sql socket id: 1

Sending Accounting-Response of id 223 to 127.0.0.1 port 32768

如果你把Simultaneous-Use改成0


会看到


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “test”

MS-CHAP-Challenge = 0x2295d4d65913cbc0a7836e986fe4a998

MS-CHAP2-Response = 0x34001739a3331c1a1a938eed99cda89b691f0000000000000000a8a9e9ae2eadaa6b1acb93e368113dc4ed47dac0a20b1ed8

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

rlm_sql (sql): Reserving sql socket id: 4

rlm_sql (sql): Released sql socket id: 4

rlm_sql (sql): Reserving sql socket id: 3

rlm_sql (sql): Released sql socket id: 3

rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146

Sending Access-Reject of id 225 to 127.0.0.1 port 32768

Reply-Message := “\r\nYou are already logged in – access denied\r\n\n”






Tags: , , ,

Linux PPTPD+MYSQL+Radius 安装整套方案 第二篇 Radius部分

Posted in Blog技术, Linux, VPN, 服务器 on 05月 25th, 2011 by Strong


1。需要软件

freeradius

原先pppd源码目录中的一些关于radius外挂模块的配置文件。

2。安装freeradius的前期准备

安装mysql-devel.i386

yum install mysql-devel.i386

3。安装freeradius

http://www.freeradius.org

下载源码,我测试的时候是用 freeradius-1.1.0

用指定安装目录的方法安装


./configure –prefix=/usr/local/freeradius-1.1.0
make
make install

./configure –prefix=/usr/local/freeradius-1.1.0makemake install

4。配置pppd支持radius

4.1拷贝文件

从pppd的源码目录把下面这个目录复制到/etc/radiusclient/

cp -R ppp-2.4.4b1/pppd/plugins/radius/etc  /etc/radiusclient/

4.2修改options.pptpd中的配置

在/etc/ppp/options.pptpd

中加入


plugin /usr/local/lib/pppd/2.4.4b1/radius.so


4.3 配置 /etc/radiusclient中的servers和radiusclient.conf

在servers中,你需要增加一个radiusd的地址和密码


[root@kdfng radiusclient]# cat servers

#Server Name or Client/Server pair              Key

#—————-                               —————

#portmaster.elemental.net                       hardlyasecret

#portmaster2.elemental.net                      donttellanyone

localhost       netdragon

这里localhost表示你的radiusd就在本机,并且访问的密码是netdragon


radiusclient.conf中


# service. if this fails also a compiled in default is used.

authserver      localhost:1812


# RADIUS server to use for accouting requests. All that I

# said for authserver applies, too.

#

acctserver      localhost:1813


确认上面也是本地的,默认就是本地,所以一般不需要修改。
同时确保这个文件中radiusclient相关的路径所有的路径都是 /etc/radiusclient 开头的。


5。配置freeradius

cd /usr/local/freeradius-1.1.0/etc/raddb

raddb这个目录就是所有的freeradius配置文件所在了

5.1 修改clients.conf

这里说明一下,所有的nas都是radiusd的client,nas就是那个pptpd,所以这个文件就是配置pptpd的登陆权限的。


client 127.0.0.1      {

secret = netdragon

shortname = iamok

nastype     = other

}


修改127.0.0.1部分为上面的样子。secret就是我们刚才在/etc/radiusclient中servers里设置的那个。这两个要一致


5.2 在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.255.254表示ip地址的分配是由radius客户端决定的,也就是由pptpd决定。
最后一个是子网掩码。


5.3用debug模式运行radiusd

../../sbin/radiusd -x

你会看到


Starting – reading configuration files …

Using deprecated naslist file.  Support for this will go away soon.

Module: Loaded exec

rlm_exec: Wait=yes but no output defined. Did you mean output=none?

Module: Instantiated exec (exec)

Module: Loaded expr

Module: Instantiated expr (expr)

Module: Loaded PAP

Module: Instantiated pap (pap)

Module: Loaded CHAP

Module: Instantiated chap (chap)

Module: Loaded MS-CHAP

Module: Instantiated mschap (mschap)

Module: Loaded eap

rlm_eap: Loaded and initialized type md5

rlm_eap: Loaded and initialized type leap

rlm_eap: Loaded and initialized type gtc

rlm_eap: Loaded and initialized type mschapv2

Module: Instantiated eap (eap)

Module: Loaded preprocess

Module: Instantiated preprocess (preprocess)

Module: Loaded files

Module: Instantiated files (files)

Module: Loaded Acct-Unique-Session-Id

Module: Instantiated acct_unique (acct_unique)

Module: Loaded realm

Module: Instantiated realm (suffix)

Module: Loaded detail

Module: Instantiated detail (detail)

Module: Loaded radutmp

Module: Instantiated radutmp (radutmp)

Initializing the thread pool…

Listening on authentication *:1812

Listening on accounting *:1813

Ready to process requests.

6。测试

建立一个新的vpn连接

用户名ww密码ww

然后拨号

成功的话,会看到。


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=214, length=144

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “ww”

MS-CHAP-Challenge = 0x729e2492953298b498a766e778defe74

MS-CHAP2-Response = 0xfc00475dd294431a52ee1187d13127c3bf49000000000000000043aad8bb5cd6f5ece16ddae9d20c63d857836053b2197144

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Sending Access-Accept of id 214 to 127.0.0.1 port 32768

Service-Type = Framed-User

Framed-Protocol = PPP

Framed-IP-Address = 255.255.255.254

Framed-IP-Netmask = 255.255.255.0

MS-CHAP2-Success = 0xfc533d31303637323037453037384244433138333441303536434337433044373046363942414446343039

MS-MPPE-Recv-Key = 0x0211fcb6f599479e8ee0a7d8a16a3252

MS-MPPE-Send-Key = 0x91242cedc84a2dc69355c56951119065

MS-MPPE-Encryption-Policy = 0×00000002

MS-MPPE-Encryption-Types = 0×00000004

rad_recv: Accounting-Request packet from host 127.0.0.1:32768, id=215, length=108

Acct-Session-Id = “43EBFF39048300″

User-Name = “ww”

Acct-Status-Type = Start

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = “192.168.8.53″

Acct-Authentic = RADIUS

NAS-Port-Type = Async

Framed-IP-Address = 10.10.110.1

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Acct-Delay-Time = 0

Sending Accounting-Response of id 215 to 127.0.0.1 port 32768

这样pptp+radius的部分就完成了,下面一部分是对radiusd增加mysql的支持

用ctrl+c退出radius









 

Tags: , , ,

Linux PPTPD+MYSQL+Radius 安装整套方案 第一篇 PPTPD安装

Posted in Linux, VPN, 服务器 on 05月 25th, 2011 by Strong

1.你所需要的软件 
内核最好能升级到2.6
如果你是centos的用户,可以通过yum update来升级到最新的centos4.2
升级内核是为了待会安装一个内核模块增加对mppe的支持。这样才能支持pptp拨号。

2.确定你的内核是否支持mppe

modprobe ppp-compress-18 && echo ok

如果显示ok,那么恭喜,你的内核已经具备了mppe支持。请到第4部分

3。升级内核支持mppe

http://sourceforge.net/project/showfiles.php?group_id=44827

到上面这个网址。下载2个rpm包。

dkms-2.0.6-1.noarch.rpm 
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

dkms是一个新的软件,能让你在不编译内核的基础上,外挂一些内核的模块。
kernel_ppp_mppe就是mppe支持的内核模块了。

ok后重起你的系统。

4。安装pppd

http://www.samba.org/ppp

在上面的网址下载最新的ppp软件包,我测试的时候是 ppp-2.4.4b1
用最常规的方法,configure,make,make install
由于新版的没有复制范例配置文件,需要用 make install-etcppp 来安装范例配置文件

5。安装pptpd

http://poptop.sourceforge.net/

在上面的网址下载最新的pptpd包,我测试的时候是pptpd-1.2.3

也是最常规的方法 configure,make,make install

6。配置你的pppd和pptpd

pppd的默认配置文件在 /etc/ppp

pptpd的配置文件在 /etc/pptpd.conf

pptpd和pppd的关系好比 pptpd是pppd的外挂一样。

6.1 
/etc/pptpd.conf中需要配置的地方只有几个

你首先要确定下面这个
ppp  /usr/local/sbin/pppd

他给pptpd指名了pppd的所在

option /etc/ppp/options.pptpd

这个说明了pptpd在ppp下的配置文件

localip 192.168.8.22

remoteip 10.10.110.1-100

localip是pptpd的对外服务的ip,也就是客户端需要拨号的ip
remoteip是拨号服务器分配给拨号用户的ip ,可以用-表示ip范围

6.2
配置/etc/ppp/options.pptpd

为了测试,请打开debug和dump


# Logging
# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
debug
# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
dump

# Logging
# Enable connection debugging facilities.# (see your syslog configuration for where pppd sends to)debug
# Print out all the option values which have been set.# (often requested by mailing list to verify options)dump

默认的信息会写在/var/log/messages


6.3
编辑 /etc/ppp/chap-secrets

添加一个测试用户


# Secrets for authentication using CHAP

# client        server  secret                  IP addresses

“iamok” pptpd   “iamok” *

第一个iamok是用户,第二个iamok是密码 ,*表示任意ip
pptpd表示和/etc/ppp/options.pptpd中的name 部分的pptpd要匹配,一般不用修改,我们只是
测试以下pptpd是否正常。


7。测试你的pptpd

如果是默认安装,你在任意路径打pptpd就可以了。

如果成功,你就会在 
/var/log/messages里面看到


Feb 10 09:51:46 kdfng pptpd[926]: MGR: Manager process started

Feb 10 09:51:46 kdfng pptpd[926]: MGR: Maximum of 100 connections available

然后你可以在任意一个win2k系统上建立一个vpn连接,用pptp方式的,用户名用上面设置的,这样你就能拨号了
而且ip就是你在上面所设置的ip


现在复查以下log文件


Feb 10 09:54:53 kdfng pptpd[937]: MGR: Manager process started

Feb 10 09:54:53 kdfng pptpd[937]: MGR: Maximum of 100 connections available

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Client 192.168.8.53 control connection started

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Starting call (launching pppd, opening GRE)

Feb 10 09:55:06 kdfng pppd[940]: pppd options in effect:

Feb 10 09:55:06 kdfng pppd[940]: debug          # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: nologfd                # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: dump           # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: require-mschap-v2              # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-pap             # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-chap            # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-mschap          # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: name pptpd             # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: 115200         # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: lock           # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: local          # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: ipparam 192.168.8.53           # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: 192.168.8.22:10.10.110.1               # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: nobsdcomp              # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: require-mppe-128               # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: pppd 2.4.4b1 started by root, uid 0

Feb 10 09:55:06 kdfng pppd[940]: Using interface ppp0

Feb 10 09:55:06 kdfng pppd[940]: Connect: ppp0 <–> /dev/pts/1

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

Feb 10 09:55:06 kdfng pppd[940]: MPPE 128-bit stateless compression enabled

Feb 10 09:55:08 kdfng pppd[940]: local  IP address 192.168.8.22

Feb 10 09:55:08 kdfng pppd[940]: remote IP address 10.10.110.1

Feb 10 09:55:17 kdfng pppd[940]: LCP terminated by peer (^Z^HEO^@<M-Mt^@^@^@^@)

Feb 10 09:55:17 kdfng pppd[940]: Connect time 0.2 minutes.

Feb 10 09:55:17 kdfng pppd[940]: Sent 0 bytes, received 3492 bytes.

Feb 10 09:55:17 kdfng pppd[940]: Modem hangup

Feb 10 09:55:17 kdfng pppd[940]: Connection terminated.

Feb 10 09:55:17 kdfng pppd[940]: Exit.

Feb 10 09:55:17 kdfng pptpd[939]: CTRL: Client 192.168.8.53 control connection finished

这样你的pptpd就配置完成了。






Tags: , , ,

PPTP/L2TP With FreeRadius + MySQL on Debian(VPN服务器教程)

Posted in Linux, VPN, 日志, 服务器 on 05月 22nd, 2011 by Strong

(转自小顾de杂记 原文出处:http://ihipop.info/2011/05/2332.html)

设置freeradius server部分

apt-get install freeradius freeradius-mysql
cd /etc/freeradius/
#启用sql.conf
sed -ie ‘s/^[ \t]#\$INCLUDE sql.conf$/\$INCLUDE sql.conf/’ radiusd.conf
#取消sites-available/default每个SQL前面的注释
sed -ie ‘s/^#[ \t]sql$/sql/’ sites-available/default

此外 还需要取消sites-available/default里面所有unix和PAM

(如果有必要)否则和系统同名的帐户就可能有登录问题

另外radutmp和file也可以注释

用了SQL方式后这些都没有必要了

vim sql.conf

填写数据库用户名 密码 数据库名字等
然后停止radius服务 启用radius调试模式

freeradius  -X
试一下
radtest sqltest testpwd localhost 1812 testing123
应该是不通过Access-Reject packet 才对
同时开freeradius  -X的那个终端会打印消息 说明ok了
 freeradius server部分设置完毕

设置radiusclient部分

查看PPP版本 apt-cache policy pppppp: 已安装:2.4.4rel-10.1 候选的软件包:2.4.4rel-10.1 版本列表: *** 2.4.4rel-10.1 0 500 http://mirrors.163.com lenny/main Packages 100 /var/lib/dpkg/status 找到PPPD官网找到PPP2.4.4的源代码 wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz tar zxvf ppp-2.4.4.tar.gz cd ppp-2.4.4/pppd/plugins/radius/ cp -rf etc /etc/radiusclient 当然 也可以在这里找到ftp://ftp.freeradius.org/pub/freeradius/ 修改修改里面所有usr开头的路径为etc开头 sed -ie "s/\/usr\/local\/etc\/radiusclient/\/etc\ /radiusclient/g" /etc/radiusclient/radiusclient.conf vim /etc/radiusclient/radiusclient.conf 按需要修改radius认证服务器的端口和路径 authserver localhost:1812 acctserver localhost:1813 写入Radius认证服务起和密钥对 比如 localhost testing123 radiusclient部分设置完毕

设置mysql server+daloradius部分

写这篇文章的时候 刚好daloradius0.9-9-rc1出来了 这是三年来首次更新(虽然SVN一直在更新)先装依赖(PHPDB)
apt-get install php5-gd php-pear php-db
wget http://sourceforge.net/projects/daloradius
/files/daloradius/daloradius0.9-9/daloradius-0.9-9-rc1.tar.gz
解压缩放到web目录下面
 先用PHPmyAdmin创建一个radius/radius用户
 同时创建一个同名数据库 赋予所有权限,然后
cd contrib/db/
#导入数据库
mysql -uradius -pradius radius
<fr2-mysql-daloradius-and-freeradius.sql
 cd ../../library/
vim daloradius.conf.php
设定CONFIG_DB_USER CONFIG_DB_PASS CONFIG_DB_NAME以及其他为对应的值
 然后创建一些基本用户组什么的
INSERT INTO `radius`.`radgroupcheck` (
`id` ,
`groupname` ,
`attribute` ,
`op` ,
`value`
)
VALUES (
NULL , 'user', 'Simultaneous-Use', ':=', '1'
), (
NULL , 'vip', 'Simultaneous-Use', ':=', '3'
);

INSERT INTO `radius`.`radgroupreply` (
`id` ,
`groupname` ,
`attribute` ,
`op` ,
`value`
)
VALUES (
NULL , 'user', 'Acct-Interim-Interval', ':=', '300'
), (
NULL , 'vip', 'Acct-Interim-Interval', ':=', '600'
);

使用默认密码administrator/radius登录daloradius,
然后用daloradius添加一个用户test 隶属于user用户组 使用radtest测试下
radtest test pwd localhost 1812 testing123
Sending Access-Request of id 1 to 127.0.0.1 port 1812
 User-Name = "test"
 User-Password = "pwd"
 NAS-IP-Address = 127.0.1.1
 NAS-Port = 1812
 rad_recv: Access-Accept packet from
 host 127.0.0.1 port 1812, id=1, length=20
mysql server+daloradius部分设置完毕
locate radius.so
查找radius.so的位置 一般是/usr/lib/pppd/2.4.4/
 编辑xl2tpd的option文件(这个文件可
能是/etc/ppp/options.xl2tpd) 在末尾加上
plugin /usr/lib/pppd/2.4.4/radius.so
 plugin /usr/lib/pppd/2.4.4/radattr.so
 radius-config-file /etc/radiusclient/radiusclient.conf
PPTP如法炮制(这个文件可能是/etc/ppp/pptpd-options) ,即可。
 这时候就可以使用PPTP/L2TP来连接下,如果没错误。当然是恭喜了
。如果出错,看看freeradius -X的前端输出,可以用来诊断下。
 关键还是细心谨慎。其实也不是很困难


Tags: , , , ,

设置PPTP VPN优先使用远程DNS

Posted in Blog技术, Linux, VPN, 服务器 on 05月 21st, 2011 by Strong

——————————————————————————–


服务端配置部分
——————————————————————————–

天煞的CentOS,源里面居然没有pptpd,还要自己下载编译
奶奶的
先装ppp和iptables(如果没有装的话)
确保内核有mppe

modprobe ppp-compress-18 && echo ok

yum install -y  ppp iptables



看他的ppp版本是2.4.4据说只能通pptpd 1.3.4
截止到我今天部署的时候,官方没有rpm包放出来
自己编译了啊



wget http://downloads.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz?use_mirror=ncu
rpmbuild -ta pptpd-1.3.4.tar.gz
cd /usr/src/redhat/RPMS/i386/
rpm -ivh pptpd-1.3.4-1.i386.rpm

wget http://downloads.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz?use_mirror=ncurpmbuild -ta pptpd-1.3.4.tar.gzcd /usr/src/redhat/RPMS/i386/rpm -ivh pptpd-1.3.4-1.i386.rpm

可以到我这里下载这个rpm(太晚了,下次放出来)
然后开始配置,这里写下我的配置文件

#cat /etc/ppp/options.pptpd|grep -v ^#|sed /^$/d

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

ms-dns 8.8.8.8

#cat /etc/pptpd.conf|grep -v ^#|sed /^$/d

option /etc/ppp/options.pptpd

logwtmp

localip 192.168.2.1

remoteip 192.168.2.11-15

插一句话,在后面我遇到了一个问题,就是拨号619错误
查资料发现是logwtmp选项的问题,注释即可
最后仔细查看
cat /var/log/messages |grep logwtmp
发现了问题
Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4
原因如下
This error is fatal and pppd stops. It was caused by you building pptpd
without changing plugins/patchlevel.h to match the version of pppd on
your system. Edit the file and recompile. Or use a packaged pptpd
where this has already been done for you.
see http://old.nabble.com/error-619-td13264829.html
彻底解决办法,重新编译pptpd,修改源代码的中版本号信息
cd pptpd-1.3.4/plugins
nano patchlevel.h
修改 2.4.3为2.3.4
然后重新make
最后 cp pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so
重启服务器即可


然后把用户名和密码写入/etc/ppp/chap-secrets
里面即可

chap-secrets文件示例
cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
####### redhat-config-network will overwrite this part!!! (begin) ##########
####### redhat-config-network will overwrite this part!!! (end) ############
ihipop pptpd ihipopPASSwords *
对以关系
用户名 服务名 用户密码 分配的虚拟IP(*表示任意)


如果服务名字段使用*,则表示这个用户适合所有服务的认证。比如l2tp Over IPSec等。
——————————————————————————–

网络配置部分

——————————————————————————–

清除所有的NAT规则先,mangle表也可以清空先

 

iptables -t nat -F

iptables -t mangle -F

如果你是在远程操作,千万记得不要执行iptables -F,为什么你自己想
然后
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
#然后保存退出,执行使得生效
sysctl -p
八卦下关于sysctl
命令格式:
sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p (default /etc/sysctl.conf)
sysctl [-n] [-e] -a
常用参数的意义:
-w 临时改变某个指定参数的值,如
sysctl -w net.ipv4.ip_forward=1
-a 显示所有的系统参数
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
已经开启了系统的路由功能,下面就是配置防火墙了


iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
iptables -A INPUT -p tcp –dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#如果是要求再配置的严格一点,可以配置只允许虚拟IP地址进行nat转发
iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE
如果是CentOS 只做这样的默认策略是不行的,因为默认他没有开放DNS查询端口,需要手动开开UDP 53端口
我就是这样的,pptp连接成功,ping 8.8.8.8 一点问题也没有,直接访问
http://202.12.29.205/templates/yourip.html
显示的也是服务器IP,但就是无法解析域名
需要加一句话
iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT
结束







Tags: , ,

VPN(pptp)服务器 安装进度表。

Posted in VPN, 服务器 on 05月 14th, 2011 by Strong

下载Ubuntu11.04

安装Ubuntu11.04

运行Ubuntu11.04

root sudo -s


Ubuntu11.04下安装安装PPTP VPN

抛弃win2k3下的VPN服务器

连上网(亿邮认证)

安装radius

分配用户帐号以及上下行限制

发放帐号


Tags: , ,

在winXP/2000上开启PPTP VPN服务,并设置共享上网 (转自 http://ihipop.info)

Posted in VPN, 服务器 on 03月 5th, 2011 by Strong

win2003自带的远程和路由访问可以轻松设置VPN和NAT。到了XP就麻烦了。因为即使开始了XP下面的远程和路由访问,传入连接可以拨入,但是无法通过次机器上网,因为没有NAT。怎么办呢?

方法一:利用microsoft loopback adapter和ICS即可。

microsoft loopback adapter有点像Linux下面的lo回环虚拟适配器,但是所不同的是,默认这个适配器是隐藏了的,在那个古老的年代,安装某些软件,比如oracle 10G,或者其他一些软件,必须启用一块网卡,而这个接口就可以取代真实网卡,瞒过那些软件,但是这个“古老的接口”现在已经很少用到了,现在,要显示出来需要如下步骤:
Win XP

1.打开“ 控制面板”,选择“添加新硬件”,然后选择“下一步”。

2.选择“是”,我已经连接了硬件,然后选择“Next”。

3.从已安装的硬件列表中选择“添加新硬件设备”,然后选择“Next”。

4.选择“手动从列表中安装 ”,然后选择“Next”。

5.从 “兼容硬件类型” 列表中选择“网络适配器”,然后选择“Next”。

6.从 制造商 列表中选择“Microsoft”。

7.从 网络适配器 列表中选择“Microsoft Loopback Adapter”,然后选择“Next”。

8.选择“Next”,然后选择“结束”。

在 Microsoft Windows 2000 中安装 Microsoft Loopback Adapter,基本类似,不在赘述。

安装完后打开网络连接,会出来一个本地连接2,那个就是回环接口,然后就可以通过ICS来共享了,在多块网卡上建立桥接,右击-高级,开启共享即可。

用XP开启VPN服务也简单,在服务中开启Routing and Remote Access,然后就可以在新建连接中新建传入连接,下面的权限设置不在赘述。

PS: win7也一样,设置方式相同,不过他的添加新硬件向导方式换成了界面方式,要调出向导方式,选择运行hdwwiz即可。

方法二:在XP上开启NAT。

开启Xp的路由功能,有2种方法
1.注册表法

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
“IPEnableRouter”=dword:00000001

或者

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”

/v”IPEnableRouter” /t REG_DWORD /d “1″ /f

即可
当然最好记的还是netsh直接安装nat了

netsh routing ip nat
install
add interface name=”内部” mode=private
add interface “本地连接” full

据说Vista下的netsh中没有routing这个选项,支持routing的两个文件ipmontr.dll和ippromon.dll在vista下不存在,只能从2003拷贝我未测试
delete helper ipmontr.dll
delete helper ippromon.dll
然后
add helper ipmontr.dll
add helper ippromon.dll
就能看到netsh里有routing了

Tags: , ,