国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux中的防火墻————Firewalld

這篇具有很好參考價值的文章主要介紹了Linux中的防火墻————Firewalld。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

firewalld介紹和原理

firewalld是一個服務,這個服務提供了防火墻配置的工具

只要開啟了firewalld服務,那么就可以通過firewall服務提供的工具來配置防火墻

Linux本身不具備防火墻功能,而是通過內(nèi)核的net_filter模塊來實現(xiàn)軟防火墻功能,而且你必須通過iptables才能和net_filter進行交互

默認在rhel7和fedora20,centos7以上的版本默認安裝了firewalld服務,默認是開啟的

##  開啟防火墻
[root@client ~]# systemctl start firewalld

## 查看firewalld狀態(tài)
[root@client ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-03-20 15:47:15 CST; 1min 23s ago
       Docs: man:firewalld(1)
   Main PID: 4076 (firewalld)
      Tasks: 2 (limit: 10803)
     Memory: 25.7M
        CPU: 375ms
     CGroup: /system.slice/firewalld.service
             └─4076 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

Mar 20 15:47:14 client systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 15:47:15 client systemd[1]: Started firewalld - dynamic firewall daemon.

## 查看iptables規(guī)則

firewalld的服務提供了一個更加簡單的方式來配置防火墻,原理就是firewalld服務將你的防火墻配置命令轉(zhuǎn)換成iptables規(guī)則

firewalld提供了兩中管理工具,一種圖形化管理工具firewall-offline-cmd,另一種命令行管理工具firewall-cmd

firewall-cmd原理

firewalld提供了zone的概念,zone是區(qū)域的意思,firewalld將我們的系統(tǒng)劃分成了一個個zone。

znoe的邊界取決于網(wǎng)卡

firewalld提供了zone,一個網(wǎng)卡只能屬于一個zone,那zone的邊界就是屬于該zone的網(wǎng)卡。

firewalld的zone里面有網(wǎng)卡,有規(guī)則(rule)。如果一個網(wǎng)卡屬于firewalld的某個zone,那么這個zone里面的所有規(guī)則都會應用到該zone內(nèi)的網(wǎng)卡

  • 網(wǎng)卡,zone和規(guī)則

zone包含網(wǎng)卡和規(guī)則,網(wǎng)卡在zone里面就應用這個zone里面的規(guī)則

我們把firewalld學明白,就搞定這三個感念

zone的概念比較簡單,將網(wǎng)卡劃分入zone也很簡單,復雜的就只有規(guī)則(rule)。

firewalld的操作

zone

列出所有的zone

[root@server ~]# firewall-cmd --list-all-zones 
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
...

?只要不是特別復雜的網(wǎng)絡場景,一個zone可以解決我們所有的問題

列出"缺省的zone"的規(guī)則

[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

firewall-cmd添加規(guī)則正常來說必須指定zone,因為規(guī)則實在zone里面,那你肯定添加規(guī)則的時候要指定這個規(guī)則在哪個zone里面。

有些時候如果每一次添加規(guī)則都指定zone會顯得比較復雜,因為大多數(shù)情況下一個zone就能滿足我的需求,所以firewalld給我們提供一個缺省的zone,沒有指定zone的操作,都相當于操作缺省的zone。

列出指定zone的規(guī)則

## 列出home zone的規(guī)則
[root@server ~]# firewall-cmd --list-all --zone=home 
home
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

查看缺省的zone

[root@server ~]# firewall-cmd --get-default-zone 
public

可以看到缺省的zone的名字為public

  • 將缺省的zone更改為其他zone

## 將缺省的zone更改為home zone
[root@server ~]# firewall-cmd --set-default-zone=home 
success
[root@server ~]# firewall-cmd --get-default-zone 
home

可以看到現(xiàn)在缺省的zone變成了home zone

## 將默認的zone改回來
[root@server ~]# firewall-cmd --set-default-zone=public 
success
[root@server ~]# firewall-cmd --get-default-zone 
public

網(wǎng)卡(interface)

默認Linux的所有網(wǎng)卡都在默認的zone里面

注意:像我們講的這種防火墻,無論iptables還是firewalld,都只能應用于內(nèi)核管理的網(wǎng)卡,有些網(wǎng)卡如果不受內(nèi)核管理,那防火墻的規(guī)則也無法應用,應用管理防火墻的工具(DBDK)

列出當前zone中的網(wǎng)卡

[root@server ~]# firewall-cmd --list-interfaces --zone=public 
ens224 ens160

不加--zone=public,列出的是缺省的zone的網(wǎng)卡

移除一個zone中的網(wǎng)卡

[root@server ~]# firewall-cmd --remove-interface=ens160 
success
[root@server ~]# firewall-cmd --list-interfaces 
ens224

給一個zone添加網(wǎng)卡

[root@server ~]# firewall-cmd --add-interface=ens160 --zone=public 
success
[root@server ~]# firewall-cmd --list-interfaces 
ens160 ens224

規(guī)則(rule)

查看指定zone的規(guī)則

[root@server ~]# firewall-cmd --list-all --zone=home 
home
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@server ~]# firewall-cmd --list-all 
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

如果一個zone里面沒有網(wǎng)卡,那么這個zone就是非active狀態(tài) 一個zone里面必須要有網(wǎng)卡,這個zone才有實際意義

三種規(guī)則

第一種:service規(guī)則

第二種:port規(guī)則

第三種:rich rule(富規(guī)則)

service規(guī)則
查看指定zone的service規(guī)則
## 查看home和缺省的zone的service規(guī)則
[root@server ~]# firewall-cmd --list-services --zone=home 
cockpit dhcpv6-client mdns samba-client ssh    
[root@server ~]# firewall-cmd --list-services
cockpit dhcpv6-client ssh
添加service規(guī)則
## 給home和缺省的zone添加ftp規(guī)則
[root@server ~]# firewall-cmd --add-service=ftp
success
[root@server ~]# firewall-cmd --add-service=ftp --zone=home 
success
[root@server ~]# firewall-cmd --list-services --zone=public 
cockpit dhcpv6-client ftp ssh
[root@server ~]# firewall-cmd --list-services --zone=home 
cockpit dhcpv6-client ftp mdns samba-client ssh

可以看到,在兩個中有了ftp的規(guī)則

現(xiàn)在ftp的流量就可以過來,但不是所有的流量都能進來

刪除service規(guī)則
## 刪除剛才定義的ftp的規(guī)則
[root@server ~]# firewall-cmd --remove-service=ftp
success
[root@server ~]# firewall-cmd --remove-service=ftp --zone=home 
success
[root@server ~]# firewall-cmd --list-services --zone=home 
cockpit dhcpv6-client mdns samba-client ssh
[root@server ~]# firewall-cmd --list-services 
cockpit dhcpv6-client ssh
測試

可以搭建一個web服務器進行測試

1、在server搭建http服務

[root@server ~]# yum install -y httpd
[root@server ~]# echo firewalld-test >> /var/www/html/index.html
[root@server ~]# systemctl restart httpd

2、訪問

[root@server ~]# curl 192.168.200.128
firewalld-test
[root@client ~]# curl  192.168.200.128
curl: (7) Failed to connect to 192.168.200.128 port 80: No route to host

3、寫入規(guī)則

[root@server ~]# firewall-cmd --add-service=http
success

4、再次訪問

[root@client ~]# curl  192.168.200.128
firewalld-test

把規(guī)則寫入之后就可以對http進行訪問了

service的原理

/usr/lib/firewalld/services/目錄下有許多xml文件,這些文件就定義一些常用service的的端口號

## 查看https.xml
[root@client ~]# cat /usr/lib/firewalld/services/https.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Secure WWW (HTTPS)</short>
  <description>HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful.</description>
  <port protocol="tcp" port="443"/>
</service>

在添加service的規(guī)則的時候,實際上就是firewalld將443端口開放,讓外面的服務可以通過這個端口號進行訪問

這個service規(guī)則只是一個名字,至于service到底放行的是什么,就要看這個service代表的端口號是多少,這個service也可以自己來編寫

如果你要放行的端口并沒有在service規(guī)則的xml文件里面定義,那么你就不能用service規(guī)則滿足你的條件

如果是復雜的流量的話,你需要通過port規(guī)則放行流量,也可以自己編寫service規(guī)則

port規(guī)則
添加port規(guī)則
[root@server ~]# firewall-cmd --add-port=3333/tcp
success
[root@server ~]# firewall-cmd --add-port=5555/udp
success
查看port規(guī)則
[root@server ~]# firewall-cmd --list-ports --zone=public 
3333/tcp 5555/udp
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 3333/tcp 5555/udp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
刪除port規(guī)則
[root@server ~]# firewall-cmd --remove-port=3333/tcp
success
[root@server ~]# firewall-cmd --remove-port=5555/udp
success
[root@server ~]# firewall-cmd --list-ports --zone=public 

[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
rich rule

有點像iptables

添加rich rule
[root@server ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=8080 protocol=tcp reject"
success
使添加的規(guī)則永久生效

上面做的規(guī)則都是臨時的

方式一

如果讓上面做的臨時規(guī)則變成永久的,可以使用一下命令

[root@server ~]# firewall-cmd --runtime-to-permanent 
success

如果使用firewall-cmd --reload命令之后規(guī)則還會存在,就是永久的規(guī)則

firewall-cmd --reload:表示重新加載防火墻規(guī)則

[root@server ~]# firewall-cmd --reload 
success
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.200.0/24" port port="8080" protocol="tcp" reject

方式二

使用--permanent,在規(guī)則后面添加這一條命令,就可以直接創(chuàng)建永久規(guī)則

但是不會立即生效,在list中不會顯示,如果要立即生效,就需要使用--reload

[root@server ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=443 protocol=tcp accept" --permanent 
success
## 進行查看
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.200.0/24" port port="8080" protocol="tcp" reject
## 可以看到定義的規(guī)則并沒有立即生效

## 使用--reload
[root@server ~]# firewall-cmd --reload 
success
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.200.0/24" port port="8080" protocol="tcp" reject
        rule family="ipv4" source address="192.168.200.0/24" port port="443" protocol="tcp" accept

可以看到在使用--permanent之后并沒有立即生效,在執(zhí)行--reload之后,配置就會重新加載

建議

建議先寫一遍有--permanent,在寫一遍沒有--permanent

[root@server ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=443 protocol=tcp accept" --permanent 
[root@server ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=443 protocol=tcp accept" 

一條命令執(zhí)行兩邊

刪除rich rule
[root@server ~]# firewall-cmd --remove-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=443 protocol=tcp accept" --permanent 
success
[root@server ~]# firewall-cmd --remove-rich-rule="rule family=ipv4 source address=192.168.200.0/24 port port=443 protocol=tcp accept"

刪除和添加一樣,永久添加不會立即執(zhí)行,臨時添加重啟之后就會消失,所以還是建議使用這種方式進行刪除文章來源地址http://www.zghlxwxcb.cn/news/detail-846761.html

到了這里,關于Linux中的防火墻————Firewalld的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • linux-firewalld防火墻端口轉(zhuǎn)發(fā)

    linux-firewalld防火墻端口轉(zhuǎn)發(fā)

    目的:通過統(tǒng)一地址實現(xiàn)對外同一地址暴露 1.系統(tǒng)配置文件開啟 ipv4 端口轉(zhuǎn)發(fā) 2.查看防火墻配置端口轉(zhuǎn)發(fā)之前的狀態(tài) 3.開啟 IP 偽裝 4.添加端口轉(zhuǎn)發(fā) 5.重新加載防火墻并進行測試 附:刪除端口轉(zhuǎn)發(fā) 刪除 IP 偽裝

    2024年02月20日
    瀏覽(19)
  • Linux網(wǎng)絡——shell編程之firewalld防火墻

    firewalld防火墻是Centos7系統(tǒng)默認的防火墻管理工具,取代了之前的iptables防火墻,也是工作在網(wǎng)絡層,屬于包過濾防火墻。 firewalld和iptables都是用來管理防火墻的工具(屬于用戶態(tài))來定義防火墻的各種規(guī)則功能,內(nèi)部結(jié)構都指向netfilter網(wǎng)絡過過濾子系統(tǒng)(屬于內(nèi)核態(tài))來實現(xiàn)

    2024年02月07日
    瀏覽(24)
  • Linux 服務器 Firewalld 防火墻配置端口轉(zhuǎn)發(fā)

    Linux 服務器 Firewalld 防火墻配置端口轉(zhuǎn)發(fā)

    業(yè)務應用系統(tǒng)的web容器無法更改IP地址,例如臨時SSH端口,但是不想修改SSH配置;例如某些服務web服務需要通過公共IP進行統(tǒng)一訪問;例如外網(wǎng)訪問內(nèi)網(wǎng)資源等;例如快速調(diào)整web容器的端口而不需要更改服務的任何配置等。 流量轉(zhuǎn)發(fā)命令語法為: firewalld-cmd --permanent --zone=區(qū)域

    2024年02月06日
    瀏覽(34)
  • Linux:Ubuntu安裝firewalld防火墻管理工具【W(wǎng)SL用UFW防火墻管理工具】

    firewalld防火墻是Centos7系統(tǒng)默認的防火墻管理工具,取代了之前的iptables防火墻,也是工作在網(wǎng)絡層,屬于包過濾防火墻。 firewalld和iptables都是用來管理防火墻的工具(屬于用戶態(tài))來定義防火墻的各種規(guī)則功能,內(nèi)部結(jié)構都指向netfilter網(wǎng)絡過濾子系統(tǒng)(屬于內(nèi)核態(tài))來實現(xiàn)包過

    2024年02月06日
    瀏覽(35)
  • Linux防火墻firewalld不生效,無法攔截Docker映射端口

    Linux防火墻firewalld不生效,無法攔截Docker映射端口

    今天出現(xiàn)了一個奇怪的現(xiàn)象,centos服務器上的防火墻(firewall)沒有開放8103端口,但是依然可以訪問 服務器開放的端口如下: 可以看出并沒有開放8103端口 開放的服務如下: 也沒有開放某三維系統(tǒng),但可以正常訪問 重啟過防火墻,重啟過服務器,仍未解決此現(xiàn)象。真是腦闊疼

    2024年02月04日
    瀏覽(25)
  • Linux:firewalld防火墻-(實驗2)-IP偽裝與端口轉(zhuǎn)發(fā)(4)

    Linux:firewalld防火墻-(實驗2)-IP偽裝與端口轉(zhuǎn)發(fā)(4)

    本章實驗環(huán)境要建立在上一章之上,ip等都是繼承上一章,完全在上一章之下的操作 Linux:firewalld防火墻-小環(huán)境實驗(3)-CSDN博客 https://blog.csdn.net/w14768855/article/details/133996151?spm=1001.2014.3001.5501 ????????????????????????????????????????????????????????

    2024年02月08日
    瀏覽(29)
  • Linux系統(tǒng)firewalld防火墻的應用實操(對外端口開放使用,對內(nèi)端口限制ip地址使用,不使用端口默認關閉)

    Linux系統(tǒng)firewalld防火墻的應用實操(對外端口開放使用,對內(nèi)端口限制ip地址使用,不使用端口默認關閉)

    本文直接進行Linux系統(tǒng)firewalld防火墻的應用實操 對外端口開放使用 對內(nèi)端口限制ip地址使用 不使用端口默認關閉 基礎知識請查閱:Linux系統(tǒng)firewalld防火墻的基本操作 進階知識請查閱:Linux系統(tǒng)firewalld防火墻的進階操作(日志保存 IP網(wǎng)段 ssh服務) 應用實操請查閱:Linux系統(tǒng)f

    2024年02月05日
    瀏覽(27)
  • SELinux、SELinux運行模式、破解Linux系統(tǒng)密碼、firewalld防火墻介紹、構建基本FTP服務、systemd管理服務、設置運行模式

    SELinux、SELinux運行模式、破解Linux系統(tǒng)密碼、firewalld防火墻介紹、構建基本FTP服務、systemd管理服務、設置運行模式

    作用:負責域名解析的服務器,將域名解析為IP地址 /etc/resolv.conf:指定DNS服務器地址配置文件 ip命令(Linux最基礎的命令) 1.查看IP地址 2.臨時添加IP地址 3.刪除臨時IP地址 ping 命令,測網(wǎng)絡連接 -c 指定ping包的個數(shù) ?常見的日志文件 /var/log/messages 記錄內(nèi)核消息、各種服務的公

    2024年01月18日
    瀏覽(47)
  • 8.FireWalld防火墻

    8.FireWalld防火墻

    firewalld防火墻是Centos7系統(tǒng)默認的防火墻管理工具,取代了之前的iptables防火墻,也 是工作在網(wǎng)絡層,屬于包過濾防火墻。 firewalld和iptables都是用來管理防火墻的工具(屬于用戶態(tài))來定義防火墻的各種規(guī)則功 能,內(nèi)部結(jié)構都指向netfilter網(wǎng)絡過濾子系統(tǒng)(屬于內(nèi)核態(tài))來實現(xiàn)包過濾

    2024年02月05日
    瀏覽(23)
  • Firewalld防火墻

    Firewalld防火墻

    ? firewalld防火墻是Centos7系統(tǒng)默認的防火墻管理工具,取代了之前的iptables防火墻,也是工作在網(wǎng)絡層,屬于包過濾防火墻 firewalld和iptables都是用來管理防火墻的工具(屬于用戶態(tài))來定義防火墻的各種規(guī)則功能,內(nèi)部結(jié)構都指向netfilter網(wǎng)絡過濾子系統(tǒng)(屬于內(nèi)核態(tài))來實現(xiàn)包

    2023年04月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包