當前位置:首頁 » 操作系統 » linuxvpnl2tp

linuxvpnl2tp

發布時間: 2022-03-03 10:13:43

Ⅰ 如何在Ubuntu下配置L2TP VPN

安裝軟體包
sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
dpddelay=30
dpdtimeout=120
dpdaction=clear
# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
ikelifetime=8h
keylife=1h
type=transport
# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
left=x.x.x.x
# 用於升級過的 Windows 2000/XP 客戶端
leftprotoport=17/1701
# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
rightprotoport=17/%any
# 強制所有連接都NAT,因為 iOS
forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify
應該沒有任何錯誤才行:
Checking your system to see ifIPsec got installed and started correctly:
Version check and ipsec on-path [OK]
linuxOpenswan U2.6.28/K2.6.32-32-generic-pae (netkey)
CheckingforIPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500[OK]
Pluto listening for NAT-T on udp 4500[OK]
Checkingfor'ip' command [OK]
Checkingfor'iptables' command [OK]
[DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case"$1"in
start)
echo "Starting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24-j MASQUERADE
echo 1>/proc/sys/net/ipv4/ip_forward
for each in/proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec start
/etc/init.d/xl2tpd start
;;
stop)
echo "Stopping my Ipsec VPN"
iptables --table nat --flush
echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/ipsec stop
/etc/init.d/xl2tpd stop
;;
restart)
echo "Restarting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
;;
*)
echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
exit 1
;;
esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults
L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]
ipsec saref =no
[lns default]
ip range =10.152.2.2-10.152.2.254
local ip =10.152.2.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile =/etc/ppp/options.xl2tpd
length bit = yes
配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
** exampleforchallengestring
打開文件 /etc/ppp/options.xl2tpd,做如下配置:

refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *
user2 * chooseagoodpassword *
每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1
載入新的配置:
sysctl -p
啟動VPN
sudo /etc/init.d/ipsec.vpn restart
sudo /etc/init.d/xl2tpd restart
排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0
sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog
你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd andnot port ssh
這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。

Ⅱ 如何在Ubuntu下配置L2TP VPN

安裝軟體包
sudo apt-get install xl2tpd openswan ppp

IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24 # 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說, # 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。 oe=off protostack=netkey conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no # Apple 的 iOS 不會發送 delete 提醒, # 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端 dpddelay=30 dpdtimeout=120 dpdaction=clear # 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致 ikelifetime=8h keylife=1h type=transport # 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址) left=x.x.x.x # 用於升級過的 Windows 2000/XP 客戶端 leftprotoport=17/1701 # 要支持老的客戶端,需要設置 leftprotoport=17/%any right=%any rightprotoport=17/%any # 強制所有連接都NAT,因為 iOS forceencaps=yes

注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"

這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start

使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify

應該沒有任何錯誤才行:
Checking your system to see if IPsec got installed and started correctly:Version check and ipsec on-path [OK]Linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)Checking for IPsec support in kernel [OK]NETKEY detected, testing for disabled ICMP send_redirects [OK]NETKEY detected, testing for disabled ICMP accept_redirects [OK]Checking that pluto is running [OK]Pluto listening for IKE on udp 500 [OK]Pluto listening for NAT-T on udp 4500 [OK]Checking for 'ip' command [OK]Checking for 'iptables' command [OK]Opportunistic Encryption Support [DISABLED]

在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case "$1" in start) echo "Starting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec start /etc/init.d/xl2tpd start;; stop) echo "Stopping my Ipsec VPN" iptables --table nat --flush echo 0 > /proc/sys/net/ipv4/ip_forward /etc/init.d/ipsec stop /etc/init.d/xl2tpd stop;; restart) echo "Restarting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec restart /etc/init.d/xl2tpd restart ;; *) echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}" exit 1;;esac

這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn

禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove

然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults

L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]ipsec saref = no [lns default]ip range = 10.152.2.2-10.152.2.254local ip = 10.152.2.1require chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes

配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
* * exampleforchallengestring

打開文件 /etc/ppp/options.xl2tpd,做如下配置:

refuse-mschap-v2refuse-mschapms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0authcrtsctsidle 1800mtu 1200mru 1200lockhide-passwordlocal#debugname l2tpdproxyarplcp-echo-interval 30lcp-echo-failure 4

ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *user2 * chooseagoodpassword *

