在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Linux系統(tǒng)使用iptables實現(xiàn)外網訪問內網

Linux愛好者 ? 來源:ZONG_XP ? 作者:ZONG_XP ? 2020-10-29 11:23 ? 次閱讀

轉自:ZONG_XP

0 背景

考慮一種網絡拓撲應用情景,一個內部局域網中有多臺服務器提供不同的服務,如web服務、FTP服務、ssh、telnet等,通過服務器(或網關、防火墻)連接外部網絡,如果外部網絡上的主機需要訪問這些服務器,則需要在網關上實現(xiàn)轉發(fā)。

再轉述成另一種應用場合,多臺設備連接到一臺服務器,服務器有2個網卡,分別連接內外網。外網無法直接訪問設備上的數(shù)據(jù)、服務。在服務器上實現(xiàn)轉發(fā)后,則可達到目的。

網絡拓撲如下:

比如,可以通過服務器的8081端口訪問1號設備的web服務,8082端口訪問2號設備web,這樣可以在外部網絡對內網設備進行參數(shù)配置、調整。類似地,通過2321訪問1號設備的telnet服務,2322訪問2號設備telnet,以方便登陸設備系統(tǒng),進行設備狀態(tài)監(jiān)控,日志處理,等等。

本文將直接引用此網絡拓撲圖中的名稱及IP地址。實際使用配置根據(jù)實際情況修改。另外說明一下,不必拘泥于本文給出的名稱。像拓撲圖中的“設備”,可以使用一臺安裝linux的服務器替換。其它的類似。

一、原理

在Linux系統(tǒng)使用iptables實現(xiàn)防火墻、數(shù)據(jù)轉發(fā)等功能。iptables有不同的表(tables),每個tables有不同的鏈(chain),每條chain有一個或多個規(guī)則(rule)。本文利用NAT(network address translation,網絡地址轉換)表來實現(xiàn)數(shù)據(jù)包的轉發(fā)。iptables命令要用-t來指定表,如果沒有指明,則使用系統(tǒng)缺省的表“filter”。所以使用NAT的時候,就要用“-t nat”選項了。
NAT表有三條缺省的鏈,它們分別是PREROUTING、POSTROUTING和OUTPUT。

先給出NAT結構,如下圖:

PREROUTING:在數(shù)據(jù)包傳入時,就進到PREROUTIING鏈。該鏈執(zhí)行的是修改數(shù)據(jù)包內的目的IP地址,即DNAT(變更目的IP地址)。PREROUTING只能進行DNAT。因為進行了DNAT,才能在路由表中做判斷,決定送到本地或其它網口。

POSTROUTING:相對的,在POSTROUTING鏈后,就傳出數(shù)據(jù)包,該鏈是整個NAT結構的最末端。執(zhí)行的是修改數(shù)據(jù)包的源IP地址,即SNAT。POSTROUTING只能進行SNAT。

OUTPUT:定義對本地產生的數(shù)據(jù)包的目的NAT規(guī)則。

每個數(shù)據(jù)包都會依次經過三個不同的機制,首先是PREROUTING(DNAT),再到路由表,最后到POSTROUTING(SNAT)。下面給出數(shù)據(jù)包流方向:

文中的網絡拓撲圖所示的數(shù)據(jù)包,是從eth0入,eth1出。但是,無論從eth0到eth1,還是從eth1到eth0,均遵守上述的原理。就是說,SNAT和DNAT并沒有規(guī)定只能在某一個網口(某一側)。

順便給出netfilter的完整結構圖:

二、實現(xiàn)

出于安全考慮,Linux系統(tǒng)默認是禁止數(shù)據(jù)包轉發(fā)的。所謂轉發(fā)即當主機擁有多于一塊的網卡時,其中一塊收到數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的目的ip地址將包發(fā)往本機另一網卡,該網卡根據(jù)路由表繼續(xù)發(fā)送數(shù)據(jù)包。這通常就是路由器所要實現(xiàn)的功能。

