Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Linux network monitoring hands-on pratice

1.620 Aufrufe

Veröffentlicht am

Install and configure network monitoring tools in Linux.

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

Linux network monitoring hands-on pratice

  1. 1. 網路監控 實作 by netman<netman@study-area.org>
  2. 2. 主題大綱 ● Tcpdump ● Wireshark ● Ntop ● Mrtg ● Cacti ● Nagios ● OpenNMS
  3. 3. tcpdump
  4. 4. tcpdump ● http://www.tcpdump.org/ ● CLI 模式的封包截取工具 ● 使用 libpcap 作為封包處理函式庫 ● 大多數 Unix-based 作業系統均內建
  5. 5. 截取參數 -D 顯示所有可截取的網卡 -i [interface] 選擇網卡 any 表示所有的網卡 -p 不將網卡切入 promiscuous mode -F [file] 由指定的檔案讀取 Filter Expression -s 限制封包長度 (預設為 68 bytes) 0 表示不限制,錄下完整封包
  6. 6. 儲存參數 -c [封包數] 錄下指令數量的封包後停止 -C [檔案大小] 限制記錄檔案之大小 (搭配 -w 指定檔名) 達到上限時將開新檔繼續儲存 單位為 1,000,000 bytes -W [檔案數] 限制 -C 參數儲存之檔案數量
  7. 7. 檔案參數 -w [file] 將截取封包寫入至檔案 -U 搭配 -w 寫入檔案時,不作緩存 -r [file] 由指定檔案取得封包
  8. 8. 顯視參數 -A 以 ASCII 字元顯示封包內容 -e 顯示 Link Layer 資訊 (例如MAC-Address) -n 不作名稱解析 (主機名稱、服務名稱… etc) -v 顯示較詳細的封包資訊 -v 、 -vv 、 -vvv 三種等級 -x / -xx 將封包內容以 hex 格式顯示 -X / -XX 將封包內容以 hex 及 ASCII 格式顯示
  9. 9. 時間參數 -t 不顯示時間戳記 -tt 顯示 UNIX timestamp 格式 -ttt 顯示每個封包之間隔 (micro seconds) -tttt 顯示標準格式 (yyyy-mm-dd hh:mm:ss.ms)
  10. 10. 協定參數 Layer 2 arp rarp stp vlan Layer 3 ip ip6 Layer 4 tcp udp icmp
  11. 11. 目標參數 src/dst ether host net port
  12. 12. 封包參數 broadcast multicast
  13. 13. 數值運算 = : equal < : less > : greater
  14. 14. 羅輯運算 ! : not && : and || : or
  15. 15. 範例 ● 觀察eth0網頁連線 tcpdump -i eth0 tcp port 80 ● 觀察 eth1 arp 封包 tcpdump -i eth1 arp ● 觀察對 168.95.1.1 之 DNS 查詢 tcpdump host 168.95.1.1 and udp port 53 ● 錄下 POP3封包 tcpdump -w pop3.pcap tcp port 110 ● 觀察 TCP SYN 封包 tcpdump ‘tcp[tcpflags] == 2’
  16. 16. 練習1 ● 請問如下是什麼指令引起的封包? ● 從哪個來源發起至哪個目的地?
  17. 17. 練習2 ● 請從下載的封包檔中提取管理員(root)的密碼
  18. 18. wireshark
  19. 19. Wireshark ● http://www.wireshark.org/ ● 早期名稱為 ethereal ● GUI 界面的封包截取工具 ● 可作為 sniffer 截取封包來分析 ● 亦可重組封包取出資料區
  20. 20. 下載 http://www.wireshark.org/download.html
  21. 21. 安裝 yum -y install wireshark wireshark-gnome
  22. 22. Sample Captures http://wiki.wireshark.org/SampleCaptures
  23. 23. 執行
  24. 24. 配置
  25. 25. 截取選項
  26. 26. 截取
  27. 27. 分析 ● Follow Stream
  28. 28. IP來源分析 ● MaxMind GeoIP Database http://geolite.maxmind.com/download/geoip/da tabase/ ● How To Use GeoIP With Wireshark http://wiki.wireshark.org/HowToUseGeoIP
  29. 29. IP來源分析 ● 起用 GeoIP
  30. 30. 統計 ● 總覽
  31. 31. 統計 ● 協定層級
  32. 32. 統計 ● 對談
  33. 33. 另存為...
  34. 34. 參考資源 ● User’s Guide http://www.wireshark.org/docs/wsug_html_chunked/ ● Display Filter Reference http://www.wireshark.org/docs/dfref/ ● Wiki http://wiki.wireshark.org/ ● Manual http://www.wireshark.org/docs/man-pages/ ● FAQ http://www.wireshark.org/faq.html
  35. 35. ntop
  36. 36. ntop ● http://www.ntop.org/ ● 即時的流量分析/統計工具 ● 功能 – Mirror Traffic – NetFlow/sFlow – In-Line Analysis
  37. 37. 下載 http://www.ntop.org/download.html
  38. 38. 安裝 wget http://pkgs.repoforge.org/rpmforge-release/ rpmforge-release-0.5.2-2.el5.rf.i386.rpm rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm yum install ntop
  39. 39. 設定 ● 編輯 /etc/ntop.conf – --http-server=3000 ● 可變更 http server port – --interface=eth0 ● 可變更聆聽之網路界面 – --local-subnets=xx.xx.xx.xx/yy ● 定義本地端網段 – 以及其他開放項目都要增加=
  40. 40. 設定 ● 編輯 /etc/init.d/ntop (CentOS Only) – 把這行 daemon $prog -d -L @/etc/ntop.conf – 修改為: daemon $prog @/etc/ntop.conf -d -L
  41. 41. 啟動 ● ntop -A – 輸入登入密碼 – Ctrl+C 停止 ● service ntop start ● chkconfig ntop on
  42. 42. 登入 http://[IP]:3000/
  43. 43. 參考資源 ● Ntop Blog http://www.ntop.org/blog/ ● Ntop Overview http://www.ntop.org/ntop-overview.pdf ● Ntop Presentation http://www.ntop.org/OpenSourceConf_Athens2 008.pdf ● Manpage http://www.ntop.org/ntop-man.html
  44. 44. mrtg
  45. 45. mrtg ● http://www.mrtg.org/ ● Multi Router Traffic Grapher ● 利用SNMP、或客製指令抓取資料,並產生趨 勢圖表 ● 可產生 日/週/月/年 下之平均數據 ● 常用來紀錄 – 網路界面流量 – 主機負載 (CPU/Memory/ … etc) – 磁碟使用率In-Line Analysis
  46. 46. 安裝 yum install mrtg net-snmp net-snmp-utils
  47. 47. 設定 ● 修改 /etc/snmp/snmpd.conf ● 在如下句子下修改: # YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY ● 主要修改: com2sec local localhost netadmin com2sec mynetwork 10.10.10.0/24 netadmin
  48. 48. 設定 ● 取消下行註解 group MyRWGroup any local group MyROGroup any mynetwork view all included .1 80 access MyROGroup "" any noauth 0 all none none access MyRWGroup "" any noauth 0 all all all
  49. 49. 設定 ● 重新運行 snmpd service snmpd restart chkconfig snmpd on ● 并以 snmpwalk 進行測試 snmpwalk localhost -c netadmin -v 1
  50. 50. 設定 ● 產生mrtg設定檔 cd /etc/mrtg cfgmaker netadmin@[IP] >> mrtg.cfg ● 執行 LANG=C mrtg /etc/mrtg/mrtg.cfg ● 執行三次 ● 產生mrtg首頁 indexmaker --columns=1 --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg
  51. 51. 觀察結果 ● 起動 apache: service httpd restart chkconfig httpd on ● 用瀏覽器察看: http://[ip]/mrtg ● 或需修改: /etc/httpd/conf.d/mrtg.conf
  52. 52. cacti
  53. 53. cacti ● http://www.cacti.net/ ● 利用 php + mysql + rrdtool 畫出各種圖表的網 管軟體 ● 常用來取代傳統的 mrtg ● 可為各常用設備定義 template,套用方便
  54. 54. 需求 ● php – 執行網頁界面 ● mysql – 存放網頁界面資料庫 ● rrdtool – 處理 rrd 資料 ● net-snmp – 抓取 snmp 資料
  55. 55. 下載 http://www.cacti.net/download_cacti.php
  56. 56. 安裝 yum -y install cacti mysql-server
  57. 57. 資料庫處理 ● 啟動 MySQL – service mysqld start – chkconfig mysqld on ● 建立 cacti 資料庫、帳號 – mysql ● mysql> create database cacti; ● mysql> grant all on cacti.* to cacti@localhost identified by 'password'; ● mysql> quit ● 匯入資料庫 – mysql cacti -u cacti -p < /var/www/cacti/cacti.sql
  58. 58. ● 編輯設定檔 – vim /var/www/cacti/include/config.php ● $database_type = "mysql"; ● $database_default = "cacti"; ● $database_hostname = "localhost"; ● $database_username = "cacti"; ● $database_password = "password"; ● $database_port = "3306"; ● $url_path = “/cacti/”; ● 重新起點 apache service apache restart
  59. 59. 進入安裝界面 http://[IP]/cacti/install/
  60. 60. 選擇 New Install
  61. 61. 選擇 Finish
  62. 62. 登入 ● http://[IP]/cacti/ ● 預設帳密為 admin/admin,登入後需改密碼
  63. 63. 新增步驟 ● 新增主機 – Devices → Add ● 填入Description、Hostname ● 選擇Host Template ● 設定 SNMP Options(community) ● Create
  64. 64. 新增主機
  65. 65. 新增步驟 ● 建立圖表 – Devices → 點進該設備 → Create Graphs for this Host ● 勾選欲建立之圖表後 ● Create
  66. 66. 建立圖表 建立圖表
  67. 67. 新增步驟 ● 放置圖表 – Devices → 勾選選擇該設備 (最右邊) ● 下拉選單: – Place on a Tree ● Go & Continue
  68. 68. 放置圖表
  69. 69. ● 管理圖表 – Graph Trees → Add ● 可建出各類設備之樹狀結構 – Graph Management ● 勾選欲置放之圖表 ● Choose an action: Place on a Tree – Destination Branch (如有子節點) – Yes
  70. 70. ● 觀看圖表 – 切換至 Graphs 標簽 ● 展開 Graph Tree ● 選擇主機
  71. 71. 觀看圖表
  72. 72. 取得Host Template http://forums.cacti.net/forum-12.html
  73. 73. http://www.debianhelp.co.uk/cactitemplates.htm
  74. 74. 匯入 Template
  75. 75. poller ● cmd.php – 以 php 開發 – cacti 預設的 poller script – 偵測主機多時效率不佳 ● spine (cactid) – 使用 C 語言開發 – 以multi-process + multi-thread執行,效率較好
  76. 76. spine (cactid) http://www.cacti.net/spine_download.php
  77. 77. 安裝spine ● yum install cacti-spine
  78. 78. 設定spine ● 編輯設定檔 – vim /etc/spine.conf ● DB_Host localhost ● DB_Database cacti ● DB_User cacti ● DB_Pass password ● DB_Port 3306
  79. 79. 使用 spine 設定 spine 路徑(settings → Path: /usr/bin/spine)
  80. 80. 更改 Poller Type
  81. 81. opennms
  82. 82. opennms ● http://www.opennms.org/ ● Open Source / Free 的監控工具 ● 網路狀態監控工具 ● 可發出即時 Alert ● 常用於觀察 ● 主機服務 ● 網路節點狀態
  83. 83. 安裝 yum install opennms opennms-plugins opennms-plugins-nrpe * or 參考: http://eggchang.pixnet.net/blog/post/32659238
  84. 84. 安裝與設定 PostgreSQL ● 安裝 postgresql yum -y install postgresql postgresql-server postgresql-jdbc ● 讓 postgresql 於開機時自動執行 chkconfig --level 345 postgresql on ● 第一次啟動 postgresql service postgresql start
  85. 85. ● 修改 postgresql 啟動參數 cd /var/lib/pgsql/data mv pg_hba.conf pg_hba.conf.bak sed 's/ident sameuser/trust/g' pg_hba.conf.bak > pg_hba.conf ● 重新啟動 postgresql service postgresql restart
  86. 86. 安裝與設定 JDK ● 下載 jdk wget http://download.oracle.com/otn-pub/ java/jdk/6u22-b04/jdk-6u22-linux-i586- rpm.bin ● 安裝 JDK bash jdk-6u22-linux-i586-rpm.bin
  87. 87. ● 設定環境變數 cat << EOF > /etc/profile.d/java.sh export JAVA_HOME=/usr/java/default export PATH=$JAVA_HOME/bin:$PATH EOF cat << EOF > /etc/profile.d/java.csh set JAVA_HOME=/usr/java/default set PATH=$JAVA_HOME/bin:$PATH EOF source /etc/profile.d/java.sh
  88. 88. 下載與安裝 OpenNMS ● 安裝 OpenNMS 的 yum repositories rpm -ivh http://yum.opennms.org/repofiles/open nms-repo-stable-rhel5.noarch.rpm ● 建立與設定資料庫 sudo -u postgres createdb -U postgres -E UNICODE opennms yum -y install iplike
  89. 89. ● 安裝 OpenNMS yum -y install opennms mib2opennms opennms-* ● 設定 OpenNMS /opt/opennms/bin/runjava -s /opt/opennms/bin/install -dis chkconfig opennms on ● 啟動 OpenNMS service opennms start
  90. 90. http://[IP]:8980/opennms/
  91. 91. 參考資源 ● OpenNMS Documentation – http://www.opennms.org/documentation ● Official OpenNMS Documentation – http://support.opennms.com/knowledgebase/officialdocs ● OpenNMS Wiki – http://wiki.opennms.org/index.php/Main_Page ● Installation:Yum – http://www.opennms.org/wiki/Installation:Yum ● OpenNMS Documentation Overview – http://www.opennms.org/wiki/Docu-overview ● OpenNMS FAQ – http://www.opennms.org/wiki/FAQ
  92. 92. nagios
  93. 93. Nagios ● http://www.nagios.org/ ● Open Source / Free 的監控工具 ● 網路狀態監控工具 ● 可發出即時 Alert ● 常用於觀察 – 主機服務 – 網路節點狀態
  94. 94. 安裝 ● YUM yum install nagios*
  95. 95. 系統設定 ● 建立httpd帳號 htpasswd -c /etc/nagios/htpasswd.users nagiosadmin htpasswd /etc/nagios/htpasswd.users nagiosuser ● 啟動服務 service httpd restart service nagios start chkconfig httpd on chkconfig nagios on
  96. 96. 測試連線 ● 檢查設定檔語法 nagios -v /etc/nagios/nagios.cfg ● http://127.0.0.1/nagios/ – 以 nagiosadmin 登入
  97. 97. 設定 ● 修改管理員信箱 vi /etc/nagios/objects/contacts.cfg define contact{ email user@domain ;
  98. 98. 設定 ● 設定 nrpe echo 'nrpe 5666/tcp' >> /etc/services serivce nrpe start chkconfig nrpe on
  99. 99. 設定 ● 測試 nrpe /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_users /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_load /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_total_procs /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_zombie_procs
  100. 100. 設定 ● 測試硬碟空間 vi /etc/nagios/nrpe.cfg allowed_hosts=127.0.0.1,ip.ip.ip.ip command[check_root_space]=/usr/l ib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/VG/root_LV serive nrpe restart /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_root_space
  101. 101. 設定 ● 建立主機組態 cp /etc/nagios/objects/windows.cfg /etc/nagios/objects/linux.cfg vi /etc/nagios/objects/linux.cfg ● use linux-server ● host_name linuxserver ● Address 10.10.2.1 ● hostgroup_name linux-servers
  102. 102. 設定 ● vi /etc/nagios/objects/linux.cfg – 把全部 host_name 從 winserver 修改 為 linuxserver (前面定義的) – 刪除多餘的 service { … } define service{ use generic-service host_name linuxserver service_description Online Users check_command check_nrpe!check_users }
  103. 103. 設定 ● 定義 nrpe 命令 vi /etc/nagios/objects/commands.cfg # 'check_nrpe' command definition define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
  104. 104. 設定 ● 修改 /etc/nagios/nagios.cfg : cfg_file=/etc/nagios/objects/linux.cfg ● 檢查組態 nagios -v /etc/nagios/nagios.cfg ● 重新執行服務 service nagios restart
  105. 105. 參考資源 ● OpenNagios – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios.ymp ● Nagios Plugins – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios-plugins.ymp ● Nagios Addons Extras – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios-plugins-extras. ymp
  106. 106. Q & A

×