發表文章

目前顯示的是 3月, 2024的文章

Port Knocking or ...…

 Port Knocking 就像是敲門暗號依序敲 2長1短3長 才開門的概念,之前有看到文章提到在 Linux 上實做用來強化安全性,沒想到路由器上面也可以做,更沒想到的是就連設個暗號也能從敲門變成撞門 工作環境:     某牌路由器          firewall rules for port knocking  基本上照著官網上的 port knocking 設定實作就行     要啟用 input DROP all 之前記得先開個後門,否則……所有設備都會連不進來就 GG …… 要啟用 input DROP all 之前記得先開個後門,否則……所有設備都會連不進來就 GG …… 要啟用 input DROP all 之前記得先開個後門,否則……所有設備都會連不進來就 GG ……     以下設定要放在 input DROP all 之前     目標設定  先設定要開啟的服務 dst. port 開啟時,允許的來源為一個自訂的清單(自行增加設定成類似 fin-ips 的群組清單) ,port knocking 嘛最基本的設定值就是 port ,當然你也可以進一步鎖定來源的介面和目的地…等等的參數 敲門設定(N次)  第1次:設定要敲門的 dst. port  ,同樣的,可以進一步鎖定來源的介面和目的地....等等的參數,然後(action)將來源的 ip 加入群組清單(knock1)  第2次起:設定本次要敲門的 dst. port  ,然後指定 ip 來源是上次的清單(knock1)同樣的,可以進一步鎖定來源的介面和目的地....等等的參數,然後(action)將來源的 ip 加入群組清單(knock2),依此類推N次…  最後一次:設定本次要敲門的 dst. port  ,然後指定 ip 來源是上次的清單(knock#)同樣的,可以進一步鎖定來源的介面和目的地....等等的參數,然後(action)將來源的 ip 加入群組清單(fin-ips),這樣就能和目標設定參數相呼應,形成閉環 以後,你指定防護的目標服務,必需按照剛才的設定步驟指定的 port# ,之後再連你要的服務才能進入 實測 比方,你防護了 22 port 的 ssh 服務,指定的 port knocking 依序分別是 2000,1000,3672 設定完成後,直接連 ssh 是連不上

為內網的 IMMICH 設定加密連線

 話說現在的網站都要有 https 沒有那個 s 好像犯天條似的,即使是在內網也要搞個 s 來玩玩,如果你已經當了勇者把伺服器放上公網,也歡迎你分享設定,肯定香啊~,做為一個膽小時間又少的使用者,還是來設一下 s 吧! 工作環境:     debian linux          docker               immich               nginx(做為反向代理用)                反向代理有很多選項,試了很多沒遇上好運,回頭用了最基本的 nginx,或許下次可以試試 caddy 吧 首先,開2個 docker 的網路並且設定 docker network create inner_network docker netowrk create reverse_proxy_network   在開始設定之前,記得把之前的 immich-app 停下來 docker compose down 設定一下 docker-compose.yml :進到你的 immich-app/docker-compose.yml 把每個 service 的 networks 改一下 如果 service 名稱是 immich 開頭的: networks:   - inner_network   - reverse_proxy_network 其他的 networks:   - inner_network networks 的總述 networks:   proxy:     driver: bridge   internal:     driver: bridge  引用 nginx:   nginx :     container_name : nginx     hostname : nginx     image : nginx:latest     environment :       - TZ=${TZ}     volumes :       - ./nginx:/etc/nginx/     ports :       - "80:80"       - "443:443"     networks :       - reverse_proxy_network     depends_on :

繼續 IMMICH 安裝來備份手機上的照片和影片

 之前有提到為了躲避 nextcloud all-in-one 的群坑,所以先擱(割)置(捨)難搞的 nextcloud aio 轉投 immich-app 的懷抱,畢竟原本的目的就沒有要包山包海,主要是要把照片和影片存出來而已 工作環境:     內網的 debian linux          docker(-compose)               immich 後來發現上次用的註解法不是最佳解,所以開大門走大路把整個 immich 抓回來裝: git clone https: //github.com/immich-app/immich.git install.sh 然後到 immich-app 裏把 docker-compose.yml 改一下,可以改一下這個 environment:   - TZ=${TZ} .env 可以改一下這個 UPLOAD_LOCATION=/你想放資料/的位置 TZ=Asia/Taipei 然後 docker compose up -d 連到主機網址 http://192.168.100.100:2283 就可以用了 上傳的檔案在 /你想放資料/的位置/library/admin/ 裏面 是的,你沒有看錯,是 http 不是 https  很在意的人再搞一下 反向代理吧,先醬子將就用著 收工!

合併多個 docker-compose.yml 檔案

 雖然 docker-compose.override.yml 可以將修改後的設定套用到新的 docker image 裏啟用,但是維護1個檔案還是比維護2個檔案好一些,最好合併檔案的時侯不要使用傷眼法,和自已動手剪貼,而是程式自已整理貼好… 工作環境:     Linux Mint          Docker compose docker-compose -f docker-compose.yml -f docker-compose.override.yml config > docker-compose.merged.yml  mkdir orig mv docker-compose.yml orig mv docker-compose.override.yml orig mv docker-compose.merged.yml docker-compose.yml 之後就用新的 docker-compose.yml 來啟用 docker 還有就是後面的檔案會蓋掉前面的檔案的設定,有些設定則是會多個並列,所以還是得進去調一下設定的內容     收工!

docker 容器之使用者 uid 和 gid

 docker 容器的 uid 和 gid 常會讓使用者在 host 端取用 volume 時綁手綁腳,雖然有人說這其中還有安全性的考量,但是使用 sudo 好像也沒有比較好,為了可以直接存取 volume 的檔案,居然花了好久好久,久到夫人說:怎麼最近又開始抱著電腦了?……………………………………其實是電腦沒有放人  工作環境:     Debian          mariadb 10.11 docker(compose) 狀況:裝好 mariadb 之後,volume 的權限是 999.999 ,很煩,得 sudo 才能在本機作業,雖然也沒什麼不行,但就不愛,然後…………搞死自已  2個解法,因為不是 product 環境,先試到這兒,期望有人講白話,把這題解了,免得折騰半天 法1:雖然不能自動化,但是直覺…  先裝起來  dcshell container_name (docker exec -it $1 /bin/bash -l)  usermod -u your_uid_in_host app_user;  groupmod -g your_gid_in_host app_group;  exit  chown -R user_user:user_group docker_volume  然後參照之前的 客製 docker image 的方式, 在 docker-compose.override.yml 設定引用新的 image  法2:真的用 Dockerfile 就可以自動化嗎!?先搞懂 Dockerfile 怎麼用吧  去 下載 所需的檔案,然後加一個超奇怪的 「USER "1000"」 到 Dockerfile 裏,再回到 docker-compose 裏引用 Dockerfile 並且指定 user ,這個解法能用匪夷所思來形容,反正能解,先頂著   總而言之  書到用時恨太多! 先醬!      收工! =================== sample 檔 ================== 法1  docker-compose.yml  version : '3' services : mariadb : image : mariadb:10.11   container_name

IMMICH 的一些坑

 話說 nextcloud aio 安裝要攻克可能還要一段時間,這時 immich 出現在替代方案清單之中,想來主要目的還是照片/影片的同步,先試一下頂多花點時間,最多再多摔個幾跤,頭上多幾包就是了,immich 提供了 server 端和 app ,有 docker-compose.yml 可以下載,想來不會太難……………………………………………………………………………………………… 吧 工作環境:     Linux Mint     Docker      先到 github 把 docker-compose.yml 和 example.env 下載後,發現,原來 .env 裏的IMMICH_VERSION 要自已去找一下,好在這個不難,看一下 github 右側的 Release 就行,目前也就是 v1.97.0 然後,docker-compose up -d 一直出現這個錯誤訊息,很牙起來…… ERROR: The Compose file './docker-compose.yml' is invalid because: 'name' does not match any of the regexes: '^x-' You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1. For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/   搞了半天,要設 export VARIABLE_PRO

Docker image 以及物件控管 主要是刪除不必要的物件

docker 真的是好用,一個 docker-compose.yml 就可以配置作業環境,但是… 如果有好多功能要啟用,雖然最後得到適用的設置,除非你是超級幸運星,每次都是一次成功配置這些環境,久了,還是會有些沒有用到的或是中間產物的物件,每次佔用一點點空間,慢慢吃掉你的硬碟空間…,這次就是要清掉這些暫(垃)存(圾)物件。 列出所有 Untag 的容器映像: docker images --filter "dangling=true" 列出所有 Untag 的容器映像,但只顯示 Image ID 而已: docker images --filter "dangling=true" -q 快速移除所有無用的容器映像 (Remove all dangling images): docker rmi $(docker images -f "dangling=true" -q) 移除所有沒用到的容器映像 (Remove all unused images): docker image prune -a 移除所有沒用到的 Docker 物件 (Docker System Prune): 注意!!!會連同以下, 「停用的容器」(stopped containers) 「無用的網路」(dangling networks) 「無用的容器映像」(dangling images) 「無用的建置快取」(dangling build cache) 全都刪除 docker system prune -a 在 N 次 docker-compose up -d 後,把還在用的物件啟用後,一次性地 docker system prune -a 就可以看到一連串療癒的雜湊值,殺了一堆檔案後,居然生出了 12G 的空間,開心!   收工!