pfsense設定openvpn單點連線(remote access)注意事項

若要讓手機,電腦動態遷入, 可參考 https://docs.netgate.com/pfsense/en/latest/vpn/openvpn/openvpn-remote-access-server.html

注意事項如下:

1. servers 設定需要注意的
   server mode : remote access(ssl/tls+User Auth)
   local port : 預設1194 (建議不要用1194,容易被擋)
   tunnel network:  10.0.8.0/24 (可自己調整,但遠端的路由要記得設定走回來,不然會迷路)
   IPv4 Local network(s): x.x.x.x/24 (serve本身內部網段)
   Dynamic IP: 打勾
   DNS server enable: 打勾(若要翻牆的話)
   DNS server1, DNS server2 (若要翻牆就要設定)
   custom options: redirect-gateway def1(若要翻牆就要設定)
2. 請使用openvpn wizard幫我們自動設定remote access, 會方便許多
   在System->Certificate Manager>CAs會出現FreeRADIUS CA
3. System->User Manager
   新增使用者後, 還要編輯該使用者,新增一個User Certificates
   新增時可在Common Name輸入server對外網址
4. System->Package Manager->available packages
   安裝協助匯出憑證的外掛程式
   openvpn-client-export
   安裝後vpn->openvpn->client export 就能匯出使用者憑證
   匯出時要注意
   Host Name Resolution:選Other
   Host Name: 輸入server對外網址

pfsense設定OpenVPN (site to site一邊固定ip即可)

1.下載 pfsense 軟體防火牆套件
  https://www.pfsense.org/
2.安裝pfsense(server端)(假設內部網段是10.192.130.0/24)
  至少要有兩個網卡,一個要有固定ip, 另一個是內部網路(假設是10.192.130.212)
  2.1 安裝很簡單, 重點在於搞定兩個網卡ip,搞定後就能用使用瀏覽器,經由內部網路ip, 連上pfsense
  2.2 連上pfsense後, 取消硬體checksum
      System->Advanced->Networking
      Hardware Checksum offloading選項打勾(這部分我浪費三天三夜, 若沒打勾會嚴重影響效能)
  2.3 連上pfsense後, 啟用CPU硬體加密功能
      System->Advanced->Miscellaneous
      Cryptographic Hardware 選擇AES-NI CPU-based Acceleration
      這部分比較特別,若pfsense裝在promox ve上, vm要記得開啟AES-NI功能, esxi好像預設就開啟
      ps. 這時候建議pfsense重開一下
  2.4 安裝openvpn(server)
      VPN->OpenVPN->Servers
      新增OpenVPN Servers , 需要輸入的地方如下,其他都是預設
      (1) Server Mode 選 Peer to Peer(Shared Key)
      (2) local port 預設是1194請改成其他減少被擋或被駭的機率
      (3) Hardware Crypto 任選一種硬體加密(若可以選的話)
      (4) IPv4 Tunnel Network 輸入172.26.0.0/24
      (5) IPv4 Remote network(s) 輸入client端的內部網路 , 如192.1.0.0/24
      (6) Save
      (7) 重新看剛剛的設定,複製preshared key(Save之後才會產生),要複製到pfsense client端使用
  2.5 Firewall -> Rules 到 WAN 新增 any source 的規則, 到OpenVPN 也新增 any source的規則

3.安裝pfsense(client端)(假設內部網段是192.1.0.0/24)
  至少要有兩個網卡,兩個都是內部網路,同網段也ok
  3.1 安裝很簡單, 重點在於搞定兩個網卡ip,這兩個網卡ip可以同一個網段, 一個當WAN,一個當LAN(假設是192.1.0.3).
      搞定後就能用使用瀏覽器,經由內部網路ip, 連上pfsense
  3.2 同步驟2.2
  3.3 同步驟3.2
      ps. 這時候建議pfsense重開一下
  3.4 安裝openvpn(client)
      VPN->OpenVPN->Clients
      新增OpenVPN Clients , 需要輸入的地方如下,其他都是預設
      (1) Server Mode 選 Peer to Peer(Shared Key)
      (2) Interface 選 any
      (3) Server host or address 輸入server端對外的ip
      (4) server port 輸入server端設定port
      (5) Shared Key 請輸入server端複製的Shared Key
      (6) Hardware Crypto 任選一種硬體加密(若可以選的話)
      (7) IPv4 Tunnel Network 輸入172.26.0.0/24
      (8) IPv4 Remote network(s) 輸入server端內部網路 , 如10.192.130.0/24
      (6) Save
  3.5 Firewall -> Rules 到 WAN 新增 any source 的規則, 到OpenVPN 也新增 any source的規則

4.Status->OpenVPN 查看能不能連線成功
5.pfsense(server)
  新增路由,假設server所在內部網路gateway是10.192.130.1
  請在該gateway上新增目的地192.1.0.0/24,要經由10.192.130.212出去(依照以上例子) 
