Latest News

Home » 網路最新資訊 » Linux主機虛擬通道(PPTP VPN)(Linux主機伺服器架設技術)

Linux主機虛擬通道(PPTP VPN)(Linux主機伺服器架設技術)

Linux主機虛擬通道(PPTP VPN)(Linux主機伺服器架設技術)

用 Linux 建立虛擬通道(PPTP VPN),供公司外部的 IP 與主機建立專用通道,再以此通道對外連線。
其運作原理如下,pptpd 提供使用撥接進入的通道, iptables 提供 route 出去的路由。

Linux pptp設定

    * 安裝 pptp
      root@Linux:# apt-get update
      root@Linux:# apt-get install pptpd
    * 修改 /etc/pptpd.conf
      root@Linux:# vi /etc/pptpd.conf (確保您的設定檔內, 有以下參數設定)

option /etc/ppp/pptpd-options
logwtmp

#撥接進入時, vpn server 的 ip address
localip 192.168.0.1
#撥接進入時, 可配發的 ip address (與 dhcp 無關)
remoteip 192.168.0.10-20

    * 修改 /etc/ppp/pptpd-options
      root@Linux:# vi /etc/ppp/pptpd-options

# name 參數與 client 端設定有關
name myvpn_name

refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128

# 配送 ip address 給 client 時, 指定 DNS Server IP 位置供 client 使用
ms-dns 168.95.1.1
ms-dns 168.95.192.1

proxyarp

# Debian: do not replace the default route
nodefaultroute

lock
nobsdcomp

    * 建立可撥入的帳號密碼, 修改 /etc/ppp/chap-secrets
      root@Linux:# vi /etc/ppp/chap-secrets

# client         server         secret              IP addresses
username         myvpn_name     自訂password         *

#IP address 使用 "*" 代表不限制這個帳號所撥入的 ip 位置

    * 啟動 pptpd
          o 手動啟動: root@Linux:# service pptpd restart
          o 開機自動啟動: 使用 ntsysv 設定

    * 至此, 您可以由 winxp 試著撥入, 應已可以取得一個 192.168.0.10-20 的 IP 位置。不過您也會發現,怎麼無法上網? 原因是, 您的網路封包皆已導向 vpn server , 若 vpn server 不給上, 您反而無法上網。因此, 接下來, 必須修改 /etc/rc.local 的 iptables 規則列, 來解決此一問題。

Linux iptables設定

    * 修改 /etc/rc.local
      root@Linux:# vi /etc/rc.local

# 打開 forward, 找到下面這一行, 去除 #
echo "1" > /proc/sys/net/ipv4/ip_forward

#在 $IPTABLES -P FORWARD ACCEPT 這一行的下方, 加入以下數行
###—————————————————–###
# 啟動 VPN 內部對外轉址
###—————————————————–###
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

# 注意: ppp0 這網卡代號可能因 pptpd 軟體而異,請下指令 ifconfig 查詢正確代號
# ——————————————————###

#在此區塊底下加上 vpn 連線限制
###—————————————————–###
# 拒絕外部 IP 連至內部 port 號
###—————————————————–###

###————————————————————–###
# 限制外面取用 VPN 連線, ex: 只開放 220.130.230.77及 163.26.182.0/24 撥入
###————————————————————–###
$IPTABLES -A INPUT -p tcp -s 220.130.230.77 –dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 –dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 –dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp –dport 1723 -j DROP

    * 啟用新規則列
      root@Linux:# service rc.local start

About

發佈留言