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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iptables防火墙与SNAT和DNAT

發布時間:2024/3/24 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iptables防火墙与SNAT和DNAT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、防火墻分類

硬件防火墻 ? 華為E9000 ----------------------------------------- 軟件防火墻 ? ? iptables ? Centos5/6 ? 系統默認防火墻 firewalld ? Centos7/8 ? 系統默認防火墻

2、Linux防火墻基礎

netfilter

  • 位于Linux內核中的包過濾功能體系

  • 稱為Linux防火墻的”內核態“

iptables

  • 位于/sbin/intables,用來管理防火墻規則的工具

  • 稱為Linux防火墻的”用戶態“

Linux系統的防火墻:IP信息包過濾系統,它實際上由兩個組件netfilter和iptables組成 主要工作在網絡層,針對IP數據包。體現在對包內的IP地址、端口、協議等信息的處理

netfilter/iptables關系:

  • netfilter:屬于”內核態“(Kernel Space,又稱為內核空間)的防火墻功能體系

    是內核的一部分,由一些數據包過濾表組成,這些表包含內核用來控制數據包過濾處理的規則集

  • iptables:屬于”用戶態“(User space,又稱為用戶空間)的防火墻管理體系

    是一種用來管理Linxu防火墻的命令程序,它使插入、修改和刪除數據包過濾表中的規則變得更容易,通常位于/sbin/iptabels文件下

  • netfilter/iptables后期簡稱為iptables。iptables是基于內核的防火墻,其中內置了raw、mangles、nat和filter四個規則表。表中所有規則配置后,立即生效,不需要重啟服務

    ?

3、四表五鏈

規則表的作用:容納各種規則鏈

規則鏈的作用:容納各種防火墻規則

3.1、四表

  • raw表:確定是否對該數據包進行狀態跟蹤。包括兩個規則鏈,OUTPUT、PREROUTING

  • mangle表:修改數據包內容,用來做流量整形的,給數據包設置標記。包括五個規則鏈,INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

  • nat表:負責網絡地址轉換,用來修改數據包中的源、目標IP地址或端口。包括三個規則鏈,OUTPUT、PREROUTING、POSTROUTING

  • filter表:負責過濾數據包,確定是否放行該數據包(過濾)。包括三個規則鏈,INPUT、FORWARD、OUTPUT

優先順序

  • 數據包到達防火墻時,規則表之間的優先順序raw>mangle>nat>filter

  • ?

3.2、五鏈

  • INPUT:處理入站數據包,匹配IP為本機的數據包

  • OUTPUT:處理出站數據包,一般不在此鏈上做配置

  • FORWARD:處理轉發數據包,匹配流經本機的數據包

  • PREROUTING:在進行路由選擇前處理數據包,用來修改目的地址,用來做DNAT,相當于把內網服務器的IP和客戶端映射到路由器的外網IP和端口上

  • PSOTOUTING:在進行路由選擇后處理數據包,用來修改源地址,用來做SNAT,相當于把內網通過路由器NATZ轉換功能實現內網主機通過一個公網IP地址上網

優先順序

規則鏈之間的匹配順序:

主機型防火墻:

  • 入站數據(來自外界的數據包,且目標地址是防火墻本機):PREROUTING——>INPUT——>本機的應用程序

  • 出站數據(從防火墻本機向外部地址發送的數據包):本機的應用程序——>OUTPUT——>POSTOUTING

網絡型防火墻:

  • 轉發數據(需要經過防火墻轉發的數據包):PREOUTING——>FORWARD——>POSTOUTING

  • ?

規則鏈內的匹配順序

自上向下按順序依次進行檢查,找到相匹配的規則即停止(LOG策略例外,表示記錄相關日志)

若在該鏈內找不到相匹配的規則,則按該鏈的默認策略處理(未修改的狀態下,默認策略為允許)

4、安裝iptables

Centos 7默認使用firewalld防火墻,沒有安裝iptables,若想使用iptables防火墻。必須先關閉firewalld防火墻,再安裝iptables

[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost ~]# yum install -y iptables iptables-services.x86_64 [root@localhost ~]# systemctl start iptables.service

iptables防火墻的配置方式

  • 使用iptables命令行

  • 使用system-config-firewall (圖形化界面)centos 6才可用

4.1、iptabels命令行配置方法

命令格式;

iptables [-t 表名] 管理選項[鏈名] [匹配條件] [-j 控制類型]

注意事項:

  • 不指定表名時,默認指filter表

  • 不指定鏈名時,默認指表內的所有鏈

  • 除法設置鏈的默認策略,否則必須指定匹配條件

  • 控制類型使用大寫字母,其余均為小寫

常用的控制類型

類型解釋
ACCEPT允許數據包通過
DROP直接丟棄數據包通過,不給出任何回應信息
REJECT拒絕數據包通過,會給數據發送端一個響應信息
SNAT修改數據包的源地址
DNAT修改數據包的目的地址
MASQUERADE偽裝成一個非固定公網IP地址
LOG在/var/log/messages文件中記錄日志信息,然后

