Linux 如何如實轉寄郵件而不會顯示是誰轉寄的

Linux 如何如實轉寄郵件而不會顯示是誰轉寄的, 這有點繞舌 , 意思就是網管攔截到一封疑似廣告信

但是後來判定不是, 需要重新還給使用者, 這時候用網管的角色轉寄, 寄件者將會出現網管的名字, 而不是原本的寄件者.

因此, 需要原封不動的轉寄過去,

請使用這個指令

 
 swaks  -f <網管帳號> -t <收件者帳號>  -d <郵件檔案>

-f 網管帳號 的選項可以不用,這只是藏在檔頭裡面方便以後查驗

安裝方式:

CentOS: yum install swaks
Ubuntu:  apt install swaks

Postfix 擋廣告的限制設定 sender, client, and recipient restrictions

Postfix 擋廣告的限制設定, 重要的有三個,簡稱三兄弟:

老大: smtpd_sender_restrictions 

這部份著墨不多, 基本上就是檢查寄件者格式是否正確, 是第一階段限制

老2: smtpd_client_restrictions 

這個設定重點在於限制主機名稱 或是 ip 

例如:

check_client_access hash:/etc/postfix/sender_mail_hostname_check

代表你必須正確地, 將要限制的郵件主機名稱,或是ip (不能使用萬用字元), 寫入sender_mail_hostname_check 這個檔案裡面, 才能限制該主機.

接著再加上這個很威猛的設定 reject_unknown_client_hostname

利用dns方式, 來驗證主機名稱是否相符正, 否則就拒絕, 舉例來說:

若該郵件主機 ip 是1.2.3.4 , 且dns查詢結果是 xxx.com , 可是實際上 xxx.com 正向查詢不是 1.2.3.4 , 就會被擋下來!

ps. 1.2.3.4 可以宣稱是yyy.com 這個網域的郵件主機, 跟實際dns是xxx.com可以不一樣的.

光是這一招就能解決大部分廣告信, 因為廣告主機都會胡亂宣稱.

當然也造成很多誤判狀況, 因為有些IT人員並不會很認真處理主機ip的反解.

** reject_unknown_client_hostname 可以改用 reject_unknown_reverse_client_hostname 來替代, 只要反查不要查不出主機名稱 , 就不會擋下來, 比較寬鬆.

老3. smtpd_recipient_restrictions 

這部份就很多設定了, 重點在於

check_sender_access hash:/etc/postfix/sender_email_check

sender_email_check 紀錄了寄件者郵箱或是網域是否可以限制

與老2不同的是, 這裡可以使用萬用字元, 因為阻擋的不是ip , 而是email

請點此參考編號 10023 範例

postfix 檢查檔頭header_checks

這也是postfix老掉牙的阻擋廣告信方式, 偶爾可以用一下,

大家都知道postfix 可以檢查檔頭header_checks, 然後阻擋

在 /etc/postfix/main.cf 設定一下即可啟用功能

header_checks = regexp:/etc/postfix/header_checks

接下來修改規則檔案 /etc/postfix/header_checks, 設定要阻擋的字串,

這裡比較有趣的是, 如何定位字串? 總共有兩個地方要注意的:

1.是”.”與”*” 後面加上要定位的字串 , 再加上”/” , 代表搜尋多個相同的字串,

例如 /^Subject:.*AV/ DISCARD

找出所有標題是AV的字串

2.中文需要考慮UTF-8, GBK, BIG5,然後進行Base64編碼

例如要定位”警告”這個字串, 有可能是utf8 , gbk, big5 三個

/^Subject:.*6K2m5ZGK/ DISCARD
/^Subject:.*vq+45g==/ DISCARD
/^Subject:.*xLWnaQ==/ DISCARD

編碼服務可參考
https://www.base64encode.org

 

fortigate防火牆Log應用

咖啡偶上班的公司使用fortigate 80c , 已經很久沒更新了, 也沒使用到一些特異功能, 甚至vpn也關掉避免安全性問題發生.

可是呢, 公司高層忽然想看同仁上網行為, 身為IT人員當然要接受而且拒絕,

何謂接受呢?就是我能做到基本綜合統計,例如流量,瀏覽網頁數量與上網時間.

其實就是委婉拒絕, 理由:

1.拿個資法來向上管理

2.以系統老舊,無法提供詳細的網站行為分析( 除非花個2,30萬買設備,外加每年15%的維護費用,這時候通常上頭就退縮了).

接下來, 若高階主管想看統計資料的時候跟我要,而不是隨時可以看,並且要給我一個合理的理由,例如:上班時間上網,然後狂加班之類的.

好了, 話不多說, fortigate 能將log透過udp 514 port導到能接收的主機上, 咖啡偶使用 CentOS 6接收,

如何開啟fortigate就不多講了, 因為版本複雜. 這裡只講CentOS6設定

修改/etc/rsyslog.conf, 開啟udp 514監聽功能,並且寫下過濾規則

#### MODULES ####
# 聆聽 UDP/514
$ModLoad imudp
$UDPServerRun 514

 

#### RULES ####
# 若 facility 為 local6 且內容含 traffic  記錄到 /var/log/fortigate.log
if $syslogfacility-text == ‘local6’  and $msg contains ‘traffic’  then /var/log/fortigate.log

這樣相關的log都會被記錄下來, 再使用Sawmill這套軟體分析fortigate的log, 就可以交差了

1 ... 11 12 13 14