環境介紹:(在VirtualBox上實作)
準備二台Ubuntu 12.04.4
一台叫Right, 一台叫Left
Right | Left |
---|---|
eth0 10.0.2.5 (DHPC取得IP) | eth0 10.0.2.6 (DHCP取得IP) |
eth1 192.168.1.10 (Static IP) | eth1 192.168.2.10 (Static IP) |
先安裝基本套件及所需的Repo
apt-get update
apt-get install -y python-software-properties
add-apt-repository ppa:xelerance/xl2tpd
add-apt-repository ppa:openswan/ppa
apt-get update
安裝L2TP套件
apt-get install xl2tpd
編輯設定檔 /etc/xl2tpd/xl2tpd.conf,這是主要要設定檔
[global]
ipsec saref = no
[lns default] #Server端
ip range = 192.168.2.50-192.168.2.100 #要給Client端連進來的IP Scope
local ip = 192.168.2.1 #給一個內網IP,並且不要跟現在內網有的IP重覆即可
require chap = yes #是否使用CHAP認証
require authentication = yes
ppp debug = yes #log會在/var/log/syslog
pppoptfile =/etc/ppp/options.xl2tpd #pppoe的設定檔案位置
length bit = yes
[lac daniel] #Client端撥給對面的Server所用的名稱"daniel"
lns = 10.0.2.5 #自已的對外IP
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
設定DNS及安全認証方式,/etc/ppp/options.xl2tpd
require-chap
ms-dns 8.8.8.8
lcp-echo-interval 10
lcp-echo-failure 3
auth
refuse-mschap-v2
refuse-mschap
asyncmap 0
auth
lock
hide-password
local
#debug
name l2tpd
proxyarp
mtu 1404
mru 1404
設定L2TP Client端的設定檔,/etc/ppp/options.l2tpd.client
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
replacedefaultroute #可不加
usepeerdns
debug
lock
connect-delay 5000
name steven #撥接時的帳號
password novell #撥接時的密碼
新增Client端連線進來的帳號及密碼,/etc/ppp/chap-secrets,即為ppp服務
- Client 指的使用者名稱
- Server 指的是撥入Server的IP
- IP addresses 指的是撥入後進來拿到IP的範圍,若先前有在xl2tpd.conf裡設定好ip range,此處就可以用*號表示
# Secrets for authentication using CHAP
# client server secret IP addresses
daniel * novell *
重開L2tp
/etc/init.d/xl2tpd restart
連結L2TP Server,即連接到指定的lac
這個撥打過去,會跟Server端的/etc/ppp/chap/secrets做驗証,如果正確就連結。
echo 'c steven' > /var/run/xl2tpd/l2tp-control
安裝OPENSWAN套件
apt-get install openswan
IPSec主要設定檔,/etc/ipsec.conf
二台的IPSec的主要設定檔要長的一樣
version 2.0
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
oe=off
protostack=netkey #default是auto,要改成netkey
conn net-net
authby=secret
left=10.0.2.5 #設對方的對外IP
leftsubnet=192.168.1.0/24 #設對方的內部網段
leftnexthop=%defaultroute #採預設路由的方式
right=10.0.2.4 #設自已的對外IP
rightsubnet=192.168.2.0/24 #設自已的內部網段
rightnexthop=%defaultroute #採預設路由
auto=start
編輯/etc/ipsec.secrets
我採用的是sample roadwarrior,如果要用其他的寫法,請參考man ipsec.secrets
# sample roadwarrior
%any gateway.corp.com: PSK "shared secret with many roadwarriors"
%any 10.0.2.1 : PSK "novell"
編輯/etc/sysctl.conf,啟用IPv4轉發
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter = 0
編輯完後,執行以下指令,使其生效
sysctl -p
防火牆
請依據實際上要開的port來做設定
iptables --table nat --append POSTROUTING --jump MASQUERADE
腳本設定
#!/bin/bash
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
驗証IPSec
ipsec verify
若出現以下訊息,是說明並沒有將ICMP給關閉,請執行上面的
腳本設定
或是將其放至/etc/rc.local
裡,開機時,自動啟用。 NETKEY: Testing XFRM related proc values
ICMP default/send_redirects [NOT DISABLED]
Disable /proc/sys/net/ipv4/conf/*/send_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!
ICMP default/accept_redirects [NOT DISABLED]
Disable /proc/sys/net/ipv4/conf/*/accept_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!
再次執行
ipsec verify
連結IPSec
ipsec auto --up net-net
沒有留言:
張貼留言