RockyLinux 安裝tigervnc-server

  • 安裝RockyLinux需要先安裝桌面版本, 若一開始沒有裝好,可以考慮安裝xfce
yum update -y
yum install -y epel-release
yum groupinstall -y "Xfce" "base-x"
yum systemctl set-default graphical
reboot
  • 安裝tigervnc-server
yum install tigervnc-server -y
  • 若你是root, 請新增linux 使用者,並且修改密碼, 若本身就使一個使用者可以跳過這步驟
adduser william
passwd william
  • 變身成使用者, 設定登入vnc需要的密碼
su - william
vncpasswd 
  • 改回root身分, 啟用設定, 我們是port 590的第一人 :1 , 意思是5901的意思, 若有第二人就再加一個 :2 port 則為5902
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
  • 加上可以使用vnc的使用者帳號
 vi /etc/tigervnc/vncserver.users
###############
:1=william
###############
  • 請用service
systemctl daemon-reload 
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service
firewall-cmd --zone=public --permanent --add-service=vnc-server
# 或是直接指定port 
# firewall-cmd --zone=public --permanent --add-port=5901/tcp
firewall-cmd --reload

RockyLinux 8 時間更新chronyd

之前CentOS 6,7時代, 時間更新使用的是 ntpdate -s x.x.x.x

但是來到了 8 版, 改用chronyd , 若要修改同步的 server , 請修改 /etc/chrony.conf
找到pool 後面加上server的ip即可, 或是沿用預設值也可以

若需要設定server顯示的時間符合本地時間, 可先參考server綁定的地區

ls -l /etc/localtime

然後參考地區

timedatectl list-timezones

再變更

timedatectl list-timezones "Asia/Taipei"

抓出 docker volumes裡面巨大log檔案

docker container產出log有兩種方式, 一種丟給docker輸出, 另一種是自己產出log檔案

長時間使用, volume就會莫名越來越肥, 讓備分增加難度, 有必要把這些檔案抓出來,

最簡單就是利用linux的指令, 抓出大的檔案, 再寫shell另外處理

find /docker-volume-dir -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' 
#抓出超過100M的檔案

不講武德的廣告信-email原始檔案header中關於寄件者email

通常我們透過廣告信給分機制, 可以另外給予"合法郵件服務器"發出來的信件給予高額的廣告判斷分數, 讓系統退件.

因為是合法的服務器, 很多很多都讓該服務器代管, 我們無法直接以 ip, 或是相關特徵, 阻擋服務器發信,
對於我們來說, 唯一的方式就是設定該廣告主email, 給予很高廣告分數, 就可以擋下來了.

煩的是有些郵件服務器使用amazon server當作mail server 發信, 原始檔案裏面的 Return-PathFrom 不一致 , 影響擋廣告機制判斷 , 造成這些人可以肆無忌憚, 不講武德一直發信, 而你怎麼設定該email或是網域, 都沒用, 根本擋不了.

Return-Path: <0101017f0f53948e-e5e68c2b-950e-4613-bd45-c0665e232ab5-000000@us-west-2.amazonses.com>
X-Original-To: xxx@xxx.com
Delivered-To: xxx@xxx.com
Received: from a27-63.smtp-out.us-west-2.amazonses.com (a27-63.smtp-out.us-west-2.amazonses.com [54.240.27.63])
From: =?UTF-8?Q?=E3=80=90iCheers_=E9=80=B1=E5=A0=B1=E3=80=91?= <newsletter@icheers.tw>

講武德的廣告信, Return-Path 與From 會一致

Return-Path: <solidwizard@s1.mailhunter.com.tw>
X-Original-To: xxx@xxx.com
Delivered-To: xxx@xxx.com
Received: from mx127.mailhunter.com.tw (mx127.mailhunter.com.tw [60.250.108.127])
From: =?utf-8?B?5a+m5aiB5ZyL6Zqb6IKh5Lu95pyJ6ZmQ5YWs5Y+4?= <solidwizard@s1.mailhunter.com.tw>

所以我們必須用另外一種作法, 掃描整個郵件headers, 只要符合該email 或 domain 就擋下來

以 Rspamd 的擋廣告機制來說,

修改 /etc/rspamd/local.d/regexp.conf

"RE_EMAIL_ICHEERS" = {
        re = '/@icheers.tw/i{body}';
        score = 15.0;
}
#只須改紅色部分

阻擋 icheers.tw 這個不講武德的廣告信 , 但是我還沒試出來完整email , 若寫完整email 還是會失敗, 有可能是bug.

g suite 替代方案-自架mail server , postfix+openldap

之前一直維護的是 postfix + M$ 的AD 認證 , 這也可以拿來取代google 代管的mail , 但是沒事還要生出windows server , 這錢花了就算了, 就怕一直要更新... 因此花了5天時間,認真研究 , 讓postfix + openldap 認證 , 做成docker images , 也提供範例架設docker openldap server .

值得注意的是 openldap 必須要吃進去 postfix 的 ldap schema 才能跟postfix整合(aliases) .

https://hub.docker.com/r/inmethod/docker-postfix-openldap

postfix外掛廣告信過濾系統-Rspamd