每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1

載入新的配置:
sysctl -p

啟動VPN
sudo /etc/init.d/ipsec.vpn restartsudo /etc/init.d/xl2tpd restart

排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0sudo tail -f /var/log/auth.logsudo tail -f /var/log/syslog

你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh

這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。

Ⅲ Linux 下 L2TP 連接的問題求助

設置 l2tp vpn:

1、右鍵單擊「網上鄰居」選擇「屬性」,打開網路連接屬性。
2、在右側的「網路任務」欄中點擊「創建一個新的連接。
3、打開新建連接向導,點「下一步」。在 「網路連接屬性」選擇里,點擊「設置高級連接」,點擊「下一步」,然後,在接下來的「高級連接選項」中選擇「接受傳入的連接」。點擊「下一步」。勾尋直接並行,點擊「下一步」。
4、勾尋允許虛擬專用連接」,點「下一步」。
5、創建一個允許連接的用戶許可權。點擊「添加」按鈕,輸入雙魚IP轉換器賬戶和密碼後點「確定」。點擊「下一步」繼續。
6、在「網路」中勾選需要用到的協議,一般保持默認即可。點擊「下一步」後,伺服器就搭建完成了。

選擇「開始」→「設置」→「控制面板」→「網路連接」→「創建一個新的連接」→「下一步」→「連接到我的工作場所的網路」→「下一步」→「虛擬專用網路連接」,按說明完成後面的操作即可。

Ⅳ 關於L2TP VPN與PPTP VPN的區別

L2TP VPN與PPTP VPN存在以下6個方面不同:

1、PPTP要求互聯網路為IP網路。L2TP只要求隧道媒介提供面向數據包的點對點的連接。L2TP可以在IP(使用UDP),幀中繼永久虛擬電路(PVCs),X.25虛擬電路(VCs)或ATM VCs網路上使用。

2、PPTP只能在兩端點間建立單一隧道。L2TP支持在兩端點間使用多隧道。使用L2TP,用戶可以針對不同的服務質量創建不同的隧道。

3、L2TP可以提供包頭壓縮。當壓縮包頭時,系統開銷(overhead)佔用4個位元組,而PPTP協議下要佔用6個位元組。

4、L2TP自身不提供隧道驗證,從L2TP的包頭可以看出。隧道認證是由PPP(pap或chap)協議提供!而PPTP則支持隧道驗證,PPTP自身就是PPP的擴展!但是當L2TP或PPTP與IPsec共同使用時,可以由IPsec提供隧道驗證,不需要在第2層協議上驗證隧道。

5、L2TP訪問集中器(L2TP Access Concentrator,LAC)是一種附屬在網路上的具有PPP端系統和L2Tpv2協議處理能力的設備,它一般就是一個網路接入伺服器軟體,在遠程客戶端完成網路接入服務的功能。

6、L2TP網路伺服器(L2TP Network Server,LNS)是用於處理L2TP協議伺服器端的軟體。

(4)linuxvpnl2tp擴展閱讀

VPN的工作原理如下。

1、通常情況下,VPN網關採取雙網卡結構,外網卡使用公網IP接入Internet。

2、網路一(假定為公網internet)的終端A訪問網路二(假定為公司內網)的終端B,其發出的訪問數據包的目標地址為終端B的內部IP地址。

3、網路一的VPN網關在接收到終端A發出的訪問數據包時對其目標地址進行檢查,如果目標地址屬於網路二的地址,則將該數據包進行封裝,封裝方式根據所採用的VPN技術不同而不同。

4、網路一的VPN網關將VPN數據包發送到Internet,由於VPN數據包的目標地址是網路二的VPN網關的外部地址,所以該數據包將被Internet中的路由正確地發送到網路二的VPN網關。

5、網路二的VPN網關對接收到的數據包進行檢查,如果發現該數據包是從網路一的VPN網關發出的,即可判定該數據包為VPN數據包,並對該數據包進行解包處理。解包的過程主要是先將VPN數據包的包頭剝離,再將數據包反向處理還原成原始的數據包。

6、網路二的VPN網關將還原後的原始數據包發送至目標終端B,由於原始數據包的目標地址是終端B的IP,所以該數據包能夠被正確地發送到終端B。在終端B看來,它收到的數據包就和從終端A直接發過來的一樣。

