Linux: sshpass 應用

sshpass -p 的用法就不介紹了,google 一堆,且有安全性考量
介紹一下最近寫的一次script,主要配合rsync 做資料轉移
使用 sshpass -e ,配合export 做成環境變數

openvpn: 在client 端自訂route

為滿足mobile 連接openvpn 通常會在 server 端下一個push default gateway
不過在mac 上也幫我全轉就令我有點困擾,手動來改一下ovpn

# 忽略push 過來的 gateway
# 2.4版後建議的最佳解法,別問我2.4以前怎麼處理... 請升級
pull-filter ignore redirect-gateway

# 要去的網段: 192.168.1.0/24
# openvpn server tun ip : 10.254.254.1
route 192.168.1.0 255.255.255.0 10.254.154.1

重連vpn 就生效了

macOS: synergy free for macos 10.15 and ubuntu 20.x

macos:

brew install qt cmake openssh git
git clone https://github.com/symless/synergy-core.git
cd synergy-core
mkdir build
cd build
cmake .. -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk  -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
make
cd bin
cat < synergy.conf
section: screens
    linux:
    macbook:
end
section: links
    macbook:
        left  = linux
    linux:
        right = macbook
end
section: aliases
    macbook:
        ryan-mac
    linux:
        ryan-stx
end
section: options
end
EOF
#Security & Privacy > Accessibility add terminal app (iTerm) 
./synergys -a 192.168.1.1 -c synergy.conf -n macbook

linux:

apt install cmake gcc make g++ libx11-dev libxtst-dev libavahi-compat-libdnssd-dev qt5-default qttools5-dev libssl-dev git
git clone https://github.com/symless/synergy-core.git
cd synergy-core/
mkdir build
cd build/
cmake ..
make
./synergyc -n linux 192.168.1.1

Linux: whois 查不到特定 TLD

最近有個查詢大量Domain 資料的case , 目地就嘿嘿嘿
在linux 上 whois 到 .tt 就

This TLD has no whois server, but you can access the whois database at
http://www.nic.tt/cgi-bin/search.pl

但在mac 就有正確查出來,認真的查了一下封包,原來 mac 去 whois.iana.org 這裡查
查了一下 whois 功能

-h HOST, --host HOST   connect to server HOST
$ whois -h whois.iana.org abc.tt
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

domain:       TT

organisation: University of the West Indies
organisation: Faculty of Engineering
address:      St. Augustine
address:      Trinidad And Tobago

contact:      administrative
name:         Dr. Patrick Hosein
organisation: TTNIC
address:      84 Abercromby St.
address:      Port of Spain
address:      Trinidad And Tobago
phone:        +1 868 483 4454
e-mail:       [email protected]

contact:      technical
name:         Dr. Patrick Hosein
organisation: TTNIC
address:      84 Abercromby St.
address:      Port of Spain
address:      Trinidad And Tobago
phone:        +1868 483 4454
e-mail:       [email protected]

nserver:      A.LACTLD.ORG 200.0.68.10 2801:14:a000:0:0:0:0:10
nserver:      NS3.NIC.MX 200.33.111.1
nserver:      PCH.NIC.TT 2001:500:14:6063:ad:0:0:1 204.61.216.63
nserver:      RIPE.NIC.TT 193.0.9.50 2001:67c:e0:0:0:0:0:50
ds-rdata:     2539 8 2 b06dfa79674df3ea8190e7616164414b01e9199b7c94ec1540378a395daa401f

status:       ACTIVE
remarks:      Registration information: http://www.nic.tt

created:      1991-09-03
changed:      2020-01-14
source:       IANA

成就達成!

Redis memory full 的種解決方法

##解決方法
* 增加內存
* 使用內存淘汰策略
* Redis 集群


##maxmemory-policy 參數設定

* volatile-lru:使用LRU 算法刪除一個鍵(只對設置了生存時間的鍵)
* allkeys-lru:使用LRU 算法刪除一個鍵
* volatile-random:隨機刪除一個鍵(只對設置了生存時間的鍵)
* allkeys-random:隨機刪除一個鍵
* volatile-ttl:刪除生存時間最近的一個鍵
* noeviction (Default):不刪除鍵,只返回錯誤


##Other
maxmeory-samples:隨機取樣數量

 


