首頁 > 軟體

UFW使用指南:通用防火牆規則和命令

2020-06-16 17:10:14

介紹

UFW是iptables的防火牆設定工具,預設情況下包含在Ubuntu中。這個欺騙表單樣式指南提供了一個快速參考UFW命令,將建立iptables防火牆規則在常見的日常情況下是有用的。這包括通過埠,網路介面和源IP地址允許和阻止各種服務的UFW範例。

如何使用本指南

  • 如果你是剛開始使用UFW設定防火牆,看看我們的介紹UFW
  • 這裡描述的大多數規則假定您正在使用預設UFW規則集。也就是說,它被設定為允許通過預設策略傳出和拒絕傳入流量,因此您必須選擇性地允許流量進入
  • 使用隨後的章節適用於您要實現的內容。大多數節不是基於任何其他節,因此您可以獨立使用下面的範例
  • 使用此頁面右側的“內容”選單(以寬頁面寬度)或瀏覽器的查詢功能,找到所需的部分
  • 複製並貼上給出的命令列範例,將紅色的值替換為您自己的值

請記住,你可以檢查您當前UFW規則集sudo ufw statussudo ufw status verbose

阻止IP地址

要阻止所有網路連線從一個特定的IP地址發起, 15.15.15.51例如,執行以下命令:

sudo ufw deny from15.15.15.51

在這個例子中, from15.15.15.51指定“15.15.15.51”的一個 IP地址。 如果你想,一個子網,如15.15.15.0/24 ,在這裡可以代替規定。 源IP地址可以在任何防火牆規則中指定,其中包括允許規則。

阻止與網路介面的連線

要阻止來自特定IP地址的連線,例如15.15.15.51到一個特定的網路介面,如eth0 ,使用這個命令:

sudo ufw deny in on eth0 from15.15.15.51

這是相同的前面的例子,通過加入in on eth0 。網路介面可以在任何防火牆規則中指定,並且是將規則限制到特定網路的好方法。

服務:SSH

如果您使用雲伺服器,則可能需要允許傳入SSH連線(埠22),以便可以連線和管理伺服器。本節介紹如何使用各種SSH相關規則設定防火牆。

允許SSH

要允許所有傳入的SSH連線執行此命令:

sudo ufw allow ssh

另一種語法是指定SSH服務的埠號:

sudo ufw allow 22

允許從特定IP地址或子網接收SSH

要允許來自特定IP地址或子網的傳入SSH連線,請指定源。例如,如果你想使整個15.15.15.0/24子網,執行以下命令:

sudo ufw allow from15.15.15.0/24  to any port 22

允許從特定IP地址或子網接收Rsync

Rsync在埠873上執行,可用於將檔案從一台計算機傳輸到另一台計算機。

要允許來自特定IP地址或子網的傳入rsync連線,請指定源IP地址和目標埠。例如,如果你想使整個15.15.15.0/24子網能夠Rsync在您的伺服器,執行以下命令:

sudo ufw allow from15.15.15.0/24 to any port 873

服務:Web伺服器

Web伺服器(如Apache和Nginx)通常分別監聽埠80和443上的HTTP和HTTPS連線的請求。如果將傳入流量的預設策略設定為drop或deny,您將需要建立允許伺服器響應這些請求的規則。

允許所有傳入的HTTP

要允許所有傳入的HTTP(埠80)連線執行此命令:

sudo ufw allow http

另一種語法是指定HTTP服務的埠號:

sudo ufw allow 80

允許所有傳入的HTTPS

要允許所有傳入的HTTPS(埠443)連線執行此命令:

sudo ufw allow https

另一種語法是指定HTTPS服務的埠號:

sudo ufw allow 443

允許所有傳入的HTTP和HTTPS

如果要允許HTTP和HTTPS流量,則可以建立允許兩個埠的單個規則。要允許所有傳入的HTTP和HTTPS(埠443)連線執行此命令:

sudo ufw allow proto tcp from any to any port 80,443

請注意,您需要指定協定,與proto tcp ,指定多個埠的時候。

服務:MySQL

MySQL偵聽埠3306上的用戶端連線。如果遠端伺服器上的用戶端正在使用MySQL資料庫伺服器,則需要確保允許該流量。

從特定IP地址或子網允許MySQL

要允許來自特定IP地址或子網的傳入MySQL連線,請指定源。例如,如果你想使整個15.15.15.0/24子網,執行以下命令:

sudo ufw allow from15.15.15.0/24 to any port 3306

允許MySQL到特定的網路介面

要允許特定的網路介面,說你有一個專用網路介面,MySQL連線eth1 ,例如使用這個命令:

sudo ufw allow in on eth1 to any port 3306

服務:PostgreSQL

PostgreSQL偵聽埠5432上的用戶端連線。如果遠端伺服器上的用戶端正在使用您的PostgreSQL資料庫伺服器,則需要確保允許該流量。

PostgreSQL從特定的IP地址或子網

要允許從特定IP地址或子網傳入PostgreSQL連線,請指定源。例如,如果你想使整個15.15.15.0/24子網,執行以下命令:

sudo ufw allow from15.15.15.0/24 to any port 5432

如果第二個命令,允許建立的PostgreSQL連線傳送的報文,只需要OUTPUT的政策未設定為ACCEPT

允許PostgreSQL到特定的網路介面

為了讓PostgreSQL的連線到特定的網路介面,說你有一個專用網路介面eth1 ,例如使用這個命令:

sudo ufw allow in on eth1 to any port 5432

如果第二個命令,允許建立的PostgreSQL連線傳送的報文,只需要OUTPUT的政策未設定為ACCEPT

服務:郵件

郵件伺服器(例如Sendmail和Postfix)根據用於郵件傳遞的協定在各種埠上偵聽。如果您正在執行郵件伺服器,請確定您正在使用哪些協定,並允許相應型別的流量。我們還將向您展示如何建立規則以阻止傳出SMTP郵件。

阻止傳送SMTP郵件

如果您的伺服器不應傳送外發郵件,則可能需要阻止此類流量。要阻止使用埠25的傳出SMTP郵件,請執行以下命令:

sudo ufw deny out25

這將設定防火牆刪除所有出站流量在埠25上。如果你需要通過埠號拒絕不同的服務,而不是25埠,只需更換它。

允許所有傳入SMTP

要允許伺服器響應SMTP連線(埠25),請執行以下命令:

sudo ufw allow 25

註:這是常見的的SMTP伺服器使用埠587的出站郵件。

允許所有收到的IMAP

要允許伺服器響應IMAP連線(埠143),請執行以下命令:

sudo ufw allow 143

允許所有傳入的IMAPS

要允許您的伺服器響應IMAPS連線,埠993,請執行以下命令:

sudo ufw allow 993

允許所有傳入的POP3

要允許伺服器響應POP3連線,埠110,請執行以下命令:

sudo ufw allow 110

允許所有傳入的POP3S

要允許伺服器響應POP3S連線(埠995),請執行以下命令:

sudo ufw allow 995

結論

這應該涵蓋使用UFW設定防火牆時常用的許多命令。當然,UFW是一個非常靈活的工具,所以隨意混合和匹配命令與不同的選項,以滿足您的具體需要,如果這裡不包括。

祝你好運!

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145697.htm


IT145.com E-mail:sddin#qq.com