最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux 中的 15 個(gè)強(qiáng)大的 firewall-cmd 命令,牛牛牛!

2021-11-25 23:24 作者:網(wǎng)絡(luò)技術(shù)聯(lián)盟站wljslmz  | 我要投稿

企業(yè)中,因?yàn)闃I(yè)務(wù)的重要性,通常會(huì)對(duì)網(wǎng)絡(luò)安全十分重視,那么一個(gè)好的防火墻系統(tǒng)就是強(qiáng)有力的利器!

本文,將帶大家了解 CentOS 7新的防火墻服務(wù)firewalld的基本原理,它有個(gè)非常強(qiáng)大的過(guò)濾系統(tǒng),稱(chēng)為 Netfilter,它內(nèi)置于內(nèi)核模塊中,用于檢查穿過(guò)系統(tǒng)的每個(gè)數(shù)據(jù)包。

這意味著它可以在到達(dá)目的地之前以編程方式檢查、修改、拒絕或丟棄任何網(wǎng)絡(luò)數(shù)據(jù)包,如傳入、傳出或轉(zhuǎn)發(fā),從 Centos-7 開(kāi)始,firewalld 成為管理基于主機(jī)的防火墻服務(wù)的默認(rèn)工具,firewalld 的守護(hù)進(jìn)程是從 firewalld 包安裝的,它將在操作系統(tǒng)的所有基本安裝上可用,但在最小安裝上不可用。

使用 FirewallD 優(yōu)于“iptables”的優(yōu)點(diǎn):

  • 在運(yùn)行時(shí)所做的任何配置更改都不需要重新加載或重新啟動(dòng) firewalld 服務(wù)

  • 通過(guò)將整個(gè)網(wǎng)絡(luò)流量安排到區(qū)域中來(lái)簡(jiǎn)化防火墻管理

  • 每個(gè)系統(tǒng)可以設(shè)置多個(gè)防火墻配置以更改網(wǎng)絡(luò)環(huán)境

  • 使用 D-Bus 消息系統(tǒng)來(lái)交互/維護(hù)防火墻設(shè)置

在 CentOS 7 或更高版本中,我們?nèi)匀豢梢允褂媒?jīng)典的 iptables,如果要使用 iptables,需要停止并禁用 firewalld 服務(wù)。同時(shí)使用firewalld 和 iptables會(huì)使系統(tǒng)混亂,因?yàn)樗鼈儽舜瞬患嫒荨?/p>

建議使用 firewalld 來(lái)管理防火墻服務(wù),除非我們有一些特定的理由繼續(xù)使用經(jīng)典的 iptables。

Firewalld 設(shè)計(jì)了強(qiáng)大的過(guò)濾系統(tǒng),并且在處理防火墻管理方面也更加靈活。為了利用這種設(shè)計(jì),firewalld 將傳入流量分類(lèi)到源地址定義的接口上的區(qū)域中。

每個(gè)區(qū)域都旨在根據(jù)指定的標(biāo)準(zhǔn)管理流量。如果沒(méi)有進(jìn)行任何修改,默認(rèn)區(qū)域?qū)⒃O(shè)置為 public,并且關(guān)聯(lián)的網(wǎng)絡(luò)接口將附加到 public。

所有預(yù)定義的區(qū)域規(guī)則都存儲(chǔ)在兩個(gè)位置:系統(tǒng)指定的區(qū)域規(guī)則在“/usr/lib/firewalld/zones/”下,用戶指定的區(qū)域規(guī)則在/etc/firewalld/zones/ 下。如果在系統(tǒng)區(qū)域配置文件中進(jìn)行了任何修改,它將自動(dòng)復(fù)制到 /etc/firewalld/zones/。

本文將詳細(xì)介紹firewalld 服務(wù)基礎(chǔ)知識(shí),了解如何在 RHEL/CentOS 7 中使用 firewall-cmd 命令。

