1、找到軟件 我用的軟件是pptpd-1.1.4-b3.tar,不知道為什麼,這裡不讓上傳gz文件 2、安裝 解壓後, ./configure make make install 3、配置文件 vi /etc/pptpd.conf 代碼: speed 115200 option /etc/ppp/options debug #localip 192.168.0.1 這句好象沒什麼用,我注釋了 remoteip 192.168.0.20-30 這句是分配IP的,但不知道為什麼,CLIENT的IP不按這個分配 :cry: enable chap 起用chap機制 vi /etc/ppp/options 代碼: lock debug # name platinum.com.cn 這個有沒有都可以 bsdcomp 0 auth require-chap 用chap認證方式 proxyarp # ms-dns 202.106.196.152 這個應該是給CLIENT重新分配DNS的,但好象沒用,也沒刪,就先留著了 vi /etc/ppp/chap-secrets 這是定義CLIENT密碼的部分 代碼: # Secrets for authentication using PAP # client server secret IP addresses "platinum" * "vpntest" 192.168.0.10 OK,到這裡就配置完成了,運行pptpd啟動服務 先關掉防火牆測試,CLIENT:WIN2000 建立VPN撥號,然後指定IP,61.149.xx.xx 注意:在屬性編輯裡,不要選用加密,否則連不上(好象要下MS的MSCHAP補丁才可以,我沒找到) 連接,測試通過 引用: [root@platinum ppp]# netstat -amore Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:1723 *:* LISTEN tcp 0 0 61.149.6.131:1723 202.204.224.130:1164 ESTABLISHED raw 0 0 61.149.6.131:gre 202.204.224.130:* 1 內容略有刪節 注意:外部IP,202.204.224.130已經連接,VPN端口:1723 此外還有一個GRE,協議名稱非TCP、UDP、ICMP!!! 這是VPN的主要傳輸協議,所以要配置防火牆,一定要開這個 4、配置防火牆 我的FIREWALL代碼如下: 代碼: #! /bin/bash #初始設置,允許內網轉發 echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -F -t filter /sbin/iptables -F -t nat /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -t nat -P OUTPUT ACCEPT # 允許內網所有IP做所有事情 /sbin/iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT # 打開FTP端口:211 /sbin/iptables -A INPUT -p tcp --dport 211 -j ACCEPT # 打開VPN端口1723,還有GRE!!! /sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT /sbin/iptables -A INPUT -p gre -j ACCEPT # WWW:801,SWAT:901 /sbin/iptables -A INPUT -p tcp --dport 801 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 901 -j ACCEPT # SOCKS5:8039 /sbin/iptables -A INPUT -p tcp --dport 8039 -j ACCEPT # ICMP(PING) # 這句話是允許除了公網上所有IP的ICMP協議的echo-request標志 # 也就是允許網內機器PING,但不向外發PONG /sbin/iptables -A INPUT -p icmp --icmp-type ! echo-request -j ACCEPT # NAT /sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE # DENY OTHERS # 這句很關鍵,做IP地址的主動連接狀態設置,避免了以往防火牆的漏洞 /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 其余未登記的端口全部DROP掉! /sbin/iptables -A INPUT -j DROP 當然,從我的FIREWALL還可以看出,我還配置了其他服務,我添加了SAMBA服務,不登陸VPN,是無法訪問的。自此,VPN+IPTABLES+SAMBA+FTP+WWW+SOCKS5配置完成你可以對自己的機器再添加其他服務,想對外開端口,改FIREWALL即可 。