iptables的DNAT、SNAT配置

DNAT:目的地址轉換。當外網主機訪問內網的某臺服務器的時候,如果直接暴露服務器的IP于公網,可能會遭受各種各樣的攻擊,而DNAT的主要作用就是在服務器前面添加一臺防火墻。將防火墻的地址公布出去,讓外網客戶端通過訪問防火墻的地址就可以訪問到本地服務器。這樣就起到了保護服務器的目的;

SNAT:源地址轉換。內網主機在訪問互聯網的時候所有源地址都轉換為防火墻的外網地址,起到隱藏內網客戶機的目的。同時,也解決了IPV4公網地址不夠用的需求。

一、實驗需求

通過三臺服務器模擬iptables的DNAT、SNAT的配置。

二、實驗環境

三臺服務器:

  1. 內網服務器:提供httpd服務。IP:192.168.11.137

  2. 外網客戶端:用于訪問內網服務器。IP:172.16.251.247

  3. iptables防火墻:用一臺虛擬機開啟核心轉發功能來模擬,用于實現DNAT和SNAT的功能。

    • IP1:192.168.11.144(內網服務器網關)

    • IP2:172.16.250.151(外網客戶端網關)

    拓撲如下:

    iptables的DNAT、SNAT配置

三、實驗配置

DNAT配置

  1. 內網服務器配置:

    1. 安裝httpd,vsftpd和samba服務:

     yum install -y httpd vsftpd samba 
    1. 配置默認網關為192.168.11.144

     route add default gw 192.168.11.144
  2. 外網客戶端配置:

    1. 配置默認網關:

     route add default gw 172.16.250.151
  3. iptables主機配置:

    1. 開啟核心轉發功能:

     echo 1 > /proc/sys/net/ipv4/ip_forward
    1. 此時外網主機和內網主機就能夠相互ping通了;

    2. 配置DNAT:

     iptables -t nat -A PREROUTING -d 172.16.250.151 -p tcp --dport 80 -j DNAT --to-destination 192.168.11.137

    注意:

    DNAT需要在PREROUTING鏈做轉發策略。

    1. 此時通過外網主機訪問內網服務器的httpd服務就可以成功了,此處采用在內網主機和iptables的172.16.250.151網口進行抓包分析DNAT工作過程:

      1. 內網服務器抓包截圖:

        iptables的DNAT、SNAT配置

        可以看到源地址為172.16.251.247,目的地址為192.168.11.137

      2. iptables抓包截圖:

        iptables的DNAT、SNAT配置

        我們訪問的目的地址為172.16.250.151,而此處看到源地址為172.16.251.247,而目的地址卻為192.168.11.137??梢宰C明我們訪問172.16.250.151的80端口被轉發到192.168.11.137的80端口上了。此處證明在DNAT的過程中源地址是永久不變的,而目的地址會根據策略而發生變化。

SNAT配置

注意:此處外網和內網位置做調換,即如下拓撲圖的形式:外網成為服務器,而內網為訪問服務的客戶端

iptables的DNAT、SNAT配置

  1. iptables主機配置策略如下:

     ##首先清空剛才的DNAT策略## iptables -t nat -F iptables -t nat -A POSTROUTING -s 172.16.251.147 -j SNAT --to-source 192.168.11.144
  2. 此時外網服務端可以正常訪問到外網httpd服務,此時在外網主機和防火墻的192.168.11.144進行抓包分析SNAT的工作過程:

    1. 外網主機抓包:

      iptables的DNAT、SNAT配置

      此處我們是通過內網客戶端172.16.251.147訪問的外網的httpd服務,此處可以看到源地址和目的地址為:

      • 源地址:192.168.11.144.50076

      • 目的地址:192.168.11.137.80

      證明源地址已經被轉換為防火墻的外網網口了。

    2. 防火墻內網172.16.251.247抓包分析:

      iptables的DNAT、SNAT配置

      • 源地址:172.16.251.247.50080

      • 目的地址:192.168.11.137.80

      此處證明報文在進入防火墻的時候源地址還沒有發生變化。說明源地址是從防火墻出去之前發生的轉換。

原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/77968

(1)
王子豪王子豪
上一篇 2017-06-11
下一篇 2017-06-13

相關推薦

  • 文本處理工具

    1, head  默認顯示前十行 -n  +行號 顯示前n行 -行號 顯示前n行 -c 字節數 顯示前n個字節 tail 默認顯示后十行 -n +行號 顯示后n行 – 行號 顯示后n行 -f 動態顯示 cut -d 指定分隔符 -f 選取第幾列 –output-delimiter 指定輸出符 相關的實際操作: a,…

    2017-07-29
  • 第二周:文件管理練習

    1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 目錄管理管理類命令 mkdir make directories mkdir [OPTION]… DIRECTORY… 注意:路徑基名作為命令的作用對象時,基名之前的路徑必須要存在;     -p:自動按需創建父目錄…

    Linux干貨 2016-09-23
  • shell編寫的linux命令練習工具

    linux常用命令加選項,有成百上個,僅僅靠背誦忘記得太快,所以寫了此腳本,便于對linux命令的練習,希望能幫助到大家。 運行腳本效果如下: 上邊兩圖一個是運行腳本時的截圖,另一個為題庫的格式(@做分隔符,所以如果題目中有@一定要替換掉) 下面附上源碼 #!/bin/bash#版本號:1.0 #作者:Mr.L #WX:504498722FILE=/root…

    2017-03-19
  • ? 馬哥教育網絡班22期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限;     cp -a /etc/skel /home/tuser1     chmod -R 7…

    Linux干貨 2016-10-17
  • corosync + pacemaker搭建高可用http

    一、實驗圖:    二、實驗環境準備:  1)時間同步(172.16.2.15是時間服務器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干貨 2015-06-30
  • 馬哥教育網絡班21期+第2周課程練習

    一:在Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例。     在Linux中,文件管理類命令主要有cp,mv,rm三個     其中cp命令的使用格式如下:           …

    Linux干貨 2016-07-16
欧美性久久久久