6.pfsense(client)
  新增路由,假設client所在內部網路gateway是192.1.0.1
  請在該gateway上新增目的地10.192.130.0/24,要經由192.1.0.3(依照以上例子)
—
Pfsense 2.4.5
William 20200422

老毛子Padavan 韌體, 如何透過PowerDNS-Admin更新DDNS

之前介紹過小米路由器mini可以刷老毛子padavan韌體, 不只功能強,還可以啟用shadowsocks功能, 但是有些路由器上網ip是動態的, 因此需要用到DDNS來綁定動態ip, 目前最穩定的DDNS大概就是google domain了, 他支援dyndns 2.
有些人若要綁定自己的網域, 可以安裝PowerDNS-Admin , 這個軟體也支援dyndns 2.
但是問題來了, padavan 與自行建立的PowerDNS-Admin 並不相容, 偶研究了很久, 終於用迂迴的方式搞定.

1. 建立正確的ddns設定文件
vi /etc/storage/script/inadyn.conf

background
verbose 1
checkip-url ip.3322.net /
startup-delay 15
period 600
forced-update 864000
cache-dir /tmp/inadyn
exec /sbin/ddns_updated
system custom@http_srv_basic_auth
  username <帳號>
  password <密碼>
  server-name :
  server-url //nic/update?hostname=<想改的網域主機名字>&myip=
  append-myip
  alias <想改的網域主機名字>

2. 找出padavan啟動後執行的腳本, 於最後一行加上

#!/bin/sh
pid=`ps | grep inadyn | awk 'NR==1{print $1}' | cut -d' ' -f1`
name=`ps | grep inadyn | awk 'NR==1{print $5}' | cut -d' ' -f1`
if  [[ "$name" == "/bin/inadyn" ]];
then
  if [[ -z "$pid" ]]
    /bin/kill $pid
  then
    echo "kill $pid"
  fi
fi
/bin/cp /etc/storage/script/inadyn.conf /etc/
/bin/rm -r /tmp/inadyn
/bin/inadyn --config /etc/inadyn.conf

當然做這些動作之前,padavan要設定啟用DDNS功能, 基本上這樣重開機之後, 會將正確的conf複製到系統目錄上,再重新執行就可以了,
另外設定檔裡面的 ip.3322.net 是可以透過padavan預設的ddns功能修改的.

翻牆的另一個選擇-Outline

最近研究一大堆科學翻牆的方式, 尤其是買小米路由mini,安裝老毛子韌體, CP值最高.
出差帶一台小米路由,可隨時翻牆.

另外一種方式就是使用Outline, 安裝方式超簡單, 也不用改啥機子, 但Outline server要自行準備作業系統安裝, 這種方式不像小米路由可以放在一般家庭,既是wifi, 也可當翻牆server.

Outline簡易步驟(ubuntu):
1.(伺服器端)安裝server
wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash
安裝完畢會出現一組訊息告訴你防火牆哪個port要開啟, 以及一組要給Outline-Manager用到的連結
To manage your Outline server, please copy the following line (including curly
brackets) into Step 2 of the Outline Manager interface:
G
{"apiUrl":"https://xxx:48085/bZxbag3byWdd8I89W9IB1p5jA","certSha256":"1B9C3C3A54D4FE59A26AFCC68E7DA995ABD13FA20CD27430F1EBAA9030BCAD0"}

If you have connection problems, it may be that your router or cloud provider
blocks inbound connections, even though your machine seems to allow them.

- If you plan to have a single access key to access your server make sure
  ports 48015 and 46144 are open for TCP and UDP on
  your router or cloud provider.
此時你需要讓防火牆開啟相對應的port, 請注意port每個伺服器都不一樣
firewall-cmd --add-port=48015/tcp --permanent
firewall-cmd --add-port=48015/udp --permanent
firewall-cmd --add-port=46144/tcp --permanent
firewall-cmd --add-port=46144/udp --permanent
firewall-cmd --reload
2.(伺服器端)接下來於伺服器執行管理程式 Outline-Manager (須使用root或是administrator權限) 將安裝步驟1server所產生的安裝碼(apiUrl), 放到Outline-Manager上, outline 就可以產生會產生一組特別的連結URL: SS://xxxx , 這時候就可以把SS://xxx給需要翻牆的設備. 咖啡偶測試了一下, 這個Outline-Manager使用完畢就可以關閉, 因為實際上的server(步驟1)還繼續執行中. 3.(客戶端)執行Outline-Client(須使用root或是administrator權限) 將步驟2產生的連結URL , SS://xxxxxx 放入client上, 就可以啟動vpn了
ps. 因為連線的port有時後會變動,因此防火牆官方建議開放1024~65535 (tcp/udp) , 但是實際上測試會落在10000~65535之間,因為安全考量10000之前有些服務不能開放防火牆, 所以就開放10000以後的就行了, 或是開放1024~65535時候, 記得將不能開放的服務再另外用更高權限鎖回去.
伺服器端的 Outline-Manager 與 客戶端的 Outline-Client 可於 https://www.getoutline.org 下載 支援 windows , linux 與 Mac ,

