老毛子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 ,

小米路由器刷老毛子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* 星號是必需的, 把相關套件都裝起來

vpn的另外一種選擇-安裝shadowsocks翻牆伺服器

vpn的另外一種選擇 - 安裝shadowsocks翻牆伺服器

一般來說買台totolink, 丟到中國去, 加上網路,就可以架起pptp vpn翻牆伺服器,

翻到中國去做什麼?當然是追劇囉,呵呵!

 

但除非購買企業用vpn, 否則這種私人架設的vpn,常會被中國阻擋,

原因在於這種vpn通訊協定, 很容易被偵測到.

 

現在興起另一種安全的代理伺服器(Secure Proxy Server), 是另外一種翻牆選擇,因為不是走vpn架構,號稱比較不會被擋(但咖啡偶有點懷疑).

安裝方式請參考10018_(Docker)安裝shadowsocks翻牆伺服器.txt

如何在CentOS 6 下安裝VPN SERVER(l2tp over ipsec with pre-shared key)

如何在CentOS 6 下安裝VPN SERVER(l2tp over ipsec with pre-shared key)

1. 安裝openswan, ppp , libpcap-devel
直接用CentOS裏面即可

2. 安裝xl2tpd(1.2.8)(http://www.xelerance.com/services/software/xl2tpd/)
解開後進入該目錄,執行
make
此時已經可以看到xl2tpd這個檔案了
cp xl2tpd /usr/local/sbin/
mkdir /etc/xl2tpd
cp examples/xl2tpd.conf /etc/xl2tpd/
cp examples/ppp-options.xl2tpd /etc/ppp/options.xl2tpd (這是給以下ppp使用的 sample)

3. 安裝rp-l2tpd (彌補xl2tpd 1.2.4 無法完整編譯)
http://sourceforge.net/projects/rp-l2tp/
下載後解開,進入該目錄,後執行
./configure
make
cp handlers/l2tp-control /usr/local/sbin/
mkdir /var/run/xl2tpd
ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control

4. xl2tpd 設定
修改/etc/xl2tpd/xl2tpd.conf
ip range = 您希望對方可以得到哪些ip
local ip = server 對內ip
ex:
[lns default]
ip range = 192.168.0.11-192.168.0.13
local ip = 192.168.0.1
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

5. 修改 /etc/ppp/options.xl2tpd
ms-dns = 內部ms dns的ip
ex:
ipcp-accept-local
ipcp-accept-remote
ms-dns 192.168.0.2
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
defaultroute
debug
lock
proxyarp
connect-delay 5000

6. ipsec 設定(預先共用金鑰)

6.1 設定 psk (pre-shared-key)
vi /etc/ipsec.d/william.secrets
###############################
%any: PSK "your shared key"
server_ip: PSK "your shared key"
###############################

其中 server_ip 是您的server 對外ip,
"your shared key"是你的共用金鑰

6.2 vi /etc/ipsec.conf
#############################################
version 2.0 # conforms to second version of ipsec.conf specification

# basic configuration
config setup
# Debug-logging controls: "none" for (almost) none, "all" for lots.
# klipsdebug=none
# plutodebug="control parsing"
# For Red Hat Enterprise Linux and Fedora, leave protostack=netkey
protostack=netkey
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
# Enable this if you see "failed to find any available worker"
nhelpers=0

#You may put your configuration (.conf) file in the "/etc/ipsec.d/" and uncomment this.
#include /etc/ipsec.d/*.conf
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=<你的對外ip>
leftprotoport=17/1701
right=%any
rightprotoport=17/%any

############################################
7. ppp 設定
vi /etc/ppp/chap-secrets
加上
william * test *

其中william 是帳號, test是密碼

8. 修改 /etc/rc.local , 加上

8.1 開啟nat,底下192.168.0.0是內部ip範圍(eth1是您的對外網卡)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE

8.2 允許ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward

8.3 確認server是否自動啟動, 或是加在/etc/rc.local
/etc/rc.d/init.d/ipsec start
/usr/local/sbin/xl2tpd -D &

9. 重開機(reboot),確認是否完備

ps.
1.要驗證ipsec 請執行
ipsec verify
要記得看log,有時候會遇到不預期的情形,此時就可以看log解決
/var/log/secure
/var/log/message
2. 若還有問題,請嘗試以下設定
vi /etc/sysctl.conf
#########################################################
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
########################################################

測試環境
linux CentOS 6
kernel 2.6.32
-----------------------------
windows xp client

(一) 新增連線

1. 開始->設定->網路連線->新增連線精靈

2. 選擇連線到公司網路(使用指定撥號或是vpn)

3. 選擇虛擬私人網路連線

4. 輸入名稱(可以隨意選)

5. 輸入vpn server IP

(二) 修改設定

1. 找出此VPN連線的TCP/IP設定, 選進階設定, 拿掉"使用遠端網路的預設匣道"

2. 找出"預先共用金鑰",然後輸入PSK(pre-shared key),請看上面步驟6的金鑰密碼
3. 若是xp, 請取消勾選"要求資料加密(如果沒有加密就中斷連線)"

這樣就可以了

日期 2011.07.18
william http://fromtw.blogspot.com