designer.microsoft.com_Hawaii, USA - 011
designer.microsoft.com_Hawaii, USA - 011

[CentOS]安裝&調教ConfigServer Security & Firewall

ConfigServer Security & Firewall(簡稱CSF)防火牆是一個開放原始碼的軟體,雖然我其實一直是使用同類型的Advanced Policy Firewall(簡稱APF),但是前陣子更換CentOS 6之後才發現好像跟APF不太和氣 🤓 雖然APF官網也有更新9.7 (rev:2),但我覺得APF他更新速度有點慢,CentOS都6.5了他才跟上這點我滿介意的,所以就換上了WHM/Cpanel主機管理系統上的外掛模組CSF 🤖🤓🤖

CSF這套更新速度倒也滿快的,基本安裝也簡單,還附送一個Login Failure Daemon(簡稱LFD)軟體,而且除了WHM付費的主機管理系統可用,另一套Webmin開放原始碼的主機管理系統也同樣有支援CSF的外掛模組,這點我就滿開心的,因為我每台主機都有裝Webmin,所以就來簡單記錄一下使用過程吧 🤓

1. 首先安裝基本套件

sudo yum install -y iptables bind-utils e2fsprogs nano perl perl-Time-HiRes \
perl-GDGraph perl-libwww-perl perl-LWP-Protocol-https perl-Crypt-SSLeay \
perl-Net-SSLeay

2. 安裝CSF

3.1 安裝完畢後先執行1次自我測試,如果正常就可使用完整功能,也就是比較能保障主機的安全,OpenVZ的VPS要特別注意這點

perl /usr/local/csf/bin/csfui.pl

csftest

3.2 安裝過程中CSF會自動將目前連線的IP加入白名單,也自動把已使用中的port加入設定檔,另外有安裝Webmin的可以在Webmin新增CSF外掛模組,在左手邊的Webmin > Webmin Configuration > Webmin Modules選擇From local file,空格中輸入/usr/local/csf/csfwebmin.tgz

Webmin_with_CSF_01

4. 新增好之後可以在左手邊的System > ConfigServer Security & Firewall看到他,不喜歡在SSH操作的就可以在這邊操作 🤓

Webmin_with_CSF_02

5. 設定CSF也不難,官方的讀我檔案有完整介紹,我這邊簡單介紹一下

第220行 – 指定偵測的網路介面

vi +/"ETH_DEVICE" /etc/csf/csf.conf

ETH_DEVICE = “eth0” ← 一般Linux系統
ETH_DEVICE = “venet0” ← OpenVZ的VPS

第115行 – 指定要開放的TCP的PORT

vi +/"TCP_IN" /etc/csf/csf.conf

TCP_IN = “20,21,22,25,47,53,80,110,113,123,143,161,443,465,587,993,995,1723,1812,1813,2077,2078,2082,2083,2086,2087,2095,2096,3306.10000,15000:16000”

第121行 – 指定要開放的UDP的PORT

vi +/"UDP_IN" /etc/csf/csf.conf

UDP_IN = “20,21,22,25,47,53,123”

第128行 – 啟動ICMP功能,開放主機接受PING

vi +/"ICMP_IN" /etc/csf/csf.conf

ICMP_IN = “1”

第352行 – 指定SMTP使用的PORT

vi +/"SMTP_PORTS" /etc/csf/csf.conf

SMTP_PORTS = “25,465,587”

第358行 – 指定要開放使用SMTP的使用者與群組

vi +/"SMTP_ALLOW" /etc/csf/csf.conf

SMTP_ALLOWUSER = “cpanel”
SMTP_ALLOWGROUP = “mail,mailman”

第399行 – 平時不啟動,當遭到SYNFLOOD或DDoS攻擊時,啟動過濾SYNFLOOD功能,這邊的範例是主機收到每秒100個封包就阻擋,突發上限是150,資源較小的主機可以把數字再往下調整

vi +/"SYNFLOOD" /etc/csf/csf.conf

SYNFLOOD = “1”
SYNFLOOD_RATE = “100/s”
SYNFLOOD_BURST = “150”

第435行 – 平時不啟動,當遭到SYNFLOOD或DDoS攻擊時,啟動過濾PORTFLOOD功能,這邊的範例是如果300秒內有10個以上同樣的IP連接到tcp端口22的連接,則60秒後阻止該IP連線到端口22,另外如果5秒內有10個以上同樣的IP連接到tcp端口80的連接,則60秒後阻止該IP連線到端口80

vi +/"PORTFLOOD" /etc/csf/csf.conf

PORTFLOOD = “22;tcp;10;60,80;tcp;10;60”

第419行 – 指定特定PORT可連線的數量,比如說22的PORT可5連線,443可20個連線

vi +/"CONNLIMIT" /etc/csf/csf.conf

CONNLIMIT = “22;5;443;20

大致上也就這樣,其他的不太需要動 🤓 設定完畢後再關閉測試模式

第11行 – 關閉測試模式

sed -i 's#TESTING = "1"#TESTING = "0"#g' /etc/csf/csf.conf

6. 在SSH操作CSF其實也只有幾個指令常用,簡單介紹一下

檢查CSF運作狀態
csf -l
快速新增IP到黑名單
csf -d 8.8.8.8
快速新增IP到白名單
csf -a 8.8.8.8
重新讀取設定檔
csf -r
更新CSF主程式
csf -u
重新啟動CSF服務
service csf restart

About 窮苦人家的小孩

In every democracy, the people get the government they deserve. ~Alexis de Tocqueville
上一篇:
下一篇:

Check Also

[animagine-xl-3.1] Hawaii, USA - 002

CloudCone全自動DD安裝Windows

前陣子VPS優惠 – Clou …

發佈留言