centOS7.0 VPN SERVER 搭建

来源:互联网 发布:业务流程优化案例分析 编辑:程序博客网 时间:2024/05/19 21:17
CentOS7.0 之前采用的是iptables防火墙,而7.0之后默认采用的是firewalld,在VPN设置上也有所不同:
1.检测是否支持pptpd: modprobe ppp-compress-18 && echo yes 返回yes则表示支持
2.检测是否开启tun: cat /dev/net/tun 如果返回cat: /dev/net/tun: File descriptor in bad state 表示支持,否则则需要手动开启
3.安装pptpd和ppp: yum -y install ppp pptpd 注:如果提示找不到pptpd 则需要手动下载: rpm -i http://poptop.sourceforge.net/yum/stable/rhel7/pptp-release-current.noarch.rpm
4.配置pptpd.conf : vim /etc/pptpd.conf , 把 localip 192.168.0.1 和 remoteip 192.168.0.234-238,192.168.0.245去掉注释, romoteip 是开放的终端内网网段,234-245之间任意选择,即便终端局域网IP是192.168.0.234也不会冲突。
5.修改DNS:vim /etc/ppp/options.pptpd 在末尾添加DNS,google的是主: ms-dns 8.8.8.8 副:ms-dns 8.8.4.4 大家可以在网上搜索一些国外的DNS,自己ping一下,看看哪一个快就是用哪一个。
6.添加账户:vim /etc/ppp/chap-secrets
#client serversecret IP address
账号 pptpd 密码 * *表示分配的任意IP
7.配置sysctl.conf: vim /etc/sysctl.conf ,在末尾添加一行 net.ipv4.ip_forward = 1 ,保存, 然后使用 sysctl -p 使内核修改生效。
firewalld设置 :
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i eth0 -p tcp --dport 1723 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -o eth0 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
重启防火墙
firewall-cmd --reload

这个时候先测试VPN连接,是否能打开网页,我的连接之后不能打开百度主页,后来用tcpdump抓包发现,当外网网卡开始传送数据时会报错unreachable - need to frag (mtu 1396)  ,这是因为拨号时创建的PPPx网卡的MTU最大值为1396,然而协议报文速度时的MTU值+40才应该是ppp0的MTU值,按当前协议的MTU值计算,最终由PPP0转发的报文大小为1436字节,并且传送是被加上不可拆分标示,ppp0直接丢弃该报文,使之无法通过,这个时候就需要在防火墙指定mss来定义mtu大小,而且必须加在允许VPN数据包通过规则之前
先移除 

firewall-cmd --permanent --direct --remove-rule ipv4 filter POSTROUTING 0 -t nat -o eth0 -j MASQUERADE
添加
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -p tcp -i ppp+ -j TCPMSS --syn --set-mss 1356
firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -o eth0 -j MASQUERADE
firewall-cmd --reload 
然后刷新网页....
最后设置开启自启动:
chkconfig pptpd on


参考:http://m.2cto.com/os/201511/450253.html 如需转载请注明出处。

centOS7.0 VPN 搭建


0 0