文章

【Raspberry Pi】樹莓派建置VPN Server

【Raspberry Pi】樹莓派建置VPN Server

這個樹莓派是好幾年前買來實驗用的,後來有一陣子沒在使用,最近因為家裡的Dlink Router不知道為什麼內建的VPN會和Mesh的某些功能衝突,導致Port無法轉發,所以好一陣子我的VPN就無法使用,某天在整理家裡的時候突然發現這台小小的樹莓派,因為是好幾年前買的所以是滿舊的Pi3,只有少少的1G Ram,原本還有想要拿來做更多事情,但想說一件件來,先來把我的VPN復活吧!

目錄

  • 事前作業
  • 如何使用SSH Login樹莓派
  • 安裝Strongswan建立VPN Server

事前作業

今天會用到的Raspberry Pi 3 Model B的板子,還有一張8G的記憶卡(我只有在家裡找到這個,我想應該夠用),準備好之後,要先將系統燒製記憶卡裡面,現在很方便上官網下載樹莓派的燒錄軟體,就可以直接選擇好版本和要的系統直接燒錄了,因為我沒有想要使用圖形介面,而且記憶卡只有8G,所以選擇Raspberry Pi OS Lite的版本。

燒錄好系統之後,因為我沒有要外接螢幕,我要直接用SSH登入,所以要先在記憶卡裡面先新增好設定才能連線。

如何使用SSH Login樹莓派

首先要先做好網路的設定,進到記憶卡裡,新增wpa_supplicant.conf

1
2
3
4
5
6
7
8
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW

network={
 ssid="填入WiFi SSID"
 psk="填入 WiFi 密碼"
}

接著再新增一個檔名為ssh的檔案即可,樹莓派開機的時候會自動搜尋ssh檔,然後就會自動刪掉這個空的檔案。

準備好以後就可以把記憶卡插上,電源接好開機!

當你接好電源以後,就可以用ping raspberrypi.local來取得IP,接著SSH Login,預設帳號為pi,預設密碼為raspberry。

安裝Strongswan建立VPN Server

接下來就可以進行更新與安裝套件來建立VPN Server了,通常我都會先進行系統的更新還有韌體更新,然後重開機。

1
2
3
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install rpi-update && echo Y | sudo rpi-update
reboot

接著安裝需要的套件

1
apt-get install strongswan libcharon-extra-plugins iptables

然後要進行/etc/ipsec.conf的設定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
config setup
    cachecrls=yes
    uniqueids=never

conn ios
    keyexchange=ikev1
    authby=xauthpsk
    xauth=server
    left=%defaultroute
    leftsubnet=0.0.0.0/0
    leftfirewall=yes
    right=%any
    rightsourceip=10.0.0.0/24 #這個是你連上以後要配給的網段,最好選一組沒用到的網段
    rightdns=8.8.8.8
    auto=add

接著設定驗證/etc/ipsec.secrets

1
2
3
4
YOUR MACHINES IP ADDRESS %any : PSK "YOUR PRE-SHARED KEY HERE" #填入一組PSK密鑰

zoey  : XAUTH "password" #設定使用者帳號與密碼
user2  : XAUTH "YOUR PASSWORD HERE"

啟用IPv4的轉發,編輯/etc/sysctl.conf 

1
2
net.ipv4.ip_forward=1 #填入這行
sysctl -p #離開後執行

最後建立iptables的NAT規則(也可以將iptables的規則寫入/etc/rc.local,開機執行)

1
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o wlan0 -j MASQUERADE #注意網段和網卡

然後就可以在Client進行設定測試VPN有沒有連上囉!

本文章以 CC BY 4.0 授權