常用的管理選項

選項解釋
-A在指定鏈的末尾追加(--append)一條新的規則
-I在指定鏈的開頭插入(--insert)一條新的規則,未指定序號時默認作為第一條規則
-R修改,替換(--replace)指定鏈中的某一條規則,
-P設置指定鏈的默認策略(--policy),
-D刪除(--delete)指定鏈中的某一條規則,可指定規則序號或具體內容
-F情空(--fliush)指定鏈中的所有規則,若鏈若未指定鏈名,則清空表中所有鏈
-L列出(--list)指定鏈中所有的規則,若未指定鏈名,則列出表中的所有鏈
-n使用數字形式(--numeric)顯示輸出和結果,如顯示IP地址而不是主機名
-v顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
--line-numbers查看規則時,顯示規則的序號

[root@localhost ~]# iptables -L -n 默認查看filter表 [root@localhost ~]# iptables -t filter -L -n ? -t指定表 -------------------------------------------------

4.2、規則的匹配

1、通用匹配

可直接使用,不依賴于其他條件或擴展,包括網絡協議、IP地址、網絡接口等條件

  • 協議匹配:-p 協議名 (tcp\udp\imcp)

  • 地址匹配:-s 源地址 、 -d 目標地址 #可以是IP、網段、域名、空(任何地址)

  • 接口匹配:-i 入站網卡 -o 出站網卡

2、隱含匹配

要求以特定的協議匹配作為前提,包括端口、TCP標記、ICMP類型等條件

端口匹配:--sport源端口、--dport目的端口

##可以是個別端口、端口范圍

  • --sport 1000 匹配源端口是1000的數據包

  • --sport 1000:3000 匹配源端口是1000-3000的數據包

  • --sport :3000 匹配源端口是3000及以下的數據包

  • --sport 1000: 匹配源端口是1000及以上的數據包

注意:--sport和--dport必須配合-p<協議類型>使用

3、顯示匹配

要求以“-m 擴展模塊”的形式明確指出類型,包括多端口、MAC地址、IP范圍、數據包狀態等條件

多端口匹配:-m multiport --sport 源端口列表

-m multiport --dport 目的端口列表

IP范圍匹配:-m iprange --src-range IP范圍

5、SNAT與NAT

SNAT源地址轉換

  • 數據包從內網發送到公網時,SNAT會把數據包的源IP由私網IP轉換成公網IP

  • 當響應的數據包從公網發送到內外時,會把數據包的目的IP由公網IP轉換為私網IP

DNAT目標地址轉換

  • 修改數據包的目的地址

1、準備工作

服務端7-7 ? VMNet1 ? 內網 ? 192.168.80.20 ---------------------------------------------- systmectl stop firewalld systemctl disable firewalld setenfence 0 VMNet1 ? 內網 vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.80.20 GATEWAY=192.168.80.12 #DNS systemctl restart networi --------------------------------------------- 客戶端7-8 VMNet2 外網 ? ? 12.0.0.200 systmectl stop firewalld systemctl disable firewalld setenfence 0 VMNet2 外網 vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=12.0.0.200 GATEWAY=12.0.0.254 #DNS systemctl restart network ------------------------------------------- 網關服務器 7-2 ? ? ? ? ? 192.168.80.12 ? 12.0.0.254 加網卡 ? VMNet1 VMNet2 外網 ? 都是僅主機模式 vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.80.12 #GATEWAY #DNS vim /etc/sysconfig/network-scripts/ifcfg-ens36 #UUID IPADDR=12.0.0.254 #GATEWAY #DNS systemctl restart network

2、驗證工作

----------------------------------------------- 網關服務器 7-2 ? ? ? ? ? 192.168.80.12 ? 12.0.0.254 ----------------------------------------------- vim /etc/sysctl.conf ? ? 打開IP轉換功能 net.ipv4.ip_forward=1 ? sysctl -p ? ? ---------------------------------------------- 服務端7-7 ? VMNet1 ? 內網 ? 192.168.80.20 ---------------------------------------------- yum install -y httpd systemctl start httpd cd /var/www/html echo 'this is second test web!' > index.html (三機去火花瀏覽器驗證) ---------------------------------------------

3、轉發功能

網關服務器 7-2 ? ? ? ? ? 192.168.80.12 ? 12.0.0.254 ------------------------------------------------------- iptables -nL iptables -nL -t nat iptables -F &&iptables -F -t nat ? 刪表 iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j SNAT --to 12.0.0.254 iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 8080 -j DNAT --to 192.168.80.20:80 systemctl restart httpd

總結

以上是生活随笔為你收集整理的iptables防火墙与SNAT和DNAT的全部內容,希望文章能夠幫你解決所遇到的問題。

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