⑴ 如何在 Debian / Ubuntu 伺服器上架設 L2TP / IPSec VPN
L2TP:一個「包裝」協議,本身並不提供加密和驗證的功能。 IPSec:在 IP 數據包的層級提供加密和驗證功能,確保中間人無法解密或者偽造數據包。 本來,只用 IPSec 就可以實現 VPN,Mac OS X 和 linux 都支持。
⑵ 群暉NAS安裝VPN Server 套件三種服務協議設定
我們在群暉nas里安裝VPN Server 套件可以把我們的群暉nas變成一個VPN伺服器,我們可以安全的在遠端存取Synology NAS 區域網內分享的資源,群暉的VPN server整合了常用的通訊協定: PPTP、OpenVPN 、 L2TP/IPSec,當我們啟用了nas的vpn服務,會影響系統的網路性能。
我們先來了解一下三種協議:
PPTP
PPTP (Point-to-Point Tunneling Protocol,點對點信道協議) 是常用的 VPN 解決方案,且大多數的客戶端 (包含 Windows、Mac、Linux 及行動裝置) 皆支持。
若要啟動 PPTP VPN 伺服器:
1、開啟 VPN Server 並前往左側面板的 PPTP。
2、勾選啟動 PPTP VPN 伺服器。
3、在動態 IP 地址欄位輸入 VPN 伺服器的虛擬 IP 地址。請參閱下方的關於動態 IP 地址來了解更多信息。
4、設定最大聯機數量來限制 VPN 聯機的共同聯機數量。
5、設定同一賬號最多聯機數量來限制使用同一個賬號所進行 VPN 聯機的共同聯機數量。
6、從認證下拉式選單中選擇下列任一項目來認證 VPN 客戶端:
PAP:認證過程中,將不加密 VPN 客戶端的密碼。
MS-CHAP v2:認證過程中,將使用 Microsoft CHAP version 2 加密 VPN 客戶端的密碼。
7、若您選擇 MS-CHAP v2 驗證,請從加密下拉式選單中選擇下列任一項目來加密 VPN 聯機:
No MPPE:VPN 聯機不會受到加密機制保護。
Optional MPPE:客戶端設定將決定 VPN 聯機會 / 不會受到 40-bit 或 128-bit 加密機制保護。
Require MPPE:客戶端設定將決定 VPN 聯機會受到 40-bit 或 128-bit 加密機制保護。
8、設定 MTU (最大傳輸單元) 來限制 VPN 網路傳輸的數據封包大小。
9、勾選手動設定 DNS 並指派 DNS 伺服器的 IP 地址來發送給 PPTP 客戶端。若停用此選項,則會將 Synology NAS 目前所使用的 DNS 伺服器發送給客戶端。
10、單擊套用來讓變更生效。
注意:
聯機至 VPN 時,VPN 客戶端的驗證及加密設定必須與 VPN Server 上的相同,否則客戶端將無法成功聯機。
為兼容於運行在 Windows、Mac OS、iOS 與 Android 系統的大部分 PPTP 客戶端,預設的 MTU 值為 1400。若您的網路環境較為復雜,可能需要設定一個較小的 MTU 值。若您經常收到逾時訊息或聯機不穩定,請降低 MTU 值。
請檢查 Synology NAS 與路由器上的埠轉送規則與防火牆設定,確認 TCP 1723 埠已開啟。
部分路由器內建 PPTP VPN 服務,因此可能已佔用 1723 埠。您需先透過路由器的管理介面關閉其內建的 PPTP VPN 服務,才能確保 VPN Server 上的 PPTP VPN 服務可以正常運作。此外,部分舊式路由器可能會封鎖 GRE 協議 (IP 協議 47),造成 VPN 聯機失敗;建議使用支持 VPN pass-through 聯機的路由器。
OpenVPN
OpenVPN 是開放原始碼的 VPN 服務解決方案,會以 SSL / TLS 加密機制保護 VPN 聯機。
若要啟動 OpenVPN VPN 伺服器:
1、開啟 VPN Server,前往左側面板的 OpenVPN。
2、勾選啟動 OpenVPN 伺服器。
3、在動態 IP 地址欄位輸入 VPN 伺服器的虛擬內部 IP 地址。請參閱下方的關於動態 IP 地址來了解更多信息。
4、設定最大聯機數量來限制 VPN 聯機的共同聯機數量。
5、設定同一賬號最多聯機數量來限制使用同一個賬號進行 VPN 聯機的共同聯機數量。
6、為 OpenVPN 數據傳輸設定埠與通訊協議。您可以決定要將何種協議的數據封包透過 VPN 轉送至 Synology NAS 的哪個埠。默認值為 UDP 埠 1194
注意: 為確保 Synology NAS 上的服務可以正常運作,請避免將同樣的一組埠與通訊協議指派給其他 Synology 服務。請參閱此篇應用教學以了解更多信息。
7、在加密下拉式選單中擇一,以加密 VPN 信道中的數據封包。
8、在驗證下拉式選單中擇一,以驗證 VPN 客戶端。
9、若要在傳輸數據時壓縮數據,請勾選啟動 VPN 壓縮聯機。此選項可提升傳輸速度,但可能會消耗較多系統資源。
10、勾選允許客戶端存取伺服器的區域網絡來讓客戶端存取伺服器的區域網絡。
11、勾選啟動 IPv6 伺服器模式來啟動 OpenVPN 伺服器,以傳送 IPv6 地址。您必須先在控制面板 > 網路 > 網路介面中,透過 6in4/6to4/DHCP-PD 取得 Prefix,並在此頁面中選擇該 Prefix。
12、單擊套用來讓變更生效。
注意:
VPN Server 不支持站台對站台的橋接模式。
請檢查 Synology NAS 與路由器上的埠轉送規則與防火牆設定,確認 UDP 1194 埠已開啟。
在 Windows Vista 或 Windows 7 上執行 OpenVPN GUI 時,請注意,UAC (用戶帳戶控制) 預設為開啟。此設定開啟時,需使用以系統管理員身份執行選項來透過 OpenVPN GUI 進行聯機。
在 Windows 上透過 OpenVPN GUI 啟動 IPv6 伺服器模式時,請注意以下事項:
VPN 所使用的介面名稱不可包含空格,例如:LAN 1 須變更為 LAN1。
重新導向網關 (redirect-gateway) 選項須由客戶端於 openvpn.ovpn 檔案中設定。若您不想設定此選項,應手動設定 VPN 介面的 DNS。您可以使用 Google IPv6 DNS:2001:4860:4860::8888。
若要匯出配置文件:
單擊匯出配置文件。OpenVPN 讓 VPN 伺服器可頒發證書供客戶端使用。所匯出的檔案為 zip 壓縮文件,其中包含 ca.crt (VPN 伺服器的憑證檔案)、openvpn.ovpn (客戶端使用的配置文件案),以及 README.txt (客戶端如何設定 OpenVPN 聯機的簡易說明)。
注意:
每次啟動 VPN Server 時,便會自動復制、使用顯示於控制面板 > 安全性 > 憑證之憑證。若您需使用第三方憑證,請到控制台 > 安全性 > 憑證 > 新增來匯入憑證,並重新啟動 VPN Server。
每次修改憑證文件 (顯示於控制面板 > 安全性 > 憑證) 後,VPN Server 將會自動重新啟動。
L2TP/IPSec
L2TP (Layer 2 Tunneling Protocol) over IPSec 提供更安全的虛擬私有網路,且大多數的客戶端 (如 Windows、Mac、Linux 及行動裝置) 皆支持。
若要啟動 L2TP/IPSec VPN 伺服器:
1、開啟 VPN Server 並前往左側面板的 L2TP/IPSec。
2、勾選啟動 L2TP/IPSec VPN 伺服器。
3、在動態 IP 地址欄位輸入 VPN 伺服器的虛擬 IP 地址。請參閱下方的關於動態 IP 地址來了解更多信息。
4、設定最大聯機數量來限制 VPN 聯機的共同聯機數量。
5、設定同一賬號最多聯機數量來限制使用同一個賬號進行 VPN 聯機的共同聯機數量。
6、從認證下拉式選單中選擇下列任一項目來認證 VPN 客戶端:
PAP:認證過程中,將不加密 VPN 客戶端的密碼。
MS-CHAP v2:認證過程中,將使用 Microsoft CHAP version 2 加密 VPN 客戶端的密碼。
7、設定 MTU (最大傳輸單元) 來限制 VPN 網路傳輸的數據封包大小。
8、勾選手動設定 DNS 並指派 DNS 伺服器的 IP 地址來發送給 L2TP/IPSec 客戶端。若停用此選項,則會將 Synology NAS 目前所使用的 DNS 伺服器發送給客戶端。
9、若要發揮 VPN 最大效能,選取執行核心 (kernel) 模式。
10、輸入並確認預先共享密鑰。您應將此密鑰提供給 L2TP/IPSec VPN 使用者以驗證聯機。
11、勾選啟動 SHA2-256 兼容模式 (96 bit),以讓特定客戶端 (非 RFC 標准) 可以使用 L2TP/IPSec 聯機。
12、單擊套用來讓變更生效。
注意:
聯機至 VPN 時,VPN 客戶端的驗證及加密設定必須與 VPN Server 上的設定相同,否則客戶端將無法成功進行聯機。
為兼容於運行在 Windows、Mac OS、iOS 與 Android 系統的大部分 L2TP/IPSec 客戶端,預設的 MTU 值為 1400。若您的網路環境較為復雜,可能需要設定一個較小的 MTU 值。若您經常收到逾時訊息或聯機不穩定,請降低 MTU 值。
請檢查 Synology NAS 與路由器上的埠轉送規則與防火牆設定,以確認 UDP 1701、500、4500 埠已開啟。
部分路由器內建 L2TP 或 IPSec VPN 服務,因此可能已佔用 1701、500 或 4500 埠。您需先透過路由器的管理介面關閉其內建的 L2TP 或 IPsec VPN 服務,才能確保 VPN Server 上的 L2TP/IPsec VPN 服務可以正常運作。建議使用支持 VPN pass-through 聯機的路由器。
關於動態 IP 地址
VPN Server 會依據您在動態 IP 地址中輸入的數字,從虛擬 IP 地址范圍中選擇一個 IP 地址來分配給 VPN 客戶端使用。例如:若 VPN 伺服器的動態 IP 地址設定為「10.0.0.0」,則 PPTP VPN 客戶端的虛擬 IP 地址范圍為「10.0.0.1」至「10.0.0.[最大聯機數量]」;OpenVPN 客戶端的虛擬 IP 地址范圍則為「10.0.0.2」至「10.0.0.255」。
重要事項: 指定 VPN 伺服器的動態 IP 地址之前,請注意:
1、VPN 伺服器可使用的動態 IP 地址必須為下列其一:
從「10.0.0.0」至「10.255.255.0」
從「172.16.0.0」至「172.31.255.0」
從「192.168.0.0」至「192.168.255.0」
2、您指定的 VPN 伺服器動態 IP 地址以及指派給 VPN 客戶端的虛擬 IP 地址,皆不能與區域網絡中任一已使用的 IP 地址沖突。
關於客戶端進行 VPN 聯機時使用的網關設定
使用 VPN 聯機至 Synology NAS 的區域網絡之,客戶端可能需要為 VPN 聯機變更網關設定;否則,在 VPN 聯機建立之後,它們可能會無法聯機至網際網路。
⑶ 防火牆技術有哪些
從實現原理上分,防火牆的技術包括四大類:網路級防火牆、應用級網關、電路級網關和規則檢查防火牆。
1、網路級防火牆
一般是基於源地址和目的地址、應用、協議以及每個IP包的埠來作出通過與否的判斷。防火牆檢查每一條規則直至發現包中的信息與某規則相符。
如果沒有一條規則能符合,防火牆就會使用默認規則,一般情況下,默認規則就是要求防火牆丟棄該包。通過定義基於TCP或UDP數據包的埠號,防火牆能夠判斷是否允許建立特定的連接,如Telnet、FTP連接。
2、應用級網關
應用級網關能夠檢查進出的數據包,通過網關復制傳遞數據,防止在受信任伺服器和客戶機與不受信任的主機間直接建立聯系。應用級網關能夠理解應用層上的協議,能夠做復雜一些的訪問控制,並做精細的注冊和稽核。
它針對特別的網路應用服務協議即數據過濾協議,並且能夠對數據包分析並形成相關的報告。應用網關對某些易於登錄和控制所有輸出輸入的通信的環境給予嚴格的控制,以防有價值的程序和數據被竊取。
3、電路級網關
電路級網關用來監控受信任的客戶或伺服器與不受信任的主機間的TCP握手信息,這樣來決定該會話是否合法,電路級網關是在OSI模型中會話層上來過濾數據包,這樣比包過濾防火牆要高二層。
電路級網關代理伺服器功能,代理伺服器是設置在Internet防火牆網關的專用應用級代碼。這種代理服務准許網管員允許或拒絕特定的應用程序或一個應用的特定功能。包過濾技術和應用網關是通過特定的邏輯判斷來決定是否允許特定的數據包通過,成功地實現了防火牆內外計算機系統的隔離。
4、規則檢查防火牆
該防火牆結合了包過濾防火牆、電路級網關和應用級網關的特點。能夠在OSI網路層上通過IP地址和埠號,過濾進出的數據包,也能夠檢查SYN和ACK標記和序列數字是否邏輯有序。當然它也象應用級網關一樣,可以在OSI應用層上檢查數據包的內容,查看這些內容是否能符合企業網路的安全規則。
規則檢查防火牆雖然集成前三者的特點,但是不同於一個應用級網關的是,它並不打破客戶機/伺服器模式來分析應用層的數據,它允許受信任的客戶機和不受信任的主機建立直接連接。規則檢查防火牆不依靠與應用層有關的代理,而是依靠某種演算法來識別進出的應用層數據。
(3)linuxl2tpipsec擴展閱讀
應用防火牆技術考慮以下方面:
1、防火牆是不能防病毒的。
2、防火牆技術的另外一個弱點在於數據在防火牆之間的更新是一個難題,如果延遲太大將無法支持實時服務請求。
防火牆採用濾波技術,濾波通常使網路的性能降低50%以上,如果為了改善網路性能而購置高速路由器,又會大大提高經濟預算。
防火牆是企業網安全問題的常用方案,即把公共數據和服務置於防火牆外,使其對防火牆內部資源的訪問受到限制。作為一種網路安全技術,防火牆具有簡單實用的特點,並且透明度高,可以在不修改原有網路應用系統的情況下達到一定的安全要求。
⑷ 如何在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 是你的客戶端的公網地址。
⑸ VPN相關技術
當您通過Internet使用VPN時,它會在兩個設備/網路之間創建專用且加密的隧道。現在作為VPN,你很難對數據進行竊聽,即使它被侵入,因為這是數據被加密,從這個加密數據中獲取任何信息幾乎是不可能的。有幾種VPN隧道協議,如PPTP(點對點隧道協議),L2TP(第二層隧道協議),IPSec(Internet協議安全),SSL(安全套接字層)等,用於創建VPN隧道。
IPSec實現
工作於TCP/IP第三層IP層上網路數據安全地一整套體系結構;包括網路認證協議AH(Authentication Header,認證頭)、ESP(Encapsulating Security Payload,封裝安全載荷)、IKE(Internet Key Exchange,網際網路密鑰交換又稱isakmp)和用於網路認證及加密的一些演算法等。其中,AH協議和ESP協議用於提供安全服務,IKE協議用於密鑰交換。
整個IPSec VPN地實現基本簡化為兩個SA協商完成
SA(security association):是兩個通信實體經協商建立起來地一種協議,它們決定了用來保護數據包安全地IPsec協議,轉碼方式,密鑰,以及密鑰地有效存在時間等等
IKE(isakmp)SA: 協商對IKE數據流進行加密以及對對等體進行驗證地演算法(對密鑰地加密和peer地認證) 對等體之間只能存在一個
第一階段:建立ISAKMPSA協商的是以下信息:
1、對等體之間採用何種方式做認證,是預共享密鑰還是數字證書。
2、雙方使用哪種加密演算法(DES、3DES)
3、雙方使用哪種HMAC方式,是MD5還是SHA
4、雙方使用哪種Diffie-Hellman密鑰組
5、使用哪種協商模式(主模式或主動模式)
6、協商SA的生存期
IPSec SA: 協商對對等體之間地IP數據流進行加密地演算法 對等體之間可以存在多個
第二階段:建立IPsecSA協商的是以下信息:
1、雙方使用哪種封裝技術,AH還是ESP
2、雙方使用哪種加密演算法
3、雙方使用哪種HMAC方式,是MD5還是SHA
4、使用哪種傳輸模式,是隧道模式還是傳輸模式
5、協商SA的生存期
名詞解釋:
AH協議(IP協議號為51): 提供數據源認證、數據完整性校驗和防報文重放功能,它能保護通信免受篡改,但不能防止竊聽,適合用於傳輸非機密數據。AH的工作原理是在每一個數據包上添加一個身份驗證報文頭,此報文頭插在標准IP包頭後面,對數據提供完整性保護。可選擇的認證演算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。
ESP協議(IP協議號為50): 提供加密、數據源認證、數據完整性校驗和防報文重放功能。ESP的工作原理是在每一個數據包的標准IP包頭後面添加一個ESP報文頭,並在數據包後面追加一個ESP尾。與AH協議不同的是,ESP將需要保護的用戶數據進行加密後再封裝到IP包中,以保證數據的機密性。常見的加密演算法有DES、3DES、AES等。同時,作為可選項,用戶可以選擇MD5、SHA-1演算法保證報文的完整性和真實性。
IPSec有兩種工作模式:
隧道(tunnel)模式: 用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。通常,隧道模式應用在兩個安全網關之間的通訊。
傳輸(transport)模式: 只是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭後面。通常,傳輸模式應用在兩台主機之間的通訊,或一台主機和一個安全網關之間的通訊。
1. 數據認證
數據認證有如下兩方面的概念:
身份認證:身份認證確認通信雙方的身份。支持兩種認證方法:預共享密鑰(pre-shared-key)認證和基於PKI的數字簽名(rsa-signature)認證。
身份保護:身份數據在密鑰產生之後加密傳送,實現了對身份數據的保護。
2. DH
DH(Diffie-Hellman,交換及密鑰分發)演算法是一種公共密鑰演算法。通信雙方在不傳輸密鑰的情況下通過交換一些數據,計算出共享的密鑰。即使第三者(如黑客)截獲了雙方用於計算密鑰的所有交換數據,由於其復雜度很高,不足以計算出真正的密鑰。所以,DH交換技術可以保證雙方能夠安全地獲得公有信息。
3. PFS
PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一種安全特性,指一個密鑰被破解,並不影響其他密鑰的安全性,因為這些密鑰間沒有派生關系。對於IPsec,是通過在IKE階段2協商中增加一次密鑰交換來實現的。PFS特性是由DH演算法保障的。
IKE的交換過程
IKE使用了兩個階段為IPsec進行密鑰協商並建立SA:
第一階段,通信各方彼此間建立了一個已通過身份認證和安全保護的通道,即建立一個ISAKMP SA。第一階段有主模式(Main Mode)和野蠻模式(Aggressive Mode)兩種IKE交換方法。
第二階段,用在第一階段建立的安全隧道為IPsec協商安全服務,即為IPsec協商具體的SA,建立用於最終的IP數據安全傳輸的IPsec SA。
如圖2-1所示,第一階段主模式的IKE協商過程中包含三對消息:
l 第一對叫SA交換,是協商確認有關安全策略的過程;
l 第二對消息叫密鑰交換,交換Diffie-Hellman公共值和輔助數據(如:隨機數),密鑰材料在這個階段產生;
l 最後一對消息是ID信息和認證數據交換,進行身份認證和對整個第一階段交換內容的認證。
野蠻模式交換與主模式交換的主要差別在於,野蠻模式不提供身份保護,只交換3條消息。在對身份保護要求不高的場合,使用交換報文較少的野蠻模式可以提高協商的速度;在對身份保護要求較高的場合,則應該使用主模式。
IKE在IPsec中的作用
l 因為有了IKE,IPsec很多參數(如:密鑰)都可以自動建立,降低了手工配置的復雜度。
l IKE協議中的DH交換過程,每次的計算和產生的結果都是不相關的。每次SA的建立都運行DH交換過程,保證了每個SA所使用的密鑰互不相關。
l IPsec使用AH或ESP報文頭中的序列號實現防重放。此序列號是一個32比特的值,此數溢出後,為實現防重放,SA需要重新建立,這個過程需要IKE協議的配合。
l 對安全通信的各方身份的認證和管理,將影響到IPsec的部署。IPsec的大規模使用,必須有CA(Certificate Authority,認證中心)或其他集中管理身份數據的機構的參與。
l IKE提供端與端之間動態認證。
IPsec與IKE的關系
圖 5 IPsec與IKE的關系圖
從圖2-2中我們可以看出IKE和IPsec的關系:
l IKE是UDP之上的一個應用層協議,是IPsec的信令協議;
l IKE為IPsec協商建立SA,並把建立的參數及生成的密鑰交給IPsec;
l IPsec使用IKE建立的SA對IP報文加密或認證處理。
SSL VPN簡介
SSL VPN是以SSL協議為安全基礎的VPN遠程接入技術,移動辦公人員(在SSL VPN中被稱為遠程用戶)使用SSL VPN可以安全、方便的接入企業內網,訪問企業內網資源,提高工作效率。
SSL VPN技術優勢:
無客戶端的便捷部署
應用層接入的安全保護
企業延伸的效率提升
SSL協議從身份認證、機密性、完整性三個方面確保了數據通信的安全 。
SSL VPN實現私密性 完整性 不可否認 源認證
SSL VPN的特點:
採用B/S架構,遠程用戶無需安裝額外軟體,可直接使用瀏覽器訪問內網資源。
SSL VPN可根據遠程用戶訪問內網資源的不同,對其訪問許可權進行高細粒度控制。
提供了本地認證、伺服器認證、認證匿名和證書挑戰多種身份認證方式,提高身份認證的靈活性。
可以使用主機檢查策略。
緩存清理策略用於清理遠程用戶訪問內網過程中在終端上留下的訪問哼唧,加固用戶的信息安全。
PN類型詳解 PPTP VPN
PPTP:點對點隧道協議,一種支持多協議虛擬專用網路(VPN)的網路技術,工作在第二層數據鏈路層。以同樣工作在第二層的點對點傳輸協議(PPP)為基礎,PPTP將PPP幀封裝成IP數據包,以便於在互聯網上傳輸並可以通過密碼驗證協議(PAP),可擴展認證協議(EAP)增加安全性。遠程用戶能夠通過安裝有點對點協議的操作系統訪問公司網路資源。
PPTP VPN的實現需要:客戶機和伺服器之間必須有聯通並且可用的IP網路。
該VPN可在Windows、Linux環境下搭建,或者通過配置路由器來實現。
L2F:第二層轉發協議。 用於建立跨越公共網路的安全隧道來將ISP POP連接到企業內部網關。這個隧道建立了一個用戶與企業客戶網路間的虛擬點對點連接。 L2F允許高層協議的鏈路層隧道技術,使得把原始撥號伺服器的位置和撥號協議連接終止與提供的網路訪問位置分離成為可能。
L2TP VPN
L2TP:二層隧道協議,結合PPTP與L2F兩種二層隧道協議的優點,為眾多公司接受。 L2TP擴展了PPP模型,它使用PPP來封裝用戶數據,允許多協議通過隧道傳送,作為安全性增強,L2TP與IPSec(Internet協議安全性)結合——L2TP/IPsec, L2TP基於UDP協議,因此L2TP不保證數據消息的可靠投遞,若數據丟失,不予重傳。
L2TP 的實現:與PPTP不同, PPTP要求網路為IP網路,L2TP要求面向數據包的點對點連接。
該VPN可在Windows、Linux環境下搭建,或者通過配置防火牆、路由器來實現。
MPLS VPN
MPLS:多協議標簽交換(MPLS)是一種用於快速數據包交換和路由的體系,它為網路數據流量提供了目標、路由地址、轉發和交換等能力。更特殊的是,它具有管理各種不同形式通信流的機制。
它提供了一種方式,將IP地址映射為簡單的具有固定長度的標簽,用於不同的包轉發和包交換技術。
傳統的VPN是基於 PPTP L2TP等隧道協議來實現私有網路間數據流在公網上的傳送。而LSP本身就是公網上的隧道,所以用MPLS來實現VPN有天然的優勢。
基於MPLS的VPN就是通過LSP將私有網路的不同分支聯結起來,形成一個統一的網路。基於MPLS的VPN還支持對不同VPN間的互通控制。
MPLSVPN網路主要由CE、PE和P等3部分組成:
CE(Customer Edge):用戶網路邊緣設備,可以是路由器 交換機 主機。
PE(Provider Edge):是服務商邊緣路由器,位於骨幹網路。
P(Provider):是服務提供商網路中的骨幹路由器
SSL工作Socket層,IPsec工作在網路層.
SSL(安全套接層)是一個基於標準的加密協議,提供加密和身份識別服務。SSL廣泛應用於在互聯網上提供加密的通訊。SSL最普通的應用是在網路瀏覽器中通過HTTPS實現的。然而,SSL是一種透明的協議,對用戶基本上是不可見的,它可應用於任何基於TCP/IP的應用程序。
通用路由封裝協議GRE(Generic Routing Encapsulation) 提供了 將一種協議的報文封裝在另一種協議報文中 的機制,是一種 隧道封裝技術 。GRE可以 封裝組播數據 ,並可以 和IPSec結合使用 ,從而保證語音、視頻等組播業務的安全
IPSec 用於在兩個端點之間提供安全的IP通信,但只能加密並傳播單播數據,無法加密和傳輸語音、視頻、動態路由協議信息等組播數據流量
GRE屬於網路層協議 IP協議號為47
GRE的優點總結:
GRE實現機制簡單,對隧道兩端的設備負擔小
GRE隧道可以通過IPv4網路連通多種網路協議的本地網路,有效利用了原有的網路架構,降低成本
GRE隧道擴展了跳數受限網路協議的工作范圍,支持企業靈活設計網路拓撲
GRE隧道可以封裝組播數據,和IPSec結合使用時可以保證語音、視頻等組播業務的安全
GRE隧道支持使能MPLS LDP,使用GRE隧道承載MPLS LDP報文,建立LDP LSP,實現MPLS骨幹網的互通
GRE隧道將不連續的子網連接起來,用於組建實現企業總部和分支間安全的連接
GRE屬於網路層協議 IP協議號為47
GRE的優點總結:
GRE實現機制簡單,對隧道兩端的設備負擔小
GRE隧道可以通過IPv4網路連通多種網路協議的本地網路,有效利用了原有的網路架構,降低成本
GRE隧道擴展了跳數受限網路協議的工作范圍,支持企業靈活設計網路拓撲
GRE隧道可以封裝組播數據,和IPSec結合使用時可以保證語音、視頻等組播業務的安全
GRE隧道支持使能MPLS LDP,使用GRE隧道承載MPLS LDP報文,建立LDP LSP,實現MPLS骨幹網的互通
GRE隧道將不連續的子網連接起來,用於組建,實現企業總部和分支間安全的連接
隧道介面
GRE隧道是通過隧道兩端的 Tunnel介面 建立的,所以需要在隧道兩端的設備上分別配置 Tunnel介面 。對於GRE的Tunnel介面,需要指定其協議類型為GRE、源地址或源介面、目的地址和Tunnel介面IP地址
隧道介面(tunnel介面) 是為實現報文的封裝而提供的一種點對點類型的虛擬介面 與loopback介面類似 都是一種 邏輯接
GRE隧道介麵包含 源地址 、 目的地址 和 隧道介面IP地址 和 封裝類型
Tunnel的源地址:配置報文傳輸協議中的源地址。
當配置地址類型時,直接作為源地址使用
當配置類型為源介面時,取該介面的IP地址作為源地址使用
Tunnel的目的地址 :配置報文傳輸協議中的目的地址
Tunnel介面IP地址 :為了在Tunnel介面上啟用動態路由協議,或使用靜態路由協議發布Tunnel介面,需要為Tunnel介面分配IP地址。Tunnel介面的IP地址可以不是公網地址,甚至可以借用其他介面的IP地址以節約IP地址。但是當Tunnel介面借用IP地址後,該地址不能直接通過tunnel口互通,因此在借用IP地址情況下,必須配置靜態路由或路由協議先實現借用地址的互通性,才能實現Tunnel的互通。
L2TP基本概念:
L2TP(Layer 2 Tunneling Protocol) VPN是一種用於承載PPP報文的隧道技術,該技術主要應用在遠程辦公場景中為出差員工遠程訪問企業內網資源提供接入服務。
L2TP VPN的優點:
身份驗證機制,支持本地認證,支持Radius伺服器等認證方式
多協議傳輸,L2TP傳輸PPP數據包,PPP本身可以傳輸多協議,而不僅僅是IP可以在PPP數據包內封裝多種協議
計費認證地址分配
可在LAC和LNS兩處同時計費,即ISP處(用於產生賬單)及企業網關(用於付費及審計)。L2TP能夠提供數據傳輸的出入包數、位元組數以及連接的起始、結束時間等計費數據,可根據這些數據方便地進行網路計費
LNS可放置於企業網的USG之後,對遠端用戶地址進行動態分配和管理,可支持私有地址應用
不受NAT限制穿越,支持遠程接入,靈活的身份驗證及時以及高度的安全性,L2TP協議本身並不提供連接的安全性,但它可以依賴於PPP提供的認證(CHAP、PAP等),因此具有PP所具有的所有安全特性。
L2TP和PPTP區別:
L2TP:公有協議、UDP1701、支持隧道驗證,支持多個協議,多個隧道,壓縮位元組,支持三種模式
PPTP:私有協議、TCP1723、不支持隧道驗證,只支持IP、只支持點到點
PPTP:
點對點隧道協議(PPTP)是由包括Microsoft和3com等公司組成的PPTP論壇開發的,一種點對點隧道協議,基於拔號使用的PPP協議使用PAP或CHAP之類的加密演算法,或者使用Microsoft的點對點加密演算法MPPE。
L2TP:
第二層隧道協議(L2TP)是IETF基於L2F(Cisco的2層轉發協議)開發的PPTP後續版本,是一種工業標准Internet隧道協議。
兩者的主要區別主要有以下幾點:
PPTP只能在兩端間建立單一隧道,L2TP支持在兩端點間使用多隧道,這樣可以針對不同的用戶創建不同的服務質量
L2TP可以提供隧道驗證機制,而PPTP不能提供這樣的機制,但當L2TP或PPTP與IPSec共同使用時,可以由IPSec提供隧道驗證,不需要在第二層協議上提供隧道驗證機制
PPTP要求互聯網路為IP網路,而L2TP只要求隧道媒介提供面向數據包的點對點連接,L2TP可以在IP(使用UDP),FR,ATM,x.25網路上使用
L2TP可以提供包頭壓縮。當壓縮包頭時,系統開銷(voerhead)佔用4個位元組,而PPTP協議下要佔用6個位元組
⑹ linux l2tp是怎麼使用ipsec加密的
羌無意識腫 muwtuo739
⑺ RouterOSv7WireGuard隧道協議
RouterOS v7加入了WireGuard,WireGuard是一個極簡而快速的加密VPN協議。其設計目標是比IPsec更快、更精簡和高效,同時性能要比OpenVPN提升很多。WireGuard被設計成一種通用VPN,可以在多個平台上運行,適合許多不同的環境。最初是為Linux內核發布的,後支持跨平台(Windows, macOS, BSD, iOS, Android),能進行廣泛的部署。
從官方測試性能看,WireGurad對於IPsec優勢非常明顯,而對於OpenVPN幾乎是碾壓。
在部署方面,WireGurad各個節點是Peer對等體的概念,而非是Server與Client關系,相互之間是對等的,一個節點既可以是發起者,也可以是接收者,比如網上提到VPN的拓撲方案中,可以是點對點,點對多點的中心覆蓋,而WireGuard不一樣了,不僅可以點對點,也可以點對多點,每個節點同時可連接多個 Peer,看到過有人通過WireGuard建立全互聯模式,三層的Mesh網狀網路。
WireGuard只支持UDP協議,不支持傳統的TCP-over-TCP隧道,因為TCP網路性能並不理想,如果對TCP連接有需求,將wiredguard的UDP包轉換為TCP,並可以使用如udptunnel和udp2raw來協助完成。
關於NAT穿透,通常情況下,WireGuard網路在未被使用的情況下,會盡量保持「安靜」。在大多數情況下,它只在Peer對等體,希望發送數據包時傳輸數據,當它沒有被要求發送數據包時,它就停止發送,直到再次被請求。在點對點公網IP連接的網路環境是這樣的,然而,當一個Peer端位於NAT或防火牆之後時,即使它不發送任何數據包的情況下,也希望能接收傳入的數據包。因為NAT和防火牆會跟蹤「會話連接」,他必須通過定期發送數據包來維持NAT/防火牆連接會話映射的有效,即UDP的timeout時間,即被稱為keepalive。WireGuard可以開啟此選項,每隔一秒向對端點發送一個keepalive報文,當然適用於各種NAT/防火牆的合理間隔在25秒。默認設置keepalive是關閉狀態,因為公網IP連接的用戶不需要這個功能。
WireGuard加密使用ChaCha20,驗證使用Poly1305,它幾乎在所有通用CPU上的運行速度都非常快。雖然未被專用硬體支持(IPsec支持硬體加速),但在CPU上的矢量指令(vector instructions)與AES-NI指令處於相同的優先順序(有時甚至更快)。
總結下WireGuard的特點:
是基於UDP協議連接,具備網路性能優勢
運行在Linux內核,在性能上優於IPsec和OpenVPN
每個節點通過公鑰識別進行驗證,加密採用的是ChaCha20Poly1305。
每個節點是平等的,既可以作為server,又可以作為client
兩端僅需要一個配置公網IP,另一端在nat後也能連接,nat後的節點,僅需要對端節點公鑰,以及公網IP (endpoint)和埠(endpoint port),而公網節點只需要填寫連接端的公鑰即可
從測試結果看未使用IPsec加密的L2TP的傳輸帶寬性能最好,超過了WireGuard,但在使用IPsec的L2TP加密後,性能遠不如WireGuard,我平時喜歡使用SSTP在RouterOS設備之間建立連接,因為SSTP埠靈活,在RouterOS建立隧道無需證書,但SSTP的傳輸性能在RouterOS支持的所有隧道協議中性能是最差的,現在v7有了WireGuard就不一樣了。
⑻ linux系統怎麼添加永久路由
一、使用route命令添加
使用route 命令添加的路由,機器重啟或者網卡重啟後路由就失效了,方法:
A、添加到主機的路由
route add –host 192.168.1.10 dev eth0
route add –host 192.168.1.10 gw 192.168.1.1
B、添加到網路的路由
route add –net 192.168.1.0 netmask 255.255.255.0 eth0
route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
route add –net 192.168.1.0/24 eth1
C、添加默認網關
route add default gw 192.168.1.1
D、刪除路由
route del –host 192.168.1.10 dev eth0
二、添加永久路由
A、# vi /etc/rc.local(添加到末尾) 《Linux就該這么學》學習linux
語句:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
[root@admin ~]# cat /etc/rc.local
/usr/bin/freshclam --daemon
/sbin/route add -net 192.168.168.0/24 gw 172.16.16.1
/etc/init.d/ipsec restart
/usr/bin/l2tpset
/usr/local/sbin/xl2tpd
iptables --table nat --append POSTROUTING --jump MASQUERADE
/etc/init.d/ipsec restart
/usr/bin/l2tpset
/usr/local/sbin/xl2tpd
/sbin/route add -net 192.168.99.108/30 gw 172.16.16.1
/sbin/route add -net 10.50.0.188/30 gw 172.16.16.1
/sbin/route add -net 103.227.72.32/27 gw 172.16.16.30
/sbin/route add -host 118.188.20.34 gw 172.16.16.30
/sbin/route add -net 192.168.168.0/24 gw 172.16.16.1
/sbin/route add -host 103.232.215.131 gw 172.16.16.1
/sbin/route add -net 103.227.72.160/27 gw 172.16.16.30
/sbin/route add -host 220.181.163.1 gw 172.16.16.30
⑼ 關於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協議伺服器端的軟體。
(9)linuxl2tpipsec擴展閱讀
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的數據包處理過程和上述過程一樣,這樣兩個網路內的終端就可以相互通訊了。