CentOS 7 在postfix郵件伺服器上加裝spf檢查功能,防堵垃圾郵件
SPF 是一種透過dns設定, 用於認證郵件伺服器是否合法, 進而阻擋拉圾郵件的機制, 咖啡偶管理的郵件伺服器老舊了, 從CentOS 6 改成CentOS7 , 安裝spf的方式不一樣, 因此記錄下來,
請進 10021號 IT地窖練功吧
SPF 是一種透過dns設定, 用於認證郵件伺服器是否合法, 進而阻擋拉圾郵件的機制, 咖啡偶管理的郵件伺服器老舊了, 從CentOS 6 改成CentOS7 , 安裝spf的方式不一樣, 因此記錄下來,
請進 10021號 IT地窖練功吧
之前咖啡偶提到如何在docker安裝shadowsocks 伺服器 , 這次就來個如何在ubuntu 安裝shadowsocks用戶端程式, 這樣就可以技術翻牆囉
方法一:
1.安裝套件
sudo apt-get install python-pip sudo apt-get install python-setuptools m2crypto
sudo pip install shadowsocks
2.執行
sslocal -s <ss server ip> -p <ss server port> -k "<password>" -l <local port> -t 600 -m aes-256-cfb
方法二:
1.安裝套件
sudo apt update sudo apt install shadowsocks-libev
2.執行
ss-local -s <ss server ip> -p <ss server port> -k "<password>" -l <local port> -t 600 -m aes-256-cfb
方法一與方法二可用檔案的方式紀錄
sslocal -c xxx.json -v -u 或是 ss-local -c xxx.json -v -u
xxx.json
{ "server": "yourip", "server_port": your port number, "local_address": "127.0.0.1", "local_port": "local port", "password": "your password", "timeout": 300, "method": "aes-256-cfb", "fast_open": true, "prefer_ipv6": false }
瀏覽器設定
瀏覽器安裝plugin, 請到這裡找對應的安裝, 有chrome與firefox
https://github.com/FelisCatus/SwitchyOmega/releases/
咖啡偶使用socks5, 花點時間研究一下安裝與設定就好了
咖啡偶上班的公司使用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, 就可以交差了
咖啡偶的chromebook一直因為google 沒有更新到能夠執行play 商店android app的功能, 因此認為沒有必要用chrome作業系統, 轉而一直使用lubuntu 或是 ferora 作業系統.
但是問題來了,現在桌機幾乎都是1920×1080解析度, 用這個筆電連進去, 就很麻煩.
剛好同事拿以前的eee pc裝lubuntu , lubuntu預設必須有1024×768的最低解析度限制, 但eee pc只有800×600.
這時候就必須手動調整筆電的解析度:
1. 執行xrandr找出筆電的outpu代號
2.修改解析度成1920×1080
我的output代號是 eDP-1
xrandr –fb 1920×1080 –output eDP-1 –mode 1366×768 –scale 1.4×1.4 –pos 1920×1080 –panning 1920×1080
解析度改成1920×1080之後, 等比例縮小後,會觸發panning變成不能用.
後來測試好多次,發現將以上的 1.4改成1.41就可以騙過系統,不觸發自動panning的功能
ps. scale 1.41 是由1920/1366或是1080/768得來的, 大約1.40xxx, 請無條件進位到小數第二位變成1.41,
以下是一些修改建議(以1366×768)為例子:
1. 解析度改成 1502×844 (增加1.1倍)
xrandr --fb 1502x844 --output eDP-1 --mode 1366x768 --scale 1.1x1.1 --pos 1502x844 --panning 1502x844
2. 解析度改成 1639×921 (增加1.2倍)
xrandr --fb 1639x921 --output eDP-1 --mode 1366x768 --scale 1.2x1.2 --pos 1639x921 --panning 1639x921
3. 解析度改成 1920×1080 (增加1.41倍)
xrandr --fb 1920x1080 --output eDP-1 --mode 1366x768 --scale 1.41x1.41 --pos 1920x1080 --panning 1920x1080
最後以1366×768安裝ElementaryOS為例子寫成一個scripts,方便選擇變成哪個解析度
#!/bin/bash LISTS=`xrandr | grep " connected " | awk '{ print$1 }'` #for sList in $LISTS; select sList in $LISTS; do echo "Display: $sList selected" break; done select sDisplay in 1366x768 1502x844 1639x921 1920x1080; do echo "Display mode : $sDisplay" case "$sDisplay" in "1366x768") xrandr --fb 1366x768 --output $sList --mode 1366x768 --scale 1x1 --pos 1366x768 --panning 1366x768 ;; "1502x844") xrandr --fb 1502x844 --output $sList --mode 1366x768 --scale 1.1x1.1 --pos 1502x844 --panning 1502x844 ;; "1639x921") xrandr --fb 1639x921 --output $sList --mode 1366x768 --scale 1.2x1.2 --pos 1639x921 --panning 1639x921 ;; "1920x1080") xrandr --fb 1920x1080 --output $sList --mode 1366x768 --scale 1.41x1.41 --pos 1920x1080 --panning 1920x1080 esac; break; done
CentOS 7 預設防火牆的區域為public , 若我們有兩個網路卡, 一個接內部一個接外部.
這時候就必須區分內外, 對外還是public , 對內就是trusted
使用ifconfig 找出對內網卡代號 xxx
firewall-cmd --permanent --zone=trusted --change-interface=xxx firewall-cmd --reload
sshd port 預設是22 , 因為容易被入侵, 因此需要變更
1.修改 /etc/ssh/sshd_config, 將port 22改成想要的,例如2244
2.允選使用2244
semanage port -a -t ssh_port_t -p tcp 2244
3.加上防火牆後,重新開機
firewall-cmd –permanent –zone=public –add-port=2244/tcp
postfix郵件加上postgrey灰名單功能很簡單 , 步驟如下:
1. 安裝postgrey
CentOS 可於rpmfind.net找尋相對應的RPM版本安裝
Ubuntu 18.04 可直接安裝不用另外下載
sudo apt install postgrey
2. 找出啟動script的OPTIONS選項, 加上自動白名單功能, 與延遲120秒
centos 6:
vi /etc/rc.d/init.d/postgrey
—————————————————
OPTIONS=”–unix=$SOCKET –auto-whitelist-clients=5 –delay=120″
—————————————————
centos 7:
vi /var/lib/systemd/system/postgrey or
vi /usr/lib/systemd/system/postgrey.service
—————————————————
ExecStart=…
–auto-whitelist-clients=5
—————————————————
執行時候會長這樣
/usr/sbin/postgrey -d –unix=/var/spool/postfix/postgrey/socket –auto-whitelist-clients=5 –delay=120
3. 修改postfix的main.cf檔案, 加上check_policy_service unix:postgrey/socket
Centos: vi /etc/postfix/main.cf
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_helo_hostname,
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
check_sender_access hash:/etc/postfix/sender_vip,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cbl.abuseat.org,
check_policy_service unix:postgrey/socket
4. 產生報表
cat /var/log/maillog | postgreyreport --nosingle_line --check_sender=mx,a --show_tries --separate_by_subnet=":=================================================================\n"
這種作法經過實做, 不建議使用, 原因很簡單, 就是延遲的問題, 收個信會延遲, 這是非常麻煩的
雖然可以自動加入白名單, 但是有些不常聯絡, 一聯絡就要馬上收的狀況大有人在,
除非IT人員在公司很強大, 否則不要用這種方式
咖啡偶先前遇到一家曾經有名的台灣網域代管機構 twnci.net
不僅功能越來越不好, 繳費與服務也有問題.
現在又遇到一家不優的dns代管公司-戰國策
他們的dns實際上使用一家新加坡dns代管公司 webnic.cc , 因此dns的轉出與轉入 ,必須等webnic處理才能成功.
咖啡偶因戰國策dns 沒有CAA 功能 , 因此建議朋友轉出, 可是問題來了, 轉出是有期限的, 過了4天後, 我代朋友詢問戰國策, 不知轉出的進度如何, 可是戰國策工程師剛開始的回覆有點扯, 就是希望你先取消再重新轉出…
過了1天後(也就是5天多了), 我堅持戰國策處理 , 接手的工程師改成罐頭回覆, 意思就是5~7天就知道答案, 然後沒多久忽然email來函說轉出成功了!
其實最大的問題是戰國策無法從webinc取得客戶目前轉出的進度, 完全狀況外, 這是很麻煩的事情, 我不是急著要轉,只是想知道是否正在處理而已, 但這卻無法得到正確的答覆.
像戰國策這種收費高出快一倍(.com)的dns代管, 又不能夠掌握客人的進度(轉出), 真是不夠優質, 需要謹慎考慮使用這家的dns代管服務.