Rspamd 讓我非常驚豔, 設定容易, 可以用來取代老牌amavisd-new套件

centos 7 系統簡易安裝如下:

  • 安裝套件
curl https://rspamd.com/rpm-stable/centos-7/rspamd.repo > /etc/yum.repos.d/rspamd.repo # For Centos-7
rpm --import https://rspamd.com/rpm-stable/gpg.key
yum -y update
yum -y install ca-certificates unbound redis rspamd  clamav clamav-devel clamav-scanner-systemd clamav-update clamav-data clamav-server clamav-server-systemd clamav-scanner
  • 修改/etc/redis.conf , 更改只接受localhost , 與port number
port 7379
bind 127.0.0.1 ::1
  • 更改後啟用redis
systemctl enable redis
systemctl start redis
  • 修改防毒設定 /etc/clamd.d/scan.conf

##########################################
LocalSocket /run/clamd.scan/clamd.sock
LocalSocketMode 666
FixStaleSocket yes
##########################################
  • 更改後啟用
systemctl enable clamav-freshclam
systemctl enable clamd\@scan
  • 下載這些我覺得應該要預設啟用的設定檔案
    下載完畢解開, 將 local.d 與 override.d 目錄裏檔案, 複製到 /etc/rspamd/local.d ,/etc/rspamd/override.d 相應目錄中
https://kafeiou.pw/wp-content/uploads/2022/02/rspamd.zip
  • 啟用rspamd
usermod -aG clamscan _rspamd
usermod -aG virusgroup _rspamd
systemctl enable rspamd
chown -R _rspamd:_rspamd /etc/rspamd/override.d
systemctl start rspamd
  • 修改 /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:11332
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
  • 更改後重開postfix
postfix reload
  • 使用http 反向代理導到 http://localhost:11332 , 這樣就能使用網頁方式看狀況了
<VirtualHost *:443>
  ServerName mail.test.com

  ErrorLog /var/log/httpd/ssl_error_log
  TransferLog /var/log/httpd/ssl_access_log

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/mail.test.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/mail.test.com/privkey.pem
  SSLCACertificateFile /etc/letsencrypt//live/mail.test.com/fullchain.pem

  SSLProxyEngine On
  ProxyRequests Off
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto "https"
  ProxyPass /rspamd/ http://localhost:11334/
  ProxyPassReverse /rspamd/ http://localhost:11334/
  <Location />
    Order allow,deny
    Allow from all
  </Location>
  <Location /rspamd>
    Require all granted
  </Location>
  RewriteEngine On
  RewriteRule ^/rspamd$ /rspamd/ [R,L]
  RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P]
</VirtualHost>

  • 先前步驟下載的檔案有預設密碼, 網頁登入預設密碼是kafeiou.pw
    可使用 以下指令修改
rspamadm pw

製作docker images需要注意logrotate

docker image 製作時, 廣告過濾機制rspamd , 會因為cron.daily每日執行 logrotate檢查, 將過多的log檔案封存, 這樣很好, 但是偏偏log檔案被至換掉, 程式也必須透過 systemctl 方式重開,

可是docker的程式重開偏偏與systemctl 方式不同, 會造成新的log檔案空的, 程式因為無法重開, 也寫不進去log 檔案, 目前能想到的就是幹掉 /etc/logrotate.d 裡面的所有檔案, 需要時再自己處理.

免費 g suite lagacy , 2022年7月要停用, 該自架郵件伺服器了

我傾向於自架, 一樣規劃兩個方向

第一個方向, 中小企業使用 postfix + amavisd + active directory , 或是 postfix + rspamd + active directory

第二個方向, 個人網域專用 , 大概就是docker上面找一找, 不需要跟AD扯上關係.

我2/5回台灣, 需要隔離11天, 因此花了兩天時間, 於docker中找了一款 mailu 很棒的mail server.

試用了一下, 很好用, 可以支援多網域, 使用最新的rspamd取代老牌amavisd-new .

mailu 安裝簡單, 若是使用docker架設, 官方網站提供設定檔案製作工具 https://setup.mailu.io , 回答完問題, 自動產生docker-compose檔案,與環境設定檔案.

而mailu 使用 rspamd 套件管理防毒, 廣告信,, 灰名單, rate limit, 等等功能, 讓我非常驚艷 , 更棒是該套件有網頁管理功能, 我以後要把amavisd-new換掉, 都改成rspamd

以下是docker安裝時, 遇到letsencrypt的問題的解法,mailu 內建letsencrypt, 但我一律改成使用自己的reverse proxy

1. 修改mailu.ini , 把REAL_IP_FROM 改成reverse proxy ip
REAL_IP_HEADER=X-Real-IP
REAL_IP_FROM=x.x.x.x,y.y.y.y.y
2. 利用scripts 把 reverse proxy 中的letsencryp 的認證檔案放到 docker-compose目錄下的 certs 裡面 , 檔名為
cert.pem ,  key.pem

mailu使用network bridge 的方式, 所以maillog看不到外界真實存取的ip , 若需要fail2ban 將無法正常使用, 官網說可以用rate limit方式取代, 但我覺得這不是重點, 重點在於maillog無法反映真實ip紀錄, 這企業很難認同.

1 2 3 4 5 ... 13