2021-05-12 14:32:11
UFW使用指南:通用防火牆規則和命令
介紹
UFW是iptables的防火牆設定工具,預設情況下包含在Ubuntu中。這個欺騙表單樣式指南提供了一個快速參考UFW命令,將建立iptables防火牆規則在常見的日常情況下是有用的。這包括通過埠,網路介面和源IP地址允許和阻止各種服務的UFW範例。
如何使用本指南
- 如果你是剛開始使用UFW設定防火牆,看看我們的介紹UFW
- 這裡描述的大多數規則假定您正在使用預設UFW規則集。也就是說,它被設定為允許通過預設策略傳出和拒絕傳入流量,因此您必須選擇性地允許流量進入
- 使用隨後的章節適用於您要實現的內容。大多數節不是基於任何其他節,因此您可以獨立使用下面的範例
- 使用此頁面右側的“內容”選單(以寬頁面寬度)或瀏覽器的查詢功能,找到所需的部分
- 複製並貼上給出的命令列範例,將紅色的值替換為您自己的值
請記住,你可以檢查您當前UFW規則集sudo ufw status
或sudo 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
相關文章