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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iptables防火墙与SNAT和DNAT

發(fā)布時(shí)間:2024/3/24 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iptables防火墙与SNAT和DNAT 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、防火墻分類(lèi)

硬件防火墻 ? 華為E9000 ----------------------------------------- 軟件防火墻 ? ? iptables ? Centos5/6 ? 系統(tǒng)默認(rèn)防火墻 firewalld ? Centos7/8 ? 系統(tǒng)默認(rèn)防火墻

2、Linux防火墻基礎(chǔ)

netfilter

  • 位于Linux內(nèi)核中的包過(guò)濾功能體系

  • 稱(chēng)為L(zhǎng)inux防火墻的”內(nèi)核態(tài)“

iptables

  • 位于/sbin/intables,用來(lái)管理防火墻規(guī)則的工具

  • 稱(chēng)為L(zhǎng)inux防火墻的”用戶(hù)態(tài)“

Linux系統(tǒng)的防火墻:IP信息包過(guò)濾系統(tǒng),它實(shí)際上由兩個(gè)組件netfilter和iptables組成 主要工作在網(wǎng)絡(luò)層,針對(duì)IP數(shù)據(jù)包。體現(xiàn)在對(duì)包內(nèi)的IP地址、端口、協(xié)議等信息的處理

netfilter/iptables關(guān)系:

  • netfilter:屬于”內(nèi)核態(tài)“(Kernel Space,又稱(chēng)為內(nèi)核空間)的防火墻功能體系

    是內(nèi)核的一部分,由一些數(shù)據(jù)包過(guò)濾表組成,這些表包含內(nèi)核用來(lái)控制數(shù)據(jù)包過(guò)濾處理的規(guī)則集

  • iptables:屬于”用戶(hù)態(tài)“(User space,又稱(chēng)為用戶(hù)空間)的防火墻管理體系

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

  • netfilter/iptables后期簡(jiǎn)稱(chēng)為iptables。iptables是基于內(nèi)核的防火墻,其中內(nèi)置了raw、mangles、nat和filter四個(gè)規(guī)則表。表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)

    ?

3、四表五鏈

規(guī)則表的作用:容納各種規(guī)則鏈

規(guī)則鏈的作用:容納各種防火墻規(guī)則

3.1、四表

  • raw表:確定是否對(duì)該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤。包括兩個(gè)規(guī)則鏈,OUTPUT、PREROUTING

  • mangle表:修改數(shù)據(jù)包內(nèi)容,用來(lái)做流量整形的,給數(shù)據(jù)包設(shè)置標(biāo)記。包括五個(gè)規(guī)則鏈,INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

  • nat表:負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來(lái)修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包括三個(gè)規(guī)則鏈,OUTPUT、PREROUTING、POSTROUTING

  • filter表:負(fù)責(zé)過(guò)濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包(過(guò)濾)。包括三個(gè)規(guī)則鏈,INPUT、FORWARD、OUTPUT

優(yōu)先順序

  • 數(shù)據(jù)包到達(dá)防火墻時(shí),規(guī)則表之間的優(yōu)先順序raw>mangle>nat>filter

  • ?

3.2、五鏈

  • INPUT:處理入站數(shù)據(jù)包,匹配IP為本機(jī)的數(shù)據(jù)包

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

  • FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包,匹配流經(jīng)本機(jī)的數(shù)據(jù)包

  • PREROUTING:在進(jìn)行路由選擇前處理數(shù)據(jù)包,用來(lái)修改目的地址,用來(lái)做DNAT,相當(dāng)于把內(nèi)網(wǎng)服務(wù)器的IP和客戶(hù)端映射到路由器的外網(wǎng)IP和端口上

  • PSOTOUTING:在進(jìn)行路由選擇后處理數(shù)據(jù)包,用來(lái)修改源地址,用來(lái)做SNAT,相當(dāng)于把內(nèi)網(wǎng)通過(guò)路由器NATZ轉(zhuǎn)換功能實(shí)現(xiàn)內(nèi)網(wǎng)主機(jī)通過(guò)一個(gè)公網(wǎng)IP地址上網(wǎng)

優(yōu)先順序

規(guī)則鏈之間的匹配順序:

主機(jī)型防火墻:

  • 入站數(shù)據(jù)(來(lái)自外界的數(shù)據(jù)包,且目標(biāo)地址是防火墻本機(jī)):PREROUTING——>INPUT——>本機(jī)的應(yīng)用程序

  • 出站數(shù)據(jù)(從防火墻本機(jī)向外部地址發(fā)送的數(shù)據(jù)包):本機(jī)的應(yīng)用程序——>OUTPUT——>POSTOUTING

