记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0
pptpd服务器安装

1. rpm -qa|grep ppp 检查ppp版本,必须在2.4.1-3或以上,否则下载新版本,用rpm -Uvh更新;

2.下载pptpd-1.1.3-4.i386.rpm,rpm -ivh pptpd-1.1.3-4.i386.rpm安装;

3.编辑/etc/pptpd.conf:

speed 115200

localip 192.168.0.1 (本地ip,可以是1个或多个)

remoteip 192.168.0.2-128 (远程ip,最多可同时接入客户端数)

pidfile /var/run/pptpd.pid

4.编辑/etc/ppp/options:

lock

debug

name pptpd

auth

require chap

proxyarp

bsdcomp 0

5.编辑/etc/ppp/chap-secrets:

用户名 pptpd 密码 * (*号也可改为指定的ip)

6.在/etc/syslog.conf后追加一行:

daemon.debug /var/log/pptpd.log

7.重起syslog:

kill -SIGHUP `cat /var/run/syslogd.pid`

8.启动pptpd:

pptpd

9.debug信息可在 /var/log/pptpd.log中查看。

localip 192.168.6.1
remoteip 192.168.6.234-238,192.168.6.245

文件 /etc/ppp/options.pptpd

lock
auth #启用身份验证,为了安全,肯定需要进行身份验证
debug
name fw #相当于身份验证时的域,这里填上VPN服务器的名字
refuse-pap #拒绝pap身份验证
refuse-chap #拒绝chap身份验证
refuse-mschap #拒绝mschap身份验证
refuse-eap #拒绝eap身份验证,这种方式本身不错,但这里不使用
require-mschap-v2 #为了最高的安全性,我们使用mschap-v2身份验证方法
require-mppe-128 #要求128位MPPE加密,还可以是require-mppe
nomppe-stateful #无状态,有状态有mppe-stateful
#ms-dns 150.0.1.88 #VPN客户端连接成功后将被分配的DNS参数
#ms-wins 150.0.1.88 #VPN客户端连接成功后将被分配的WINS参数
proxyarp #启用ARP代理,如果分配给客户端的IP与内网卡同一个子网

文件/etc/ppp/chap-secrets 内容如下
# Secrets for authentication using CHAP
# client server secret IP addresses
main fw "123456" *
xiaox fw "123456" *

配置

编辑pptpd.conf配置文件
[root@linux ppp]# vi /etc/pptpd.conf
修改localip和remoteip的参数

[root@linux ppp]# cat /etc/pptpd.conf
###############################################################################
# $Id: pptpd.conf,v 1.8 2004/04/28 11:36:07 quozl Exp $
#
# Sample Poptop configuration file /etc/pptpd.conf
#
# Changes are effective when pptpd is restarted.
###############################################################################

# TAG: ppp
#       Path to the pppd program, default '/usr/sbin/pppd' on Linux
#
#ppp /usr/sbin/pppd

# TAG: option
#       Specifies the location of the PPP options file.
#       By default PPP looks in '/etc/ppp/options'
#
option /etc/ppp/options.pptpd

# TAG: debug
#       Turns on (more) debugging to syslog
#
#debug

# TAG: stimeout
#       Specifies timeout (in seconds) on starting ctrl connection
#
# stimeout 10

# TAG: noipparam
#       Suppress the passing of the client's IP address to PPP, which is
#       done by default otherwise.
#
#noipparam

# TAG: logwtmp
#       Use wtmp(5) to record client connections and disconnections.
#
logwtmp

# TAG: bcrelay <if>
#       Turns on broadcast relay to clients from interface <if>
#
#bcrelay eth1

# TAG: localip
# TAG: remoteip
#       Specifies the local and remote IP address ranges.
#
#       Any addresses work as long as the local machine takes care of the
#       routing. But if you want to use MS-Windows networking, you should
#       use IP addresses out of the LAN address space and use the proxyarp
#       option in the pppd options file, or run bcrelay.
#
#       You can specify single IP addresses seperated by commas or you can
#       specify ranges, or both. For example:
#
#               192.168.0.234,192.168.0.245-249,192.168.0.254
#
#       IMPORTANT RESTRICTIONS:
#
#       1. No spaces are permitted between commas or within addresses.
#
#       2. If you give more IP addresses than MAX_CONNECTIONS, it will
#          start at the beginning of the list and go until it gets
#          MAX_CONNECTIONS IPs. Others will be ignored.
#
#       3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
#          you must type 234-238 if you mean this.
#
#       4. If you give a single localIP, that's ok - all local IPs will
#          be set to the given one. You MUST still give at least one remote
#          IP for each simultaneous client.
#
# (Recommended)
localip 192.168.2.180
remoteip 192.168.2.181-185

# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
[root@linux ppp]#

编辑option.pptp配置文件
[root@linux ppp]# vi /etc/ppp/options.pptpd

如下

