linux下利用iptables配置路由器

2021-07-25 09:01:53 字數 2165 閱讀 3154

這個任務其實是前段時間《網路安全》課程的乙個小實驗。實驗的要求是在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

echo '1'>/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...