本文目錄如下:

  • 安裝并啟用firewallD服務(wù)

  • 區(qū)域

    • 1.如何查看firewalld中的所有可用區(qū)域?

    • 2. 如何找出哪個(gè)是默認(rèn)區(qū)域?

    • 3. 如何查找活動(dòng)區(qū)域和相關(guān)網(wǎng)絡(luò)接口的列表?

    • 4. 如何查看活動(dòng)公共區(qū)域是否有任何規(guī)則列出?

    • 5. 如何查看所有可用區(qū)域的列表?

    • 6. 如何將默認(rèn)區(qū)域更改為特定區(qū)域?

    • 7. 如何將網(wǎng)絡(luò)接口從一個(gè)區(qū)域更改為另一個(gè)區(qū)域?

    • 8. 如何建立自定義的firewalld zone?

  • 服務(wù)

    • 1.如何列出firewalld中所有可用的服務(wù)?

    • 2. ?如何列出特定區(qū)域內(nèi)的所有可用服務(wù)?

    • 3. 如何將現(xiàn)有服務(wù)添加到默認(rèn)區(qū)域?

  • firewalld兩種模式

    • 1. 如何永久添加服務(wù)?

    • 2. 如何將我的運(yùn)行時(shí)設(shè)置遷移到永久設(shè)置?

  • 端口

    • 1. 如何在公共區(qū)域?yàn)閟amba服務(wù)開(kāi)放端口?

  • 超時(shí)


前置條件:

  • 操作系統(tǒng):CentOS 7 或更高版本

  • 軟件包:firewalld

  • 用戶帳戶:root 用戶或具有 sudo 權(quán)限的用戶帳戶

  • 建議使用 sudo 權(quán)限而不是 root 來(lái)運(yùn)行所有管理命令

有三種方式配置防火墻:

  • 在“/etc/firewalld”配置文件中直接編輯

  • 圖形界面“firewall-config”工具

  • 終端中的命令行“firewall-cmd”

注意:本文我們將只關(guān)注“firewall-cmd”命令。

安裝并啟用firewallD服務(wù)

首先,更新包的最新當(dāng)前版本。

sudo?yum?update?-y

Firewalld在 CentOS 7 的所有基本安裝上可用,但在最小安裝上不可用,在這種情況下,我們可以使用以下命令進(jìn)行安裝:

$?sudo?yum?install?firewalld?-y

使用以下命令啟動(dòng)和啟用服務(wù)

$?sudo?systemctl?start?firewalld.service

$?sudo?systemctl?啟用?firewalld.service

使用以下命令驗(yàn)證防火墻服務(wù)的狀態(tài):

$?sudo?firewall-cmd?--state
Output:

running
$?sudo?systemctl?status?firewalld

詳細(xì)輸出:

firewalld.service?-?firewalld?-?dynamic?firewall?daemon
Loaded:?loaded?(/usr/lib/systemd/system/firewalld.service;?enabled)
Active:?active?(running)?since?Sat?2020-04-18?22:39:56?IST;?2h?52min?ago
Main?PID:?759?(firewalld)
CGroup:?/system.slice/firewalld.service
└─759?/usr/bin/python?-Es?/usr/sbin/firewalld?--nofork?--nopid

Apr?18?22:39:56?localhost.localdomain?systemd[1]:?Started?firewalld?-?dynamic...

提示:有些行被省略,使用 -l 顯示完整。

區(qū)域

Firewalld 為不同的目的引入了幾個(gè)預(yù)定義的區(qū)域和服務(wù),主要目的之一是更輕松地處理 firewalld 管理。

基于這些區(qū)域和服務(wù),我們可以阻止任何形式的系統(tǒng)傳入流量,除非它明確允許在區(qū)域中使用一些特殊規(guī)則。

1.如何查看firewalld中的所有可用區(qū)域?

$?sudo?firewall-cmd?--get-zones

這是 firewalld 中的默認(rèn)預(yù)定義區(qū)域

2. 如何找出哪個(gè)是默認(rèn)區(qū)域?

$?firewall-cmd?--get-default-zone
Output:

public

根據(jù)上面的輸出,可以看到公共區(qū)域被標(biāo)記為默認(rèn)區(qū)域,我們可以根據(jù)我們的要求更改它,我們將在接下來(lái)的例子中進(jìn)一步討論。

3. 如何查找活動(dòng)區(qū)域和相關(guān)網(wǎng)絡(luò)接口的列表?

$?firewall-cmd?--get-active-zones
Output:

public
interfaces:?enp1s0

在上面的輸出中,您可以看到公共區(qū)域處于活動(dòng)狀態(tài)并與“enp1s0”網(wǎng)絡(luò)接口相關(guān)聯(lián),如果沒(méi)有任何接口未指定給特定區(qū)域,它將自動(dòng)附加到默認(rèn)區(qū)域。