[root@linux ppp]# cat /etc/ppp/options.pptpd
###############################################################################
# $Id: options.pptpd,v 1.9 2005/08/02 11:33:32 quozl Exp $
#
# Sample Poptop PPP options file /etc/ppp/options.pptpd
# Options used by PPP when a connection arrives from a client.
# This file is pointed to by /etc/pptpd.conf option keyword.
# Changes are effective on the next connection. See "man pppd".
#
# You are expected to change this file to suit your system. As
# packaged, it requires PPP 2.4.2 and the kernel MPPE module.
###############################################################################


# Authentication

# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
name eccom

# Strip the domain prefix from the username before authentication.
# (applies if you use pppd with chapms-strip-domain patch)
#chapms-strip-domain


# Encryption
# (There have been multiple versions of PPP with encryption support,
# choose with of the following sections you will use.)


# BSD licensed ppp-2.4.2 upstream with MPPE only, kernel module ppp_mppe.o
# {{{
refuse-pap
refuse-chap
refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}


# OpenSSL licensed ppp-2.4.1 fork with MPPE only, kernel module mppe.o
# {{{
#-chap
#-chapms
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
#+chapms-v2
# Require MPPE encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
#mppe-40        # enable either 40-bit or 128-bit, not both
#mppe-128
#mppe-stateless
# }}}


# Network and Routing

# If pppd is acting as a server for Microsoft Windows clients, this
# option allows pppd to supply one or two DNS (Domain Name Server)
# addresses to the clients. The first instance of this option
# specifies the primary DNS address; the second instance (if given)
# specifies the secondary DNS address.
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2

# If pppd is acting as a server for Microsoft Windows or "Samba"
# clients, this option allows pppd to supply one or two WINS (Windows
# Internet Name Services) server addresses to the clients. The first
# instance of this option specifies the primary WINS address; the
# second instance (if given) specifies the secondary WINS address.
#ms-wins 10.0.0.3
#ms-wins 10.0.0.4

# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system. This will have the effect of making the peer appear to other
# systems to be on the local ethernet.
# (you do not need this if your PPTP server is responsible for routing
# packets to the clients -- James Cameron)
proxyarp


# 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


# Miscellaneous

# Create a UUCP-style lock file for the pseudo-tty to ensure exclusive
# access.
lock

# Disable BSD-Compress compression
nobsdcomp

# Disable Van Jacobson compression
# (needed on some networks with Windows 9x/ME/XP clients, see posting to
# poptop-server on 14th April 2005 by Pawel Pokrywka and followups,
# http://marc.theaimsgroup.com/?t=111343175400006&r=1&w=2 )
novj
novjccomp

# turn off logging to stderr, since this may be redirected to pptpd
nologfd

[root@linux ppp]#

编辑chap.secrets配置文件
[root@linux ppp]# vi /etc/ppp/chap-secrets
如下:
[root@linux ppp]# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server secret                  IP addresses
eccomuser1      eccom   "eccomuser1"            *
eccomuser2      eccom   "eccomuser2"            *
eccomuser3      eccom   "eccomuser3"            *
eccomuser4      eccom   "eccomuser4"            *
eccomuser5      eccom   "eccomuser5"            *

[root@linux ppp]#

启动服务

[root@linux ppp]# service pptpd start
Starting pptpd: [ OK ]
[root@linux ppp]#

查看tcp 1723端口是否开放
[root@linux ppp]# netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2249/portmap       
tcp        0      0 0.0.0.0:755                 0.0.0.0:*                   LISTEN      2269/rpc.statd     
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      19699/cupsd        
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2622/sendmail: acce
tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      28184/pptpd        
tcp        0      0 :::22                       :::*                        LISTEN      2587/sshd          
tcp        0    800 ::ffff:192.168.2.211:22     ::ffff:192.168.38.249:1373 ESTABLISHED 4439/1             
tcp        0      0 ::ffff:192.168.2.211:22     ::ffff:192.168.38.249:2170 ESTABLISHED 27852/2            
udp        0      0 0.0.0.0:749                 0.0.0.0:*                               2269/rpc.statd     
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               2249/portmap       
udp        0      0 0.0.0.0:752                 0.0.0.0:*                               2269/rpc.statd     
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               19699/cupsd        
[root@linux ppp]#

当使用pptp vpn登录,所有流量都走VPN通道,导致不能上网,修改windows 拨号客户端配置,

PPTP vpn -> 网络 -> tcp/ip -> 属性 -> 高级 -> 常规:去掉“在远程网络上使用默认网关”

注意事项:

/etc/ppp/options.pptpd 配置文件中的name 参数要和 /etc/ppp/chap-secrets 中的 server参数一样。

补充一点如上配置,可以pptp方式拨入VPN,但是不能访问内网,在linux server上tcpdump抓包,发现返回icmp报文,type 3,code 10。

居然还需要linux配置允许转发:

echo "1" > /proc/sys/net/ipv4/ip_forward




转载请标明出处【pptpd服务器安装 】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论