零信任不是對你沒有信任的意思 Zero Trust(ZT)

美國國家標準暨技術研究院(NIST), 於2020年8月發表零信任 (SP 800-207) 指導書 , 火速被各大軟體服務商奉為聖旨,
並不是對你沒有信任的意思, 而是任何人做任何事都必須一視同仁, 詳加盤查, 才能信任.

以防火牆來說, 牆內安全, 牆外不安全, 這是以前的思維;
未來上雲端後, 將打破防火牆概念, 任何動作都必須再次檢驗才能過關.

https://csrc.nist.gov/publications/detail/sp/800-207/final

centos 7 裝了docker , 限制內網透過nat上網會失效

一般公司省錢的作法, 就是一台linux主機 , 充當上網(nat) 分享器,
但後來該主機又搞了docker .
可是docker 預設網路(iptables) 都開放, 很麻煩, 造成原本firewall-cmd出問題, 無法限制內部ip上網, 所有ip都能上網, 超麻煩的,

後來發現iptables也能運作, 於是就搭配 iptables 限制內部ip上網

iptables -I FORWARD 1 -s 192.10.20.0/24 -j DROP # 限制全部內網ip透過nat上網
iptables -I FORWARD 1 -s 192.10.20.101/32 -j ACCEPT # 讓101能上網

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

v2ray初體驗-使用v2-ui初階安裝

安裝v2ray之前,你必須符合以下基本技術基礎

  1. 會安裝CEntOS 7
  2. 懂apache httpd 2.4基本設定
  3. 懂dns, 懂申請let's Encrypt

你也必須準備以下軟硬體

  1. 安裝好CEntOS7
  2. 有Internet IP
  3. 有網域,並可賦予該系統一個網路名稱

開始安裝

1. 安裝v2ray
到這個神人網站 https://github.com/sprov065/v2-ui/
一鍵安裝
bash <(curl -Ls https://blog.sprov.xyz/v2-ui.sh)

2. 安裝完畢網站預設是 http://ip:65432 預設帳號密碼都是admin , 記得登入修改密碼


3. 以下示範兩種連線, 一種http/2(h2), 另一種透過apache httpd(port 443)代理連到後端websocket
3.1 設定 h2 連線
Server:


client:
v2ray初體驗-使用v2-ui初階安裝



3.2
Server 設定:


Clinet 設定:
websocket , port 用443, 要輸入tls

apache httpd 設定:

ServerName xxx
ErrorLog /var/log/httpd/ssl_error_log1
TransferLog /var/log/httpd/ssl_access_log1

SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/letsencrypt/live/xxx/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/xxx/fullchain.pem
## v2-ui management
RewriteEngine On
ProxyPass / http://localhost:65432/
ProxyPassReverse / http://localhost:65432/
## server
RewriteRule /ray/(.*) ws://localhost:1234/$1 [P,L]
RewriteCond %{HTTP:Upgrade} =websocket [NC]
ProxyPass /ray/ http://localhost:1234/
ProxyPassReverse /ray/ http://localhost:1234/


4. 心得
若是使用3.1 , 使用httpd/2的方式
若是使用3.2可以看起來像是https的存取

5. 額外指令

 v2-ui              - 显示管理菜单 (功能更多)
 v2-ui start        - 启动 v2-ui 面板
 v2-ui stop         - 停止 v2-ui 面板
 v2-ui restart      - 重启 v2-ui 面板
 v2-ui status       - 查看 v2-ui 状态
 v2-ui enable       - 设置 v2-ui 开机自启
 v2-ui disable      - 取消 v2-ui 开机自启
 v2-ui log          - 查看 v2-ui 日志
 v2-ui update       - 更新 v2-ui 面板
 v2-ui install      - 安装 v2-ui 面板
 v2-ui uninstall    - 卸载 v2-ui 面板

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

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

本文只列出重要步驟:

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

firewall-cmd 如何做port-mapping

1. 特定port轉到內部某ip的port

firewall-cmd --add-rich-rule="rule family=ipv4  forward-port port=8080 protocol=tcp to-port=8080 to-addr=192.168.1.1" --zone=public --permanent

2. 特定ip,特定port轉道內部某ip的port

firewall-cmd --add-rich-rule="rule family=ipv4 source address=x.x.x.x forward-port port=8080 protocol=tcp to-port=8080 to-addr=192.168.1.1" --zone=public --permanent

 

1 2