溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux7防火墻的基本使用及詳解

發(fā)布時(shí)間:2021-09-15 18:12:28 來源:億速云 閱讀:101 作者:chen 欄目:建站服務(wù)器

這篇文章主要講解了“l(fā)inux7防火墻的基本使用及詳解”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)inux7防火墻的基本使用及詳解”吧!

1、firewalld的基本使用

啟動(dòng): systemctl start firewalld

查看狀態(tài): systemctl status firewalld 

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

2.systemctl是CentOS7的服務(wù)管理工具中主要的工具,它融合之前service和chkconfig的功能于一體。

啟動(dòng)一個(gè)服務(wù):systemctl start firewalld.service
關(guān)閉一個(gè)服務(wù):systemctl stop firewalld.service
重啟一個(gè)服務(wù):systemctl restart firewalld.service
顯示一個(gè)服務(wù)的狀態(tài):systemctl status firewalld.service
在開機(jī)時(shí)啟用一個(gè)服務(wù):systemctl enable firewalld.service
在開機(jī)時(shí)禁用一個(gè)服務(wù):systemctl disable firewalld.service
查看服務(wù)是否開機(jī)啟動(dòng):systemctl is-enabled firewalld.service
查看已啟動(dòng)的服務(wù)列表:systemctl list-unit-files|grep enabled
查看啟動(dòng)失敗的服務(wù)列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看幫助: firewall-cmd --help

顯示狀態(tài): firewall-cmd --state

查看所有打開的端口: firewall-cmd --zone=public --list-ports

更新防火墻規(guī)則: firewall-cmd --reload

查看區(qū)域信息:  firewall-cmd --get-active-zones

查看指定接口所屬區(qū)域: firewall-cmd --get-zone-of-interface=eth0

拒絕所有包:firewall-cmd --panic-on

取消拒絕狀態(tài): firewall-cmd --panic-off

查看是否拒絕: firewall-cmd --query-panic

那怎么開啟一個(gè)端口呢

添加

firewall-cmd 

 代碼如下 復(fù)制代碼
應(yīng)急模式在 0.3.0 版本中發(fā)生了變化
在 0.3.0 之前的 FirewallD版本中, panic 選項(xiàng)是 –enable-panic 與 –disable-panic.

查詢應(yīng)急模式

firewall-cmd --query-panic

此命令返回應(yīng)急模式的狀態(tài),沒有輸出。可以使用以下方式獲得狀態(tài)輸出:

firewall-cmd --query-panic && echo "On" || echo "Off"

處理運(yùn)行時(shí)區(qū)域

運(yùn)行時(shí)模式下對(duì)區(qū)域進(jìn)行的修改不是永久有效的。重新加載或者重啟后修改將失效。

啟用區(qū)域中的一種服務(wù)

firewall-cmd [--zone=<zone>] --add-service=<service> [--timeout=<seconds>]

此舉啟用區(qū)域中的一種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。如果設(shè)定了超時(shí)時(shí)間,服務(wù)將只啟用特定秒數(shù)。如果服務(wù)已經(jīng)活躍,將不會(huì)有任何警告信息。

例: 使區(qū)域中的ipp-client服務(wù)生效60秒:

firewall-cmd --zone=home --add-service=ipp-client --timeout=60

例: 啟用默認(rèn)區(qū)域中的http服務(wù):

firewall-cmd --add-service=http

禁用區(qū)域中的某種服務(wù)

firewall-cmd [--zone=<zone>] --remove-service=<service>

此舉禁用區(qū)域中的某種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。

例: 禁止home區(qū)域中的http服務(wù):

firewall-cmd --zone=home --remove-service=http

區(qū)域種的服務(wù)將被禁用。如果服務(wù)沒有啟用,將不會(huì)有任何警告信息。

查詢區(qū)域中是否啟用了特定服務(wù)

firewall-cmd [--zone=<zone>] --query-service=<service>

如果服務(wù)啟用,將返回1,否則返回0。沒有輸出信息。

啟用區(qū)域端口和協(xié)議組合

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

此舉將啟用端口和協(xié)議的組合。端口可以是一個(gè)單獨(dú)的端口 <port> 或者是一個(gè)端口范圍 <port>-<port> 。協(xié)議可以是 tcp 或 udp。