4. 如何查看活動(dòng)公共區(qū)域是否有任何規(guī)則列出?

$?sudo?firewall-cmd?--list-all?--zone="public"

上面的輸出顯示公共區(qū)域處于活動(dòng)狀態(tài)并設(shè)置為默認(rèn)值,網(wǎng)絡(luò)接口“enp1so”與活動(dòng)區(qū)域相關(guān)聯(lián),在此區(qū)域中,dhcpv6-client 和 ssh 被允許通過(guò)防火墻服務(wù)。

5. 如何查看所有可用區(qū)域的列表?

$?sudo?firewall-cmd?--list-all-zones

與前面的例子類(lèi)似,這里也會(huì)分別列出每個(gè)可用區(qū)域的詳細(xì)配置頁(yè)面,請(qǐng)自行檢查,因?yàn)檩敵隽斜頃?huì)很長(zhǎng)。

6. 如何將默認(rèn)區(qū)域更改為特定區(qū)域?

在更改到新區(qū)域之前,讓我們檢查現(xiàn)有的可用區(qū)域。

$?sudo?firewall-cmd?--get-default-zone
Output:

public

在輸出中,可以看到公共區(qū)域設(shè)置為默認(rèn)區(qū)域,現(xiàn)在讓我們嘗試將區(qū)域從公共更改為工作。

$?sudo?firewall-cmd?--set-default-zone=work
Output:

success

如您所見(jiàn),上述命令的輸出是成功的,讓我們驗(yàn)證一下。

$?sudo?firewall-cmd?--get-default-zone
Output:

work??????<==

7. 如何將網(wǎng)絡(luò)接口從一個(gè)區(qū)域更改為另一個(gè)區(qū)域?

如果系統(tǒng)有兩個(gè)網(wǎng)絡(luò)接口,比如“enp1s0 和 enp1s1”,默認(rèn)情況下,所有接口都將被分配到默認(rèn)區(qū)域,通過(guò)使用以下命令可以將接口更改為另一個(gè)區(qū)域。

$?sudo?firewall-cmd?--zone=internal?--change-interface=enp1s1

可以使用以下命令進(jìn)行驗(yàn)證:

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

8. 如何建立自定義的firewalld zone?

我們知道,所有系統(tǒng)指定的配置文件都位于“/usr/lib/firewalld/zones”,用戶指定的文件位于“/etc/firewalld/zones”。

使用以下命令創(chuàng)建自定義區(qū)域文件允許使用端口號(hào) 80 和 22 的 ssh 和 apache 服務(wù)。

確保新文件應(yīng)以 .xml 格式保存在用戶定義的位置,目前,名稱(chēng)區(qū)域文件的長(zhǎng)度僅限于 17 個(gè)字符。

$?sudo?vi?/etc/firewalld/zones/?linuxtecksecure?.xml
<?xml?version="1.0"?encoding="utf-8"?>
<zone>
<short>linuxtecksecure</short>
<description>用于企業(yè)領(lǐng)域。</description>
<service?name="apache"/>
<service?name="ssh"/>
<port?protocol="tcp"?port="80"/>
<port?protocol="tcp"?port="22"/>
</zone>

保存并退出。

重新加載防火墻服務(wù):

$?sudo?firewall-cmd?--reload
Output:


success

現(xiàn)在,重新檢查 firewalld 中的可用區(qū)域

$?sudo?firewall-cmd?--get-zones
Output:

block?dmz?drop?external?home?internal?"linuxtecksecure"?public?trusted?work

使用上面的命令,我們可以創(chuàng)建一個(gè)新的 (linuxtecksecure) zone 來(lái)默認(rèn)僅啟用 apache 和 ssh 服務(wù),創(chuàng)建文件后,我們需要“重新加載”firewalld 服務(wù),以便將區(qū)域激活到firewalld

請(qǐng)記住:在對(duì)現(xiàn)有區(qū)域文件進(jìn)行任何更改/更新后,請(qǐng)務(wù)必重新加載您的firewalld 服務(wù)激活,否則防火墻中的更改不會(huì)受到影響。

服務(wù)

