系統環境為CentOS 6.5(32位Minimal版)操作系統(CentOS-6.5-i386-minimal.iso)
下載地址為http://mirrors.163.com/centos/6.5/isos/i386/CentOS-6.5-i386-minimal.iso
首先配置虛擬專用網需要安裝相關的軟件:
yum install -y wget perl ppp
使用wget下載虛擬專用網安裝程序
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.i686.rpm
使用rpm安裝
rpm -ivh pptpd-1.4.0-1.el6.i686.rpm
配置虛擬專用網中的DNS服務器
cat >>/etc/ppp/options.pptpd<
ms-dns 8.8.8.8
ms-dns 8.8.4.4
EOF
配置虛擬專用網中分配的IP地址
cat >>/etc/pptpd.conf<
localip 172.16.0.1
remoteip 172.16.0.2-254
EOF
配置虛擬專用網中和帳號和密碼
cat >>/etc/ppp/chap-secrets<
pc虛擬專用網 pptpd 123456 *
EOF
設置清空防火墻使虛擬專用網用戶可以連接
service iptables start
iptables -F
iptables -X
iptables -Z
service iptables save
配置NAT轉換使虛擬專用網用戶可以訪問外網
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE
sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/sysctl.conf
sysctl –p
啟動虛擬專用網服務并設置為自啟動
service pptpd start
chkconfig pptpd on
到這一步,虛擬專用網服務器就配置成功了,可以使用帳號pc虛擬專用網 密碼123456 登陸使用了。
下面是其他網友的補充
好了, 直奔主題, 我使用的系統是centos 5.6
首先約定好, 以下代碼中#...及其以后的內容為注釋, 可不復制. 示例代碼中如何修改的文件里已經存在可以修改成示例那樣, 如果沒有請添加.
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
32位系統:
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
64位操作系統.
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
3: pptp配置
vi /etc/pptpd.conf
localip 192.168.2.1
remoteip 192.168.2.2-192.168.2.250
解釋下: localip是pptp使用的ip, 可以隨意; remoteip鏈接到虛擬專用網的用戶分配到ip的訪問, 和localip同一個網段即可.
vi /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 208.67.222.222
解釋: 設置鏈接到虛擬專用網的用戶如果訪問網絡時使用的dns, 和他們自己電腦與服務器設置的dns沒任何關系.
vi /etc/ppp/chap-secrets
test pptpd 123456 *
解釋: 這是鏈接虛擬專用網的用戶密碼, 每行一個, 代表一個用戶.
格式說明: 第一列為用戶, 依次是 服務器名稱, 密碼和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, 就是使用虛擬專用網訪問網站的時候體現出來的ip
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j SNAT --to-source 192.168.1.108 (pptpd服務器的IP)
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的端口, 不設置的話, 用戶即使能連上虛擬專用網, 也只能上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 #設置自動啟動