EC2 Ubuntu服务器上的PPTPD安装和配置

本文详细介绍了如何在Ubuntu系统下的EC2实例上搭建PPTP VPN服务,包括安装pptpd软件、配置相关文件如pptpd.conf和chap-secrets等步骤,并解决了NAT转发等问题。

最近花了点精力,在ec2上配置了PPTP VPN.

之所以选择PPTP,最主要还是因为其简单,很多路由器也都支持PPTP.

方案上参考了 http://blog.lifeclaw.com/articles/how-to-install-pptp-vpn-service-on-ubuntu/

向该文作者表示一下感谢。

 

安装:

sudo apt-get -y install pptpd

 

配置:

 

pptpd.conf

 

sudo vi /etc/pptpd.conf
#确保如下选项的配置
option /etc/ppp/pptpd-option        #指定PPP选项文件的位置
debug                                            #启用调试模式(这个可以不开启,我最终使用后还是关闭的。因为ec2空间有限。但是一开始用来查问题很有用))
localip 10.90.0.1                            #VPN服务器的虚拟ip.  不需要和你的实际ip对应。 你可以任意指定
remoteip 10.90.0.2-100                #分配给VPN客户端的虚拟ip。 自己用,这些足够了

 

pptpd-options

 

sudo vi /etc/ppp/pptpd-options
#确保如下选项的配置
name pptpd                      #pptpd服务的名称
refuse-pap                        #拒绝pap身份认证模式
refuse-chap                       #拒绝chap身份认证模式
refuse-mschap                   #拒绝mschap身份认证模式
require-mschap-v2               #允许mschap-v2身份认证模式
require-mppe-128                #允许mppe 128位加密身份认证模式
ms-dns 8.8.8.8                  #使用Google DNS. 这个DNS你可以自己指定。
ms-dns 8.8.4.4                  #使用Google DNS
proxyarp                        #arp代理
debug                            #调试模式. 一样,该项目在最终使用时被我关闭。这里临时开启
dump                             #服务启动时打印出所有配置信息
lock                                #锁定TTY设备
nobsdcomp                       #禁用BSD压缩模式

 

认证信息配置:

 

sudo vi /etc/ppp/chap-secrets
#格式:用户名   服务类型   密码   分配的ip地址
allen    *    xxxxxxx    *
#第一个*代表服务可以是PPTPD也可以是L2TPD,第二个*代表随机分配ip

 

这里特别说明一下日志问题。 默认的debug日志是通过syslog 输出的。不过ubuntu已经用rsyslog替代了syslog. 如果想要看到日志文件,必须做额外配置:

 

sudo vi /etc/rsyslog.conf
#添加
daemon.debug /var/log/pptpd.log

 

重新启动rsyslog:

 

sudo service rsyslog stop
sudo service rsyslog start
 

重启pptpd服务:

 

sudo /etc/init.d/pptpd restart

 

此时可以尝试vpn拨号连接了。如果有问题可以在/var/log/pptpd.log中查看。

 

此时拨号以后还不能上网。必须做NAT转发。

 

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

sudo sysctl -p

 

iptables:

 

#注意这里eth0代表你的外网网卡,请用ifconfig查看或者咨询网络管理员
sudo iptables -t nat -A POSTROUTING -s 10.90.0.1/24 -o eth0 -j MASQUERADE 

#如果上面的命令报错,那么可以尝试以下的命令,其中xxx.xxx.xxx.xxx代表你的VPS外网ip地址
sudo iptables -t nat -A POSTROUTING -s 10.90.0.1/24 -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx 


#设置MTU来确保过大的包不会被丢弃(据说有人举到过某些网站不能访问问题。因此做了此项设置。但是本人没有遇到。因此这步本人跳过. mss的大小请根据各人实际情况调整)
sudo iptables -I FORWARD -s 10.90.0.1/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300

 

以上iptable可以写入/etc/rc.local,确保启动时候加载。

好了,收工。

 

### 在 Ubuntu 24.04 上编译并安装 pptpd 的可行性及方法 Ubuntu 24.04 是一个假设的版本,因为截至当前时间,Ubuntu 最新长期支持 (LTS) 版本为 22.04。如果用户需要在类似未来版本的系统上进行操作,可以参考以下基于现有知识的方法,并假设系统环境依赖项管理机制保持一致。 #### 1. 系统准备与依赖项安装 在开始编译之前,需要确保系统已更新至最新状态,并安装必要的开发工具依赖项。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential libssl-dev libpcap-dev libevent-dev pkg-config -y ``` 上述命令安装了 `build-essential`(构建工具集合)、`libssl-dev`(OpenSSL 开发库)、`libpcap-dev`(数据包捕获库)以及 `libevent-dev`(事件驱动编程库)。这些是编译 PPTPD 所需的核心依赖[^2]。 #### 2. 下载并解压源代码 从官方或其他可信来源获取最新的 PPTPD 源代码包。通常可以从项目主页或 GitHub 仓库下载。 ```bash wget https://github.com/pptpclient/pptpclient/archive/refs/tags/v1.10.0.tar.gz tar -xzvf v1.10.0.tar.gz cd pptpclient-1.10.0 ``` 这里以版本 `v1.10.0` 为例,实际版本号可能根据需求调整。 #### 3. 配置与编译 进入解压后的目录后,运行配置脚本以生成 Makefile 文件,并随后执行编译命令。 ```bash ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var make sudo make install ``` `./configure` 脚本会检查系统环境是否满足编译条件,并生成适合的 Makefile。`--prefix` 参数指定了安装路径,而 `--sysconfdir` `--localstatedir` 分别定义了配置文件状态文件的存储位置[^3]。 #### 4. 配置 PPTPD 完成安装后,需要对 PPTPD 进行基本配置。编辑 `/etc/pptpd.conf` 文件以设置服务器选项。 ```bash sudo nano /etc/pptpd.conf ``` 添加或修改以下内容: ``` option /etc/ppp/options.pptpd debug localip 192.168.0.1 remoteip 192.168.0.100-200 ``` 其中,`localip` 是服务器的本地 IP 地址,`remoteip` 是分配给客户端的 IP 地址范围。 接下来,编辑 `/etc/ppp/options.pptpd` 文件以定义认证方式其他选项。 ```bash sudo nano /etc/ppp/options.pptpd ``` 添加以下内容: ``` name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 8.8.8.8 ms-dns 8.8.4.4 proxyarp lock nobsdcomp novj novjccomp nologfd ``` #### 5. 添加用户认证信息 编辑 `/etc/ppp/chap-secrets` 文件以添加允许连接的用户名密码。 ```bash sudo nano /etc/ppp/chap-secrets ``` 格式如下: ``` # client server secret IP addresses user1 pptpd password1 * user2 pptpd password2 * ``` #### 6. 启动服务并设置开机自启 启动 PPTPD 服务并将其设置为开机自启。 ```bash sudo systemctl start pptpd sudo systemctl enable pptpd ``` #### 7. 防火墙配置 确保防火墙允许 PPTP 流量(端口 1723) GRE 协议。 ```bash sudo ufw allow 1723/tcp sudo ufw allow gre sudo ufw enable ``` --- ### 注意事项 - 如果 Ubuntu 24.04 的内核或系统库有重大变化,可能需要额外调整编译参数或安装特定版本的依赖项。 - 编译过程中如遇错误,请检查日志输出并确认所有依赖项均已正确安装。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值