yum install ppp
rpm -ih pptpd-1.3.4-2.el6.x86_64.rpm #注意对应自己的版本 不然会出现莫名其妙的连接问题
关闭 selinux 切记不然也会出现莫名其妙的问题 619 等
vim /etc/sysconfig/selinux
SELINUX=disabled #把selinux 关闭
如若不重启的话 还需要
setenforce 0 #设置为不启用
配置部分
iptables
vim /etc/sysconfig/iptables# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 47 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8005 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8983 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
这是我全部的文件内容
其实最重要的 53 DNS查询端口 1723 和 47应该是认证端口 注意这几个端口如果不开放就会导致登录不上 或者登录上去上不了网
vim /etc/sysctl.conf
找到
net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1
sysctl -p 命令使其生效
作用在于内核添加转发功能
写一个脚本 (因为没研究那个IPTABLES转发 在配置文件里面怎么写成 所以只有沿用别人的方法了
vim snat.sh#/bin/bash
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -X
iptables -Z
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j SNAT --to 172.16.67.11
# 这里需要注意网卡的指定 出口是用哪张网卡要指定好
chmod +x snat.sh
设置 pptpd 分配给 客户端ip地址
vim /etc/pptpd.conflocalip 172.16.67.11
remoteip 192.168.10.200-254
ubuntu 要这样配置 否则windows会有问题
配置/etc/ppp/options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4
logfile /var/log/pptpd.log
localip 是你机子的IP地址
remoteip 是即将分配给登录用户的虚拟ip地址
设置 DNS 地址
vim /etc/ppp/options.pptpdms-dns 172.17.1.46 #这是我学校内网的DNS服务器 根据需要修改哈
ms-dns 8.8.4.4 #这是google的dns
设置 DNS 账号和密码
vim /etc/ppp/chap-secrets
*# Secrets for authentication using CHAP
# client server secret IP addresses
test pptpd test *
#账号 协议 密码 分配的IP地址*表示任意IP
接下来就是启动服务了
首先是启动iptables
service iptables start
点开那个脚本添加转发规则不然上不了网(等学了iptables我再改成配置文件版本的
./snat.sh
service pptpd start
这样就应该启动了
测试连接吧
坑爹的没有好几个端口的配置 让我走了好多弯路 不过写的连接还比较详细 可以看那个最下面连接部分
命令行工具使用***
sudo pptpsetup -create rongshang***02 --server x.x.x.x -username test -password test --encrypt --start
pptpsetup --create --server [--domain ] --u sername [--password ] [--encrypt] [--start]
* 创建的连接名称,自指定。
* PPTP SERVER的IP或域名。
* 所在的域,很多Windows的服务器都是使用“域”来管理认证的。
* ××× 用户名(域用户名)
* ×××上用户密码,也可以没这个参数,命令稍后会自动询问,这样保证账号安全
* –encrypt 表示启用加密,不必指定加密方式,命令会读取配置文件中的加密方式
* 当没使用–encrypt 连接时出现下面的错误时,表示使用了加密,这点也可以和×××的管理员联系确认一下,遇到下面的情况可以加上该参数。
* CHAP authentication succeeded
* LCP terminated by peer (ZM-76-^@
* –start 创建连接完后马上连接。
运行该命令后实际上创建了两个配置文件:
/etc/ppp/chap-secrets
/etc/ppp/peers/连接名
可以看看配置文件
配置文件 /etc/ppp/peers/连接名# written by pptpsetup
pty "pptp x.x.x.x --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name xxxxx
remotename xxxxxxx
ipparam xxxxxxxxx
require-mppe-128
# 网上有人这么自定义 有一些说明我直接贴过来 后面研究
# written by pptpsetup
pty "pptp 10.39.100.2 --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name csnj\\administrator
remotename cs***
ipparam cs***
#defaultroute #使用本连接作为默认路由,本文单网卡没意义,可以不添加,说明见附录
persist #当连接丢失时让pppd再次拨号,已验证
require-mppe-128
refuse-pap
refuse-chap
refuse-eap
refuse-mschap
pptpsetup --delete 链接名称
删除一个节点
设置拨号脚本;
拨号脚本pon 和poff在下面的目录 /usr/share/doc/ppp-*/scripts/ 里:
cp /usr/share/doc/ppp-2.4.5/scripts/pon /usr/sbin
cp /usr/share/doc/ppp-2.4.5/scripts/poff /usr/sbin
chmod +x /usr/sbin/pon /usr/sbin/poff #使pon和poff脚本拥有执行权限
这样就可以通过pon/poff 来启停×××连接。
也可以使用 pppd call / killall pppd来启动/停止。
最后可以改变路由表将流量全部引到×××链接上
ip route delete default
ip route add default dev ppp0