如何檢查outline-server 是否為最新版本

# 查看shadowbox是否為最新版
docker inspect shadowbox | grep '"shadowbox.' 

#查看是否能自動檢查到最新版而自動更新
docker logs watchtower

小米路由器刷老毛子padavan固件,使用SS注意事項

  1. 遠端SS服務器的內部ip請另行增加一個網段 192.1.0.0/24 , 以免無法連到遠端SS服務器,其所在的網段裡面的伺服器(這些伺服器也要加上192.1.0.x IP
  2. 選擇gfwlist方式(非全局翻牆), 若記得加上類似以下的設定,強制走翻牆
    #測試我的IP(是否可翻)
    WAN@whatismyip.host

    #遠端內部建議區域網段
    WAN+192.1.0.0/24

    #LINE IP
    WAN+119.235.235.0/24
    WAN+103.2.31.0/24
    WAN+203.104.131.0/24

    #指定網站
    WAN@www.facebook.com
    WAN@www.mobile01.com

談談中國科學翻牆方式

在shadowsocks出現之前, 大家只能使用傳統的VPN方式(pptd , l2tp over pptd , 或是ipsec).

其實VPN能做的事情更多, 可以直接存取服務器所在的網域的所有檔案, 或是使用防火牆下相關的系統, 如ERP, 電子表單.

後來中國開始封鎖VPN, 因其通訊協定很容易偵測到, 可以很簡單阻擋不給使用.

後來出了一款新型態科學翻牆方式shadowsocks(簡稱SS), 使用socks 5代理伺服器的方式, 避開了VPN通訊協定的特徵, 讓長城防火牆更不容易偵測到, 陸續又衍生shadowsocksR (簡稱SSR)等方式增加大家學習技術時, 必須科學翻牆.

參考資料: https://github.com/shadowsocks/shadowsocks-libev 

改造可翻牆的小米路由器(mini)

最近出了一次差,才發現翻牆其實很重要, 但是我自己個人翻牆簡單,別人卻很難, 只好想辦法改造小米路由器(mini),讓夥伴都能一起科技翻牆.

本文只列出重要步驟:

  1. 刷開發版,然後打開ssh功能
  2. 打開ssh功能後, 刷Breed這個bootloader(有點像是android的recovery), 刷之前要備份小米原本的韌體,
  3. 透過Breed(bootloader),刷入https://opt.cn2qq.com/padavan/
  4. 設定shadowsocks客戶端

ubuntu 安裝shadowsocks用戶端程式

之前咖啡偶提到如何在docker安裝shadowsocks 伺服器 , 這次就來個如何在ubuntu 安裝shadowsocks用戶端程式, 這樣就可以技術翻牆囉

方法一:

1.安裝套件

sudo apt-get install python-pip
sudo apt-get install python-setuptools m2crypto
sudo pip install shadowsocks

2.執行

sslocal -s <ss server ip> -p <ss server port> -k "<password>" -l <local port> -t 600 -m aes-256-cfb

方法二:

1.安裝套件

sudo apt update
sudo apt install shadowsocks-libev

2.執行

ss-local -s <ss server ip> -p <ss server port> -k "<password>" -l <local port> -t 600 -m aes-256-cfb

方法一與方法二可用檔案的方式紀錄

sslocal -c xxx.json -v -u 或是 ss-local -c xxx.json -v -u

xxx.json

{
  "server": "yourip",
  "server_port": your port number,
  "local_address": "127.0.0.1",
  "local_port": "local port",
 "password": "your password",
  "timeout": 300,
  "method": "aes-256-cfb",
  "fast_open": true,
  "prefer_ipv6": false
}

瀏覽器設定

瀏覽器安裝plugin, 請到這裡找對應的安裝, 有chrome與firefox
https://github.com/FelisCatus/SwitchyOmega/releases/
咖啡偶使用socks5, 花點時間研究一下安裝與設定就好了

Fedora CentOS pptp vpn 設定注意事項

安裝Fedora 27 或 CentOS 7以後 , 若需要使用 pptp vpn 設定, 需注意:

1. 安裝 NetworkManager-pptp*

2. 安裝pptp , pptp-setup

sudo yum install NetworkManager-pptp* pptp pptp-setup

這樣就可以透過管理程式設定pptp vpn了

另外, 若需要其他vpn連線方式, 我想大概也就是 NetworkManager-xxxx* 之類的吧

ps. NetworkManager-pptp* 星號是必需的, 把相關套件都裝起來

1 2