禁用端口和協(xié)議組合

firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

查詢區(qū)域中是否啟用了端口和協(xié)議組合

firewall-cmd [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

如果啟用,此命令將有返回值。沒有輸出信息。

啟用區(qū)域中的IP偽裝功能

firewall-cmd [--zone=<zone>] --add-masquerade

此舉啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個(gè)公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。

禁用區(qū)域中的IP偽裝

firewall-cmd [--zone=<zone>] --remove-masquerade

查詢區(qū)域的偽裝狀態(tài)

firewall-cmd [--zone=<zone>] --query-masquerade

如果啟用,此命令將有返回值。沒有輸出信息。

啟用區(qū)域的ICMP阻塞功能

firewall-cmd [--zone=<zone>] --add-icmp-block=<icmptype>

此舉將啟用選中的Internet控制報(bào)文協(xié)議(ICMP)報(bào)文進(jìn)行阻塞。ICMP報(bào)文可以是請(qǐng)求信息或者創(chuàng)建的應(yīng)答報(bào)文,以及錯(cuò)誤應(yīng)答。

禁止區(qū)域的ICMP阻塞功能

firewall-cmd [--zone=<zone>] --remove-icmp-block=<icmptype>

查詢區(qū)域的ICMP阻塞功能

firewall-cmd [--zone=<zone>] --query-icmp-block=<icmptype>

如果啟用,此命令將有返回值。沒有輸出信息。

例: 阻塞區(qū)域的響應(yīng)應(yīng)答報(bào)文:

firewall-cmd --zone=public --add-icmp-block=echo-reply

在區(qū)域中啟用端口轉(zhuǎn)發(fā)或映射

firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

端口可以映射到另一臺(tái)主機(jī)的同一端口,也可以是同一主機(jī)或另一主機(jī)的不同端口。端口號(hào)可以是一個(gè)單獨(dú)的端口 <port> 或者是端口范圍 <port>-<port> 。協(xié)議可以為 tcp 或udp 。目標(biāo)端口可以是端口號(hào) <port> 或者是端口范圍 <port>-<port> 。目標(biāo)地址可以是 IPv4 地址。受內(nèi)核限制,端口轉(zhuǎn)發(fā)功能僅可用于IPv4。

禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

firewall-cmd [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

firewall-cmd [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

如果啟用,此命令將有返回值。沒有輸出信息。

例: 將區(qū)域home的ssh轉(zhuǎn)發(fā)到127.0.0.2

firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

處理永久區(qū)域

永久選項(xiàng)不直接影響運(yùn)行時(shí)的狀態(tài)。這些選項(xiàng)僅在重載或者重啟服務(wù)時(shí)可用。為了使用運(yùn)行時(shí)和永久設(shè)置,需要分別設(shè)置兩者。 選項(xiàng) –permanent 需要是永久設(shè)置的第一個(gè)參數(shù)。

獲取永久選項(xiàng)所支持的服務(wù)

firewall-cmd --permanent --get-services

獲取永久選項(xiàng)所支持的ICMP類型列表

firewall-cmd --permanent --get-icmptypes

獲取支持的永久區(qū)域

firewall-cmd --permanent --get-zones

啟用區(qū)域中的服務(wù)

firewall-cmd --permanent [--zone=<zone>] --add-service=<service>

此舉將永久啟用區(qū)域中的服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。

禁用區(qū)域中的一種服務(wù)

firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>

查詢區(qū)域中的服務(wù)是否啟用

firewall-cmd --permanent [--zone=<zone>] --query-service=<service>

如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

例: 永久啟用 home 區(qū)域中的 ipp-client 服務(wù)

firewall-cmd --permanent --zone=home --add-service=ipp-client

永久啟用區(qū)域中的一個(gè)端口-協(xié)議組合

firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>

永久禁用區(qū)域中的一個(gè)端口-協(xié)議組合

firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

查詢區(qū)域中的端口-協(xié)議組合是否永久啟用

firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

例: 永久啟用 home 區(qū)域中的 https (tcp 443) 端口

firewall-cmd --permanent --zone=home --add-port=443/tcp

永久啟用區(qū)域中的偽裝

firewall-cmd --permanent [--zone=<zone>] --add-masquerade

此舉啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個(gè)公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。

永久禁用區(qū)域中的偽裝

firewall-cmd --permanent [--zone=<zone>] --remove-masquerade

查詢區(qū)域中的偽裝的永久狀態(tài)

firewall-cmd --permanent [--zone=<zone>] --query-masquerade

如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

永久啟用區(qū)域中的ICMP阻塞

firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>

此舉將啟用選中的 Internet 控制報(bào)文協(xié)議 (ICMP) 報(bào)文進(jìn)行阻塞。 ICMP 報(bào)文可以是請(qǐng)求信息或者創(chuàng)建的應(yīng)答報(bào)文或錯(cuò)誤應(yīng)答報(bào)文。

永久禁用區(qū)域中的ICMP阻塞

firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>

查詢區(qū)域中的ICMP永久狀態(tài)

firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>

如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

例: 阻塞公共區(qū)域中的響應(yīng)應(yīng)答報(bào)文:

firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

在區(qū)域中永久啟用端口轉(zhuǎn)發(fā)或映射

firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

端口可以映射到另一臺(tái)主機(jī)的同一端口,也可以是同一主機(jī)或另一主機(jī)的不同端口。端口號(hào)可以是一個(gè)單獨(dú)的端口 <port> 或者是端口范圍 <port>-<port> 。協(xié)議可以為 tcp 或udp 。目標(biāo)端口可以是端口號(hào) <port> 或者是端口范圍 <port>-<port> 。目標(biāo)地址可以是 IPv4 地址。受內(nèi)核限制,端口轉(zhuǎn)發(fā)功能僅可用于IPv4。

永久禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射狀態(tài)

firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

例: 將 home 區(qū)域的 ssh 服務(wù)轉(zhuǎn)發(fā)到 127.0.0.2

firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

直接選項(xiàng)

直接選項(xiàng)主要用于使服務(wù)和應(yīng)用程序能夠增加規(guī)則。 規(guī)則不會(huì)被保存,在重新加載或者重啟之后必須再次提交。傳遞的參數(shù) <args> 與 iptables, ip6tables 以及 ebtables 一致。

選項(xiàng)–direct需要是直接選項(xiàng)的第一個(gè)參數(shù)。

將命令傳遞給防火墻。參數(shù) <args> 可以是 iptables, ip6tables 以及 ebtables 命令行參數(shù)。

firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args>

為表 <table> 增加一個(gè)新鏈 <chain> 。

firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain>

從表 <table> 中刪除鏈 <chain> 。

firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain>

查詢 <chain> 鏈?zhǔn)欠翊嬖谂c表 <table>. 如果是,返回0,否則返回1.

firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain>

如果啟用,此命令將有返回值。此命令沒有輸出信息。

獲取用空格分隔的表 <table> 中鏈的列表。

firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table>

為表 <table> 增加一條參數(shù)為 <args> 的鏈 <chain> ,優(yōu)先級(jí)設(shè)定為 <priority>。

firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

從表 <table> 中刪除帶參數(shù) <args> 的鏈 <chain>。

firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

查詢帶參數(shù) <args> 的鏈 <chain> 是否存在表 <table> 中. 如果是,返回0,否則返回1.

firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

如果啟用,此命令將有返回值。此命令沒有輸出信息。

獲取表 <table> 中所有增加到鏈 <chain> 的規(guī)則,并用換行分隔。

firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain>

當(dāng)前的firewalld特性 

D-BUS接口

D-BUS 接口提供防火墻狀態(tài)的信息,使防火墻的啟用、停用或查詢?cè)O(shè)置成為可能。

區(qū)域

網(wǎng)絡(luò)或者防火墻區(qū)域定義了連接的可信程度。firewalld 提供了幾種預(yù)定義的區(qū)域。區(qū)域配置選項(xiàng)和通用配置信息可以在firewall.zone(5)的手冊(cè)里查到。

服務(wù)

服務(wù)可以是一系列本讀端口、目的以及附加信息,也可以是服務(wù)啟動(dòng)時(shí)自動(dòng)增加的防火墻助手模塊。預(yù)定義服務(wù)的使用使啟用和禁用對(duì)服務(wù)的訪問變得更加簡單。服務(wù)配置選項(xiàng)和通用文件信息在 firewalld.service(5) 手冊(cè)里有描述。

ICMP類型

Internet控制報(bào)文協(xié)議 (ICMP) 被用以交換報(bào)文和互聯(lián)網(wǎng)協(xié)議 (IP) 的錯(cuò)誤報(bào)文。在 firewalld 中可以使用 ICMP 類型來限制報(bào)文交換。 ICMP 類型配置選項(xiàng)和通用文件信息可以參閱 firewalld.icmptype(5) 手冊(cè)。

直接接口

直接接口主要用于服務(wù)或者應(yīng)用程序增加特定的防火墻規(guī)則。這些規(guī)則并非永久有效,并且在收到 firewalld 通過 D-Bus 傳遞的啟動(dòng)、重啟、重載信號(hào)后需要重新應(yīng)用。

運(yùn)行時(shí)配置

運(yùn)行時(shí)配置并非永久有效,在重新加載時(shí)可以被恢復(fù),而系統(tǒng)或者服務(wù)重啟、停止時(shí),這些選項(xiàng)將會(huì)丟失。

永久配置

永久配置存儲(chǔ)在配置文件種,每次機(jī)器重啟或者服務(wù)重啟、重新加載時(shí)將自動(dòng)恢復(fù)。

托盤小程序

托盤小程序 firewall-applet 為用戶顯示防火墻狀態(tài)和存在的問題。它也可以用來配置用戶允許修改的設(shè)置。

圖形化配置工具

firewall daemon 主要的配置工具是 firewall-config 。它支持防火墻的所有特性(除了由服務(wù)/應(yīng)用程序增加規(guī)則使用的直接接口)。 管理員也可以用它來改變系統(tǒng)或用戶策略。

命令行客戶端

firewall-cmd是命令行下提供大部分圖形工具配置特性的工具。

對(duì)于ebtables的支持

要滿足libvirt daemon的全部需求,在內(nèi)核 netfilter 級(jí)上防止 ip*tables 和 ebtables 間訪問問題,ebtables 支持是需要的。由于這些命令是訪問相同結(jié)構(gòu)的,因而不能同時(shí)使用。

/usr/lib/firewalld中的默認(rèn)/備用配置

該目錄包含了由 firewalld 提供的默認(rèn)以及備用的 ICMP 類型、服務(wù)、區(qū)域配置。由 firewalld 軟件包提供的這些文件不能被修改,即使修改也會(huì)隨著 firewalld 軟件包的更新被重置。 其他的 ICMP 類型、服務(wù)、區(qū)域配置可以通過軟件包或者創(chuàng)建文件的方式提供。

/etc/firewalld中的系統(tǒng)配置設(shè)置
存儲(chǔ)在此的系統(tǒng)或者用戶配置文件可以是系統(tǒng)管理員通過配置接口定制的,也可以是手動(dòng)定制的。這些文件將重載默認(rèn)配置文件。

為了手動(dòng)修改預(yù)定義的 icmp 類型,區(qū)域或者服務(wù),從默認(rèn)配置目錄將配置拷貝到相應(yīng)的系統(tǒng)配置目錄,然后根據(jù)需求進(jìn)行修改。

如果你加載了有默認(rèn)和備用配置的區(qū)域,在 /etc/firewalld下的對(duì)應(yīng)文件將被重命名為 <file>.old 然后啟用備用配置。

正在開發(fā)的特性 

富語言

富語言特性提供了一種不需要了解iptables語法的通過高級(jí)語言配置復(fù)雜 IPv4 和 IPv6 防火墻規(guī)則的機(jī)制。

Fedora 19 提供了帶有 D-Bus 和命令行支持的富語言特性第2個(gè)里程碑版本。第3個(gè)里程碑版本也將提供對(duì)于圖形界面 firewall-config 的支持。

對(duì)于此特性的更多信息,請(qǐng)參閱: firewalld Rich Language

鎖定

鎖定特性為 firewalld 增加了鎖定本地應(yīng)用或者服務(wù)配置的簡單配置方式。它是一種輕量級(jí)的應(yīng)用程序策略。

Fedora 19 提供了鎖定特性的第二個(gè)里程碑版本,帶有 D-Bus 和命令行支持。第3個(gè)里程碑版本也將提供圖形界面 firewall-config 下的支持。

更多信息請(qǐng)參閱: firewalld Lockdown

永久直接規(guī)則

這項(xiàng)特性處于早期狀態(tài)。它將能夠提供保存直接規(guī)則和直接鏈的功能。通過規(guī)則不屬于該特性。更多關(guān)于直接規(guī)則的信息請(qǐng)參閱Direct options。

從ip*tables和ebtables服務(wù)遷移
這項(xiàng)特性處于早期狀態(tài)。它將盡可能提供由iptables,ip6tables 和 ebtables 服務(wù)配置轉(zhuǎn)換為永久直接規(guī)則的腳本。此特性在由firewalld提供的直接鏈集成方面可能存在局限性。

此特性將需要大量復(fù)雜防火墻配置的遷移測試。

計(jì)劃和提議功能
防火墻抽象模型

在 ip*tables 和 ebtables 防火墻規(guī)則之上添加抽象層使添加規(guī)則更簡單和直觀。要抽象層功能強(qiáng)大,但同時(shí)又不能復(fù)雜,并不是一項(xiàng)簡單的任務(wù)。為此,不得不開發(fā)一種防火墻語言。使防火墻規(guī)則擁有固定的位置,可以查詢端口的訪問狀態(tài)、訪問策略等普通信息和一些其他可能的防火墻特性。

對(duì)于conntrack的支持

要終止禁用特性已確立的連接需要 conntrack 。不過,一些情況下終止連接可能是不好的,如:為建立有限時(shí)間內(nèi)的連續(xù)性外部連接而啟用的防火墻服務(wù)。

用戶交互模型

這是防火墻中用戶或者管理員可以啟用的一種特殊模式。應(yīng)用程序所有要更改防火墻的請(qǐng)求將定向給用戶知曉,以便確認(rèn)和否認(rèn)。為一個(gè)連接的授權(quán)設(shè)置一個(gè)時(shí)間限制并限制其所連主機(jī)、網(wǎng)絡(luò)或連接是可行的。配置可以保存以便將來不需通知便可應(yīng)用相同行為。 該模式的另一個(gè)特性是管理和應(yīng)用程序發(fā)起的請(qǐng)求具有相同功能的預(yù)選服務(wù)和端口的外部鏈接嘗試。服務(wù)和端口的限制也會(huì)限制發(fā)送給用戶的請(qǐng)求數(shù)量。

用戶策略支持

管理員可以規(guī)定哪些用戶可以使用用戶交互模式和限制防火墻可用特性。

端口元數(shù)據(jù)信息(由 Lennart Poettering 提議)

擁有一個(gè)端口獨(dú)立的元數(shù)據(jù)信息是很好的。當(dāng)前對(duì) /etc/services 的端口和協(xié)議靜態(tài)分配模型不是個(gè)好的解決方案,也沒有反映當(dāng)前使用情況。應(yīng)用程序或服務(wù)的端口是動(dòng)態(tài)的,因而端口本身并不能描述使用情況。

元數(shù)據(jù)信息可以用來為防火墻制定簡單的規(guī)則。下面是一些例子:

  • 允許外部訪問文件共享應(yīng)用程序或服務(wù)

  • 允許外部訪問音樂共享應(yīng)用程序或服務(wù)

  • 允許外部訪問全部共享應(yīng)用程序或服務(wù)

  • 允許外部訪問 torrent 文件共享應(yīng)用程序或服務(wù)

  • 允許外部訪問 http 網(wǎng)絡(luò)服務(wù)

這里的元數(shù)據(jù)信息不只有特定應(yīng)用程序,還可以是一組使用情況。例如:組“全部共享”或者組“文件共享”可以對(duì)應(yīng)于全部共享或文件共享程序(如:torrent 文件共享)。這些只是例子,因而,可能并沒有實(shí)際用處。

這里是在防火墻中獲取元數(shù)據(jù)信息的兩種可能途徑:
第一種是添加到 netfilter (內(nèi)核空間)。好處是每個(gè)人都可以使用它,但也有一定使用限制。還要考慮用戶或系統(tǒng)空間的具體信息,所有這些都需要在內(nèi)核層面實(shí)現(xiàn)。
第二種是添加到 firewall daemon 中。這些抽象的規(guī)則可以和具體信息(如:網(wǎng)絡(luò)連接可信級(jí)、作為具體個(gè)人/主機(jī)要分享的用戶描述、管理員禁止完全共享的應(yīng)歸則等)一起使用。
第二種解決方案的好處是不需要為有新的元數(shù)據(jù)組和納入改變(可信級(jí)、用戶偏好或管理員規(guī)則等等)重新編譯內(nèi)核。這些抽象規(guī)則的添加使得 firewall daemon 更加自由。即使是新的安全級(jí)也不需要更新內(nèi)核即可輕松添加。

sysctld
現(xiàn)在仍有 sysctl 設(shè)置沒有正確應(yīng)用。一個(gè)例子是,在 rc.sysinit 正運(yùn)行時(shí),而提供設(shè)置的模塊在啟動(dòng)時(shí)沒有裝載或者重新裝載該模塊時(shí)會(huì)發(fā)生問題。

另一個(gè)例子是 net.ipv4.ip_forward ,防火墻設(shè)置、libvirt 和用戶/管理員更改都需要它。如果有兩個(gè)應(yīng)用程序或守護(hù)進(jìn)程只在需要時(shí)開啟 ip_forwarding ,之后可能其中一個(gè)在不知道的情況下關(guān)掉服務(wù),而另一個(gè)正需要它,此時(shí)就不得不重啟它。

sysctl daemon 可以通過對(duì)設(shè)置使用內(nèi)部計(jì)數(shù)來解決上面的問題。此時(shí),當(dāng)之前請(qǐng)求者不再需要時(shí),它就會(huì)再次回到之前的設(shè)置狀態(tài)或者是直接關(guān)閉它。

防火墻規(guī)則

netfilter 防火墻總是容易受到規(guī)則順序的影響,因?yàn)橐粭l規(guī)則在鏈中沒有固定的位置。在一條規(guī)則之前添加或者刪除規(guī)則都會(huì)改變此規(guī)則的位置。 在靜態(tài)防火墻模型中,改變防火墻就是重建一個(gè)干凈和完善的防火墻設(shè)置,且受限于 system-config-firewall / lokkit 直接支持的功能。也沒有整合其他應(yīng)用程序創(chuàng)建防火墻規(guī)則,且如果自定義規(guī)則文件功能沒在使用 s-c-fw / lokkit 就不知道它們。默認(rèn)鏈通常也沒有安全的方式添加或刪除規(guī)則而不影響其他規(guī)則。

