postfix ldap測試/查詢帳號是否存在

postfix 很常見搭配微軟的AD , AD的設定檔長這樣, 檔案名稱為 xxx.cf

server_host = <AD server IP>
search_base = ou=xx,dc=yyy,dc=com
version = 3
query_filter = (&(objectclass=*)(mail=%s))
result_attribute = samaccountname  #Account from DC
result_format = %s/Maildir/
bind = yes
bind_dn = cn=zzz,cn=Users,dc=yyy,dc=com
bind_pw = password

配合以下指令,可以用來查詢email對應的帳號是否正確

postmap -q  abc@yyy.com ldap:/directory/xxx.cf

這樣就可以測試帳號是否存在了

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能上網

VirtualBox裝Rocky Linux後,再裝guest additions

  • Insert Guest Additions CD image

此時系統會嘗試安裝, 結果當然失敗

  • 安裝 kernel-devel kernel-headers

yum install kernel-devel-xxxx kernel-headers-xxxx

  • 安裝gcc make perl

yum install gcc make perl

  • 安裝libelf

yum list |grep libelf #找出套件

yum install elfutils-libelf* #後面接星號, 全部安裝

  • 執行 ./VBoxLinuxAdditions.run

當然會失敗

  • 執行 rcvboxadd

/sbin/rcvboxadd quicksetup all

  • 接下來就是再安裝看看 , 有可能會移除, 然後再重安裝一次, 然後重開機
    ./VBoxLinuxAdditions.run

Linux 將命令模式下執行程式,所輸出的紀錄引導到檔案

以java為例,

System.out.println("log ...")

可以在console下看到結果, 但我們若需要未來分析使用, 就必須導到檔案.

執行時可以增加以下參數

java  -jar xxx.jar   > a.out  2>&1

以前常常搞不清楚, 現在也還是一樣不太懂, 沒差拉, 這樣就可以用了, 然後 tail -f a.out 就可以在螢幕看到即時訊息, 事後也能將a.out保存起來呢.

docker安裝peertube影音平台

peertube是開源的串流影音平台, 很適合拿來管理私人影音檔案.

本文安裝的先決條件是:
已備有httpd反向代理, 以及lets encrypt ,
因此不使用peertube官方自帶的webserver與cerbot, 以免造成管理上的困擾

帳號密碼: guest/guest

https://how.itworks.ltd/iammis/技術文章/HowTo/10034_(docker)安裝peertube.txt

linux hostname lookup

主機名稱很重要, hostname , 我們公司有台老鼎新tiptop erp主機 安裝的是 redhat enterprise 4 .


tiptop的架構我簡單的敘述, client端連線到這台 server , 這台server會辨識client 端ip , 再將資料以xml方式, 反向傳回去client端的接收程式, 該接收程式(genero desktop client , gdc )會把xml資料轉成UI介面 , 方便讓使用者使用.

可是呢, 每次使用者執行程式, 都必須進行license檢驗, 以及進行 host name lookup 查詢資料庫的ip在哪, 我說的是每次執行程式哦, 都要進行資料庫主機在哪的查訪動作, 實在是有夠怪的設計 , 這10多年來我困擾很久, 終於有點了解了
為何要了解這個, 因為使用者執行程式, 常常導致跑一隻程式, 光是等待程式冒出來就要等2分鐘... 我們早就知道是lookup的問題, 但找不出真正的解法, 以下是lookup的解決切入點

nsswitch 可以指定優先查 /etc/hosts 或是 dns 或是 winbind 

但這款老舊版本有個怪怪的bug, 設定了相關的lookup , 總是沒用, 就是會查詢失敗導致時間過久使用者憤怒, 我無意間看到有人寫了可以這樣檢查

getent hosts 資料庫主機名稱
或是
strace  getent hosts 資料庫主機名稱

我發現ap主機查詢很快, 但是查詢db主機超慢, 於是加上strace檢查問題 , 我加上去之後看不懂, 於是就多看了幾次,

這指令居然神奇的自己解決查詢過久的問題, 多執行幾次就變快了.... @@ 傻眼

擴容xfs,ext4(不使用lvm)

linux vm我很很老派的喜歡用純粹的ext4 , xfs 檔案系統, 但是時常遇到磁碟空間不足的問題,
此時讓VM 伺服器加大空間, 再服用以下兩個指令:

1. 安裝擴容軟體
yum install cloud-utils-growpart -y
2. 執行擴容(xfs只能增大, 不能減少)
growpart /dev/sdb 1
代表讓/dev/sdb1擴充到最大
3. 生效 
假設/dev/sdb1 mount 到 /mnt/docker
以下指令可以立即生效
xfs_growfs -d /mnt/docker

1 2 3 ... 7