歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 網絡小技巧基於路由策略的IP地址控制

網絡小技巧基於路由策略的IP地址控制

日期:2017/3/6 15:47:10   编辑:關於Unix
最近做了一套路由策略,覺得 LINUX 真的太強大了!於是心潮澎湃,寫了這個文檔!!! 一、背景描述 如圖,LINUX是一台網關 服務器 ,內有3塊網卡 eth1綁定172.17.0.0/16的IP,該網段IP可以通過172.17.1.1上網 eth0綁定192.168.10.0/24的IP,該網段IP可以通過
  最近做了一套路由策略,覺得LINUX真的太強大了!於是心潮澎湃,寫了這個文檔!!!
  
  一、背景描述
  如圖,LINUX是一台網關服務器,內有3塊網卡
  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,是內網用戶的網關
  
  二、需求分析
  內網用戶應該走172.17.1.1這個路由上網
  但由於工作需要,部分用戶應該有訪問圖中“專用網絡”的權限
  也就是說,應該走192.168.10.1這個路由
  
  另外一點,所有人應該可以訪問FTP服務器,這個服務器的IP是192.168.10.96
  也就是說,走172.17.1.1路由的人,也應該能訪問192.168.10.96,且可以上網
  
  三、解決方案
  要解決這個問題,用到了一下幾個命令,具體使用方法需要另查資料
  ip route
  ip rule
  arp
  注:關於ip命令的用法,請查閱ip中文手冊,www.google.com上有
  
  1、綁定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地址
  
  2、創建特殊路由表
  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
  
  3、向NET10路由中添加它自己的默認路由
  
  ip route add default via 192.168.10.1 table NET10
  
  注意,這個table NET10一定不要忘了寫,否則寫到了主路由表中
  
  4、創建特殊路由規則
  用ip rule可以看到計算機當前的路由規則
  [quote:710319d809]
  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了)
  
  5、讓所有人可以訪問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
  
  6、防止其他人篡改IP地址而獲得特殊權限
  arp有個靜態功能CM,不是C,大家可能知道
  如果給一個IP地址強行綁定一個非他自己的MAC,會怎麼樣呢?雙方會話將會失敗!
  好,我們來利用這一點!
  
  首先,我寫了一個文件iproute.c
  
  #include
  #include
  main ()
  {
  int i;
  for(i=2;i<255;i++)
  printf("192.168.1.%d 00:00:00:00:00:00
  ",i);
  }
  
  gclearcase/" target="_blank" >cc iproute.c -o iproute
  將編譯出一個可執行文件
  注:不應該包括主機IP地址本身,所以從2循環到254(255是廣播)
  
  其次,生成一個C的IP地址和全為00的MAC地址
  
  ./iproute > /etc/ethers
  
  再次,修改IP-MAC匹配列表
  vi /etc/ethers
  具體怎麼該我就不用細說了,相信大家都會
  
  最後,做靜態IP-MAC綁定
  arp -f
  
  7、為了安全,建立防火牆,修改main路由表
  默認的路由表應該有192.168.10.0/24和172.17.0.0/16網段的內容,為了安全,可以去掉
  另外,如果是AS3的話,還會有169.254.0.0/16的路由,具體為什麼我不知道,去掉
  然後寫一個防火牆教本,利用iptables,把你的機器變得更加堅固!
  

  
網絡拓撲圖
"

Copyright © Linux教程網 All Rights Reserved