動(dòng)態(tài)防火墻有附加的防火墻功能鏈。這些特殊的鏈按照已定義的順序進(jìn)行調(diào)用,因而向鏈中添加規(guī)則將不會(huì)干擾先前調(diào)用的拒絕和丟棄規(guī)則。從而利于創(chuàng)建更為合理完善的防火墻配置。

下面是一些由守護(hù)進(jìn)程創(chuàng)建的規(guī)則,過濾列表中啟用了在公共區(qū)域?qū)?ssh , mdns 和 ipp-client 的支持:

*filter
:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:FORWARD_ZONES - [0:0]:FORWARD_direct - [0:0]:INPUT_ZONES - [0:0]:INPUT_direct - [0:0]:IN_ZONE_public - [0:0]:IN_ZONE_public_allow - [0:0]:IN_ZONE_public_deny - [0:0]:OUTPUT_direct - [0:0]-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_ZONES
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -j OUTPUT_direct
-A IN_ZONE_public -j IN_ZONE_public_deny
-A IN_ZONE_public -j IN_ZONE_public_allow
-A IN_ZONE_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT

使用 deny/allow 模型來構(gòu)建一個(gè)清晰行為(最好沒有沖突規(guī)則)。例如: ICMP塊將進(jìn)入 IN_ZONE_public_deny 鏈(如果為公共區(qū)域設(shè)置了的話),并將在 IN_ZONE_public_allow 鏈之前處理。

該模型使得在不干擾其他塊的情況下向一個(gè)具體塊添加或刪除規(guī)則而變得更加容易。

感謝各位的閱讀,以上就是“l(fā)inux7防火墻的基本使用及詳解”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)linux7防火墻的基本使用及詳解這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI