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