1. 程式人生 > >2018.1.25 7周4次課

2018.1.25 7周4次課

http bin pin 轉發 技術 lin 能夠 訪問外網 周四

七周四次課(1月25日)

10.15 iptables filter表案例

10.16/10.17/10.18 iptables nat表應用

10.15 iptables filter表案例

需求:只針對filter表,預設策略INPUT鏈DROP, 其他兩個鏈ACCEPT,然後針對192.168.37.0/24開通22端口,對所有網段開放80端口,對所有網段開放21端口。

這個需求不算復雜,但是因為有多條規則,所以最好寫成腳本的形式。腳本內容如下:

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 ACCEPT策略

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //指定包的連接狀態RELATED,ESTABLISHED放行

$ipt -A INPUT -s 192.168.37.0/24 -p tcp --dport 22 -j ACCEPT //192.168.37.0/24網段的22端口放行

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT //80端口數據包放行

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT //80端口數據包放行

技術分享圖片

icmp示例

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

這裏--icmp-type選項要跟-p icmp—起使用,後面指定類型編號。這個8指的是能在本機ping通其他機器,而其他機器不能ping通本機

10.16/10.17/10.18 iptables nat表應用

其實,Linux的iptales功能是十分強大的。一位老師曾經這樣形容Linux的網絡功能:只有想不到,沒有做不到!也就是說,只要你能夠想到的關於網絡的應用,Linux都能幫你實現。你在日常生活中應該接觸過路由器,它的功能就是分享上網。本來一根網線過來(其實只有一個公網IP),通過路由器後,路由器分配一個網段(私網IP),這樣連接路由器的多臺pc都能連接因特網,而遠端的設備認為你的IP就是那個連接路由器的公網IP。這個路由器的功能其實就是由Linux的iptables實現的,而iptales又是通過nat表作用而實現的。

nat表應用

A機器兩塊網卡ens33(192.168.37.100)、ens37(192.168.100.1),ens33可以上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37可以通信互聯。

  1. 需求1:可以讓B機器連接外網

  • 在虛擬機A機器上添加一塊網卡,在虛擬機B機器上添加一塊網卡。

虛擬機A網卡

技術分享圖片

  • 設置虛擬機A上的ens37網卡IP地址

技術分享圖片

這種設置系統重啟後,IP地址就沒有了。

技術分享圖片

  • 設置虛擬機B上的ens37網卡IP地址

技術分享圖片

技術分享圖片

  • A和B機器互通

技術分享圖片

技術分享圖片

宿主機無法ping通虛擬機A和B,虛擬機B無法訪問外網

技術分享圖片

技術分享圖片

  • A機器上打開路由轉發

技術分享圖片

技術分享圖片

  • A上執行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

技術分享圖片

  • B上設置網關為192.168.100.1

技術分享圖片

技術分享圖片

  • B機器連接外網

A機器清空filter表的規則

技術分享圖片

技術分享圖片

宿主機無法ping通虛擬機A和B,虛擬機

技術分享圖片

  1. 需求2:C機器只能和A通信,讓C機器可以直接連通B機器的22端口

  • A機器上打開路由轉發

技術分享圖片

技術分享圖片

  • 刪除原有規則

技術分享圖片

  • A機器上執行iptables -t nat -A PREROUTING -d 192.168.37.100 -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.37.100

  • B機器上設置網關為192.168.100.1

  • 設置xshell,並連接

技術分享圖片

能聯通外網

技術分享圖片


2018.1.25 7周4次課