iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 17
7
Security

突破困境:資安開源工具應用系列 第 17

開源 IP 位址管理系統:phpIPAM

https://ithelp.ithome.com.tw/upload/images/20190929/20118848zgPgdwb9ZK.png

在企業當中隨著組織業務擴大,所使用的網路與裝置規模也隨之成長,以往也許還可使用試算表的方式手動管理,但是當數量達到一定程度之後,IP 位址的管理就會成為一個難題。

因此,我使用 IP 位址管理系統來協助 IT 團隊解決 IP 管理的問題,並希望同時將 Rack 機架管理等需求一併搞定。


方案介紹

經過多套開源方案的比較之後,最終我選擇了 phpIPAM,它採用經典的 LAMP 組合而成,功能如下:

  • 全 Web 化操作介面
  • 事件與警報郵件通知
  • 多重與子母網段管理
  • 網段 IP 數量控管與警示
  • 主動探索 IP 使用狀況
  • 定期檢測 IP 使用狀況
  • IP 使用申請表單機制
  • 裝置資訊管理
  • 機架資訊管理
  • 電路資訊管理
  • 繁體中文介面 (嘿嘿)

它所能提供的功能比我想像的還要豐富,而且確實能滿足我想要解決的問題,其中 IP 申請表單機制更是有趣。


安裝方式

在此以 Ubuntu 18.04 做為安裝程序的對象。

安裝套件

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
apt update
apt-get install apache2 mariadb-server php7.2 php7.2-gmp php7.2-mysql php7.2-ldap php-pear 
apt-get install php7.2-pdo php7.2-json php7.2-gettext php7.2-cli php7.2-mbstring 
apt-get install php7.2-gd php7.2-curl
apt-get install php7.2-simplexml
apt-get install git 
git clone https://github.com/phpipam/phpipam.git /var/www/phpipam 
cd /var/www/phpipam 
git submodule update --init --recursive 

系統初始

mysql -u root -p 
> create database phpipam; 
> GRANT ALL on phpipam.* to phpipam@localhost identified by 'password'; 
> exit; 
mysql -u root -p phpipam < db/SCHEMA.sql
cp /var/www/phpipam/config.dist.php /var/www/phpipam/config.php 

設定建立 (剛才複製出來的 config.php)

$db['host'] = "localhost"; 
$db['user'] = "phpipam"; 
$db['pass'] = "password"; 
$db['name'] = "phpipam"; 
define('BASE', "/");  

站台設定 (預設在 /etc/apache2/sites-enabled/000-default)

DocumentRoot /var/www/phpipam 
<Directory /var/www/phpipam>
  Options FollowSymLinks 
  AllowOverride all 
  Order allow,deny 
  Allow from all 
</Directory>

啟用模組 (rewrite)

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 
a2enmod rewrite 
service apache2 restart 

經過一連串的安裝指令之後 phpIPAM 已經安裝完成,請使用瀏覽器連至 http://ip/ ,預設帳號為 admin,預設密碼為 ipamadmin,即可登入。


主要功能

進入系統之後,首先會顯示資訊看板,提供最常需要觀看的各個區段資訊、數量統計、排行榜、IP 申請等等資訊,這部份的區塊可以依據使用習慣自行調整。

https://ithelp.ithome.com.tw/upload/images/20190929/20118848l9zeNxNPkj.png
資訊看板

在 phpIPAM 中,具有機架配置的功能,當裝置建立並設定至指定的機架編號與位置,即可在總覽畫面中以圖形方式呈現裝置與機架擺設的關係。

https://ithelp.ithome.com.tw/upload/images/20190929/2011884899IN3cwyIh.png
機架清單

在系統中,可以分別定義客戶、網路、位置、機櫃、裝置、電路等項目,這些項目都是可以經由設定全部進行關聯。

舉個例子,我們可以建立電信業者專線為一條電路,記錄電信業者名稱、電路編號、速率等等資訊,並在該電路中指名這是屬於那兩個裝置互相連接使用。

或者,建立多個辦公室的位置,並相該位置所使用的網段與該位置關聯,即可容易查詢位置與 IP 的相對應關係。

在 IP 管理畫面中,可以快速取得這個網段的相關資訊,右上角的圓餅圖會顯示此網段目前已經使用了多少 IP。

https://ithelp.ithome.com.tw/upload/images/20190929/20118848jlP6w8Xn6m.png
子網路細節

這個頁面往下捲,可以看到這個網段的每一個 IP 使用情況,搭配 phpIPAM 所提供的 scan 功能,可以快速的協助將整個網段中已經被使用的 IP,以及目前的連線情況以燈號顯示;若該 IP 能夠被反解到 FQDN,也會自動出現在欄位中。

