日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[iptables]Redhat 7.2下使用iptables实现NAT

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [iptables]Redhat 7.2下使用iptables实现NAT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[iptables]Redhat 7.2下使用iptables實現NAT

Redhat 7.2下使用iptables實現NAT

zerg_79 | 2005年二月24日, 17:16
環境:

一臺DELL LATITUDE C610筆記本(PIII1G256M SDRAM30G 4200rpm HDD)上安裝Redhat Linux 7.2(完全安裝)。

這臺筆記本自帶一塊內置百兆以太網卡(3Com 3C920),在Redhat中標識為eth0IP地址為192.168.59.27/24Gateway192.168.59.1。另外插上一塊PCMCIA接口的網卡(Realtek 8139),在Redhat中標識為eth1IP地址為10.0.0.254/24,這塊網卡的TCP/IP設置中僅設置IPNetMask,不設置Gateway。這樣,在netstat –rn或者route print命令中看到缺省路由唯一指向192.168.59.1

關于如何驅動雙網卡,建議在XWindows環境下配置,詳見相關文檔。

一臺Cisco 2621路由器,其FastEthernet0/0口配置IP地址為10.0.0.1/24,另一個以太網接口Down掉。配置一條缺省路由“ip route 0.0.0.0? 0.0.0.0? 10.0.0.254”,路由器的缺省網關就指向了10.0.0.254

試驗環境拓撲圖如下:

?

如上圖所示,這臺筆記本的eth03Com)網卡接入辦公室局域網,其他ip地址在192.168.59.0/24網段的機器也連接在這個局域網里。最后都通過網關192.168.59.1以NAT接入Internet

在試驗中還需要用到一臺192.168.59.xPCClient來測試ping等網絡功能。

開始試驗:

在筆記本上進入Linux操作系統,以root用戶身份登錄到字符界面。

首先輸入setup,進入配置菜單。進入system service,選項,關閉里面的ipchains(去掉選項前面的*號),啟用里面的iptables(在選項前加上*號)。這里設置后,Linux的服務并沒有按照我們的意愿啟動或停止,這只是標記一下并告訴系統下次啟動時將要自動啟動哪些服務而不啟動哪些服務,可以重新啟動Linux操作系統(reboot)使設置生效。在不需要重新啟動操作系統的前提下,可以重啟端口守護進程:/etc/rc.d/init.d/xinetd restart

啟動好iptables之后,就需要配置它了。

首先打開ip轉發功能(相當于讓計算機工作在路由狀態,能夠轉發各個網絡接口上的數據包):

echo 1 >/proc/sys/net/ipv4/ip_forward

注意,在“echo 1”和“>”之間有一個空格,否則語句就不起效果。

這一句執行前,我們可以vi /proc/sys/net/ipv4/ip_forward,看到文件內容為一個字符“0”,這表明ip forward功能被禁用。該語句正確執行后,文件內容被改為“1”,表明ip forward功能被啟用。

也可以手工去修改ip_forward文件內容為“1”,啟用ip轉發功能,但是下次系統重啟后,又會被置為0

是實現iptables NAT的準備工作,我們可以將這條語句寫進/etc/rc.d/rc.local這個啟動腳本中,下次操作系統重新啟動時,這條語句會被自動執行。

iptablesfilter表里面不做任何設置,所有規則為空,默認即為所有包均允許通過。

iptables –Liptables –t filter –L,顯示包過濾規則

iptables –t nat –L現實NAT規則

同樣的,

iptables –Aiptables –D表示添加和刪除包過濾規則,完全寫法為iptables –t filter –Aiptables –t filter -D

iptables –t nat –Aiptables –t nat –D表示添加和刪除NAT規則

iptables –F表示清空包過濾規則,完全寫法為iptables –t filter –F,再次強調,包過濾規則為空表示對所有通過的數據包均放行不予攔截(ACCEPT)。

iptables –t na –F表示清空NAT規則

接下來在iptablesNAT表里面做相應的地址轉換設置。

用以下語句添加兩條NAT規則:

iptables –t nat –A POSTROUTING –s 10.0.0.0/24? –o eth0 –j SNAT ――to 192.168.59.27

iptables –t nat –A PREROUTING –p tcp –d 192.168.59.27 ――dport 2323 –i eth0 –j DNAT ――to 10.0.0.1:23

需要說明的是源地址轉換(SNAT 是在路由后進行的,所以是POSTROUTING,需要確定數據包出防火墻的接口;而目的地址轉換(DNAT)是在路由前進行的,所以是PREROUTING,需要確定數據包進防火墻的接口。

對第一條NAT規則解釋如下:

這是一個源地址轉換規則,數據包出防火墻(-o)的接口是eth0。這條規則將所有源地址為10.0.0.0/24的數據包在從eth0接口出防火墻的時候,轉換其源地址為192.168.59.27。這樣就讓內部網(10.0.0.0/24)的機器能夠共享一個外部網IP192.168.59.27/24)訪問到外部網段(192.168.59.0/24)。這條規則適合部署一臺NAT防火墻實現OfficeHome的多臺機器共享上網。

對第二條NAT規則解釋如下:

這是一個目的地址轉換規則,數據包進防火墻(-i)的接口是eth0。當一個數據包試圖訪問防火墻的eth0接口(192.168.59.272323端口的時候,數據包的目的地址將被改變為10.0.0.1,同時,訪問的端口也將被改變為23,也就是說,這個數據包將被防火墻從其eth1接口轉發(因為eth1接口IP10.0.0.0/24這一段的)出去并送達10.0.0.1訪問其23端口。這是一個典型的靜態端口重定向規則。

測試:

因為10.0.0.1是路由器Cisco 2621的快速以太口,我們可以telnet上路由器,然后確定sh ip route顯示其缺省路由指向10.0.0.254,并確保能在路由器上ping10.0.0.254。然后試圖ping 192.168.59.1,發現能夠ping通,但是速度不穩定有時會丟包,懷疑到192.168.59.1是一臺Catalyst 6509多層交換機,整個公司均利用其作為網關出口,所以該設備的NAT處理非常頻繁,可能會導致處理數據包能力下降。所以從路由器上ping另一個IP例如192.168.59.22,發現連通性非常穩定,這表示SNAT功能成功實現。

由于路由器打開了telnet功能,其IP10.0.0.1的以太網接口的23端口(telnet)是處于偵聽狀態的,

而防火墻(筆記本)上的eth0接口的2323端口被映射到10.0.0.123端口。所以從一臺192.168.59.0/24網段內任意一臺Client機器上telnet 192.168.59.27 2323,顯示出了Cisco 2621telnet登錄界面,輸入口令“cisco”后進入了Cisco 2621。這表明DNAT功能成功實現。

因為防火墻(筆記本)的網關指向了192.168.59.1,所以從路由器上能pingInternet上的公網IP比如202.38.64.2(中國科技大學www服務器)。


接著輸入:

iptables –t nat –D PREROUTING 1 posted on 2005-05-22 19:00 浙林龍哥 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/huqingyu/archive/2005/05/22/160599.html

總結

以上是生活随笔為你收集整理的[iptables]Redhat 7.2下使用iptables实现NAT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。