配置Linux系統(tǒng)的ip轉發(fā)功能,首先保證硬件連通,然后打開系統(tǒng)的轉發(fā)功能

cat /proc/sys/net/ipv4/ip_forward,該文件內容為0,表示禁止數(shù)據(jù)包轉發(fā),1表示允許,將其修改為1。可使用命令echo "1" > /proc/sys/net/ipv4/ip_forward修改文件內容,重啟網絡服務或主機后效果不再。若要其自動執(zhí)行,可將命令echo "1" > /proc/sys/net/ipv4/ip_forward 寫入腳本/etc/rc.d/rc.local 或者在/etc/sysconfig/network腳本中添加 FORWARD_IPV4="YES"

但在我的系統(tǒng)中沒有這兩個文件,因此可以修改/etc/sysctl.conf文件,將net.ipv4.ip_forward=1的注釋取消即可

根據(jù)拓撲圖,一一實現(xiàn)不同IP、不同端口的映射,如下命令為一種示例形式:

# 第一臺設備的telnet服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 2321 -j DNAT --to 100.100.100.101:23iptables -t nat -A POSTROUTING -o eth1 -d 100.100.100.101 -p tcp --dport 23 -j SNAT --to 100.100.100.44# 第二臺設備的telnet服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 2322 -j DNAT --to 100.100.100.102:23iptables -t nat -A POSTROUTING -o eth1 -d 100.100.100.102 -p tcp --dport 23 -j SNAT --to 100.100.100.44 # 第一臺設備的web服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 8081 -j DNAT --to 100.100.100.101:80iptables -t nat -A POSTROUTING -o eth1 -d 100.100.100.101 -p tcp --dport 80 -j SNAT --to 100.100.100.44# 第二臺設備的web服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 8082 -j DNAT --to 100.100.100.102:80iptables -t nat -A POSTROUTING -o eth1 -d 100.100.100.102 -p tcp --dport 80 -j SNAT --to 100.100.100.44

以第一臺設備轉發(fā)命令為例,用白話解釋一下。

第一條是PREROUTING鏈,只能進行DNAT,該命令對從eth0進入且目的IP為172.18.44.44(注:可以用-s指明數(shù)據(jù)包來源地址,但這時無法知道來源IP是多少,雖然可以用網段的做法,但用-d則指定必須一定唯一的是本機的eth0地址,相對好一點),端口號為2321的數(shù)據(jù)包進行目的地址更改,更改為100.100.100.101,端口為23,亦即此包的目的地為第一臺設備的telnet服務。

第二條是POSTROUTING鏈,只能進行SNAT,即對先前已經DNAT過的數(shù)據(jù)包修改源IP地址。這樣,這個數(shù)據(jù)包達到第一臺設備時,源IP地址、目的IP地址,均為100.100.100.0/24網段了。

上述命令的SNAT有些冗余,可以做簡化,命令如下:

# 第一臺設備的telnet、web服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 2321 -j DNAT --to 100.100.100.101:23iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 8081 -j DNAT --to 100.100.100.101:80# 第二臺設備的telnet、web服務iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 2322 -j DNAT --to 100.100.100.102:23iptables -t nat -A PREROUTING -i eth0 -d 172.18.44.44 -p tcp --dport 8082 -j DNAT --to 100.100.100.102:80# 源IP地址SNATiptables -t nat -A POSTROUTING -o eth1 -d 100.100.100.0/24 -j SNAT --to 100.100.100.44

實際中使用的命令可能還有變化(簡化),本文不再展示。

三、測試

為了保證文中所述的正確性,本節(jié)列出操作結果,以及實驗過程的信息。服務器(網關)上的路由表如下:

root@latelee:test# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface100.100.100.0 * 255.255.255.0 U 0 0 0 eth1172.18.0.0*255.255.0.0U000eth0

可以看到服務器上有2個網卡,網段都不相同。iptables的NAT表如下:

root@latelee:~# iptables -L -t natChain PREROUTING (policy ACCEPT)target prot opt source destination DNAT tcp -- anywhere 172.18.44.44 tcp dpt:2324 to23Chain INPUT (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain POSTROUTING (policy ACCEPT)target prot opt source destination SNAT all -- anywhere 100.100.100.0/24 to:100.100.100.44

可以看到,PREROUTING和POSTROUTING各有一條規(guī)則,這些規(guī)則由上文命令所產生。對應的,在第一號設備上查看路由信息,如下:

root@latelee:~# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface100.100.100.0 * 255.255.255.0 U 0 0 0 eth0172.18.0.0 * 255.255.0.0 U 0 0 0 eth1default 100.100.100.44 0.0.0.0 UG 0 0 0 eth0

可以看到這臺設備有2個網卡,默認網關為服務器的IP地址。但是,其中一個網卡eth1竟然和PC所在網段相同!如果沒有進行源IP地址修改(偽裝),會匹配到eth1這個網口,無法匹配eth0。

在外網的PC上對設備進行telnet,設備抓包信息如下:

IP 100.100.100.44.32253 > 100.100.100.101.2323: Flags [P.], seq 1:4, ack 16, win 256, length 3IP 100.100.100.101.2323 > 100.100.100.44.32253: Flags [P.], seq 16:19, ack 4, win 2190, length 3IP 100.100.100.44.32253 > 100.100.100.101.2323: Flags [P.], seq 4:25, ack 19, win 256, length 21IP 100.100.100.101.2323 > 100.100.100.44.32253: Flags [P.], seq 19:34, ack 25, win 2190, length 15

可見,所有包的IP段都相同。在服務器上對內網eth1進行抓包,由于進行了DNAT和SNAT,此網卡數(shù)據(jù)包IP地址還是100.100.100.0/24網段,如下:

IP 100.100.100.44.32253 > 100.100.100.101.telnet: Flags [.], ack 1, win 256, length 0IP 100.100.100.101.telnet > 100.100.100.44.32253: Flags [P.], seq 1:16, ack 1, win 2190, length 15IP 100.100.100.44.32253 > 100.100.100.101.telnet: Flags [P.], seq 1:4, ack 16, win 256, length 3IP 100.100.100.101.telnet > 100.100.100.44.32253: Flags [P.], seq 16:19, ack 4, win 2190, length 3

但是,在服務器eth0抓包,將會是172.18.0.0/16的網段數(shù)據(jù)包:

IP 172.18.44.142.32253 > 172.18.44.44.2324: Flags [P.], seq 18:20, ack 154, win 255, length 2IP 172.18.44.44.2324 > 172.18.44.142.32253: Flags [P.], seq 154:156, ack 20, win 2190, length 2IP 172.18.44.44.2324 > 172.18.44.142.32253: Flags [F.], seq 156, ack 20, win 2190, length 0IP 172.18.44.142.32253 > 172.18.44.44.2324: Flags [.], ack 157, win 255, length 0IP 172.18.44.142.32253 > 172.18.44.44.2324: Flags [F.], seq 20, ack 157, win 255, length 0IP 172.18.44.44.2324 > 172.18.44.142.32253: Flags [.], ack 21, win 2190, length 0

從抓包分析,本文所用命令已經能正確進行DNAT和SNAT了。

四、其它

建議在使用iptabls指令時,使用root用戶進行操作,否則容易失敗

保存iptables配置方法:

iptables-save > /etc/iptables.up.rules

配置iptables開機加載

iptables-save>/etc/iptables.up.rulesecho -e '#!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptableschmod +x /etc/network/if-pre-up.d/iptables

本地測試指令

iptables -t nat -A PREROUTING -i wlan0 -d 192.168.11.100 -p tcp --dport 8081 -j DNAT --to 192.168.10.101:80iptables -t nat -A POSTROUTING -o eth0 -d 192.168.10.101 -p tcp --dport 80 -j SNAT --to 192.168.10.52

原文標題:Linux之iptables端口轉發(fā):外網訪問內網