firewalld 有另一個(gè)名為“服務(wù)”的組件,這些服務(wù)可以在區(qū)域文件中用于管理防火墻設(shè)置中的流量規(guī)則,每個(gè)預(yù)定義的“服務(wù)”在區(qū)域文件的默認(rèn)配置中使用.

dhcpv6-client

管理DHCP v6客戶端的本地流量,使用udp端口546。

ssh

管理ssh服務(wù)器服務(wù)的本地通信量,并使用tcp端口22。

Samba-client

管理Windows FLES/打印機(jī)共享服務(wù)的本地通信量,并使用137(UDP)和138(UDP)端口

lpp-client

管理用于打印服務(wù)器服務(wù)的本地通信量,并使用udp端口631。

mdns

管理多播本地鏈路服務(wù),并使用udp端口5353。

1.如何列出firewalld中所有可用的服務(wù)?

$?sudo?firewall-cmd?--get-services
RH-Satellite-6?amanda-client?amanda-k5-client?amqp?amqps?apcupsd?audit?bacula?bacula-client?bgp?bitcoin?bitcoin-rpc?bitcoin-testnet?bitcoin-testnet-rpc?
ceph?ceph-mon?cfengine?condor-collector?ctdb?dhcp?dhcpv6?dhcpv6-client?distcc?dns?docker-registry?docker-swarm?dropbox-lansync?elasticsearch?
etcd-client?etcd-server?finger?freeipa-ldap?freeipa-ldaps?freeipa-replication?freeipa-trust?ftp?ganglia-client?ganglia-master?git?gre?
high-availability?http?https?imap?imaps?ipp?ipp-client?ipsec?irc?ircs?iscsi-target?isns?jenkins?kadmin?kerberos?kibana?klogin?kpasswd?kprop?
kshell?ldap?ldaps?libvirt?libvirt-tls?lightning-network?llmnr?managesieve?matrix?mdns?minidlna?mongodb?mosh?mountd?mqtt?mqtt-tls?ms-wbt?mssql?
murmur?mysql?nfs?nfs3?nmea-0183?nrpe?ntp?nut?openvpn?ovirt-imageio?ovirt-storageconsole?ovirt-vmconsole?plex?pmcd?pmproxy?pmwebapi?pmwebapis?
pop3?pop3s?postgresql?privoxy?proxy-dhcp?ptp?pulseaudio?puppetmaster?quassel?radius?redis?rpc-bind?rsh?rsyncd?rtsp?salt-master?samba?samba-client?
samba-dc?sane?sip?sips?slp?smtp?smtp-submission?smtps?snmp?snmptrap?spideroak-lansync?squid?ssh?steam-streaming?svdrp?svn?syncthing?syncthing-gui?
synergy?syslog?syslog-tls?telnet?tftp?tftp-client?tinc?tor-socks?transmission-client?upnp-client?vdsm?vnc-server?wbem-http?wbem-https?wsman?wsmans?
xdmcp?xmpp-bosh?xmpp-client?xmpp-local?xmpp-server?zabbix-agent?zabbix-server

2. ?如何列出特定區(qū)域內(nèi)的所有可用服務(wù)?

$?sudo?firewall-cmd?--zone=work?--list-services
Output:

dhcpv6-client?ssh

輸出顯示在“工作”區(qū)域中僅啟用了兩個(gè)服務(wù)。

3. 如何將現(xiàn)有服務(wù)添加到默認(rèn)區(qū)域?

$?sudo?firewall-cmd?--add-service=samba
Output:

success

在此示例中,我已將名為 samba 的現(xiàn)有服務(wù)添加到默認(rèn)區(qū)域,您可以使用以下命令進(jìn)行驗(yàn)證:

$?sudo?firewall-cmd?--zone=public?--list-services
Output:

dhcpv6-client?samba?ssh

同樣,我們可以將服務(wù)添加到默認(rèn)區(qū)域以外的其他區(qū)域。使用以下命令:

$?sudo?firewall-cmd?--zone=internal?--add-service=ftp

firewalld兩種模式

默認(rèn)情況下,firewalld 支持兩種獨(dú)立的模式,永久和運(yùn)行時(shí)(立即)。

當(dāng)我們啟動(dòng)防火墻時(shí),它會(huì)將所有永久配置文件加載到運(yùn)行時(shí)中。

您進(jìn)行添加或更新的任何機(jī)會(huì)都將應(yīng)用于運(yùn)行時(shí)配置,并且不會(huì)自動(dòng)啟用到永久配置。