7、從終端B返回終端A的數據包處理過程和上述過程一樣,這樣兩個網路內的終端就可以相互通訊了。

Ⅳ centos5.9 64位如何安裝PPTP L2TP OPENVPN等程序

要安裝PPTP L2TP OPENVPN等軟體只要適合linux平台上的都可以,三個共存?如果用的埠不同可以的,

Ⅵ VPN 隧道協議PPTP,L2TP,IPSec和SSLVPN的區別

VPN是虛擬私有網路(Virtual Private Network)的簡稱,是一種常用於連接私有網路的通訊方式。VPN利用加密的通道協議來實現保密、認證等私有信息安全。VPN屬於遠程訪問技術,簡單地說就是利用公用網路架設專用網路,VPN技術可以基於不安全的網路(如互聯網)來發送可靠、安全的私有信息。

主流的操作系統,例如Windows、OSX及Linux等均內置VPN傳輸協議,可以不通過專用設備來實現VPN連接。

安全的VPN網路使用加密協議,阻止截聽與嗅探來提供保密性,還允許發送者身份驗證,以阻止身份偽造,同時通過防止信息被修改,保證信息完整。

常用的VPN網路協議有:PPTP、IPSec、L2TP/IPSec和OpenVPN幾種。

2003年4月,信息產業部頒發了《電信業務分類目錄》,取消了國際電信業務的分類,同時將虛擬專用網業務自基礎電信業務中分離出來,成為獨立的增值電信業務分類。但是此處的「虛擬專用網」概念與行業內的VPN業務是不一樣的。新的《電信業務分類目錄》中對該分類的解釋是:國內網際網路虛擬專用網業務(IP-VPN)是指經營者利用自有的或租用公用網際網路網路資源,採用TCP/IP協議,為國內用戶定製網際網路閉合用戶群網路的服務。這種分類的解釋強調了兩個特點,一個是利用網際網路網路資源,一個是採用TCP/IP協議。這種解釋是與當時的市場狀況所對應的,當時關注的是基於互連網的IPSec VPN,雖然該解釋可以基本涵蓋後出現的SSL VPN模式,但並沒有關注MPLS VPN。

2003年8月,信息產業部發布《關於組織開展國內多方通信服務等三項電信業務商用試驗的通知》,就「國內多方通信服務業務」、「在線數據處理與交易處理業務」、「國內網際網路虛擬專用網業務」等三項增值電信業務組織開展商用試驗,有效期至2004年8月底。

2004年11月,信息產業部發布《關於繼續開展國內多方通信服務等三項增值電信業務商用試驗的通告》,決定將以上三項增值電信業務商用試驗期延長一年,至2005年8月31日。

2006年1月,信息產業部發布《關於兩項增值電信業務及國內多方通信服務的通告》,正式開放「國內網際網路虛擬專用網業務」和「在線數據處理與交易處理業務」兩項增值電信業務,上述兩項增值電信業務由商用試驗轉為正式商用。

2008年,正式頒發IP-VPN業務牌照。名為IPSec VPN的中國「國內網際網路虛擬專用網」增值電信業務許可證自其誕生之日起即以MPLS VPN為發展方向。

2013年,工業與信息化部公布的《電信業務分類目錄(徵求意見稿)》中仍然沒有對此作出任何改變。

2015年1月起,某國開始加強對外國VPN服務的封鎖,使用PPTP和L2TP/IPSec協議的用戶將無法使用。

Ⅶ 如何在Ubuntu下配置L2TP VPN

安裝軟體包
sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
dpddelay=30
dpdtimeout=120
dpdaction=clear
# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
ikelifetime=8h
keylife=1h
type=transport
# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
left=x.x.x.x
# 用於升級過的 Windows 2000/XP 客戶端
leftprotoport=17/1701
# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
rightprotoport=17/%any
# 強制所有連接都NAT,因為 iOS
forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify
應該沒有任何錯誤才行:
Checking your system to see ifIPsec got installed and started correctly:
Version check and ipsec on-path [OK]
LinuxOpenswan U2.6.28/K2.6.32-32-generic-pae (netkey)
CheckingforIPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500[OK]
Pluto listening for NAT-T on udp 4500[OK]
Checkingfor'ip' command [OK]
Checkingfor'iptables' command [OK]
[DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case"$1"in
start)
echo "Starting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24-j MASQUERADE
echo 1>/proc/sys/net/ipv4/ip_forward
for each in/proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec start
/etc/init.d/xl2tpd start
;;
stop)
echo "Stopping my Ipsec VPN"
iptables --table nat --flush
echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/ipsec stop
/etc/init.d/xl2tpd stop
;;
restart)
echo "Restarting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
;;
*)
echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
exit 1
;;
esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults

