linux下利用iptables配置路由器

2021-06-26 14:57:20 字數 2740 閱讀 8276

這個任務其實是前段時間《網路安全》課程的乙個小實驗。實驗的要求是在virtualbox中執行兩台虛擬機器,一台linux機器用作路由器(該機器配置兩個網絡卡,乙個連線到外網,乙個連線到內網),一台windows機器連線到內網,通過linux的路由器功能上網。

首先配置下實驗環境。實驗中真機為win7系統,dns是202.38.64.56,虛擬機器為32位ubuntu(1404)主機一台。32位win7主機一台。

虛擬機器win7

有一張網絡卡,上網模式是

host only,ip

位址是192.168.56.102

(連線到內網

192.168.56.0/24

)。虛擬機器

ubuntu

有兩張網絡卡:

eth0

的上網模式是

nat ,ip

位址是10.0.2.15(

用該ip

模擬公網

ip,因為它連線到外網

)。eth1

的上網模式是

host only,ip

位址是192.168.56.101

(連線到內網

192.168.56.0/24

)本實驗用

ubuntu

主機做路由器,使虛擬機器

win7

在host only

模式下能上網.。

然後簡單了解下iptables的基本使用:

iptables [-t表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]

幾個注意事項:

不指定表名時,預設表示filter表

不指定鏈名時,預設表示該錶內所有鏈

除非設定規則鏈的預設策略,否則需要指定匹配條件

下面是對兩個虛擬機器的配置:

配置虛擬機器win7:

設定ip 192.168.56.102

子網掩碼

255.555.555.0

預設閘道器

192.168.56.101

(該ip

位址對應

ubuntu

的eth1

的host only的ip

位址)首選

dns伺服器

172.17.1.6

(與真機上的

dns一致)

配置linux虛擬機器:

root

使用者執行

:modprobe ip_tables

modprobe ip_nat_ftp 在

linux

啟動時,

ip_tables

和iptable_nat

兩個模組在核心中並不是預設的啟動項,因此上述兩條語句就是先將這兩個必須的模組啟動。

iptables-p input accept

iptables -p output accept

iptables -p forward accept

設定防火牆規則,對於輸入輸出和**的包均設定為接受狀態。

建立偽裝和ip**:

iptables -t nat -a postrouting -o

eth0

-jmasquerade

iptables -a forward -i

eth1

-j accept

引數說明:

-t nat:

呼叫nat

表,呼叫這個說明遇到了產生新的連線的包。

-a postroutin:

指定資訊包打算離開防火牆時改變它們的規則,意即使用

nat。

-ieth1:

輸入介面為

eth1

。-o eth0:

輸出介面為

eth0

。-j masquerade:

指定進行位址偽裝,意即將內網位址偽裝成外界面

eth0

的位址進行傳輸。

這兩條命令的意思就是將內網向外連線的資料報(從

eth1

接收到的資料報)的位址轉換為外網介面的位址並從外界面(從

eth0

介面**)**。

修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1:

echo1>/proc/sys/net/ipv4/ip_forward

執行sysctl -p,使核心引數修改生效。

根據實驗原理所述的配置方法,對ubuntu和win7虛擬機器進行相應配置,使win7虛擬機器能夠通過ubuntu虛擬機器開啟的路由器功能連線到外網。得到實驗結果如下:

本文在實現過程中參考了這篇文章這篇文章中某些步驟並非必要,本文中省略之。

linux使用iptable做閘道器

linux 需要兩個網絡卡 乙個外網網絡卡乙個內網網絡卡 乙個外網絡卡 cat etc sysconfig network scripts ifcfg eth0 device eth0 type ethernet onboot yes nm controlled yes bootproto none...

利用iptable控制對外網ftp服務的訪問許可權

假定eth0為外網網絡卡 iptables a input i eth0 p tcp s any 0 sport 21 d 192.168.0.0 24 dport 1024 65535 j accept iptables a output i eth0 p tcp s 192.168.0.0 24...

Linux 下利用rtcwake喚醒裝置

以下是在opensuse上所做的測試 whereis rtcwake rtcwake usr sbin rtcwake usr share man man8 rtcwake.8.gz rtcwake help usage rtcwake options options d,device select...