Iptables防火牆(SNAT和DNAT)

来源:https://www.cnblogs.com/L2366/archive/2018/08/03/9411246.html
-Advertisement-
Play Games

1、SNAT:源地址轉換 實現內網訪問外網,修改IP地址,使用POSTROUTING 命令:iptables -t nat -A POSTROUTING -s 192.168.1.10/24 -j SNAT --to-source 202.1.1.1 2、MASQUERADE:地址偽裝 適用於外網i ...


 1、SNAT:源地址轉換

實現內網訪問外網,修改IP地址,使用POSTROUTING

命令:iptables  -t  nat  -A POSTROUTING  -s  192.168.1.10/24  -j SNAT  --to-source  202.1.1.1

2、MASQUERADE:地址偽裝

適用於外網ip地址非固定的情況

將SNAT規則改為MASQUERADE即可

命令:iptables  -t  nat  -A POSTROUTING  -s  192.168.1.0/24  -j MASQUERADE

3、DNAT:目標地址轉換

實現發佈公司內部伺服器,修改目標地址,使用PREROUTING

命令:iptables  -t nat  -A  PREROUTING -d  202.1.1.1  -p tcp  --dport  8080 -j  DNAT  -to 192.168.1.100:80

4、備份和還原規則:

備份:

1)iptables-save  >  文件

     導出到指定文件

2)service  iptables save

    導出到/etc/sysconfig/iptables

    重啟自動載入

還原:

1)iptables-restore  <  文件名

2)service  iptables restart

    從預設文件/etc/sysconfig/iptables還原

5、iptables腳本編寫

1)定義變數

2)載入必要的模塊

modprobe   ip_nat_ftp     ftp地址轉換模塊

modprobe   ip_conntrack_ftp     ftp連接狀態跟蹤

lsmod        查看已載入的模塊

3)調整內核參數:

啟用內核轉發功能:有三種方式(詳見第十章筆記的第8點)

4)編寫防火牆的規則

6、防火牆的類型:

主機型防火牆:針對本機進行保護,使用filter表中的INPUT、OUTPUT鏈

網路型防火牆:對內、外網轉發進行保護,使用filter表中FORWARD鏈

 

Iptables防火牆(SNAT和DNAT)應用示例

實驗拓撲圖:

實驗要求:

1、  如圖所示,將網路連通,註意在外部伺服器上不用配置預設網關。

2、分別在內部和外部伺服器上搭建web服務,修改網頁,如

內部web伺服器的網頁內容:

echo   “192.168.1.10”  >  /var/www/html/index.html 

在本機訪問網頁,測試能否成功訪問。

步驟:

在網站伺服器啟動httpd服務

Service  httpd  start

在訪問主頁寫入內容

echo  192.168.1.10  >  /var/www/html/index.html

在本機測試如下圖:

外網主機同上,測試結果如下圖:

3、分別啟動網站伺服器和網關伺服器的SSh,並把網關ssh服務埠改為2345。

步驟:

啟動sshd服務:  service sshd  restart

進入網關伺服器的ssh主配置文件vim /etc/ssh/sshd_confing

4、清空三台伺服器的防火牆預設配置:service  iptables    stop

5、  SNAT(源地址轉換):要求內部主機192.168.1.10能訪問外部伺服器的網站。

驗證:在外部伺服器通過查看web的訪問日誌。

步驟:

SNAT源地址轉換命令如下:

到網站伺服器訪問外網

查看外網的Web訪問日誌,是否是200.0.0.1訪問

6、 DNAT(目標地址轉換):

1)外部主機通過http://200.0.0.1能夠訪問到內部伺服器的網站。

在網關伺服器上配置DANT

驗證可以訪問

2)外部主機使用ssh  –p 2345  200.0.0.1 能夠遠程管理網關伺服器。

3)外部主機使用ssh  -p 2222  200.0.0.1 能夠遠程管理內部192.168.1.10伺服器。

在網關伺服器配置DNAT

到外網驗證可以登錄遠程登錄

7、在網關伺服器上對防火牆進行保存和備份。

保存防火牆規則:

備份防火牆規則:iptables -save

8、在網關伺服器上寫一個防火牆的腳本。實現上面的功能。

   腳本提示:路由轉發,清空所有防火牆規則,SNAT,DNAT。

   設置防火牆開機自動關閉,設置腳本開啟自動執行。

腳本如下:

設置腳本開機自啟動只需將腳本路徑寫入/etc/rc.local

文章參考微信公眾號:L寶寶聊IT


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.今天在部署IIS7應用程式的時候出現了這個錯誤,本以為是發佈的錯誤,其實不然,是IIS中所依賴的項沒有配置正確 2.選擇創建站點中對應的應用池 高級設置 啟用32位應用程式,然後把值改為true。 3.打開cmd命令進行安裝 如果映射存在,請檢查應用程式是否分配給了.NET Framework4 ...
  • 摘要:接下來的幾篇博客將要講到如何使用ado.net實現簡單的資料庫操作,包括增刪改等內容。首先會介紹基礎的資料庫操作,然後以一個實例來進行講解,這個實例會把一個數據表讀取到winform上,然後在winform上有一些按鈕和文本框,通過這些實現對資料庫里的內容的增刪改的操作。我個人比較菜,因此記錄... ...
  • 效果如下: 鄙人雖然開發WPF有些時間,但之前一直是一些簡單Template和Style改改之類的工作,並沒有深入研究過。此次為了完成工作,首先也是網上搜了半天,沒有找到合適的代碼直接拷貝(搜索能力待提高),乾脆就直接靜下心來琢磨琢磨。 一開始在界面上就放了Slider,撓撓頭,怎麼修改Templa ...
  • 為什麼文章要添加內鏈? 1.有利於讀者 我喜歡內鏈文章的最初動機是讓讀者在我的博客獲得更好的閱讀體驗,並獲得更多的價值。如果我的讀者訪問了我的一篇文章,發現不僅僅回答他需要的答案,還提供了更多相關內容的信息,讓他們能在更多的相關主題去擴展閱讀,他們遲早會喜歡並滿意我的博客。讓讀者滿意就是我們的目標, ...
  • 工作中長期需要用到通過HTTP調用API以及文件上傳下載,積累了不少經驗,現在將各種不同方式進行一個彙總。 首先是HttpWebRequest: 然後是HttpWebResponse: 上面兩個方法需要配合使用,皆為同步方式。當然也可以將上面兩個方法合併到一個方法中,可以參見接下來這個方法。 另外是 ...
  • 使用EF flument API 修改映射資料庫欄位的自增長 modelBuilder.Entity<Invoice>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 報錯Method n ...
  • [TOC] MEF 簡介 Managed Extensibility Framework 即 MEF 是用於創建輕量、可擴展應用程式的庫。 它讓應用程式開發人員得以發現和使用擴展且無需配置。 它還讓擴展開發人員得以輕鬆地封裝代碼並避免脆弱的緊密依賴性。 MEF 讓擴展不僅可在應用程式內重覆使用,還可 ...
  • 第一個原因 你沒有設置DataKeyNames屬性, 第二個原因 你的DataSource是NUll值 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...