iptables nat表含义_十(4)iptables语法、iptables filter表小案例、iptables nat表应用
iptables語(yǔ)法
filter表:
INPUT鏈:作用于進(jìn)入本機(jī)的包
OUTPUT鏈:作用于送出本機(jī)的包
FORWARD鏈:作用于和本機(jī)無(wú)關(guān)的包
nat表:
PREROUTING鏈:作用是包在剛剛到達(dá)防火墻時(shí)改變包的目標(biāo)地址
OUTPUT鏈:改變本地產(chǎn)生的包的目標(biāo)地址
POSTROUTING鏈:作用是在包將離開(kāi)防火墻時(shí)改變包源地址
1.查看iptables規(guī)則
iptables -nvL ?(此時(shí)默認(rèn)查看filter表,加選項(xiàng) -t 可以指定表 iptables -t nat -nvL)
(規(guī)則的保持路徑: /etc/sysconfig/iptables
)
把所有規(guī)則清空 iptables -F:(/etc/sysconfig/iptables仍然是保存著的)
保存默認(rèn)規(guī)則到配置文件(/etc/sysconfig/iptables)
重啟一下服務(wù):service iptables restart (因?yàn)閯倓倓h除了規(guī)則:iptables -F ,需要重啟加載。否則無(wú)東西可保持!)
執(zhí)行:service iptables save ? ? 保存
當(dāng)我們添加規(guī)則的時(shí),如果需要保存到配置文件需要保存操作(service iptables save),否則只是保持在當(dāng)前的內(nèi)存中。
2. iptables -Z ?把計(jì)數(shù)器清零 (因?yàn)槊繒r(shí)每刻都是在通信,數(shù)據(jù)清零一會(huì)又會(huì)有數(shù)據(jù))
iptables -Z; iptables -nvL
3.增加/刪除一條規(guī)則:
-A/-D ?表示增加或刪除一條規(guī)則
-I : ? ? 表示插入一條規(guī)則
-p ? : ?指定協(xié)議(tcp、udp、icmp)
--dport ? 和-p一起使用,指定目標(biāo)端口 ?(使用dport必須使用-p指定協(xié)議)
--sport ? ?和-p一起使用,指定源端口 ??(使用dport必須使用-p指定協(xié)議)
-s ? ? ? ? ? ?表示指定源IP
-d ? ? ? ? ? 表示指定目標(biāo)ip
-j ? ? 后面加動(dòng)作: (1)ACCEPT ?允許包 ?(2)DROP 丟掉包 (3)REJECT 拒絕包
-i ? 指定網(wǎng)卡
(DROP 丟掉包 和 REJECT 拒絕包 :效果一樣,DROP 丟掉包,直接把包丟棄;REJECT 拒絕包 :分析過(guò)再拒絕)
(3.1)增加規(guī)則
如:
(操作默認(rèn)表filter)
iptables -A INPUT -s 192.168.136.1 -p tcp --sport 1234 -d 192.168.136.123 --dport 80 -j DROP
iptables -I INPUT -p tcp --dport 80 -j DROP
(-I 和-A 的區(qū)別 ,-I把規(guī)則插入到最前面,-A把規(guī)則添加到最后,在過(guò)濾時(shí),先執(zhí)行最前面的)
(3.2)刪除規(guī)則 -D
1.(記得規(guī)則前提下刪除規(guī)則,直接把選項(xiàng)加-D)
iptables -D INPUT -s 192.168.136.1 -p tcp --sport 1234 -d 192.168.136.123 --dport 80 -j DROP
iptables -D INPUT -p tcp --dport 80 -j DROP
(2)不記得規(guī)則命令時(shí)刪除規(guī)則方法:
a.把規(guī)則的序列號(hào)打印出來(lái) iptables -nvL --line-number
b.針對(duì)規(guī)則編號(hào)進(jìn)行刪除
iptables -D INPUT 規(guī)則編號(hào)
iptables -D INPUT ?1
iptables -nvL 可以看到鏈的默認(rèn)策略
通過(guò)-P 可以改鏈的策略(千萬(wàn)不要執(zhí)行)
iptables -P OUTPUT DROP
(如果執(zhí)行了這個(gè)命令,則我們遠(yuǎn)程連接就會(huì)鏈接不上,因?yàn)槲覀兊陌荒苷5姆祷亟o我們)
iptables filter表小案例
需求:對(duì)filter表開(kāi)放22端口、80端口、 21端口,INPUT鏈:DROP ,OUTPUT鏈和FORWARD鏈:ACCEPT,22端口只針對(duì)192.168.136.0/24開(kāi)通,所有網(wǎng)段開(kāi)發(fā)80端口、 21端口。
(這條規(guī)則必須要寫,不然后面的80端口和21端口無(wú)法取得包)
看結(jié)果:
icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
執(zhí)行命令后,只能ping通外網(wǎng),別人不能ping通我們的本機(jī)(禁ping作用)
命令的 8 是指能在本機(jī)ping 同其他機(jī)器,而其他機(jī)器不能ping通本機(jī)。
ptables nat表應(yīng)用
(一).首先準(zhǔn)備兩臺(tái)機(jī)器(讓A\B能相連)
先在兩臺(tái)機(jī)器都添加多一個(gè)網(wǎng)絡(luò)適配器
步驟 :
第一臺(tái)機(jī)器 ?編輯虛擬機(jī)設(shè)置 -->添加-->網(wǎng)絡(luò)適配器-->選中右邊LAN(圖中操作)-->選中我們定義的LAN區(qū)段--->確認(rèn)
(LAN相當(dāng)于網(wǎng)卡選到一個(gè)內(nèi)網(wǎng)交換機(jī)上,但此時(shí)我們的window機(jī)連不上這個(gè)交換機(jī))
第二臺(tái)機(jī)器:(也是添加一個(gè)網(wǎng)絡(luò)適配器,因?yàn)樵瓩C(jī)器上已經(jīng)配置了一個(gè)ip)
(首先把原來(lái)網(wǎng)絡(luò)適配器設(shè)備狀態(tài) 啟動(dòng)時(shí)連接 選項(xiàng)取消,(此時(shí)ip不存在,不能再遠(yuǎn)程連接)。再開(kāi)始添加網(wǎng)絡(luò)適配器)
啟動(dòng)兩臺(tái)機(jī)器
第一臺(tái)機(jī)器:(查看一下ip,ifconfig)
1. ?設(shè)置ip
方法一:(步驟和設(shè)置虛擬網(wǎng)卡一樣)
(1)先復(fù)制一份配置文件 cp ?/etc/sysconfig/network-scripts/ifcfg-ens33 ?/etc/sysconfig/network-scripts/ifcfg-ens37
(2) 修改配置文件 vim?/etc/sysconfig/network-scripts/ifcfg-ens37
(3)保存退出
方法二:(臨時(shí)生效)
命令:ifconfig ens37 192.168.100.1/24 (臨時(shí)設(shè)置,重啟消失)
第二臺(tái)機(jī)器(B )
(我們?cè)谠O(shè)置網(wǎng)絡(luò)適配器時(shí)已經(jīng)取消它開(kāi)機(jī)啟動(dòng),使用命令
ifdown ens33 是為更保險(xiǎn)的down掉ens33網(wǎng)卡對(duì)實(shí)現(xiàn)的影響)
1.設(shè)置ip
方法如上第一臺(tái)機(jī)器
設(shè)置ip為 ifconfig ens37 192.168.100.100/24
配置完了ip 測(cè)試兩臺(tái)機(jī)器相ping是否通:
A機(jī)器:
ping 192.168.100.100
查看配置的網(wǎng)卡是否有問(wèn)題方法:
(1)ping 自己的ip
(2)mii-tool 網(wǎng)卡名(mii)
(以上準(zhǔn)備工作已經(jīng)實(shí)現(xiàn)A,B兩臺(tái)機(jī)器可以通信,能相互ping通)
(二)
1.A機(jī)器修改一下配置文件,開(kāi)啟內(nèi)核轉(zhuǎn)發(fā)
內(nèi)核參數(shù)配置文件: /proc/sys/net/ipv4/ip_forward
默認(rèn)內(nèi)容為:“0” 表示沒(méi)有開(kāi)啟內(nèi)核轉(zhuǎn)發(fā)
把配置文件中的"0"改為1 開(kāi)啟內(nèi)核轉(zhuǎn)發(fā)
echo "1" >/proc/sys/net/ipv4/ip_forward
2.A實(shí)現(xiàn)設(shè)置的網(wǎng)段能上網(wǎng)
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
3.?B上設(shè)置網(wǎng)關(guān)為192.168.100.1
(數(shù)據(jù)包要想從B-->A ,必須設(shè)置一個(gè)網(wǎng)關(guān))
查看網(wǎng)關(guān)命令: route -n
還沒(méi)網(wǎng)關(guān)
設(shè)置網(wǎng)關(guān):route add default gw 192.168.100.1 (A機(jī)器的網(wǎng)卡ens37的ip)
route add default gw 192.168.100.1
接著測(cè)試 是否能ping同A機(jī)器的ens33,同則證明能外網(wǎng)/公網(wǎng)通信
設(shè)置DNS 鏈接到網(wǎng)絡(luò)上
vi /etc/resolv.conf
添加內(nèi)容保存: nameserver 119.29.29.29
保存后測(cè)試是否能ping通外網(wǎng):ping www.baidu.com
(實(shí)驗(yàn)不能ping通外網(wǎng),可能是和我的網(wǎng)絡(luò)環(huán)境(實(shí)驗(yàn)時(shí)我用的網(wǎng)絡(luò)是手機(jī)熱點(diǎn)),但是此時(shí)我能ping通A機(jī)器的ens33和ping通網(wǎng)關(guān)就行了)
應(yīng)用需求二:
需求2:C機(jī)器只能和A通信,讓C機(jī)器可以直接連通B機(jī)器的22端口
A上打開(kāi)路由轉(zhuǎn)發(fā)echo "1">/ proc/sys/net/ipv4/ip_forward
A上執(zhí)行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
A上執(zhí)行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.136.133
B上設(shè)置網(wǎng)關(guān)為192.168.100.1
(其實(shí)就是端口映射)
1.A上打開(kāi)端口轉(zhuǎn)發(fā)
echo "1">/ proc/sys/net/ipv4/ip_forward
2.刪除需求一的nat表的設(shè)置,讓它恢復(fù)為空:
執(zhí)行命令:iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
(因之前操作過(guò):iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE)
3.向nat表添加操作:
(3.1)A上執(zhí)行
iptables -t nat -A PREROUTING -d 192.168.136.133 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 ? (實(shí)現(xiàn)把進(jìn)來(lái)的包通過(guò)端口映射轉(zhuǎn)發(fā)到22端口)
(3.2)A上執(zhí)行
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.136.133 (返回的包,進(jìn)行SNAT操作)
4.給B機(jī)器加上網(wǎng)關(guān)(必須要設(shè)置網(wǎng)關(guān))
route add default gw 192.168.100.1
5.測(cè)試,使用192.168.136.133 /1234端口遠(yuǎn)程連接B機(jī)器
(實(shí)驗(yàn)不成功)
iptables規(guī)則備份和恢復(fù)
1. service iptables save //命令會(huì)把規(guī)則保存到 /etc/sysconfig/iptables
根據(jù)自己的需求把iptables規(guī)則保存到指定的文件中:
步驟:iptables-save > /自定義文件
iptables-save >/tmp/ipt.txt
恢復(fù)保存的規(guī)則:
iptables-restore < /保存的文件
iptables-restore
總結(jié)
以上是生活随笔為你收集整理的iptables nat表含义_十(4)iptables语法、iptables filter表小案例、iptables nat表应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux没有interface文件,L
- 下一篇: simulink 解析udp数据_DNS