Ⅷ 如何在Ubuntu下配置L2TP VPN

安裝軟體包
sudo apt-get install xl2tpd openswan ppp

IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
oe=off
protostack=netkey

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
dpddelay=30
dpdtimeout=120
dpdaction=clear
# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
ikelifetime=8h
keylife=1h
type=transport
# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
left=x.x.x.x
# 用於升級過的 Windows 2000/XP 客戶端
leftprotoport=17/1701
# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
rightprotoport=17/%any
# 強制所有連接都NAT,因為 iOS
forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"

這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start

使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify

應該沒有任何錯誤才行:
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)
Checking for IPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]

在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case "$1" in
start)
echo "Starting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec start
/etc/init.d/xl2tpd start
;;
stop)
echo "Stopping my Ipsec VPN"
iptables --table nat --flush
echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/ipsec stop
/etc/init.d/xl2tpd stop
;;
restart)
echo "Restarting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
;;
*)
echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
exit 1
;;
esac

這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn

禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove

然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults

L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]
ipsec saref = no

[lns default]
ip range = 10.152.2.2-10.152.2.254
local ip = 10.152.2.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
* * exampleforchallengestring

打開文件 /etc/ppp/options.xl2tpd,做如下配置:
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *
user2 * chooseagoodpassword *

每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1

載入新的配置:
sysctl -p

啟動VPN
sudo /etc/init.d/ipsec.vpn restart
sudo /etc/init.d/xl2tpd restart

排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0
sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog

你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh

這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。

Ⅸ 如何在 Debian / Ubuntu 伺服器上架設 L2TP / IPSec VPN

首先解釋一個問題:在 iPhone 的 VPN 設置介面里(Settings >> General >> Network >> VPN),你可以看到三個標簽:L2TP, PPTP, IPSec。但上面我們又講本次介紹的 VPN 方式叫「L2TP / IPSec」,這兩者究竟是什麼關系?

這三個標簽確實令人混淆,准確的寫法應該是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外兩者關系不大,且大家較為熟悉,暫且不提,L2TP 和 IPSec 的區別如下。

L2TP:一個「包裝」協議,本身並不提供加密和驗證的功能。

IPSec:在 IP 數據包的層級提供加密和驗證功能,確保中間人無法解密或者偽造數據包。

本來,只用 IPSec 就可以實現 VPN,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推薦使用 L2TP over IPSec,在兩者的圖形介面上也只能設置這個。L2TP / IPSec 是業界標准,微軟也支持。而只用 IPSec 的常見於 Linux-to-Linux 的應用,比如將兩個位於不同地區的辦公室網路安全地連在一起。這多是固定 IP 路由器到固定 IP 路由器級別的連接,只需保證數據包不被中途截獲或者偽造就可以,故使用 L2TP 的意義不大。L2TP / IPSec 主要是實現所謂「Road Warrior」的設置,即用變動的客戶端連固定的伺服器。

Cisco 的 VPN 用的也是 IPSec 加密,但那是一套不同於 L2TP 的私有包裝協議,用於提供用戶管理之類的功能,因此一般都需要用 Cisco 自家的 VPN 客戶端連接。iPhone / iPad 的 VPN 設置介面中的 IPSec 標簽里有 Cisco 的標識,就是這個原因。

以下是在 Ubuntu 和 Debian 主機上架設 L2TP / IPSec VPN 的步驟,一共十四步。你需要有伺服器的 root 許可權(所以 DreamHost, BlueHost, MediaTemple 這些服務供應商幫你把一切打點周到的主機就無緣了),也需要一些基本的 Linux 知識。不然的話,我們還是推薦您找一位比較熟技術的朋友幫忙。

一、安裝 IPSec。如上所述,IPSec 會對 IP 數據包進行加密和驗證。這意味著你的電腦 / 移動設備與伺服器之間傳輸的數據無法被解密、也不能被偽造。我推薦用 openswan 這個後台軟體包來跑 IPSec。

