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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...