為了使其成為永久規(guī)則,我們需要使用“--permanent”參數(shù),為了在 firewalld 中啟用這些更改,我們需要重新加載或重新啟動(dòng)防火墻服務(wù)。

1. 如何永久添加服務(wù)?

$?sudo?firewall-cmd?--permanent?--add-service=ftp
Output:

success
$?sudo?firewall-cmd?--reload
Output:

success

請(qǐng)記住,無(wú)論何時(shí)使用“--permanent”標(biāo)志,都不要忘記重新加載防火墻服務(wù)。

2. 如何將我的運(yùn)行時(shí)設(shè)置遷移到永久設(shè)置?

$?sudo?firewall-cmd?--runtime-to-permanent
Output:

success

通常,我們?cè)谶\(yùn)行時(shí)環(huán)境中測(cè)試所有規(guī)則,一旦規(guī)則成功運(yùn)行,然后我們使用“--permanent”選項(xiàng)使它們永久化,使用上述命令一次性將所有運(yùn)行時(shí)設(shè)置遷移到永久模式,如果防火墻設(shè)置無(wú)效,則只需重新加載/重新啟動(dòng)防火墻服務(wù)即可使這些規(guī)則在永久配置中工作。

端口

firewalld 允許我們直接處理網(wǎng)絡(luò)端口,美妙之處在于,甚至無(wú)需在系統(tǒng)中安裝特定服務(wù),我們就可以在防火墻中打開(kāi)和關(guān)閉相關(guān)端口。

1. 如何在公共區(qū)域?yàn)閟amba服務(wù)開(kāi)放端口?

$?sudo?firewall-cmd?--zone=public?--add-port=137/udp

$?sudo?firewall-cmd?--zone=public?--add-port=138/udp

$?sudo?firewall-cmd?--zone=public?--add-port=139/tcp

$?sudo?firewall-cmd?--zone=public?--add-port=445/tcp
Output:

success

使用上面的命令,我們已經(jīng)成功打開(kāi)了samba服務(wù)的端口

驗(yàn)證一下:

$?sudo?firewall-cmd?--list-ports
Output:

137/udp?138/udp?139/tcp?445/tcp

成功測(cè)試后,如果您希望將這些規(guī)則作為防火墻的永久規(guī)則繼續(xù)使用,則將“--permanent”標(biāo)志與上述命令一起使用或使用運(yùn)行時(shí)作為永久命令,不要忘記重新加載服務(wù)。

超時(shí)

Firewalld 還有一個(gè)有趣的功能叫做超時(shí)。此功能將幫助許多系統(tǒng)管理員在其運(yùn)行時(shí)設(shè)置中添加臨時(shí)規(guī)則,例如,如果用戶想通過(guò) FTP 服務(wù)從服務(wù)器下載文件。

由于這只是一次性操作,因此不需要永久規(guī)則。

下載文件可能只需要 2-5 分鐘(可能會(huì)因文件大小而異)。

在我們的例子中,我們可以允許 FTP 服務(wù) 5 分鐘,它會(huì)在給定的時(shí)間后自動(dòng)斷開(kāi)連接。

$?sudo?firewall-cmd?--zone=public?--add-service=ftp?--timeout=5m

我們可以以秒 (s)、分鐘 (m) 或小時(shí) (h) 為單位指定超時(shí)。

感謝您抽出寶貴時(shí)間閱讀!我希望這篇文章可以幫助您通過(guò)示例了解“firewall-cmd”命令的基本用法,如果你喜歡這篇文章,請(qǐng)分享給其他人。


Linux 中的 15 個(gè)強(qiáng)大的 firewall-cmd 命令,牛牛牛!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
仁怀市| 定南县| 临邑县| 铜鼓县| 靖远县| 闽侯县| 兴业县| 云林县| 昌吉市| 卢氏县| 江阴市| 凌源市| 郧西县| 汝州市| 原平市| 临猗县| 珲春市| 佛坪县| 岱山县| 犍为县| 屏边| 突泉县| 吉隆县| 定日县| 都匀市| 永城市| 杂多县| 伊宁县| 瑞金市| 游戏| 芦山县| 江永县| 阳春市| 丰台区| 宾川县| 双城市| 洱源县| 新乡县| 三门县| 云南省| 潞西市|