網絡安全 Day29-運維安全項目-iptables防火墻

iptables防火墻

  • 1. 防火墻概述
  • 2. 防火墻
    • 2.1 防火墻種類及使用說明
    • 2.2 必須熟悉的名詞
    • 2.3 iptables 執行過程※※※※※
    • 2.4 表與鏈※※※※※
      • 2.4.1 簡介
      • 2.4.2 每個表說明
        • 2.4.2.1 filter表 :star::star::star::star::star:
        • 2.4.2.2 nat表
    • 2.5 環境準備及命令
    • 2.6 案例01::star::star::star::star::star:禁止訪問22端口
    • 2.7 案例02: :star::star::star::star::star:屏蔽對應的ip
    • 2.8 案例03::star::star::star::star::star:禁ping
    • 2.9 案例04::star::star::star:禁止10.0.0.0/24內網訪問22端口
    • 2.10 案例05: :star: 指定多個端口屏蔽
    • 2.11 案例06::star::star::star::star::star: 防火墻規則的保存生效與備份恢復
    • 2.12 案例07::star::star: 收尾設置鏈的默認規則

1. 防火墻概述

  • 目標:
    • 封或開啟端口
    • 封或開啟ip

2. 防火墻

2.1 防火墻種類及使用說明

  • 硬件: 整個企業入口
    • 三層路由: H3C 華為 Cisco(思科)
    • 硬件防火墻: 深信服,綠盟,奇安信…
    • 棱鏡門 0day. 勒索病毒。 國內互聯網企業去IOE運動。
    • Juniper
  • 軟件: 開源軟件 網站內部 封ip 封ip
    • iptables 寫入到Linux內核中 以后服務docker 工作在 4層(大部分)
    • firewalld C7 底層也是iptables.
    • nftalbes C8
    • ufw (ubuntu firewall) Ubuntu
  • 云防火墻(公有云)
    • 阿里云:
      • 安全組 (封ip,封端口)
      • NAT網關(共享上網,端口映射…)
      • waf應用防火墻
  • waf防火墻(應用防火墻,處理7層的攻擊) SQL注入,等攻擊.
    • 書寫規則(描述攻擊過程,關鍵提示,關鍵操作.)

企業選型建議:

中小企業: 使用公有云,安全組,waf防火墻,態勢感知.

訪問量巨大: 使用硬件防火墻,waf防火墻,硬件服務器+云服務器

2.2 必須熟悉的名詞

  • 容器: 瓶子 罐子 存放東西
  • (table): 存放====的容器,防火墻最大概念
  • 鏈(chain): 存放==規則==的容器
  • 規則(policy): 準許或拒絕規則 ,未來書寫的防火墻條件就是各種防火墻規則

掌握表和鏈之間聯系即可。

在這里插入圖片描述

Netfilter表(tables)鏈(chains)規則(Policy)
一棟樓樓里的房子房子里的柜子柜子里衣服,擺放規則

2.3 iptables 執行過程※※※※※

工作流程小結:※※※※※

  1. 防火墻是層層過濾的,實際是按照配置規則的順序從上到下,從前到后進行過濾的。
  2. 如果**匹配成功規則,即明確表示是拒絕(DROP)還是接收(ACCEPT)**,數據包就不再向下匹配新的規則
  3. 如果規則中沒有明確表明是阻止還是通過的,也就是沒有匹配規則,向下進行匹配,直到**匹配默認規則**得到明確的阻止還是通過。
  4. 防火墻的**默認規則所有規則都匹配完才會匹配的**。

2.4 表與鏈※※※※※

2.4.1 簡介

  • 表(table)是對功能的分類,防火墻功能(filter表),共享上網,端口轉發(nat表)

  • 鏈對數據流進行處理,需要使用不同的鏈(數據流入(INPUT),數據流出(OUTPUT))

  • iptables 是4表5鏈

  • 4表: filter 表 nat表 raw表 mangle表

  • 伍鏈: INPUT OUTPUT FORWARD PREROUTING POSTROUTING

2.4.2 每個表說明

2.4.2.1 filter表 ??????????

  • 是iptables默認的表,filter表示過濾.
  • 實現防火墻功能:(對數據包的filter過濾)屏蔽或準許,端口,ip.
