原理:PPTP 使用 PPP 協議對用戶數據進行封裝,然後將 PPP 數據幀封裝在 IP 數據包裏,pptpd 更多是負責客戶端到服務器的連接,ppp協議負責用戶數據包的封裝和轉發,當客戶端連接到服務器時pptpd服務就是創建一個虛擬網卡ppp0進行用戶數據包的封裝,和轉發到物理網卡,進入以太網
1:驗證內核是否加載MPPE模塊
modprobe ppp-compress-18 && echo MPPE is Success
#打印Success表示已加載
2:安裝ppp軟件
yum install ppp -y
3:安裝pptpd
rpm -ivh http://poptop.sourceforge.net/yum/beta/packages/pptpd-1.4.0-1.el6.x86_64.rpm
4:配置pptpd和ppp
vi /etc/ppp/options.pptpd
#把以下選項的註釋#去掉
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 8.8.8.8 ms-dns 8.8.4.4 proxyarp lock nobsdcomp novj novjccomp nologfd
以上至於不知道指定什麼的,可以看配置文件的解釋,雖然都是英文但是解釋還是挺清楚
5:添加用戶
vi /etc/ppp/chap-secrets
#打開配置文件
username1 pptpd passwd1 * #一行一個用戶 username2 pptpd passwd2 * #分別是 用戶名 服務 密碼 來源ip(這個可以指定網段或者唯一IP)如果不符合全都拒絕掉,*號知道正則表達式的都知道是什麼
6;配置pptpd服務
vi /etc/pptpd.conf
把以下行的註釋去掉
option /etc/ppp/options.pptpd logwtmp localip 172.16.36.254 remoteip 172.16.36.1-250
7:打開內核轉發
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #找到這個選項並且改成1
#保存後執行
sysctl -p
8:啓動pptpd服務
chkconfig pptpd on #加入開機自動啓動 service pptpd start #啓動pptpd服務
9:添加防火牆規則
#備份原來的防火牆規則
[root@local ~]# cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak [root@local ~]# iptables -P INPUT ACCEPT #設置全部爲允許,以免等下清除防火牆規則時,ssh斷開 [root@local ~]# iptables -F [root@local ~]# iptables -X [root@local ~]# iptables -Z #清除防火牆規則結束
#添加防火牆規則
[root@local ~]# iptables -A INPUT -i lo -p all -j ACCEPT [root@local ~]# iptables -A INPUT -p gre -j ACCEPT [root@local ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT [root@local ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT [root@local ~]# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT [root@local ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT [root@local ~]# iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT [root@local ~]# iptables -A FORWARD -p tcp --syn -s 172.16.36.0/24 -j TCPMSS --set-mss 1356
#設置共享ip,nat表預路由
[root@local ~]# iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -o eth0 -j MASQUERADE
#因爲命令生成的重啓後就會失效,所以我們要把它不保存到配置文件中
[root@local ~]# iptables-save > /etc/sysconfig/iptables
#重啓[root@local ~]# iptables
[root@local ~]# service iptables restart
給大家發一個我VPS的iptables文檔參考
# Generated by iptables-save v1.4.7 on Mon Sep 21 10:53:00 2015 *filter :INPUT ACCEPT [2:156] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [20:1845] -A INPUT -i lo -j ACCEPT -A INPUT -p gre -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m tcp --dport 3306 -j DROP -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A FORWARD -s 172.16.36.0/24 -j ACCEPT -A FORWARD -d 172.16.36.0/24 -j ACCEPT -A FORWARD -p tcp --syn -s 172.16.36.0/24 -j TCPMSS --set-mss 1356 -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable COMMIT # Completed on Mon Sep 21 10:53:00 2015 # Generated by iptables-save v1.4.7 on Mon Sep 21 10:53:00 2015 *nat :PREROUTING ACCEPT [12:1068] :POSTROUTING ACCEPT [25:1844] :OUTPUT ACCEPT [25:1844] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE -A POSTROUTING -s 172.16.36.0/24 -o eth2 -j MASQUERADE COMMIT # Completed on Mon Sep 21 10:53:00 2015 # Generated by iptables-save v1.4.7 on Mon Sep 21 10:53:00 2015 *mangle :PREROUTING ACCEPT [283:25473] :INPUT ACCEPT [281:25015] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [258:37097] :POSTROUTING ACCEPT [258:37097] -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT # Completed on Mon Sep 21 10:53:00 2015
windows客戶端若遇到撥通***後無法訪問內網資源請 CMD 下輸入
route -p add 172.16.0.0 mask 255.255.0.0 192.168.10.254
注:172.16.0.0爲***網段,根據個人情況可以使用192.168.1.0 或 192.168.10.0,具體情況根據你***網段設置而定;
255.255.0.0爲掩碼,通常使用 255.255.255.0 即可;
192.168.10.254 爲局域網網關IP地址,請根據個人情況設置。