iptables filter表案例和iptables nat表的應有

iptables filter表案例:

 iptables小案例
 vi /usr/local/sbin/iptables.sh //加入以下內容
#! /bin/bash
ipt="/usr/sbin/iptables"            =  定義一個變量
$ipt -F                                 =  清空以前的默認規則
$ipt -P INPUT DROP            = 把進入的數據包拒絕掉     INPUT=進入的數據包
$ipt -P OUTPUT ACCEPT      =把轉發出去的數據包放行   OUTPUT=本機出去的數據包
$ipt -P FORWARD ACCEPT    =默認放行FORWARD 
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  =指定放行的狀態   
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT    = 指定放行的端口
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT     = 放行80端口
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT      =   放行21端口
 icmp示例
 iptables -I INPUT -p icmp --icmp-type 8 -j DROPwindows

寫完腳本後而且執行腳本,而後查看腳本的規則。bash

 

iptables -I INPUT -p icmp --icmp-type 8 -j DROP    (能夠ping外網,可是禁止別人ping本機)網絡

 

nat表的應用:

 

  • A機器兩塊網卡ens33(192.168.202.130)、ens37(192.168.100.1),ens33能夠上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37能夠通訊互聯。

需求1:可讓B機器鏈接外網

  • A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward
  • A上執行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
  • B上設置網關爲192.168.100.1

實現:

  1. 首先準備兩臺機器(如果怕實驗失敗,可先快照下)tcp

  2. 在虛擬機hf上在添加一塊網卡(已添加過一塊虛擬網卡)spa

輸入圖片說明

3.而後默認的是NAT模式,而後點擊完成命令行

輸入圖片說明

4.在選擇添加的網卡,並在右側,選擇LAN區段視頻

選擇LAN區段,就至關於咱們給網卡鏈接到了內網的一個交換機上,這個交換機,用windows機器是沒法鏈接的,這樣這臺機器和那臺機器連上同一個內網的交換機,它們二者之間通訊便可。server

輸入圖片說明

5.而後選擇LAN區段中,剛設置的名稱爲「內網」圖片

輸入圖片說明

6.最後點擊肯定ip

7.選擇克隆的虛擬機hf-02,並添加網卡——>在這臺虛擬機上自己有一塊網卡,由於已經編輯過IP,因此咱們能夠直接禁掉這個網卡

輸入圖片說明

8.而後hf-02添加一塊網卡,和hf添加網卡步驟同樣相同,並選擇LAN區段,中的「內網」,並確認

9.重啓兩臺虛擬機

  • hf-02虛擬機中沒有了windows所能鏈接的IP,因此就沒法遠程鏈接hf-02

10.打開hf虛擬機,輸入ifconfig命令,會看到添加了一個網卡eno33554984

11.這裏會看到eno33554984網卡,並無IP,並設置IP(新建那個當私網IP,你能夠跟跟視頻中的同樣,也能夠本身設置)

設定IP有兩種方法:

  • 1.能夠命令行添加IP
    • 命令行ifconfig ens36 192.168.100.1/24
  • 2.也能夠設置配置文件,設置配置文件和設置虛擬網卡同樣的步驟
    • 將eno16777736網卡配置文件複製成eno33554984,並修改裏面的IP和NETMASK便可其餘都不須要管

12.執行命令行ifconfig ens36 192.168.100.1/24,而後運行ifconfig命令,會看到eno33554984網卡有了IP

   手動命令行ifconfig ens36 192.168.100.1/24,設置IP

13.可是eno33554984網卡的IP,在虛擬機一重啓,那麼IP就會沒了——>若想永久生效,就去編輯配置文件,但默認配置文件是不存在的,須要拷貝eno16777736網卡的配置文件,而後更改其中的內容

14.由於hf-02虛擬機沒法遠程,因此只能在虛擬機上操做

15.用ifconfig命令查看hf-02虛擬機的網卡,會發現也沒有IP地址

16.這裏若想徹底禁掉eno16777736網卡,可執行ifdown eno16777736命令(這一步可省略,若一直失敗的話,只要在設置好IP,兩個私網IP互通便可)

輸入圖片說明

但有時會提示MAC地址不對,這時候進網卡配置文件中

  • 方法一:註釋掉HWADDR參數
  • 方法二:看是否存在DEVICE參數。若沒有,則增長上DEVICE參數——>(本身的是沒有的)
  • 方法三:直接刪除以前的網卡,新建虛擬網卡

17.給eno33554984網卡設置IP地址,命令行ifconfig ens36 192.168.100.100/24

18.而後用ifconfig命令,查看新建的網卡IP地址

輸入圖片說明

19.這裏會看到hf-02虛擬機中的eno16777736網卡,可是是沒法ping通的——>若爲了保險這裏能夠執行命令ifdown eno16777736

20.這裏會看到hf-02虛擬機中的eno16777736網卡,可是是沒法ping通的——>若爲了保險這裏能夠執行命令ifdown eno16777736

21.這時候,兩臺虛擬機中新建網卡的IP互相嘗試互相ping通

輸入圖片說明

輸入圖片說明

22.這時hf機器上須要打開路由轉發 ——>想使用nat表,使用網絡的轉發,必須修改內核參數

  • 默認/proc/sys/net/ipv4/ip_forward這個文件爲0——>這個文件爲0,表示這個文件沒有開啓內核轉發

23.將文件/proc/sys/net/ipv4/ip_forward默認改成1,打開端口轉發

  • 要想實現nat應用,必須打開端口轉發

24.在hf虛擬機上增長一條規則iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

25.實現100.0網段能夠上網,作一個欺騙

26.給hf-02設置網關(數據包過去,從hf到hf-02,從hf-02到hf,設置好默認網關)

輸入圖片說明

27.而後hf-02嘗試是否能ping通192.168.202.130,這就意味着能夠和外網通訊了

輸入圖片說明

28.設置DNS,在/etc/resolv.conf中設置,添加nameserver 119.29.29.29

輸入圖片說明

29.這時候就能夠ping通外網了——>但物理機仍是沒法ping通hf-02的虛擬機IP地址

30.需求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.133.130
  • B上設置網關爲192.168.100.1
相關文章
相關標籤/搜索