Linux防火牆使用及配置

  • 文檔創建者:知识库
  • 編輯次數:5
  • 最近更新:Nikozhan 于 2025-06-09
  • 1. 概述

    工程部署到 Linux 系統中後,Linux 系統需要開放工程埠,工程地址才能被其他電腦存取。

    注:Windows 系統開放埠步驟請參見:Windows伺服器設定出入站規則

    2. Centos 7 firewall 

    2.1 firewalld 的基本使用

    啟動防火牆:systemctl start firewalld

    關閉防火牆:systemctl stop firewalld

    查看防火牆狀態:systemctl status firewalld 

    開機禁用:systemctl disable firewalld

    開機啟動:systemctl enable firewalld

    2.2 systemctl 的基本使用

    啟動一個服務:systemctl start firewalld.service
    關閉一個服務:systemctl stop firewalld.service
    重啟一個服務:systemctl restart firewalld.service
    顯示一個服務的狀態:systemctl status firewalld.service
    在開機時啟動一個服務:systemctl enable firewalld.service
    在開機時禁用一個服務:systemctl disable firewalld.service
    查看服務是否開機啟動:systemctl is-enabled firewalld.service
    查看已啟動的服務列表:systemctl list-unit-files|grep enabled
    查看啟動失敗的服務列表:systemctl --failed

    2.3 配置 firewalld-cmd

    查看版本:firewall-cmd --version

    查看幫助:firewall-cmd --help

    顯示狀態:firewall-cmd --state

    查看所有開啟的埠:firewall-cmd --zone=public --list-ports

    更新防火牆規則:firewall-cmd --reload

    查看區域資訊:firewall-cmd --get-active-zones

    查看指定API所屬區域:firewall-cmd --get-zone-of-interface=eth0

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

    取消拒絕狀態:firewall-cmd --panic-off

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

    2.4 開放埠步驟

    2.4.1 新增埠

    1)開啟防火牆

    使用systemctl status firewalld查看防火牆狀態,若未開啟,使用systemctl start firewalld開啟防火牆。

    如下圖所示:

    2)開放埠

    使用firewall-cmd --list-port查看防火牆開放的埠,如果沒有傳回,證明沒有開放埠。使用firewall-cmd --zone=public --add-port=8083/tcp --permanent開放埠,使用firewall-cmd --reload重新載入。如下圖所示:

    2.4.2 其他埠配置語句

    1)查看埠

    firewall-cmd --zone=public --query-port=8083/tcp

    2)刪除已開放埠

    firewall-cmd --zone=public --remove-port=8083/tcp --permanent
    firewall-cmd --reload

    3)調整預設策略(預設拒絕所有存取,改成允許所有存取)

    firewall-cmd --permanent --zone=public --set-target=ACCEPT
    firewall-cmd --reload

    4)對某個 IP 開放多個埠

    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.159.60.29" port 
    protocol="tcp" port="1:65535" accept"
    firewall-cmd --reload

    3. Centos 6 iptables

    3.1 iptables的基本使用

    啟動:service iptables start

    關閉:service iptables stop

    查看狀態:service iptables status

    開機禁用:chkconfig iptables off

    開機啟動:chkconfig iptables on

    3.2 開放指定埠語句

    1)允許本地迴環API(即運作本機存取本機):iptables -A INPUT -i lo -j ACCEPT

    注:-A和-I參數分別為新增到規則末尾和規則最前面。

    2)允許已建立的或相聯動的通行:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    3)允許所有本機向外的存取:iptables -P INPUT ACCEPTiptables -A OUTPUT -j ACCEPT

    4)允許存取22埠:

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT  
    注:-s後可以跟 IP 段或指定 IP 地址,如果有其他埠的話,規則也類似。

    5)允許ping:iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

    6)禁止其他未允許的規則存取:

    iptables -A INPUT -j REJECT 

    iptables -A FORWARD -j REJECT

    注:如果 22 埠未加入允許規則,SSH連結會直接斷開。

    3.3 遮蔽 IP

    1)遮蔽單個IP:iptables -I INPUT -s 123.45.6.7 -j DROP

    2)封整個段即從123.0.0.1到123.255.255.254:iptables -I INPUT -s 123.0.0.0/8 -j DROP

    3)封IP段即從123.45.0.1到123.45.255.254:iptables -I INPUT -s 124.45.0.0/16 -j DROP

    4)封IP段即從123.45.6.1到123.45.6.254:iptables -I INPUT -s 123.45.6.0/24 -j DROP

    3.4 iptables 規則

    查看已有規則:iptables -L -n

    N:只顯示IP地址和埠號,不將 IP 解析為域名

    將所有 iptables 以序號標記顯示,執行:iptables -L -n --line-numbers

    新增規則

    iptables -Aiptables -I

    1)iptables -A

    新增的規則是新增在最後面。如針對 INPUT 鏈增加一條規則,接收從 eth0 口進入且源地址為192.168.0.0/16網段發往本機的資料:

    iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT

    2)iptables -I 

    新增的規則預設新增至第一條。如果要指定插入規則的位置,則使用iptables -I時指定位置序號即可。

    刪除規則

    如果刪除指定規則,使用iptables -D命令。命令後可接序號或iptables -D接詳細定義。

    如果想把所有規則都清除掉,可使用iptables -F

    3.5 規則的儲存與恢復

    備份iptables rules

    使用 iptables-save 命令,如:iptables-save > /etc/sysconfig/iptables.save

    恢復iptables rules

    使用 iptables 命令,如:iptables-restore < /etc/sysconfig/iptables.save

    iptables 配置儲存

    做的配置修改,在裝置重啟後,配置將丟失。可使用service iptables save進行儲存。

    重啟 iptables 的服務使其生效:service iptables save   

    新增規則後儲存重啟生效:service iptables restart

    3.6 開放埠步驟

    3.6.1 方法一:透過命令行

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    service iptables save
    service iptables restart

    3.6.2 方法二:編輯配置檔案

    iptables的配置檔案為/etc/sysconfig/iptables

    編輯配置檔案:vi /etc/sysconfig/iptables

    1)配置檔案中新增:

    -A INPUT -p tcp --dport 80 -j ACCEPT

    2)執行service iptables restart,重啟生效。

    4. 注意事項

    雲伺服器需要額外設定安全組,開放相關埠。



    附件列表


    主題: 部署升級
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!