16. pptpd and freeradius

The section covers the configuration of pptpd + freeradius + AD. If you are looking at the integration via winbind. Go to this section.

16.1 Enable freeradius

To enable radiusd on bootup, use the chkconfig command.

>     [root@pptp ~]# chkconfig radiusd on

To start radiusd in daemon mode:

>     [root@pptp ~]# service radiusd start
>     Starting RADIUS server: Sun Sep  4 11:26:24 2005 : Info: Starting - reading configuration files ...
>     [  OK  ]

16.2 Configure pptpd

There are two configuration files for pptpd. The first one is /etc/pptpd.conf. You can very much keep it as it is except the ip address range for the ppp connections. Edit the file and add two lines at the bottom to specify the local ip address and the ip address pool for the remote connections.

>     localip 10.0.0.10
>     remoteip 10.0.0.101-200

10.0.0.10 is the ip address of the internal network card eth0. The remoteip is the address pool for the remote connections. If you are running FC6, please refer to Section 8.2 for details on the logwtmp option.

Please note that pptpd by default has a 100 connections limit. You can override it by the "connection" parameter in the pptp.conf file. Read the remarks in the file.

The second configuration file is /etc/ppp/options.pptpd. I stripped off all remarks from my options.pptpd and it is like this:

>     name pptpd
>     refuse-pap
>     refuse-chap
>     refuse-mschap
>     require-mschap-v2
>     require-mppe-128
>     ms-dns 10.0.0.1
>     ms-wins 10.0.0.1
>     proxyarp
>     lock
>     nobsdcomp
>     novj
>     novjccomp
>     nologfd
>     auth
>     nodefaultroute
>     plugin radius.so
>     plugin radattr.so

There are two plugins we used in here. The first one radius.so is required while the second one radattr.so is optional. Radattr.so basically records the parameters passed from radius to pppd in a file. Check the man page of pppd-radattr for details.

If you have Windows XP clients, you may want to reduce the MTU size. Add the line, /sbin/ifconfig $1 mtu 1400, to /etc/ppp/ip-up as shown in the following list.

>     [root@pptp ppp]# cat ip-up
>     #!/bin/bash
>     # This file should not be modified -- make local changes to
>     # /etc/ppp/ip-up.local instead

>     PATH=/sbin:/usr/sbin:/bin:/usr/bin
>     export PATH

>     LOGDEVICE=$6
>     REALDEVICE=$1

>     [ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post ifcfg-${LOGDEVICE}

>     /etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}

>     [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"

>     /sbin/ifconfig $1 mtu 1400
>     exit 0

The above example reduces the MTU size to 1400. In my environment, I found that XP will connect the VPN and ping all servers without problems, however, it cannot connect to the Microsoft Exchange server properly. Reduce the MTU size to 1400 fixed the problem.

After fixing the files and permission, we can start pptpd and connect to it from remote client. To start it:

>     [root@pptp ~]# chkconfig pptpd on

>     [root@pptp ~]# service pptpd start
>     Starting pptpd: [  OK  ]

That's all on the server side.

Note: The client PCs require special configurations. It will be discussed in here.

Next Previous Content