Linux VPN服务器的搭建

来源:互联网 发布:手机耳麦测试软件 编辑:程序博客网 时间:2024/05/19 12:28

本文环境为 CentOS 7 64bit

1.安装 ppp, pptpd, iptables; 卸载或停掉 firewalld. 均可使用yum操作

2.配置 /etc/sysctl.conf

添加一行

net.ipv4.ip_forward = 1

执行

sysctl -p

3.配置 /etc/pptpd.conf

# (Recommended)

之后两行行首的 # 去掉,即改为如下

# (Recommended)localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245

4.配置/etc/ppp/options.pptpd

ms-dns 两行去掉注释,添加正确的DNS,如下:

ms-dns 114.114.114.114ms-dns 8.8.8.8

5.添加账号。修改 /etc/ppp/chap-secrets

# Secrets for authentication using CHAP# client  server  secret          IP addressestest        pptpd  test                    *

client列为用户名,secret列为密码。可添加多个账户。

6.iptables设置

转发:

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source 45.76.192.21    # 最后这个IP是上网的那个IP,不是 localip

允许访问pptpd服务:

iptables -A INPUT -p gre -j ACCEPTiptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPTiptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A FORWARD -s 0/24 -o eth0 -j ACCEPTiptables -A FORWARD -d 0/24 -i eth0 -j ACCEPTiptables -t nat -A POSTROUTING -s 0/24 -o eth0 -j MASQUERADE# 不确定以上是否必须,特别是最后一条

保存:

service iptables save

7.重启 iptables及pptpd服务

systemctl restart pptpdsystemctl restart iptables

补充:

使用systemctl status pptpd 可以查看log,红色为错误信息。

若出现 MPPE required but peer negotiation failed 则表示服务器端要求密码加密,而客户端为加密。在Ubuntu上编辑连接配置时应勾选“使用点到点加密(MPPE)(P)”

若出现 Cannot determine ethernet address for proxy ARP 则是因为第6步转发中最后那个IP不正确。