CentOS下使用pptp架設vpn

來源:互聯網
上載者:User

首先約定好, 以下代碼中#...及其以後的內容為注釋, 可不複製. 範例程式碼中如何修改的檔案裡已經存在可以修改成樣本那樣, 如果沒有請添加.

1: 安裝依賴軟體, 直接yum:

yum makecache 
yum -y update 
yum -y install ppp wget iptables iptables-devel perl

解釋: pptp依賴ppp和iptables運作, 同時需要perl庫.

2: 安裝pptp:

32位系統:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm 
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm

 

64位系統:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm 
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm

如果出現error Failed Dependences,改為rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm --nodep --force

3: pptp配置

vi /etc/pptpd.conf 
localip 192.168.2.1 
remoteip 192.168.2.2-192.168.2.250

解釋下: localip是pptp使用的ip, 可以隨意; remoteip連結到vpn的使用者指派到ip的訪問, 和localip同一個網段即可.

vi /etc/ppp/options.pptpd 
ms-dns 8.8.8.8 
ms-dns 208.67.222.222

解釋: 設定連結到vpn的使用者如果訪問網路時使用的dns, 和他們自己電腦與伺服器設定的dns沒任何關係.

vi /etc/ppp/chap-secrets 
test pptpd 123456 *

解釋: 這是連結vpn的使用者密碼, 每行一個, 代表一個使用者.
格式說明: 第一列為使用者, 依次是 伺服器名稱, 密碼和ip, 中間使用一個空格或者tab隔開.
使用者和密碼可隨意, 伺服器名(pptpd)不要改, 後面的*代表ip由pptpd自動分配

vi /etc/sysctl.conf 
net.ipv4.ip_forward = 1 
/sbin/sysctl -p # 能讓設定立即生效

解釋: 開啟ip轉寄.

4: iptables設定

如果你的伺服器沒有/etc/sysconfig/iptables檔案這個檔案, 可以建立他, 輸入一下內容, 這是預設的規則.
# Firewall configuration written by system-config-securitylevel 
# Manual customization of this file is not recommended. 
*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
:RH-Firewall-1-INPUT - [0:0] 
-A INPUT -j RH-Firewall-1-INPUT 
-A FORWARD -j RH-Firewall-1-INPUT 
-A RH-Firewall-1-INPUT -i lo -j ACCEPT 
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT 
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT 
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 
COMMIT

儲存退出後重啟iptables, 並備份預設規則.

cp /etc/sysconfig/iptables{,.bak} 
service iptables start

設定用戶端分配的公網ip, 就是使用vpn訪問網站的時候體現出來的ip
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j SNAT --to-source 192.168.1.108 

service iptables save #儲存上面設定的規則 
service iptables restart

解釋: 我是區域網路設定的, 且只有一個ip就是192.168.1.108, 如果是獨立外網ip, 替換成你的外網ip.
如果你的伺服器有多個網卡, 這個ip可以是任何一個.

vi /etc/sysconfig/iptables

#在-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT前面添加如下, 這個是DNS的連接埠, 不設定的話, 使用者即使能連上vpn, 也只能上qq, 不能訪問網路.

-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT

#在-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT後面添加如下

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT

儲存退出, 重啟iptables, 啟動pptp.

service iptables restart 
service pptpd start

這個時候嘗試串連你的伺服器, 並使用test 123456登入一個就可以訪問一些網站了.

常用命令:

service iptables sava #儲存規則 
service iptables start #啟動iptables 
service iptables stop #停止iptables 
service iptables restart #重啟iptables 

service pptpd start #啟動pptp 
service pptpd stop #停止pptp 
service pptpd restart #重啟pptp 
service pptpd restart-kill #重啟pptp, 並且斷開所有已經串連的使用者 
service pptpd status #查看pptp目前狀態 

chkconfig pptpd on #設定自動啟動 
chkconfig iptables on #設定自動啟動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.