在 IP 使用情況清單的下方還有一個快速的網段 IP 使用指示器,點亮的部份即表示已在使用中,非常易懂,點選每一格還可以進去設定或是新增對應的裝置。

https://ithelp.ithome.com.tw/upload/images/20190929/20118848dfXR7apJS2.png
IP 使用清單與指示器

點進裝置細節頁面,可以查看更多的 IP、MAC、位置、連線、異動記錄等資訊,也會以圖形方式呈現這個裝置在那一個 Rack 的第幾個位置。

https://ithelp.ithome.com.tw/upload/images/20190929/201188487o1CfEGqr2.png
IP 位址細節

可以將現有的電路資料建立起來,輸入電路編號、頻寬、業者、連繫窗口、連接點的資訊等,可以方便做為管理與日後的調閱。

以我的使用情況來說,有許多的外點辦公室都有各自的線路,甚至有一些是協助客戶申請的線路資訊需要保存,透過 phpIPAM 就有一個相當良好的集中管理方式。

https://ithelp.ithome.com.tw/upload/images/20190929/20118848VYm6XiaLPe.png
實體電路清單


結論

延續前一篇 Open-AudIT 資產管理系統的功能,本篇是 IP 位址管理系統,剛好可以形成互補資訊缺少的部份做為參考。

經由 phpIPAM 所提供的 IP 位址管理以及自動檢測 IP 使用情況的機制,可以為我們解決這些 IP 使用情況盤點的需求問題,只要定期回頭查看 phpIPAM 上的圖表資訊與警報,就可以將單位中的 IP 使用狀況隨時掌握。

例如發現區域中接上網路很久但卻已經沒有使用的裝置,或是需要加入新裝置時配發 IP 的確認程序,都可以一次在 phpIPAM 平台上完成,而且透過以 phpIPAM 做為中央管理機制,更可以避免多人 IT 團隊運作時不慎取用相同 IP 設定導致衝突的窘境。


參考資料


上一篇
開源 IT 資產管理系統:Open-AudIT
下一篇
開源記錄集中管理系統:Graylog (一)
系列文
突破困境:資安開源工具應用33
1
卡比
iT邦新手 4 級 ‧ 2019-09-30 18:45:46

謝謝Jason哥的分享,立馬安裝起來玩玩,
不過我遇到一個問題,不知道您是否也有遇過?
切換完中文介面後,進入[管理]的任何一個選項都會出現異常畫面如下:
https://ithelp.ithome.com.tw/upload/images/20190930/20064787ATjLHiGwzK.png

看更多先前的回應...收起先前的回應...

看一下你安裝的版本號

官方的 zh_TW 切換似乎還沒完善 (我的繁中語系檔已經有併入,但它的切換機制在切繁中時跑到 zh_CN 簡體中文去),我找時間幫他修一下。

可先參考這篇做繁中檔手動置入
http://blog.jason.tools/2019/07/phpipam-cpatch-install.html

bestlong iT邦研究生 5 級 ‧ 2019-10-02 00:06:37 檢舉

目前判斷應該是 functions/locale/zh 連結到 zh_CN.UTF-8 的問題
治標的方法
可以手動刪除 functions/locale/zh 然後重啟動 php 服務

這是剛剛跟 bestlong 討論後的暫時解法,更好的方案我們確認後再修改回官方專案裡

卡比 iT邦新手 4 級 ‧ 2019-10-02 23:11:32 檢舉

好喔~謝謝。

0
ac900941
iT邦新手 5 級 ‧ 2019-10-12 22:10:32

Jason大您好:
我在網路架構這方面算是個新手
想問這套是否用來取代路由器?
有沒有基礎的網路架構?

這個只是方便管理的工具,跟路由器沒有任何關聯更別提取代

是的,如樓上邦友所言,phpIPAM 是管理 IP 記錄與檢測用,不是用來當由器的。

0
taigile
iT邦新手 5 級 ‧ 2019-10-30 17:51:25

版主您好

請教一下,關於IP使用申請表單機制,

它的整體申請流程是怎麼進行的?

能否再補充說明一下,謝謝。

只能設定一個關卡給管理者審核並調整配予的 IP,沒有更多的 flow 功能

0
gordon79513
iT邦新手 5 級 ‧ 2020-05-13 14:18:24

版主你好

已依照 https://phpipam.net/news/automatic-host-availability-check/
設置好 auto ping 功能

也新增 switch / router 設備並設置 snmp ,
https://ithelp.ithome.com.tw/upload/images/20200513/20127086UWQ12V9DDN.png

請問 snmp auto scan 是否需要再額外設定?
以及要在那裡找到 scan 完的結果?

已找了許多網站,一直找到不到相關的教學。

這部我測過,看起來是還沒完善,要等作者改版

我要留言

立即登入留言