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.conf
localip 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.pptpd
ms-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
这样就应该启动了
测试连接吧
参考自 http://budongzhenren.blog.51cto.com/2288320/886251
坑爹的没有好几个端口的配置 让我走了好多弯路 不过写的连接还比较详细 可以看那个最下面连接部分
命令行工具使用vpn
sudo pptpsetup -create rongshangvpn02 --server x.x.x.x -username test -password test --encrypt --start
pptpsetup --create <TUNNEL> --server <ip address/hostname> [--domain <DOMAIN NAME>] --u sername <USERNAME> [--password <PASSWORD>] [--encrypt] [--start]
* <TUNNEL> 创建的连接名称,自指定。
* <SERVER> PPTP SERVER的IP或域名。
* <DOMAIN> 所在的域,很多Windows的服务器都是使用“域”来管理认证的。
* <USERNAME> ××× 用户名(域用户名)
* <PASSWORD> ×××上用户密码,也可以没这个参数,命令稍后会自动询问,这样保证账号安全
* –encrypt 表示启用加密,不必指定加密方式,命令会读取配置文件中的加密方式
* 当没使用–encrypt 连接时出现下面的错误时,表示使用了加密,这点也可以和×××的管理员联系确认一下,遇到下面的情况可以加上该参数。
* CHAP authentication succeeded
* LCP terminated by peer (ZM-76-^@<M-Mt^@^@^BM-f ) 类似乱码
* –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 csvpn ipparam csvpn #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 <tunnel> 来启停×××连接。 也可以使用 pppd call <tunnel> / killall pppd来启动/停止。 最后可以改变路由表将流量全部引到×××链接上 ip route delete default ip route add default dev ppp0