返回列表

CentOS下的VPN设置

默认分类 2014/12/10 01:16

原文地址:http://www.vixual.net/blog/archives/32

按照说明操作之后提示800错误,参照http://www.linuxidc.com/Linux/2013-05/84834.htm,修改/etc/sysconfig/iptables如下

# Completed on Tue Sep 16 13:20:09 2014
# Generated by iptables-save v1.4.7 on Tue Sep 16 13:20:09 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8005 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8983 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

结果又提示734错误.... 待续

阿里的一键靠谱! 下载脚本

wget http://latrell.me/wp-content/uploads/vpn_centos6.sh

运行脚本

chmod a+x vpn_centos6.sh
./vpn_centos6.sh

执行后有1、2、3种英文,对应如下中文意思。 1.安装VPN服务 2.修复VPN 3.添加VPN用户

提示远程无法连接,猜测是防火墙的问题,于是修改如下/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Tue Sep 16 17:23:17 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8005 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8983 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -s 172.16.36.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
COMMIT
# Completed on Tue Sep 16 17:23:17 2014
# Generated by iptables-save v1.4.7 on Tue Sep 16 17:23:17 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [13:797]
:OUTPUT ACCEPT [13:797]
-A POSTROUTING -o eth0 -s 172.16.36.0/24 -j MASQUERADE
COMMIT
# Completed on Tue Sep 16 17:23:17 2014

还是提示使用呢CentOS搭建vpn后可以连接但是无法访问

使用呢CentOS搭建vpn后可以连接但是无法访问 2011-11-06 10:08 匿名 | 分类:网站使用 | 浏览887次

在自己的电脑上使用VMware搭建了个CentOS5.5,在安装了vpn服务后,在另一天虚拟机(winxp)中使用vpn连接,可以连接上,并且可以正常ping通,但就是无法正常访问网络,QQ也无法使用,在使用浏览器的时候老是说:地址已找到,正在等待回应。 CentOS通过主机代理可以正常上网。 求解!

分享到: 2011-11-14 21:58 网友采纳

你少开了个伪转接,还要打开47端口和1723端口

#iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
#iptables -A INPUT -p tcp –dport 47 -j ACCEPT
#ptables -A INPUT -p gre -j ACCEPT
#/etc/init.d/iptables save
#/etc/init.d/iptables restart
(打开端口)
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
(nat转发,转接)

还需要改mtu值,要不,部分网站打不开。 winxp默认mtu为1400,而pptp默认mtu为1396 所以临时修改办法为linux下运行 ifconfig ppp0 mtu 1400 永久修改ppp0的mtu办法为修改/etc/ppp/ip-up,在倒数第二行也就是exit 0前面加上/sbin/ifconfig $1 mtu 1400 ok,给分!!!

其中 -A INPUT -p gre -j ACCEPT 和 -A POSTROUTING -o eth0 -s 172.16.36.0/24 -j MASQUERADE 加了后终于生效了~

CentOS 5/6 快速安裝 VPN Server (PPTP)

把握幾個重點即可快速完成 pptp 的 VPN Server 架設:

安裝步驟

1.判斷 ppp 是否可用:

$ cat /dev/ppp  
cat: /dev/ppp: No such device or address  

如果出現跟上面一樣的訊息「No such device or address」,那不用擔心,這表示 ppp 是可用的,可以正常架設 pptp。

如果出現的是「Permission denied」,表示 ppp 是關閉的,下面的步驟就可以不用再看了。

2.安裝 ppp 與 iptables

$ yum -y install ppp iptables  
$ cp -rpf /etc/sysconfig/iptables /etc/sysconfig/iptables.pptpsave  
$ cd /usr/src  

3.請依照你的系統環境下載適合的 pptp 套件:

# for CentOS 6.x 32bit  
$ wget [http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.3.4-2.el6.i686.rpm](http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.3.4-2.el6.i686.rpm)  
# for CentOS 6.x x64  
$ wget [http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.3.4-2.el6.x86_64.rpm](http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.3.4-2.el6.x86_64.rpm)  
# for CentOS 5.x 32bit  
$ wget [http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpm](http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpm)  
# for CentOS 6.x x64  
$ wget [http://poptop.sourceforge.net/yum/stable/rhel5/x86_64/pptpd-1.3.4-2.rhel5.x86_64.rpm](http://poptop.sourceforge.net/yum/stable/rhel5/x86_64/pptpd-1.3.4-2.rhel5.x86_64.rpm)  

上面這些載點如果失效,有可能是更新版本了,請自行前往 poptop 的網站下載,或是備用載點

4.安裝上一個步驟所下載的 pptp 套件:

$ rpm -ivh pptpd-1.3.4-2.el6.i686.rpm  

5.編輯 /etc/sysctl.conf,找到:

net.ipv4.ip_forward = 0  

將後面的 0 改成 1

6.下面的指令全部給它下去:

sysctl -p  
echo "localip 192.168.240.1" >> /etc/pptpd.conf  
echo "remoteip 192.168.240.101-200" >> /etc/pptpd.conf  
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd  
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd  
iptables --flush POSTROUTING --table nat  
iptables --flush FORWARD  
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT  
iptables -A INPUT -p gre -j ACCEPT  
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE  
service iptables save  
service pptpd restart  
service iptables restart  
chkconfig pptpd on  
chkconfig iptables on  

這樣就大功告成了!!

上面這些指令會創造一個 192.168.240.* 的網段給連上來的 vpn 用戶使用,並透過 Server 上的 eth0 轉送對外上網的封包 (你可以自行將 192.168.240eth0 改成符合你需求的設定)。

加入 VPN 帳號

接著我們要加入 VPN 的連線帳號。

編輯 /etc/ppp/chap-secrets 以加入 VPN 帳號,一個帳號一行,格式為:

_帳號名稱_ pptpd _密碼_ *  

例如,我要新增一個帳號為「vpn」,密碼為「test123」,則只要在 /etc/ppp/chap-secrets 加入一行:

vpn pptpd test123 *  

加入之後不用重新啟動 pptpd,你就可在 Client 端以 pptp 協定用 VPN 連線至這台 Server 了。

連線測試

連線成功之後,你可以連到 ip.calm9.com 查看你是否用 VPN Server 的 IP 在上網。

下面這張圖的連線資訊是我用 linode 的試用帳號所建立的 VPS,位置在「日本」:[

](http://here.vixual.net/blog/images/201306/pptp/ip.calm9.com.png)

iptables 規則說明

在上面的指令中,最重要的是這三條 iptables 規則:

iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT  
iptables -A INPUT -p gre -j ACCEPT  
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE  

說明 pptp 是以 GRE (Generic Routing Encapsulation) 封包透過 1723 Port 進行傳輸,並且設定 VPN 的網段是由哪個網路介面轉送對外的封包。

錯誤處理

在撥接至 vpn 時,如果出現 807 錯誤,或是其它在確認帳號、密碼之前出現的錯誤,如果確定不是自己電腦的問題,你可以編輯 Server 的 /etc/sysconfig/iptables,查看這兩條規則是否有正確出現在檔案裡面:

-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT  
-A INPUT -p gre -j ACCEPT  

並且,這兩條規則的位置不能在任何「-A INPUT -j REJECT ...」的規則下面。若有這種情形,請把它移到「-A INPUT -J REJECT ...」的上方。

儲存之後,再重新啟動 iptables:

service iptables restart  

參考網頁

1.我的 IP 位址