Ubutu下安装DHCP, PPPoE, PPTP, L2TP, DNS server

一. 安装DHCP server

ubuntu下搭建udhcpd服务器

1.查看是否安装了udhcpd服务器:dpkg -l | grep udhcpd
如果没有安装udhcpd服务器,我们可以用apt-get install udhcpd来安装udhcpd服务器。
2. 编辑/etc/default/udhcpd  
enable udhcp
3.编辑/etc/udhcpd.conf(配置文件)文件:vim /etc/udhcpd.conf
start 192.168.43.30  #定义地址池的开始地址
end 192.168.43.100   #定义地址池的结束地址
interface eth0       #dhcp服务器中响应dhcp协议的接口
opt dns 8.8.8.8 219.239.26.42   #定义dns服务器地址
option subnet 255.255.255.0
opt router 192.168.43.1     #该地址为dhcp服务器中响应dhcp协议接口的IP地址
option dns 124.207.160.106  #dns server最多可以设置3个
option domain local
option lease 86400     #租约时间,单位为秒
static_lease 00:60:08:11:ce:4e 192.168.43.100   #静态绑定mac和IP地址
static_lease 00:60:08:11:ce:38 192.168.43.110
一般情况下安装完udhcpd服务器后,会在/etc下生成其主配置文件,如果没有,可以在/etc下新建一个名为udhcpd.conf的文件
4.设置eth0的IP地址:ifconfig eth2 192.168.43.1 netmask 255.255.255.0 up
5.启用udhcpd服务器:
service udhcpd stop
service udhcpd start
如果系统不支持service服务,在/etc/init.d路径下,用ls -a查看是否有udhcpd关键字
6.查看udhcpd服务是否正常启动:ps aux | grep udhcpd
 
注意:  我在安装时发现 service udhcpd start是OK的,但是一直没有发现udhcpd在进程中,最后是
whereis udhcpd: 发现udhcpd在/urs/sbin/udhcpd下
于是就直接运行: udhcpd
发现dhcp server 就可以正常工作了。
7.测试udhcpd服务功能是否正常:
winxp客户端:ipconfig /release
             ipconfig /renew
Linux客户端:dhclient eth0
假设Linux客户端的eth0口与udhcpd服务器的eth0口相连
 
二. 安装PPPoE server

本文介绍在Ubuntu系统上搭建PPPoE Server的过程, 此处仅对基本安装及设置作介绍, 更多详细内容请查阅相关资料。

#####
使用环境:
System: Ubuntu 10.04 Desktop
Package: pppoe

#####
1. 安装所需软件包。

可以在Ubuntu Software Center中安装pppoe, Shell中用命令apt-get install pppoe(此软件包源码就是rp-pppoe, 本来是一个Linxu下的PPPoE拨号Client, 但也有包含PPPoE Server功能)即可, 可能会根据依赖关系安装其他软件包(如lib6c和ppp).

2. 配置PPPoE Server。

1) 创建PPPoE Server配置文件/etc/ppp/pppoe-server-options
此文件中常用的几个参数如下所述,由于我自己也没有用过其他参数, 甚至不知道是否还有其他可以配置的参数, 故而更多参数请搜索其他资料。
实际上该配置文件的内容是启动PPPoE Server时PPP需要的参数, 此文件内容在PPPoE Server启动时会自动通过pty参数传递给pppd进程。
require-pap, 设置PPPoE Server接受pap认证方式
require-chap, 设置PPPoE Server接受chap认证方式
login, 设置了此参数, 则要求认证所用的账户及密码要存在于Ubuntu系统中, 也就是说要同时在系统和/etc/ppp/chap-secrets或/etc/ppp/pap-secrets中都添加相同的用户信息。我自己的Server中将此参数注释掉。
lcp-echo-interval, 设置LCP echo间隔时间(秒)。
lcp-echo-failure, 设置多久(秒)未成功完成LCP echo request以及LCP echo reply就断开连接(这个参数效果我没有测试过)。
ms-dns, 指定PPPoE Server给Client分配的DNS。
例如:
require-chap
#login
lcp-echo-interval 10
lcp-echo-failure 20
ms-dns 10.0.0.138

ms-dns 8.8.8.8

还可以在/etc/ppp/options里更改mtu的默认值,这个值默认为1492

