1、背景描述
eth1綁定172.17.0.0/16的IP,該網段IP能夠經過172.17.1.1
上網
eth0綁定192.168.10.0/24的IP,該網段IP能夠經過192.168.10.1上網
eth2綁定192.168.1.1,是內網用戶的網關
2、需求分析
但因爲工做須要,部分用戶應該有訪問圖中「專用
網絡
」的權限
也就是說,應該走192.168.10.1這個路由
另一點,全部人應該能夠訪問FTP服務器,這個服務器的IP是192.168.10.96
也就是說,走172.17.1.1路由的人,也應該能訪問192.168.10.96,且能夠上網。
3、解決方案
要解決這個問題,用到了一下幾個命令,具體
使用
方法須要另查資料。
ip route
ip rule
一、綁定IP
ifconfig eth1 172.17.3.x netmask 255.255.0.0
ifconfig eth0 192.168.10.2 netmask 255.255.255.0
ifconfig eth2 192.168.1.1 netmask 255.255.255.0
而後分別修改/etc/sysconfig/network-script/ifcfg-ethx文件,以使計算機啓動自動設置IP地址。
二、建立特殊路由表
vi /etc/iproute2/rt_table
代碼
:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
200 NET10
#
# local
#
#1 inr.ruhep
上面那個200 NET10爲新添加,自定義編號爲200,名字爲NET10
三、向NET10路由中添加它本身的默認路由
代碼:
ip route add default via 192.168.10.1 table NET10
注意,這個table NET10必定不要忘了寫,不然寫到了主路由表中。
四、建立特殊路由規則
用ip rule能夠看到
計算機
當前的路由規則。
引用:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
能夠看到,規則中走了3個路由表,local、main、default
咱們日常用route看到的,實際是路由表main
這些規則是按序號大小順序走的,一個不一樣,則走下一個,知道通路或走完爲止。
開始添加咱們本身的路由NET10到路由表中。
代碼:
ip rule add from 192.168.1.222 pref 10000 table NET10
這個意思是說,若是來自IP
地址
爲192.168.1.222的訪問,則啓用NET10的路由表中的路由規則。
而NET10的路由規則是什麼呢?上面已經設置了,走的是192.168.10.1的網段。
接下來,使LINUX能夠NAT(這裏再也不細說HOW TO了)。
五、讓全部人能夠訪問192.168.10.xx(這個IP不便說出來)
由於其他人都走了172.17.1.1這個路由,因此他們是沒法訪問192.168.10.xx的。
怎麼才能實現呢?再添加個
策略
就能夠了!
代碼:
ip rule add to 192.168.10.xx pref 10001 table NET10
這句話的意思是說,全部人,若是目的IP是192.168.10.xx,則臨時使用NET10的路由表。
這樣作,
安全會不會有安全
問題
呢?路由變了,他們會不會訪問到專用網絡呢?
不會的,由於路由規則是to 192.168.10.xx,也就是目標是96時,才該路由的,訪問別的網站仍是走原來的路由。
若是說訪問到專用網絡的機器,也就只有10.xx這一臺而已。
這裏,咱們還能夠作一個小
技巧
,不告訴別人192.168.10.xx的地址,只告訴他們網關192.168.1.1上有這個服務。
iptables -t nat -A PREROUTING -d 192.168.1.1/32 --dport 21 -j DNAT --to 192.168.10.xx:21
六、防止其餘人篡改IP地址而得到特殊權限
arp有個靜態功能CM,不是C,你們可能知道。
若是給一個IP地址強行綁定一個非他本身的MAC,會怎麼樣呢?雙方會話將會失敗!
好,咱們來利用這一點!
首先,我寫了一個文件iproute.c
代碼:
#include <stdlib.h>
#include <stdio.h>
main ()
{
int i;
for(i=2;i<255;i++)
printf("192.168.1.%d\t\t00:00:00:00:00:00\n",i);
}
gcc iproute.c -o iproute
將編譯出一個可執行文件
注:不該該包括
主機
IP地址自己,因此從2循環到254(255是廣播)
其次,生成一個C的IP地址和全爲00的MAC地址
代碼:
./iproute > /etc/ethers
再次,修改IP-MAC匹配列表
vi /etc/ethers
具體怎麼該我就不用細說了,相信你們都會
最後,作靜態IP-MAC綁定
arp -f
默認的路由表應該有192.168.10.0/24和172.17.0.0/16網段的內容,爲了安全,能夠去掉。
另外,若是是AS3的話,還會有169.254.0.0/16的路由,具體爲何我不知道,去掉。
而後寫一個防火牆腳本,利用iptables,把你的機器變得更加堅固!
出自 51CTO.COM博客