filter 強調:主要和主機自身相關,真正負責主機防火墻功能的(過濾流入流出主機的數據包) filter表示iptables默認使用的表,這個表定義了三個鏈(chains) 企業工作場景:主機防火墻
INPUT ??????????負責過濾所有目標地址是本機地址的數據包 通俗來說:就是過濾進入主機的數據包 (能否讓數據包進入服務器)
FORWARD路過: 負責轉發流經主機的數據包。起轉發的作用,和NAT關系很大,后面會詳細介紹 LVS NAT模式,net.ipv4.ip_forward=0
OUTPUT處理所有源地址是本機地址的數據包 通俗的講:就是處理從主機發出去的數據包

2.4.2.2 nat表

  • 實現nat功能
    • 實現共享上網(內網服務器上外網)
    • 端口映射和ip映射
nat負責網絡地址轉換的,即來源與目的IP地址和port的轉換。
應用:和主機本身無關,一般用于局域網共享上網或者特殊的端口轉換服務相關。
工作場景:
1. 用于企業路由(zebra)或網關(iptables),共享上網POSTROUTING
2. 做內部外部IP地址一對一映射(dmz),硬件防火墻映射IP到內部服務器,ftp服務(PREROUTING
3. WEB,單個端口的映射,直接映射80端口(PREROUTING) 這個表定義了3個鏈,nat功能相當于網絡的acl控制。和網絡交換機acl類似。
OUTPUT和主機放出去的數據包有關,改變主機發出數據包的目的地址。
PREROUTING在數據包到達防火墻時,進行路由判斷之前執行的規則,作用是改變數據包的目的地址、目的端口等
就是收信時,根據規則重寫收件人的地址。
例如:把公網IP:xxx.xxx.xxx.xxx映射到局域網的xx.xx.xx.xx服務器上。
如果是web服務,可以報80轉換為局域網的服務器9000端口上
10.0.0.61 8080(目標端口) ----nat—à 10.0.0.7 22
POSTROUTING在數據包離開防火墻時進行路由判斷之后執行的規則,作用改變數據包的源地址,源端口等。
寫好發件人的地址,要讓家人回信時能夠有地址可回。
例如。默認筆記本和虛擬機都是局域網地址,在出網的時候被路由器將源地址改為了公網地址。
生產應用:局域網共享上網

課外了解: 官方最全超級詳解傳送門

2.5 環境準備及命令

iptables iptables啟動或關閉的命令

oldboy-bao 10.0.0.61 172.16.1.61

  1. 為了使用systemctl管理安裝的軟件:yum install -y iptables-services

  2. 檢查結果

    [root@oldboy-bao ~] rpm -qa |grep iptables 
    iptables-services-1.4.21-35.el7.x86_64   #我們安裝的。
    iptables-1.4.21-35.el7.x86_64            #系統自帶
    
  3. 啟動iptables 內核模塊

    手動加載iptables內核模塊(直接復制到虛擬機上就好了)modprobe ip_tables
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_state	
    
  4. 讓配置永久生效

    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.local<<EOF
    modprobe ip_tables
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_state	
    EOF
    
  5. 檢查是否加載防火墻iptables 模塊

    [root@oldboy-bao ~] lsmod |egrep 'filter|nat|ipt'
    nf_nat_ftp             12809  0 
    nf_conntrack_ftp       18478  1 nf_nat_ftp
    iptable_nat            12875  0 
    nf_nat_ipv4            14115  1 iptable_nat
    nf_nat                 26583  2 nf_nat_ftp,nf_nat_ipv4
    nf_conntrack          139264  6 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
    iptable_filter         12810  0 
    ip_tables              27126  2 iptable_filter,iptable_nat
    libcrc32c              12644  3 xfs,nf_nat,nf_conntrack
    [root@oldboy-bao ~] lsmod |egrep 'filter|nat|ipt' |wc -l
    9
    
  6. 關閉已有的firewalld防火墻:systemctl stop firewalld +systemctl disable firewalld

  7. 清空iptables自帶規則

    1. 查看規則:iptables -t filter -nL
    2. 清空規則
      iptables -t filter -F   #flush清空規則
      iptables -X             #刪除定義的鏈。
      iptables -Z             #清空計數器。
      

2.6 案例01:??????????禁止訪問22端口

  • 在filter表的INPUT連上新加1條拒絕規則,拒絕所有目標端口是22的請求。

    iptables -t filter -I INPUT -p tcp --dport 22  -j  DROP
    iptables -t filter -nL --line-number #顯示規則并添加序號
    iptables -t filter -D INPUT 1 #刪除filter表INPUT鏈的第1個規則
    

2.7 案例02: ??????????屏蔽對應的ip

  • DOS拒絕式服務攻擊。特點就是某幾個ip不斷訪問。
  • 在filter表的INPUT鏈上添加拒絕規則,拒絕源ip是10.0.0.1的訪問。
屏蔽來自于10.0.0.1的訪問
iptables -I INPUT -s  10.0.0.1  -j DROP
iptables -t filter -nL --line-number #顯示規則并添加序號
iptables -t filter -D INPUT 1 #刪除filter表INPUT鏈的第1個規則

2.8 案例03:??????????禁ping

  • 我們需要禁止任何人ping ip,讓用戶無法ping通。
  • ping背后是使用icmp協議(數據包)。
  • 實現方法:
    • 🅰? ? 通過Iptables實現。

    • 🅱?通過Linux內核參數實現。

      iptables -I INPUT    -p icmp    -j DROP
      開啟另一個機器ping。
      

2.9 案例04:??????禁止10.0.0.0/24內網訪問22端口

  • 實現22端口只能通過堡壘機訪問或只能通過內網訪問。
  • 未來可以改為只通過內網訪問,準許172.16.1.0/24訪問22端口。
  • 翻譯:添加filter表INPUT鏈接拒絕規則,禁止源ip是10.0.0.0/24網段訪問目標端口是22,協議tcp.
  • 環境準備
    • 雙網卡 eth0 10, eth1 172(lan區段)
環境準備需求細節
oldboy-bao雙網卡eth0 10(外網) eth1 172(內網)
oldboy-docker雙網卡eth0 10(外網) eth1 172(內網)
  • 添加網卡設置lan區段:添加到和堡壘機相同的區段

  • 書寫網卡配置文件

    oldboy-docker[root@oldboy-docker ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    NAME=eth1
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=172.16.1.62
    PREFIX=24
    [root@oldboy-docker ~] systemctl restart network 
    
  • 配置規則之前測試

    ssh -p22 10.0.0.61  #ctrl + d 退出
    ssh -p22 172.16.1.61
    都可以鏈接與訪問。
    
  • 進行配置

    翻譯:添加filter表INPUT鏈接拒絕規則,禁止源ip是10.0.0.0/24網段訪問目標端口是22,協議tcp.
    iptables -I INPUT -s 10.0.0.0/24  -p tcp   --dport 22  -j DROP 
    
  • 配置規則之后測試

    ssh -p22 10.0.0.61    訪問失敗
    ssh -p22 172.16.1.61  訪問成功
    都可以鏈接與訪問。
    

經過漫長等待,10網段訪問失敗。

2.10 案例05: ?? 指定多個端口屏蔽

  • 禁止80,443訪問。
    --dport默認只能指定1個端口或指定端口范文 通過:(冒號)實現。
    iptables -I INPUT  -p tcp   --dport 1:1024   -j DROP使用multiport模塊,就可以指定多個端口
    iptables -I INPUT  -p tcp  -m multiport --dport 80,443 -j DROP
    

2.11 案例06:?????????? 防火墻規則的保存生效與備份恢復

  1. 配置的防火墻規則重啟Linux或iptables服務后是否仍然生效
    iptables -I INPUT -s  10.0.0.1  -j ACCEPT 
    iptables -I INPUT    -p icmp    -j DROP
    iptables -I INPUT -s 10.0.0.0/24  -p tcp   --dport 22  -j ACCEPT
    iptables -I INPUT  -p tcp  -m multiport --dport 80,443 -j ACCEPT
    
  2. 通過iptables-save輸出/etc/sysconfig/iptables文件
    備份原有的
    cp /etc/sysconfig/iptables{,.bak}
    iptables-save >/etc/sysconfig/iptables
    
  3. 恢復默認配置: 讀取/etc/sysconfig/iptables文件并加載防火墻配置
    systemctl restart iptables
    

2.12 案例07:???? 收尾設置鏈的默認規則

???? 修改默認規則之前,要測試之前的準許的規則。

iptables -t filter -P INPUT DROP
修改之后一點點添加放行規則
iptables -I INPUT -s  10.0.0.1  -j ACCEPT 
iptables -I INPUT    -p icmp    -j DROP
iptables -I INPUT -s 10.0.0.0/24  -p tcp   --dport 22  -j ACCEPT
iptables -I INPUT  -p tcp  -m multiport --dport 80,443 -j ACCEPT# -i 數據進入的時候
iptables -A INPUT -i lo -j ACCEPT
# -o 數據流出的時候
iptables -A OUTPUT -o lo -j ACCEPT#匹配連接狀態
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #放行tcp連接狀態
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@oldboy-bao ~] iptables-save  
# Generated by iptables-save v1.4.21 on Thu Aug 10 12:00:05 2023
*nat
:PREROUTING ACCEPT [2:458]
:INPUT ACCEPT [2:458]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Thu Aug 10 12:00:05 2023
# Generated by iptables-save v1.4.21 on Thu Aug 10 12:00:05 2023
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -s 10.0.0.1/32 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Aug 10 12:00:05 2023

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40752.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

神經網絡基礎-神經網絡補充概念-31-參數與超參數

概念 參數&#xff08;Parameters&#xff09;&#xff1a; 參數是模型內部學習的變量&#xff0c;它們通過訓練過程自動調整以最小化損失函數。在神經網絡中&#xff0c;參數通常是連接權重&#xff08;weights&#xff09;和偏置&#xff08;biases&#xff09;&#xff0c;…

ChatGLM2-6B安裝部署(詳盡版)

1、環境部署 安裝Anaconda3 安裝GIT 安裝GUDA 11.8 安裝NVIDIA 圖形化驅動 522.25版本&#xff0c;如果電腦本身是更高版本則不用更新 1.1、檢查CUDA 運行cmd或者Anaconda&#xff0c;運行以下命令 nvidia-smi CUDA Version是版本信息&#xff0c;Dricer Version是圖形化…

LeetCode 160.相交鏈表

文章目錄 &#x1f4a1;題目分析&#x1f4a1;解題思路&#x1f6a9;步驟一&#xff1a;找尾節點&#x1f6a9;步驟二&#xff1a;判斷尾節點是否相等&#x1f6a9;步驟三&#xff1a;找交點&#x1f344;思路1&#x1f344;思路2 &#x1f514;接口源碼 題目鏈接&#x1f449;…

Ubuntu下mysql安裝及遠程連接支持配置

1.安裝 下載mysql-server&#xff08;必須加sudo&#xff09; sudo apt update sudo apt install mysql-server 查看mysql的狀態 sudo service mysql status 通過如下命令開啟mysql sudo service mysql start 2.配置 第一次安裝mysql后&#xff0c;為root設置一個密碼 …

Linux -- 進階 Autofs應用 : 光驅自動掛載 操作詳解

服務端自動掛載光驅 第一步 &#xff1a; 關閉安全軟件&#xff0c;安裝自動掛載軟件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install autofs -y 第二步 &#xff1a; 修改 autofs 主配置文件&#xff0c; 計劃掛載光…

C++之map的emplace與pair插入鍵值對用例(一百七十四)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 人生格言&#xff1a; 人生…

213、仿真-基于51單片機智能電表電能表用電量電費報警Proteus仿真設計(程序+Proteus仿真+原理圖+配套資料等)

畢設幫助、開題指導、技術解答(有償)見文未 目錄 一、硬件設計 二、設計功能 三、Proteus仿真圖 四、原理圖 五、程序源碼 資料包括&#xff1a; 需要完整的資料可以點擊下面的名片加下我&#xff0c;找我要資源壓縮包的百度網盤下載地址及提取碼。 方案選擇 單片機的選…

uniapp tabbar 瀏覽器調試顯示 真機不顯示

解決方案&#xff0c;把tabBar里面的單位全改為px&#xff0c;rpx是不會顯示的&#xff01; 注意了&#xff0c;改完一定要重新運行&#xff0c;不然無效&#xff0c;坑爹 "tabBar": {"borderStyle": "black","selectedColor": &quo…

java-JVM內存區域JVM運行時內存

一. JVM 內存區域 JVM 內存區域主要分為線程私有區域【程序計數器、虛擬機棧、本地方法區】、線程共享區域【JAVA 堆、方法區】、直接內存。線程私有數據區域生命周期與線程相同, 依賴用戶線程的啟動/結束 而 創建/銷毀(在 HotspotVM 內, 每個線程都與操作系統的本地線程直接映…

SwiftUI 動畫進階:實現行星繞圓周軌道運動

0. 概覽 SwiftUI 動畫對于優秀 App 可以說是布帛菽粟。利用美妙的動畫我們不僅可以活躍界面元素,更可以單獨打造出一整套生動有機的世界,激活無限可能。 如上圖所示,我們用動畫粗略實現了一個小太陽系:8大行星圍繞太陽旋轉,而衛星們圍繞各個行星旋轉。 在本篇博文中,您將…

vue3實現防抖、單頁面引入、全局引入、全局掛載

文章目錄 代碼實現單頁面引入全局引入使用 代碼實現 const debounce (fn: any, delay: number) > {let timer: any undefined;return (item: any) > {if (timer) clearTimeout(timer);timer setTimeout(() > fn(item), delay);} };export default debounce;單頁面…

Python + Selenium 處理瀏覽器Cookie

工作中遇到這么一個場景&#xff1a;自動化測試登錄的時候需要輸入動態驗證碼&#xff0c;由于某些原因&#xff0c;需要從一個已登錄的機器上&#xff0c;復制cookie過來&#xff0c;到自動化這邊繞過登錄。 瀏覽器的F12里復制出來的cookie內容是文本格式的&#xff1a; uui…

【第二講---初識SLAM】

SLAM簡介 視覺SLAM&#xff0c;主要指的是利用相機完成建圖和定位問題。如果傳感器是激光&#xff0c;那么就稱為激光SLAM。 定位&#xff08;明白自身狀態&#xff08;即位置&#xff09;&#xff09;建圖&#xff08;了解外在環境&#xff09;。 視覺SLAM中使用的相機與常見…

VB+SQL銀行設備管理系統設計與實現

摘要 隨著銀行卡的普及,很多地方安裝了大量的存款機、取款機和POS機等銀行自助設備。銀行設備管理系統可以有效的記錄銀行設備的安裝和使用情況,規范對自助設備的管理,從而為用戶提供更加穩定和優質的服務。 本文介紹了銀行設備管理系統的設計和開發過程,詳細闡述了整個應…

Flink之Task解析

Flink之Task解析 對Flink的Task進行解析前,我們首先要清楚幾個角色TaskManager、Slot、Task、Subtask、TaskChain分別是什么 角色注釋TaskManager在Flink中TaskManager就是一個管理task的進程,每個節點只有一個TaskManagerSlotSlot就是TaskManager中的槽位,一個TaskManager中可…

數據結構單鏈表

單鏈表 1 鏈表的概念及結構 概念&#xff1a;鏈表是一種物理存儲結構上非連續、非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈 接次序實現的 。 在我們開始講鏈表之前&#xff0c;我們是寫了順序表&#xff0c;順序表就是類似一個數組的東西&#xff0…

上海虛擬展廳制作平臺怎么選,蛙色3DVR 助力行業發展

引言&#xff1a; 在數字化時代&#xff0c;虛擬展廳成為了企業宣傳的重要手段。而作為一家位于上海的實力平臺&#xff0c;上海蛙色3DVR憑借其卓越的功能和創新的技術&#xff0c;成為了企業展示和宣傳的首選。 一、虛擬展廳的優勢 虛擬展廳的崛起是指隨著科技的進步&#x…

36_windows環境debug Nginx 源碼-使用 VSCode 和WSL

文章目錄 配置 WSL編譯 NginxVSCode 安裝插件launch.json配置 WSL sudo apt-get -y install gcc cmake sudo apt-get -y install pcre sudo apt-get -y install libpcre3 libpcre3-dev sudo apt-get

手機商城網站的分析與設計(論文+源碼)_kaic

目錄 摘 要 1 1 緒論 2 1.1選題背景意義 2 1.2國內外研究現狀 2 1.2.1國內研究現狀 2 1.2.2國外研究現狀 3 1.3研究內容 3 2 網上手機商城網站相關技術 4 2.1.NET框架 4 2.2Access數據庫 4 2.3 JavaScript技術 4 3網上手機商城網站分析與設…

Grafana+Prometheus技術文檔-進階使用-監控spring-boot項目

阿丹&#xff1a; 之前已經實現了使用Prometheus來對服務器進行了監控和儀表盤的創建&#xff0c;現在就需要對這些監控方法使用在spring-boot中去。 實現思路&#xff1a; 1、集成Actuator 2、加入Prometheus的依賴 3、配置開放端口、以及開放監控 4、配置Prometheus中的配置…