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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iptables路由转换

發布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iptables路由转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iptables使用

  • iptables簡介
    • iptables路由表
      • 表(功能)<—— ——>鏈(鉤子)
      • 處理動作(target)
        • iptables的幫助信息
    • iptables路由轉發
    • iptables端口轉發

iptables簡介

iptables其實不是真正的防火墻,我們可以把它理解成一個客戶端代理,用戶通過iptables這個代理,將用戶的安全設定執行到對應的"安全框架"中,這個"安全框架"才是真正的防火墻,這個框架的名字叫netfilter

netfilter才是防火墻真正的安全框架(framework),netfilter位于內核空間。

iptables其實是一個命令行工具,位于用戶空間,我們用這個工具操作真正的框架。

netfilter/iptables(下文中簡稱為iptables)組成Linux平臺下的包過濾防火墻,與大多數的Linux軟件一樣,這個包過濾防火墻是免費的,它可以代替昂貴的商業防火墻解決方案,完成封包過濾、封包重定向和網絡地址轉換(NAT)等功能。

Netfilter是Linux操作系統核心層內部的一個數據包處理模塊,它具有如下功能:

網絡地址轉換(Network Address Translate)

數據包內容修改

以及數據包過濾的防火墻功能

所以說,雖然我們使用service iptables start啟動iptables"服務",但是其實準確的來說,iptables并沒有一個守護進程,所以并不能算是真正意義上的服務,而應該算是內核提供的功能

iptables路由表

我們自定義的所有規則,都是這四種分類中的規則,所有規則都存在于這4張“表”中

  • filter表 ,負責過濾功能,防火墻;內核模塊:iptables_filter
  • nat表 network address translation,網絡地址轉換功能;內核模塊:iptable_nat
  • mangle表 拆解報文,做出修改,并重新封裝的功能;內核模塊:iptable_mangle
  • raw表 關閉nat表上啟用的連接追蹤機制;內核模塊:iptable_raw
  • 表(功能)<—— ——>鏈(鉤子)

    filter表中的規則可以被鏈:INPUT,FORWARD,OUTPUT 使用
    nat表中的規則可以被鏈:PREROUTING,OUTPUT,POSTROUTING,INPUT 使用
    mangle表中的規則可以被鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 使用
    raw表中的規則可以被鏈:PREROUTING,OUTPUT使用

    處理動作(target)

    ACCEPT:允許數據包通過
    DROP:直接丟棄數據包,不給任何回應信息
    REJECT:拒絕數據包通過,必要時會給數據端發送一個響應的信息,客戶端剛請求就會收到拒絕的信息
    SNAT:源地址轉換,解決內網用戶用同一個公網地址上網的問題
    MASQUERADE:是SNAT的一種特殊形式,適用于動態的,臨時會變的IP上
    DNAT:目標地址轉換
    REDIRECT:在本機做端口映射
    LOG:在/var/log/messages文件中記錄日志信息,然后將數據包傳遞給下一條規則,也就是說除了記錄以外不對數據包做任何其他操作,任然讓下一天規則去匹配

    iptables的幫助信息

    Usage: iptables -[AD] chain rule-specification [options]
    iptables -I chain [rulenum] rule-specification [options]
    iptables -R chain rulenum rule-specification [options]
    iptables -D chain rulenum [options]
    iptables -[LS] [chain [rulenum]] [options]
    iptables -[FZ] [chain] [options]
    iptables -[NX] chain
    iptables -E old-chain-name new-chain-name
    iptables -P chain target [options]
    iptables -h (print this help information)

    指令Commands:
    Either long(單詞,以 – 做前導) or short(字母,區分大小寫,以 - 做前導) options are allowed.
    –append -A chain Append to chain
    –delete -D chain Delete matching rule from chain
    –delete -D chain rulenum
    Delete rule rulenum (1 = first) from chain
    –insert -I chain [rulenum]
    Insert in chain as rulenum (default 1=first)
    –replace -R chain rulenum
    Replace rule rulenum (1 = first) in chain
    –list -L [chain [rulenum]]
    List the rules in a chain or all chains
    –list-rules -S [chain [rulenum]]
    Print the rules in a chain or all chains
    –flush -F [chain] Delete all rules in chain or all chains
    –zero -Z [chain [rulenum]]
    Zero counters in chain or all chains
    –new -N chain Create a new user-defined chain
    –delete-chain
    -X [chain] Delete a user-defined chain
    –policy -P chain target
    Change policy on chain to target
    –rename-chain
    -E old-chain new-chain
    Change chain name, (moving any references)

    參數(選項)Options:
    [!] --proto -p proto protocol: by number or name, eg. `tcp’
    [!] --source -s address[/mask][…]
    source specification
    [!] --destination -d address[/mask][…]
    destination specification
    [!] --in-interface -i input name[+]
    network interface name ([+] for wildcard)
    –jump -j target
    target for rule (may load target extension)
    –goto -g chain
    jump to chain with no return
    –match -m match

    iptables路由轉發

    需要轉發的主機修改網關為路由轉換主機IP地址

    network:version: 2renderer: networkdethernets:eno1:addresses: [10.1.65.100/16]gateway4: 10.1.65.49 #此處修改路由主機IP地址nameservers:addresses: [10.1.1.1, 223.5.5.5]

    ]# echo ‘net.ipv4.ip_forward = 1’ >> /etc/sysctl.conf
    ]# sysctl -p
    net.ipv4.ip_forward = 1
    ]# iptables -t nat -A POSTROUTING -o 外網網卡 -s 內網IP -j SNAT --to 外網IP地址
    ]# netplay apply

    iptables端口轉發

    ]# iptables -t nat -A PREROUTING -p tcp --dport 8090 -j DNAT --to-destination 192.168.1.10:8080#8090為轉發后目標主機的代理端口#192.168.1.10:8080為需要轉發的端口 ]# iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 8080 -j SNAT --to-source 192.168.1.20#192.168.1.20為代理主機IP地址

    總結

    以上是生活随笔為你收集整理的iptables路由转换的全部內容,希望文章能夠幫你解決所遇到的問題。

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