用以下命令安裝 openswan:

sudo aptitude install openswan二、用文字編輯器打開 /etc/ipsec.conf,改成這樣:

version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOUR.SERVER.IP.ADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any三、用文字編輯器打開 /etc/ipsec.secrets,改成這樣:

YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"(別忘了把「YOUR.SERVER.IP.ADDRESS」這部分換成你的伺服器的 IP 地址,把「YourSharedSecret」部分換成隨便一個字串,例如你喜歡的一句話,等等。)

四、運行以下命令:

for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done五、檢查一下 IPSec 能否正常工作:

sudo ipsec verify如果在結果中看到「Opportunistic Encryption Support」被禁用了,沒關系,其他項 OK 即可。

六、重啟 openswan:

sudo /etc/init.d/ipsec restart七、安裝 L2TP。常用的 L2TP 後台軟體包是 xl2tpd,它和 openswan 是同一幫人寫的。

運行以下命令:

sudo aptitude install xl2tpd八、用文字編輯器打開 /etc/xl2tpd/xl2tpd.conf,改成這樣:

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes這里要注意的是 ip range 一項里的 IP 地址不能和你正在用的 IP 地址重合,也不可與網路上的其他 IP 地址沖突。

九、安裝 ppp。這是用來管理 VPN 用戶的。

sudo aptitude install ppp十、檢查一下 /etc/ppp 目錄里有沒有 options.xl2tpd 這個文件,沒有的話就建一個,文件內容如下:

require-mschap-v2
ms-dns 208.67.222.222
ms-dns 208.67.220.220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4注意 ms-dns 兩行我填的是 OpenDNS。如果你想用其他的 DNS 伺服器(例如谷歌的公共 DNS),請自行更換。

十一、現在可以添加一個 VPN 用戶了。用文字編輯器打開 /etc/ppp/chap-secrets:

# user server password ip
test l2tpd testpassword *如果你之前設置過 PPTP VPN,chap-secrets 文件里可能已經有了其他用戶的列表。你只要把 test l2tpd testpassword * 這樣加到後面即可。

十二、重啟 xl2tpd:

sudo /etc/init.d/xl2tpd restart十三、設置 iptables 的數據包轉發:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward十四、因為某種原因,openswan 在伺服器重啟後無法正常自動,所以我們可以在 /etc/rc.local 文件里寫入如下語句:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart到這里,設置工作已經基本完成。你可以用 iPhone 或 iPad 試著連一下。記得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。

如果連接成功,上網也沒問題的話,恭喜你,大功告成。如果連不上,恐怕還得多做一步。

Ubuntu 9.10 自帶的 openswan 版本是 2.6.22, Debian Lenny 帶的版本是 2.4.12。這兩個版本的 openswan 都有問題。我們的測試結果表明,2.6.24 版的 openswan 可以在上述兩版的 Linux 操作系統下正常工作。所以如果做完以上十四步還是連不上的話,請考慮從源碼編譯 openswan 2.6.24 :

sudo aptitude install libgmp3-dev gawk flex bison
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar xf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs
sudo make install編譯需要一段時間。你的 Linux 內核版本需要高於 2.6.6。

然後可以刪除原先通過 aptitude 安裝的 openswan,並重啟之:

sudo aptitude remove openswan
sudo /etc/init.d/ipsec restart

熱點內容
安卓ops是什麼文件 發布:2024-11-15 16:32:18 瀏覽:927
雙線性插值演算法c 發布:2024-11-15 16:30:45 瀏覽:866
c語言和vc的區別 發布:2024-11-15 16:19:23 瀏覽:118
linux是免費的嗎 發布:2024-11-15 15:53:44 瀏覽:617
多控存儲 發布:2024-11-15 15:52:42 瀏覽:283
一年級數學分解演算法 發布:2024-11-15 15:41:08 瀏覽:411
安卓個人熱點怎麼分享 發布:2024-11-15 15:40:16 瀏覽:264
墊錢解壓 發布:2024-11-15 15:38:54 瀏覽:336
miui4相當於安卓什麼系統 發布:2024-11-15 15:37:54 瀏覽:709
rc4android 發布:2024-11-15 15:27:25 瀏覽:742