自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用人性化的 Linux 防火墻 CFW 阻止 DDOS 攻擊

系統(tǒng) Linux
CFW(Cyber Firewall)是一個(gè)人性化的 Linux 防火墻。

概括

CFW(Cyber Firewall)是一個(gè)人性化的 Linux 防火墻。它旨在協(xié)助阻止拒絕服務(wù)攻擊(DDoS),同時(shí)能控制 Linux 系統(tǒng)端口的開(kāi)關(guān)。CFW 基于 Linux 原生基礎(chǔ)設(shè)施運(yùn)行,擁有良好的軟件兼容性。

該軟件基于 iptables 和 ipset,使用 Python 開(kāi)發(fā),使用時(shí)建議關(guān)閉發(fā)行版自帶的防火墻(如 firewalld、ufw)避免沖突。

通過(guò) CFW,你將能夠:

  • 通過(guò)自定義的規(guī)則自動(dòng)封禁互聯(lián)網(wǎng)中的惡意 IP,以防止拒絕服務(wù)攻擊
  • 保護(hù) Linux 的所有端口遭受 DDoS 攻擊,而不僅僅是 Web 應(yīng)用
  • 獲得良好的軟件兼容性,原生支持 Nginx、Caddy 等服務(wù)器
  • 支持配合 CDN 使用,使用 CDN 時(shí)請(qǐng)將 CDN 的 IP 段設(shè)置為 CFW 白名單
  • 控制開(kāi)啟或關(guān)閉 Linux 系統(tǒng)的 TCP/UDP 端口
  • 獲得友好的命令行交互式體驗(yàn)

背景

Web 應(yīng)用程序運(yùn)行在復(fù)雜的互聯(lián)網(wǎng)中,隨時(shí)可能面臨惡意攻擊,導(dǎo)致拒絕服務(wù)現(xiàn)象。為了封禁這些不友好的 IP,CFW 正是為此而誕生。

CFW 的靈感最初來(lái)自寶塔面板的 Nginx 防火墻。然而,使用 Nginx 防火墻的過(guò)程中遇到諸多不順。該防火墻僅針對(duì) Web 應(yīng)用(通常是 80 和 443 端口)防御 CC 攻擊,無(wú)法保護(hù) Linux 服務(wù)器的其他端口。同時(shí),該防火墻需要按月付費(fèi),并始終捆綁寶塔生態(tài)(最新的寶塔面板甚至需要登錄綁定手機(jī)實(shí)名制的賬號(hào)),從而限制了軟件自由度。我們想在純凈的 Linux 中運(yùn)行防火墻,并對(duì)所有端口生效,于是自己開(kāi)發(fā)了一個(gè)。

由于 CFW 基于 iptables 和 ipset,不免會(huì)與發(fā)行版自帶的防火墻(如 firewalld、ufw)沖突,我們?cè)黾恿?CFW 對(duì)端口開(kāi)關(guān)的控制。

實(shí)現(xiàn)

CFW 通過(guò) ??ss -Hntu | awk '{print $5,$6}'?? 命令獲取當(dāng)前服務(wù)器的所有連接??蛻舳说恼?qǐng)求若超過(guò)設(shè)定并發(fā)數(shù),該 IP 將被 iptables 封禁,并存儲(chǔ)在 ipset 數(shù)據(jù)結(jié)構(gòu)中。

CFW 通過(guò)調(diào)用 ??iptables?? 命令實(shí)現(xiàn) Linux 端口的開(kāi)關(guān)。

安裝

請(qǐng)先確保系統(tǒng)擁有以下依賴。

對(duì)于 Debian、Ubuntu 等:

sudo apt install -y curl ipset python3 git net-tools

對(duì)于 CentOS 等:

sudo yum install -y curl ipset python3 git net-tools

安裝好系統(tǒng)依賴后,輸入以下命令安裝 CFW:

sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/install.py | python3

你也可以下載該腳本閱讀,以了解該腳本所進(jìn)行的工作后再執(zhí)行上述命令。

完成安裝后,使用 ??source ~/.bashrc?? 激活 CFW 的環(huán)境變量。(或者新打開(kāi)一個(gè) shell 環(huán)境,自動(dòng)激活環(huán)境變量。)

在 Linux 終端輸入 ??systemctl status cfw??,顯示 ??active (running)?? 字樣說(shuō)明 CFW 已成功運(yùn)行,同時(shí)會(huì)在服務(wù)器重啟時(shí)自動(dòng)運(yùn)行。

卸載

sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/uninstall.py | python3

配置

配置文件在 ??/etc/cfw/config.yaml?? 中,修改配置文件后運(yùn)行 ??systemctl restart cfw?? 即可生效。

配置文件參數(shù)說(shuō)明:

# CFW 運(yùn)行端口port: 6680# CFW 檢測(cè)連接的頻率,單位:秒。此處默認(rèn) 5 秒一次。frequency: 5# 允許每個(gè) IP 連接的最大并發(fā)數(shù),超過(guò)將被 CFW 封禁。max_num: 100# 解封 IP 的時(shí)間。此處默認(rèn) IP 被封禁后 600 秒將自動(dòng)解封。若此處值為 0,則永久封禁。unblock_time: 600# 數(shù)據(jù)備份時(shí)間,單位:秒。backup_time: 60# IPv4 白名單路徑。寫(xiě)在文本文件中,一行一個(gè) IP,支持子網(wǎng)掩碼。)本地地址、內(nèi)網(wǎng)地址默認(rèn)在該文件中)whitelist: /etc/cfw/ip_list/whitelist.txt# IPv4 黑名單路徑。寫(xiě)在文本文件中,一行一個(gè) IP,支持子網(wǎng)掩碼。blacklist: /etc/cfw/ip_list/blacklist.txt# IPv6 白名單路徑。寫(xiě)在文本文件中,一行一個(gè) IP。whitelist6: /etc/cfw/ip_list/whitelist6.txt# IPv6 黑名單路徑。寫(xiě)在文本文件中,一行一個(gè) IP。blacklist6: /etc/cfw/ip_list/blacklist6.txt# 日志文件的路徑log_file_path: /etc/cfw/log/log.csv# 日志文件的最大行數(shù)。(達(dá)到最大行數(shù)后將自動(dòng)滾動(dòng)。若此處值為 0,則不限制最大行數(shù))log_max_lines: 10000000

命令

命令中 ??[]?? 表示變量。

運(yùn)行

  • 停止 CFW:??systemctl stop cfw??
  • 啟動(dòng) CFW:??systemctl start cfw??
  • 重啟 CFW:??systemctl restart cfw??

IP 黑名單管理

  • 手動(dòng)封禁單個(gè) IPv4 地址:??cfw block [ip]??
  • 手動(dòng)解封單個(gè) IPv4 地址:??cfw unblock [ip]??
  • 查看 IPv4 黑名單:??cfw blacklist??
  • 手動(dòng)封禁單個(gè) IPv6 地址:??cfw block6 [ip]??
  • 手動(dòng)解封單個(gè) IPv6 地址:??cfw unblock6 [ip]??
  • 查看 IPv6 黑名單:??cfw blacklist6??

Linux 端口操作

  • 放行 IPv4 端口:cfw allow [port]
  • 阻止 IPv4 端口:cfw deny [port]
  • 單獨(dú)放行 IPv4 TCP 端口:cfw allow [port]/tcp,示例如 cfw allow 69.162.81.155/tcp
  • 單獨(dú)阻止 IPv4 TCP 端口:cfw deny [port]/tcp,示例如 cfw deny 69.162.81.155/tcp
  • IPv4 UDP 端口操作同理
  • 查看所有放行的 IPv4 端口:cfw status
  • 放行 IPv6 端口:cfw allow6 [port]
  • 阻止 IPv6 端口:cfw deny6 [port]
  • 單獨(dú)放行 IPv6 TCP 端口:cfw allow6 [port]/tcp,示例如 cfw allow6 69.162.81.155/tcp
  • 單獨(dú)阻止 IPv6 TCP 端口:cfw deny6 [port]/tcp,示例如 cfw deny6 69.162.81.155/tcp
  • IPv6 UDP 端口操作同理
  • 查看所有放行的 IPv6 端口:cfw status6

日志操作

動(dòng)態(tài)查詢?nèi)罩?nbsp;??cfw log [num]??。??[num]?? 為查詢?nèi)罩镜臈l數(shù),查詢結(jié)果將按時(shí)間倒序。

相關(guān)鏈接

更多

如果你在使用中遇到任何問(wèn)題,歡迎在 ??https://github.com/Cyberbolt/cfw/issues?? 處留言。有了你的幫助,CFW 才能日漸壯大。

總結(jié)

CFW 可以防止一定程度的 DDoS 攻擊,同時(shí)能控制開(kāi)啟或關(guān)閉 Linux 系統(tǒng)的 TCP/UDP 端口,很好地幫助我們解決惡意 IP 入侵的問(wèn)題。但是不要做不切實(shí)際的想象,認(rèn)為 CFW 可以抵御大型 DDoS 攻擊。DDoS 攻擊的規(guī)模往往與成本是正相關(guān)的,必要時(shí)提升網(wǎng)絡(luò)帶寬才能解決問(wèn)題的根本。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2011-03-11 14:52:47

2011-07-30 12:57:24

2010-09-14 12:37:57

2010-09-29 14:49:37

2009-12-09 11:43:31

2013-07-29 10:46:51

編程語(yǔ)言

2011-03-15 15:47:26

LinuxIptables防火墻

2010-09-14 11:11:09

2019-08-19 13:15:54

Windows 10防火墻Visual Stud

2013-07-04 10:16:24

2010-09-14 12:19:02

2010-09-14 13:10:36

2010-04-21 10:32:30

2010-09-14 13:34:03

2009-12-07 10:08:03

2009-02-22 09:30:24

2011-03-15 16:35:27

2020-04-07 13:20:52

Linux防火墻ufw

2010-09-30 11:02:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)