文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11469

    瀏覽量

    212904
  • 服務器
    +關注

    關注

    13

    文章

    9717

    瀏覽量

    87371
  • 網絡
    +關注

    關注

    14

    文章

    7780

    瀏覽量

    90464

原文標題:Linux之iptables端口轉發(fā):外網訪問內網

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何配置Linux防火墻和Web服務器

    在當今數(shù)字化時代,網絡安全顯得尤為重要。Linux作為一種開源操作系統(tǒng),廣泛應用于服務器管理和網絡配置中。本篇文章將詳細介紹如何配置Linux防火墻和Web服務器,確保內網
    的頭像 發(fā)表于 05-24 15:26 ?699次閱讀
    如何配置<b class='flag-5'>Linux</b>防火墻和Web服務器

    Linux軟件防火墻iptables詳解

    Linux提供的軟件防火墻,名為iptables,它可以理解為是一個客戶端代理,通過iptables的代理,將用戶配置的安全策略執(zhí)行到對應的安全框架中,這個安全框架稱之為netfilter。
    的頭像 發(fā)表于 03-01 14:50 ?592次閱讀
    <b class='flag-5'>Linux</b>軟件防火墻<b class='flag-5'>iptables</b>詳解

    教你三招異地訪問NAS

    NAS作為家庭或企業(yè)存儲數(shù)據(jù)的神器,能夠讓我們隨時隨地訪問存儲在其中的文件。但當我們身處異地時,如何高效、安全地訪問NAS卻成了一個難題。別擔心,節(jié)點小寶來幫你! 第一招:利用內網穿透功能 首先,
    的頭像 發(fā)表于 01-02 11:26 ?898次閱讀
    教你三招異地<b class='flag-5'>訪問</b>NAS

    如何設置內網IP的端口映射到公網

    現(xiàn)代網絡環(huán)境中,端口映射(Port Mapping)是一項非常實用的技術,它允許用戶將內網設備的服務端口映射到公網,使外網用戶可以訪問內網
    的頭像 發(fā)表于 11-14 14:23 ?1802次閱讀

    ElfBoard技術貼|如何完成FRP內網穿透

    FRP(FastReverseProxy)是一款高效能的反向代理工具,專為解決內網穿透問題而設計。它能夠將內網中的服務安全地暴露至公網,讓外部用戶輕松實現(xiàn)遠程訪問。FRP支持TCP、U
    的頭像 發(fā)表于 11-08 13:30 ?676次閱讀
    ElfBoard技術貼|如何完成FRP<b class='flag-5'>內網</b>穿透

    內網通過公網地址訪問內網服務器的設置方法

    一些場景下,內部網絡中的服務器需要通過公網地址進行訪問,尤其是沒有固定公網IP或需要在外部訪問時。為了解決這一問題,可以使用以下幾種方法實現(xiàn)
    的頭像 發(fā)表于 11-07 15:09 ?1624次閱讀

    P2link——強大的內網穿透和遠程訪問工具

    P2Link作為一款強大的內網穿透和遠程訪問工具,可以幫助用戶輕松實現(xiàn)網絡連接和數(shù)據(jù)傳輸。特別適用于復雜網絡環(huán)境中需要遠程訪問
    的頭像 發(fā)表于 11-01 14:21 ?896次閱讀

    打破網絡邊界:P2Link助力實現(xiàn)高效遠程訪問內網穿透

    P2Link作為一種高效的內網穿透解決方案,通過其強大的功能、簡單的配置和高效的傳輸技術,幫助用戶打破了內網外網之間的界限。無論是遠程辦公、物聯(lián)網管理,還是智能家居控制,P2Link都能提供便捷
    的頭像 發(fā)表于 10-31 11:59 ?488次閱讀

    打破網絡邊界:P2Link助力實現(xiàn)高效遠程訪問內網穿透

    ,解決內網穿透難題,讓用戶輕松實現(xiàn)遠程訪問和管理。以下是一些典型的應用場景: 遠程辦公與文件訪問遠程辦公場景中,員工常常需要從外部網絡
    發(fā)表于 10-31 11:54

    如何通過內網IP安全訪問云服務器?

    要通過內網IP安全訪問云服務器,您需要考慮以下幾個步驟: 1、獲取內網IP地址:首先,您需要確定云服務器的內網IP地址。這通常可以云服務提
    的頭像 發(fā)表于 09-23 13:36 ?1003次閱讀

    NAT設備實現(xiàn)外網設備訪問的優(yōu)勢

    在當今全球互聯(lián)的時代,企業(yè)、組織乃至個人用戶經常需要跨越網絡邊界,實現(xiàn)內部網絡(內網)與外部網絡(外網)之間的數(shù)據(jù)傳輸與資源共享。特別是遠程辦公、云服務、物聯(lián)網(IoT)等應用場景中
    的頭像 發(fā)表于 08-23 13:57 ?743次閱讀
    NAT設備<b class='flag-5'>實現(xiàn)</b>內<b class='flag-5'>外網</b>設備<b class='flag-5'>訪問</b>的優(yōu)勢

    外網用戶通過NAT設備訪問內網服務器解決方案

    隨著網絡技術的不斷發(fā)展,越來越多的企業(yè)需要將內部服務器開放給外網員工訪問,以便員工外出時也能使用企業(yè)內部資源。然而,由于網絡安全和隱私保護的考慮,直接暴露內網服務器于公網存在一定的風險。為了解決這一
    的頭像 發(fā)表于 08-23 13:51 ?687次閱讀
    <b class='flag-5'>外網</b>用戶通過NAT設備<b class='flag-5'>訪問</b><b class='flag-5'>內網</b>服務器解決方案

    teamviewer內網遠程控制外網

    企業(yè)內網環(huán)境中,安全性、穩(wěn)定性和性能是企業(yè)用戶關注的重點。然而,許多遠程控制軟件在內網應用中存在限制,無法滿足企業(yè)的特殊需求。比如知名的遠程控制軟件 TeamViewer,其功能強大,但并未提供
    的頭像 發(fā)表于 08-16 20:46 ?1717次閱讀

    請問IR615怎么禁止設備訪問外網

    IR615使用VPN連到云平臺,最近發(fā)現(xiàn)4G流量使用激增,估計其它設備蹭網,怎么設置一下防止其它設備通過路由器訪問外網,多謝
    發(fā)表于 07-25 07:56

    智能化室內網線和室外網線區(qū)別大不大

    智能化室內網線和室外網多個方面存在顯著的區(qū)別,以下是詳細的對比和歸納: 應用場景: 室內網線:主要用于室內布線,作為智能居家系統(tǒng)的基礎傳
    的頭像 發(fā)表于 07-04 09:46 ?769次閱讀
    主站蜘蛛池模板: 欧洲乱码专区一区二区三区四区 | 人人爱人人澡 | 手机看片国产免费 | 日本毛片在线观看 | 国产精品午夜久久 | 色五五月 | 欧美整片第一页 | 亚洲视频一 | 成人啪啪网站 | 久久婷婷六月 | 亚洲日本一区二区三区在线不卡 | 色老头网站久久网 | 亚洲一区精品中文字幕 | 欧美一级视频在线观看 | 久久久免费 | 四虎精品永久在线网址 | 欧美色p | 亚洲一区欧美一区 | 久久免费香蕉视频 | 综合五月天堂 | 日本三级视频 | 天堂bt资源新版在线 | 综合色影院| 日本欧美一区二区三区不卡视频 | 免费一区二区 | 亚洲一级毛片在线观播放 | 深夜动态福利gif动态进 | 奇米影视亚洲狠狠色777不卡 | 深夜在线观看大尺度 | 综合精品视频 | 一级特黄aaa大片在线观看 | 公妇乱淫日本免费观看 | 狠狠干天天爱 | 免费在线观看一区二区 | 天天操天天干天天爱 | 欧美黄色性 | 女人夜夜春 | 日日草夜夜草 | 亚洲无线码一区在线观看 | 精品国产免费观看一区高清 | 日韩欧美亚洲一区 |