首頁 運維 linux運維 linux是否有防火牆

linux是否有防火牆

May 16, 2023 pm 11:20 PM
linux

防火牆幾乎是所有公共Linux伺服器必備軟體之一,它可以保護伺服器免受網路攻擊。許多Linux發行版本已經自備了防火牆,通常是iptables;而Fedora、CentOS、Red Hat發行版本上,預設安裝的防火牆軟體是firewalld,可透過「firewall-cmd」指令來設定和控制。

Linux是有防火牆和防毒軟體的。 防火牆幾乎是公網上Linux伺服器必備的軟體。另外各機房幾乎都有硬體防火牆,用來進行入侵偵測,攻擊防護等。

合理的防火牆是你的電腦防止網路入侵的第一道屏障。你在家裡上網,通常互聯網服務提供會在路由中搭建一層防火牆。當你離開家時,那麼你電腦上的那層防火牆就是僅有的一層,所以設定和控制好你 Linux 電腦上的防火牆很重要。如果你維護一台 Linux 伺服器,那麼知道怎麼去管理你的防火牆同樣重要,只要掌握了這些知識你才能保護你的伺服器免於本地或遠端非法流量的入侵。

linux是否有防火牆

Linux安裝防火牆

#通常情況下,iptables 是許多 Linux 發行版本預設自帶的防火牆。它很強大並且可以自訂,但配置起來有點複雜。開發者撰寫了一些前端應用程式來協助使用者管理防火牆,以取代繁瑣的 iptables 規則。

在 Fedora、CentOS、Red Hat 和一些類似的發行版本上,預設安裝的防火牆軟體是 firewalld,透過 firewall-cmd 命令來設定和控制。 Firewalld可以透過軟體倉庫在Debian以及大多數其他發行版上進行安裝。 Ubuntu 自帶的是簡單防火牆Uncomplicated Firewall(ufw),所以要使用firewalld,你必須啟用universe 軟體倉庫:

$ sudo add-apt-repository universe
$ sudo apt install firewalld

你還需要停用ufw:

$ sudo systemctl disable ufw

沒有理由不用ufw 。它是一個強大的防火牆前端。然而,本文重點介紹 firewalld,因為大部分發行版都支援它而且它整合到了 systemd,systemd 是幾乎所有發行版都自帶的。

不管你的發行版是哪個,都要先啟動防火牆才能讓它生效,而且需要在啟動時載入:

$ sudo systemctl enable --now firewalld

理解防火牆的網域

Firewalld 旨在讓防火牆的設定工作盡可能簡單。它透過建立域zone來實現這個目標。一個網域是一組的合理、通用的規則,這些規則適配大部分使用者的日常需求。預設情況下有九個域。

  • trusted:接受所有的連結。這是一種非常寬鬆的防火牆設置,只適用於絕對可信任的環境,例如測試實驗室或相互認識的家庭網路。

  • 大部分連線都會在這三個領域中被接收:家庭、工作和內部。它們各自排除了預期不活躍的連接埠進來的流量。這三個都適合用於家庭環境中,因為在家庭環境中不會出現連接埠不確定的網路流量,在家庭網路中你一般可以信任其他的使用者。

  • public:用於公共區域內。這是個偏執的設置,當你不信任網路中的其他電腦時使用。只能接收選定的常見和最安全的進入連線。

  • dmz:DMZ 表示隔離區。此網域常用於機構外部可公開存取、內部網路存取受限的電腦。這句話可以重寫為:儘管對於個人電腦來說不太實用,但對於某些伺服器而言,它是一個至關重要的選擇。

  • external:用於外部網絡,會開啟偽裝(你的私人網路的位址被映射到一個外網 IP 位址,並隱藏起來)。跟 DMZ 類似,僅接受經過選擇的傳入連接,包括 SSH。

  • block:僅接收在本系統中初始化的網路連線。任何網路連線都會被拒絕,系統會傳送 icmp-host-prohibited 訊息。這是一個非常重要的設置,尤其適用於位於不信任或不安全環境內的個人電腦或某些類型的伺服器,因其具有極高的偏執性。

  • drop:接收的所有網路包都被丟棄,沒有任何回應。只能有發送出去的網路連線。比這個設定更極端的辦法,只有關閉 WiFi 和拔掉網路線。

你可以查看你發行版本的所有網域,或透過設定檔 /usr/lib/firewalld/zones 來查看管理員設定。例如,Fedora 31 自帶的FedoraWorkstation 網域如下所示:

$ cat /usr/lib/firewalld/zones/FedoraWorkstation.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Fedora Workstation</short>
  <description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <service name="samba-client"/>
  <port protocol="udp" port="1025-65535"/>
  <port protocol="tcp" port="1025-65535"/>
</zone>

#取得目前的網域

任何時候你都可以透過--get-active-zones 選項來查看你處於哪個域:

$ sudo firewall-cmd --get-active-zones

輸出結果中,會有目前活躍的網域的名字和分配給它的網路介面。在筆記型電腦上,在預設網域中通常意味著你有一個 WiFi 卡:

FedoraWorkstation
  interfaces: wlp61s0

修改你目前的網域

要更改你的域,请将网络接口重新分配到不同的域。举个例子,将 wlp61s0 网卡修改为公用域

$ sudo firewall-cmd --change-interface=wlp61s0 --zone=public

你可以在任何时候、任何理由改变一个接口的活动域 —— 无论你是要去咖啡馆,觉得需要增加笔记本的安全策略,还是要去上班,需要打开一些端口进入内网,或者其他原因。在你凭记忆学会 firewall-cmd 命令之前,你只要记住了关键词 change 和 zone,就可以慢慢掌握,因为按下 Tab 时,它的选项会自动补全。