救急

Linux:限制使用者登入(LDAP適合),利用 pam_access 模組

簡易的需求範例,root , mis群組 可登入,其餘禁止 , 利用 pam_access.so

/etc/security/access.conf

+ : root : ALL
+ : (mis) : ALL
- : ALL : ALL

/etc/pam.d/sshd , 取消 pam_access.so 的 mark

#account required pam_access.so -> account required pam_access.so

設定完就直接生效了,請留意 access.conf 設定

其他常見寫法

[+|-] : [user|(group)] : [ALL|ttyx|IPv4|IPv6|domain]
+ : allow
- : deny
user : root , All , other_user
(Group) : (root) ,(user) , (other_group)
IPv4 : 127.0.0.1
IPv6 : ::1
Domain : foo.com

# root 只能從 127.0.0.1 登入 + : root : 127.0.0.1 #mis 群組 和 wang 這個user 可以從任人何地方登入 + : (mis) wang : ALL #其餘拒絕 - : ALL : ALL

參考:
https://linux.die.net/man/5/access.conf

Linux: sudo 免用密碼設定範例

編輯 sudo 設定檔

visudo

指定帳號 sudo 免密碼

#單帳號
user1 ALL=NOPASSWD: ALL
# “%” 為群組
%user ALL=NOPASSWD: ALL

指定帳號 sudo 特定程式免密碼

user1 ALL=NOPASSWD:/bin/chmod

指定帳號 sudo 特定程式+特定操作免密碼

user1 ALL=NOPASSWD:/bin/chmod [0–7][0-5][0–5] /var/www/html/,/bin/chown root:root /var/www/html/

切換 root 環境,需密碼操作

%mis ALL=(ALL) PASSWD: /bin/bash, /bin/sh

linux-nslcd(LDAP) thread 調整

nslcd default threads = 5
啟動 nslcd 即有5條thread 對 LDAP server 連連
不懂預設值為什麼要設定這麼大
因為我有200台VM,LDAP 就要吃一千條連線
不過有大量登入需求可能真需要放大,但我目前沒有這種服務..

打完收工
update :
查找 ldap 連線

Linux:Postfix Mail Queue( /var/spool/postfix/maildrop ) 簡易查看 AND 清除

今天PVE突然中邪,應該說是google 突然中邪,在沒有設定任而smtp 的PVE只會從localhost 發送mail
一直以來google 都是直接spam 掉,所以一直都沒有注意queue 在 postfix 裡
今天突然收到了 9萬多封 PVE 發出來的信,一看原來 crontab 裡的rsycn 每5分鐘就發一封
先解了發了MAIL的問題,但還是一直零零星星一直收到MAIL,但發現是舊MAIL
收了一下封包,發現中了gmail 的 limit rate ,那就肯定還 queue 在 Server 裡
查了一下怎麼檢視跟刪除,簡單記錄一下

檢視

一下子噴太多可以加個 | less

刪除

請注意都沒有需要保留的MAIL

參考連結

update 20190627
實際所在目錄
cd /var/spool/postfix/maildrop

ls | wc -l
2038857

google 到可以直接用 rm -rf * 解決
但直接用 rm 可能會因為數量太多,導至出錯,這跟bash 解通配符有關

rm -rf *
bash: /bin/rm: Argument list too long

可以用上面做法刪除,或xargs 套接,每次處理10個 ,不過和 postsuper -d ALL 一樣,都要蠻久的
ls | xargs -n 10 rm -rf

查看MAIL 內容
postcat -vq Mail_ID

linux:rsync on crontab 持續發MAIL 解決方法

產生原因

在crontab 裡所執行的內容如果有輸出內容,預設就會發送到使用者的MAIL
通常mail 不能對外只會queue 在/var/spool 裡,一但server 可以外寄郵件時就會送
google 了幾個方法

解決方案

  • 解決產生問題的人
  • 修改crontab 的寄件人,簡單說就是讓他沒地方可以寄,但這樣真的有錯誤你也不會知道

  • 把 rsync 輸出結果導到/dev/null,但變成只有rsync 出錯也不會收到通

  • 最後我發現 -v 是個問題,因為詳細輸出了,重新檢視了參數,發現還有個 -q 的靜默模式,最終選定方案為