網(wǎng)絡(luò)型防火墻:

  • 轉(zhuǎn)發(fā)數(shù)據(jù)(需要經(jīng)過(guò)防火墻轉(zhuǎn)發(fā)的數(shù)據(jù)包):PREOUTING——>FORWARD——>POSTOUTING

  • ?

規(guī)則鏈內(nèi)的匹配順序

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

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

4、安裝iptables

Centos 7默認(rèn)使用firewalld防火墻,沒(méi)有安裝iptables,若想使用iptables防火墻。必須先關(guān)閉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 表名] 管理選項(xiàng)[鏈名] [匹配條件] [-j 控制類(lèi)型]

注意事項(xiàng):

  • 不指定表名時(shí),默認(rèn)指filter表

  • 不指定鏈名時(shí),默認(rèn)指表內(nèi)的所有鏈

  • 除法設(shè)置鏈的默認(rèn)策略,否則必須指定匹配條件

  • 控制類(lèi)型使用大寫(xiě)字母,其余均為小寫(xiě)

常用的控制類(lèi)型

類(lèi)型解釋
ACCEPT允許數(shù)據(jù)包通過(guò)
DROP直接丟棄數(shù)據(jù)包通過(guò),不給出任何回應(yīng)信息
REJECT拒絕數(shù)據(jù)包通過(guò),會(huì)給數(shù)據(jù)發(fā)送端一個(gè)響應(yīng)信息
SNAT修改數(shù)據(jù)包的源地址
DNAT修改數(shù)據(jù)包的目的地址
MASQUERADE偽裝成一個(gè)非固定公網(wǎng)IP地址
LOG在/var/log/messages文件中記錄日志信息,然后

常用的管理選項(xiàng)

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

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

4.2、規(guī)則的匹配

1、通用匹配

可直接使用,不依賴(lài)于其他條件或擴(kuò)展,包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等條件

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

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

  • 接口匹配:-i 入站網(wǎng)卡 -o 出站網(wǎng)卡

2、隱含匹配

要求以特定的協(xié)議匹配作為前提,包括端口、TCP標(biāo)記、ICMP類(lèi)型等條件

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

##可以是個(gè)別端口、端口范圍

  • --sport 1000 匹配源端口是1000的數(shù)據(jù)包

  • --sport 1000:3000 匹配源端口是1000-3000的數(shù)據(jù)包

  • --sport :3000 匹配源端口是3000及以下的數(shù)據(jù)包

  • --sport 1000: 匹配源端口是1000及以上的數(shù)據(jù)包

注意:--sport和--dport必須配合-p<協(xié)議類(lèi)型>使用

3、顯示匹配

要求以“-m 擴(kuò)展模塊”的形式明確指出類(lèi)型,包括多端口、MAC地址、IP范圍、數(shù)據(jù)包狀態(tài)等條件

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

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

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

5、SNAT與NAT

SNAT源地址轉(zhuǎn)換

  • 數(shù)據(jù)包從內(nèi)網(wǎng)發(fā)送到公網(wǎng)時(shí),SNAT會(huì)把數(shù)據(jù)包的源IP由私網(wǎng)IP轉(zhuǎn)換成公網(wǎng)IP

  • 當(dāng)響應(yīng)的數(shù)據(jù)包從公網(wǎng)發(fā)送到內(nèi)外時(shí),會(huì)把數(shù)據(jù)包的目的IP由公網(wǎng)IP轉(zhuǎn)換為私網(wǎng)IP

DNAT目標(biāo)地址轉(zhuǎn)換

  • 修改數(shù)據(jù)包的目的地址

1、準(zhǔn)備工作

服務(wù)端7-7 ? VMNet1 ? 內(nèi)網(wǎng) ? 192.168.80.20 ---------------------------------------------- systmectl stop firewalld systemctl disable firewalld setenfence 0 VMNet1 ? 內(nèi)網(wǎng) vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.80.20 GATEWAY=192.168.80.12 #DNS systemctl restart networi --------------------------------------------- 客戶(hù)端7-8 VMNet2 外網(wǎng) ? ? 12.0.0.200 systmectl stop firewalld systemctl disable firewalld setenfence 0 VMNet2 外網(wǎng) vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=12.0.0.200 GATEWAY=12.0.0.254 #DNS systemctl restart network ------------------------------------------- 網(wǎng)關(guān)服務(wù)器 7-2 ? ? ? ? ? 192.168.80.12 ? 12.0.0.254 加網(wǎng)卡 ? VMNet1 VMNet2 外網(wǎng) ? 都是僅主機(jī)模式 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、驗(yàn)證工作

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

3、轉(zhuǎn)發(fā)功能

網(wǎng)關(guān)服務(wù)器 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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。