以上是linux是否有防火牆的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

Rimworld Odyssey溫度指南和Gravtech
1 個月前 By Jack chen
Rimworld Odyssey如何釣魚
1 個月前 By Jack chen
我可以有兩個支付帳戶嗎?
1 個月前 By 下次还敢
初學者的Rimworld指南:奧德賽
1 個月前 By Jack chen
PHP變量範圍解釋了
3 週前 By 百草

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1603
29
PHP教程
1508
276
修復無法在Windows Google Chrome上傳文件 修復無法在Windows Google Chrome上傳文件 Jul 08, 2025 pm 02:33 PM

在GoogleChrome中上傳文件時遇到問題?這可能很煩人,對吧?無論您是將文檔附加到電子郵件、在社交媒體上共享圖像,還是提交工作或學校的重要文件,流暢的文件上傳過程都是至關重要的。因此,如果您的文件上傳在WindowsPC上的Chrome中持續失敗,可能會令人沮喪。如果您還沒有準備好放棄您最喜歡的瀏覽器,這裡有一些提示修復無法在WindowsGoogleChrome上傳文件1.從通用修復開始在我們了解任何高級故障排除技巧之前,最好先嘗試下面提到的一些基本解決方案。排除互聯網連接問題:互聯網連

如何在Linux上管理組 如何在Linux上管理組 Jul 06, 2025 am 12:02 AM

管理Linux用戶組需掌握查看、創建、刪除、修改及用戶歸屬調整等操作。查看用戶組信息可用cat/etc/group或getentgroup,查看用戶所屬組用groups[用戶名]或id[用戶名];創建組使用groupadd,可加-g指定GID;刪除空組用groupdel;添加用戶到組用usermod-aG,修改主組用usermod-g;從組移除用戶可通過編輯/etc/group或使用vigr命令;修改組屬性用groupmod-n(改名)或groupmod-g(改GID),並記得更新相關文件權限。

如何在Linux中找到我的私人和公共IP地址? 如何在Linux中找到我的私人和公共IP地址? Jul 09, 2025 am 12:37 AM

在Linux系統中,1.使用ipa或hostname-I命令可查看私有IP;2.使用curlifconfig.me或curlipinfo.io/ip可獲取公網IP;3.桌面版可通過系統設置查看私有IP,瀏覽器訪問特定網站查看公網IP;4.可將常用命令設為別名以便快速調用。這些方法簡單實用,適合不同場景下的IP查看需求。

安裝Linux的系統要求 安裝Linux的系統要求 Jul 20, 2025 am 03:49 AM

LinuxCanrunonModestHardwarewtareWithSpecificminimumRequirentess.A1GHZPROCESER(X86ORX86_64)iSNEDED,withAdual-Corecpurecommondend.r AmshouldBeatLeast512MbForCommand-lineUseor2Gbfordesktopenvironments.diskSpacePacereQuiresaminimumof5-10GB,不過25GBISBISBETTERFORAD

比特幣代號是什麼?比特幣是什麼樣式的代碼? 比特幣代號是什麼?比特幣是什麼樣式的代碼? Jul 22, 2025 pm 09:51 PM

比特幣作為數字世界的先驅,其獨特的代號和底層技術一直是人們關注的焦點。它的標準代號是 BTC,在某些符合國際標準的平台上也被稱為 XBT。從技術角度看,比特幣並非單一的代碼樣式,而是一個龐大且精密的開源軟件項目,其核心代碼主要由 C 語言編寫,並融合了密碼學、分佈式系統和經濟學原理,任何人都可以查看、審查和貢獻其代碼。

如何讓PHP容器支持自動構建 PHP環境持續集成CI配置方式 如何讓PHP容器支持自動構建 PHP環境持續集成CI配置方式 Jul 25, 2025 pm 08:54 PM

要讓PHP容器支持自動構建,核心在於配置持續集成(CI)流程。 1.使用Dockerfile定義PHP環境,包括基礎鏡像、擴展安裝、依賴管理和權限設置;2.配置GitLabCI等CI/CD工具,通過.gitlab-ci.yml文件定義build、test和deploy階段,實現自動構建、測試和部署;3.集成PHPUnit等測試框架,確保代碼變更後自動運行測試;4.使用Kubernetes等自動化部署策略,通過deployment.yaml文件定義部署配置;5.優化Dockerfile,採用多階段構

如何使用'關閉”命令 如何使用'關閉”命令 Jul 15, 2025 am 12:26 AM

Linux/macOS的shutdown命令可通過參數實現關機、重啟、定時操作等。 1.立即關機使用sudoshutdownnow或-h/-P參數;2.定時關機用 時間或具體時間點,取消用-c;3.重啟使用-r參數,支持定時重啟;4.注意需sudo權限,遠程操作謹慎,避免數據丟失。

如何搭建獨立PHP任務容器環境 PHP定時腳本運行容器配置方法 如何搭建獨立PHP任務容器環境 PHP定時腳本運行容器配置方法 Jul 25, 2025 pm 07:27 PM

搭建獨立PHP任務容器環境可通過Docker實現,具體步驟如下:1.安裝Docker與DockerCompose作為基礎;2.創建獨立目錄存放Dockerfile、crontab文件;3.編寫Dockerfile定義PHPCLI環境並安裝cron及必要擴展;4.編寫crontab文件定義定時任務;5.編寫docker-compose.yml掛載腳本目錄並配置環境變量;6.啟動容器並驗證日誌。相比Web容器內執行定時任務,獨立容器具備資源隔離、環境純粹、穩定性強、便於擴展等優勢。為確保日誌與錯誤捕

See all articles