2) 添加PPPoE连接账户信息
打开文件/etc/ppp/chap-secrets, 按照说明文件添加一个用户信息。第二字段server最好设置为*, 否则在PPPoE连接时必须输入正确的server name(默认为主机名, 也可以在运行pppoe-server时用-C参数指定)。第一个字段为用户名, 第三个字段是密码, 最后一个字段指定允许的IP地址范围(直接设置成*即可)。
如果是pap认证方式, 需要在/etc/ppp/pap-secrets中添加用户信息。
3) PPPoE Server的启动
PPPoE Server安装配置完成后不会自动在/etc/init.d/目录下生成相应的管理脚本, 需要从Shell中手动启动, 相关的用法可以查看pppoe-server的帮助文档(man pppoe-server), 主要的参数如下:
-I, 指定需要作PPPoE Server的接口
-L, 指定PPP连接中Server的IP地址
-R, 指定PPP连接中分配给Client的IP地址起始值
-N, 指定PPP连接中可分配给Client的最大IP个数, 起始值由-R指定
-O, 指定pppoe-server的配置文件位置, 默认为/etc/ppp/pppoe-server-options, 如果有其他文件作配置的话, 可以通过此参数指定, 一般不用加这个参数。

#####
运行:
Start: pppoe-server -I eth0 -L 100.0.0.1 -R 100.0.0.100 -N 20
Stop: killall pppoe-server
Restart: 参考Stop和Start

 

三.安装PPTP server

1. Ubuntu下使用 apt 安装 pptpd 非常方便,安装好后自动启动;
$ sudo apt-get install pptpd

2. 修改 /etc/pptpd.conf,分配内部IP地址;
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

3. 修改 /etc/ppp/chap-secrets,创建VPN用户和口令;
username pptpd password *
注:如果 * 修改为固定内部IP地址,将会分配该用户到固定地址,从而确保该用户只能创建一个VPN连接。

4. 修改 /etc/ppp/pptpd-options,支持自动分配DNS,防止DNS劫持;
ms-dns 8.8.8.8
ms-dns 8.8.4.4

mtu 1460

mru 1460  (1460是default值,也可以改成其它值,但这样可能导致有些设备不会因此而自动调整它的TCP MSS值,而导致不能建立起TCP连接)

注:上面用的是 Google Open DNS,可以使用其他的。

 

5. 修改 /etc/ppp/pptpd-options 验证方式, 注意一般要求是require chap

6. 修改 /etc/sysctl.conf,支持IP转发;
net.ipv4.ip_forward=1
注:使用下面命令生效
$ sudo sysctl -p

7. 修改 iptables,支持转发;
$ sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
注:没有VPS,未测试。

8. 重启VPN服务;
$ sudo /etc/init.d/pptpd restart

 

四. 安装L2TP server

1. 先下下载安装包, sudo apt-get install xl2tpd

2.在/etc路径下会生成一个xl2tpd的文件下,编辑/etc/xl2tpd/xl2tpd.conf, 由于此文件较乱,而且参数较多,可以自己新建一个xl2tpd.conf文件,添加:

[global]

[lns default]

ip range = 192.168.13.100-192.168.13.200

local ip = 192.168.13.1

require chap = yes

refuse pap = yes

require authentication = yes

name = LinuxL2TPServer

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd

length bit = yes

3. 编辑/etc/ppp/options.xl2tpd文件,如果没有这个文件,可以自己创建:

ipcp-accept-local

ipcp-accept-remote

ms-dns 8.8.8.8

ms-dns 8.8.4.4

noccp

auth

crtscts

idle 1800 

mtu 1460

mru 1460  (1460是default值,也可以改成其它值,但这样可能导致有些设备不会因此而自动调整它的TCP MSS值,而导致不能建立起TCP连接)

nodefaultroute

debug

lock

proxyarp

connect-delay 5000

4. whereis xl2tpd:  发现xl2tpd是被添加到系统默认的PATH里了,所以直接在命令行中输入xl2tpd就可以启动了

5. 查看/etc/init.d/文件夹里是否包含xl2tpd,如果包含,则说明可以通过service xl2tp start/stop/restart来操作

6.也可以自己建一个脚本文件自动start xl2tpd:

#!/bin/bash

service xl2tpd start

iptables -F

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o eth1 -j MASQUERADE

 其中eth1是双网卡中连接外网的网卡

posted @ 2014-08-01 12:54  sun sun  阅读(1708)  评论(0编辑  收藏  举报